2008-04-23 Marek Habersack <mhabersack@novell.com>
[mono.git] / mono / metadata / ChangeLog
1 2008-04-23  Marek Habersack  <mhabersack@novell.com>
2
3         * domain-internals.h: added a declaration of
4         mono_make_shadow_copy.
5
6         * assembly.c (mono_assembly_open_full): shadow copying of
7         assemblies moved to here, so that all the assemblies within the
8         application domain's private binary directories can be
9         processed. Fixes bug #380546
10
11         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
12         mono_make_shadow_copy and made non-static. The decision whether
13         to shadow-copy an assembly is made based on its location - it's
14         copied if it's in one of the private application domain binary
15         directories and its different to the target file in the shadow
16         directory. Fixes bug #380546
17
18 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
19
20         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
21
22         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
23         types.
24
25         * reflection.c (mono_image_create_token): Handle 
26         Method/ConstructorOnTypeBuilderInst.
27         (resolve_object): Ditto.
28         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
29         so it can be called from resolve_object. Also handle the case when the inflated
30         class already has its methods setup.
31
32 2008-04-21  Martin Baulig  <martin@ximian.com>
33
34         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
35
36 2008-04-20  Geoff Norton  <gnorton@novell.com>
37
38         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
39         pointer dereference.
40
41 2008-04-15  Marek Habersack  <mhabersack@novell.com>
42
43         * appdomain.c (try_load_from): if IOMAP is in effect, call the
44         portability API to look up the assembly file. Fixes behavior in
45         situations when the application has a bin/ directory, but the
46         assembly search patch refers to Bin/ (and thus the requested file
47         name is Bin/SomeLibrary.dll). Fixes bug #379888
48
49 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
50
51         verify.c (mono_type_is_generic_argument): Extracted this check
52         from a dozen places to here.
53
54         verify.c: Fixed all issues related to boxing generic arguments
55         and their constraints.
56
57 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
58
59         verify.c (mono_class_interface_implements_interface): Fix win32 build.
60
61 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
62
63         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
64         isn't finished yet. Fixes #363447.
65
66 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
67
68         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
69         Fixes #346419.
70
71 2008-04-13  Jb Evain  <jbevain@novell.com>
72
73         * domain.c: update the 2.1 profile versions.
74         Merged from the Moonlight 2 branch.
75
76 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
77
78         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
79         mscorlibs for the non-refonly case as well.
80
81         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
82         in mono_assembly_load_from_full (). Fixes #378924.
83
84 2008-04-11  Geoff Norton  <gnorton@novell.com>
85
86         * icall.c: The global extern environ doesn't exist on Mac.  We
87         need to call NSGetEnviron instead.
88
89 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
90
91         verify.c: Add generic method constraint verification.
92
93 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
94
95         class.c (mono_class_inflate_generic_method_full): Add a long
96         explanation to the is_mb_open hack. Remove the FIXME.
97
98 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
99
100         * verify.c (mono_method_verify): Mark all unknown opcodes
101         as invalid. Mark jmp as unverifiable.
102
103 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
104
105         * verify.c: Add code to do type constraint verification on class instances.
106
107         * verify.c (mono_verifier_verify_class): Use the type constraint 
108         verification code.
109
110 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
111
112         * class.c (mono_class_get_field_default_value): Don't pass cindex
113         as hint to mono_metadata_get_constant_index. The local is not initialized
114         and should contain garbage most of the time. This could only work
115         with a lot of luck.
116
117 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
118
119         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
120
121 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
122
123         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
124
125         * class.c (mono_class_from_generic_parameter): Save the token of the
126         generic param in MonoClass::sizes.generic_param_token.
127
128         * reflection.c (mono_custom_attrs_from_class): If the class type is
129         VAR or MVAR retrieve the attributes of the generic param.
130
131 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
132
133         * class.c (mono_class_init): Do class verification if the verifier
134         is enabled.
135
136 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
137
138         * verify-internal.h: Added mono_verifier_verify_class.
139
140         * verify.c: Added mono_verifier_verify_class. It checks for
141         classes with explicit layout that have overlapping reference fields.
142
143         * pedump.c: Init the verifier state prior to verification. Fixed
144         command line arguments.
145
146 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
147
148         * Makefile.am: Added verify-internals.h, hopefully fix the build.
149
150 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
151
152         * verify-internals.h: Fix a warning.
153
154 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
155
156         * verify-internals.h: New header with the verifier configuration
157         extracted from mini.c.
158
159         * verify.c: Implemented the new functions exported by verify-internals.h.
160
161 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
162
163         * verify.c: Add proper verification of ckfinite.
164
165 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
166
167         * verify.c (do_conversion): Improved error message to something
168         more meanfull.
169
170         * verify.c (check_is_valid_type_for_field_ops): Fix to work
171         with primitive types.
172
173 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
174
175         * verify.c: Added tail prefix checking. Marked icall
176         as unverifible.
177
178 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
179
180         * verify.c: Fix the detection of branches to the middle
181         of an instruction.
182
183 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
184
185         * verify.c: Implemented verification of volatile. and
186         unaligned. prefix. Check if a type is valid after retrieving it.
187
188 2008-04-01  Dick Porter  <dick@ximian.com>
189
190         * process.c (process_get_fileversion): If there's no string block,
191         set the file language to en_US.  Fixes the other new part of bug
192         374600.
193
194 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
195
196         * class.c: New functions mono_method_can_access_field_full and
197         mono_method_can_access_method_full. They perform type visibility
198         and type site check.
199
200         * class-internal.h: Added exported functions.
201
202         * verify.c: Use new functions to implement proper visibility checks.
203
204 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
205
206         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
207
208 2008-03-28  Dick Porter  <dick@ximian.com>
209
210         * process.c (process_get_fileversion): Use the first language ID
211         we see, rather than insisting on an invariant language.  Fixes bug
212         374600.
213
214 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
215
216         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
217         the streams to fix reading of invalid memory later.
218
219         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
220         to ease debugging.
221
222 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
223
224         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
225         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
226
227 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
228         * threads.h: Added MonoThreadManageCallback type and
229         mono_thread_set_manage_callback prototype
230         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
231         (used to store the mono_thread_manage callback).
232         * threads.c: Added mono_thread_set_manage_callback, and handle
233         "MonoThread->manage_callback" in build_wait_tids.
234
235 2008-03-26  Dick Porter  <dick@ximian.com>
236
237         * process.c (process_get_fileversion): Set FileVersionInfo strings
238         to Empty when the resource doesn't have the particular info.
239         Fixes bug 355717.
240
241 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
242
243         * verify.c (mono_method_verify): Proper prefix validation.
244
245 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
246
247         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
248         itself in a separate argument instead of throwing them. Fixes #373448.
249
250         * appdomain.c: Bump corlib version.
251
252 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
253
254         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
255
256 2008-03-20  Kornél Pál  <kornelpal@gmail.com>
257
258         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
259         version macros.
260
261 2008-03-20  Mark Probst  <mark.probst@gmail.com>
262
263         * generic-sharing.c, class-internals.h: Code for putting
264         reflection types into the runtime generic context.
265
266 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
267
268         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
269         Fixes #340662. 
270
271
272 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
273
274         * verify.c (VerifyContext): Added instruction prefix data to the struct.
275
276         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
277
278         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
279
280         * verify.c (do_cast): Let the result value keep the boxed status.
281
282         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
283
284 2008-03-17  Jb Evain  <jbevain@novell.com>
285
286         * reflection.c: when running on a 2.0 runtime, emit
287         unconditionally the #~ header version as 2.0, and the
288         CLI header version as 2.5, for symmetry's sake with csc.
289
290 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
291
292         * class.c: Remove the unused cache_interface_offsets stuff.
293
294         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
295         profiler.c: Fix warnings.
296
297 2008-03-16  Mark Probst  <mark.probst@gmail.com>
298
299         * generic-sharing.c, class-internals.h: Support for putting
300         methods into the runtime generic context.
301
302 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
303
304         * class.c (mono_class_setup_fields): Ignore calls made to this function for
305         classes which are generic instances of not-yet finished typebuilders. Fixes
306         #351172.
307
308         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
309
310 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
311
312         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
313
314         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
315         field, replace it with a hash table in MonoDynamicImage.
316
317         * reflection.c (inflate_mono_method): Access the generic definition object from
318         image->generic_def_objects instead of imethod->reflection_info.
319
320         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
321
322         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
323         
324         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
325         function in reflection.c so it is easier to keep in sync with the dynamic image
326         creation code.
327
328         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
329         mono_image_close ().
330
331 2008-03-15  Mark Probst  <mark.probst@gmail.com>
332
333         * class.c (mono_class_generic_sharing_enabled): Disable generic
334         sharing for all architectures except AMD64 and x86 to fix build.
335
336 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
337
338         * verify.c: Use the generic definition MonoGenericContext when available.
339         Remove code for checking generics instance compatibility in favor of
340         mono_class_is_assignable_from.
341
342 2008-03-14  Mark Probst  <mark.probst@gmail.com>
343
344         * marshal.c, marshal.h, metadata-internals.h, image.c,
345         wrapper-types.h: New wrapper for invoking a shared static method
346         without having to pass the runtime generic context argument.
347
348 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
349
350         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
351
352 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
353
354         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
355         
356         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
357         create a token from a FieldOnTypeBuilderInst.
358         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
359         (resolve_object): Ditto.
360
361         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
362         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
363
364 2008-03-14  Martin Baulig  <martin@ximian.com>
365
366         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
367
368         * debug-mono-symfile.h
369         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
370         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
371
372 2008-03-10  Martin Baulig  <martin@ximian.com>
373
374         * debug-mono-symfile.h
375         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
376         `lexical_block_table_offset'.
377         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
378         `lexical_blocks'.
379         (MonoSymbolFile): Added `version'.
380
381         * mono-debug.h
382         (MonoDebugLexicalBlockEntry): Removed.
383         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
384         `lexical_blocks'.
385
386         * mono-debug.c (mono_debug_add_method): Don't compute lexical
387         blocks here; the debugger now does this internally.
388
389 2008-02-27  Martin Baulig  <martin@ximian.com>
390
391         * object.c (mono_runtime_exec_main): Call
392         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
393         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
394
395 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
396
397         * verify.c (verify_type_compatibility_full): Allow native int to be converted
398         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
399
400 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
401
402         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
403         ldftn with a virtual method.
404
405 2008-03-13  Geoff Norton  <gnorton@novell.com>
406
407         * decimal.c:  Only include memory.h if the platform has it.
408
409 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
410
411         * assembly.c, class.c, metadata-internals.h: make sure public key
412         tokesns are compared in a case-insensitive way. Also, all
413         the lookups in the GAC use a lowercase public key token
414         (gaacutil already does the lowercasing on install). Fixes
415         bug #369541.
416
417 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
418
419         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
420         and return value.
421
422 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
423
424         * image.c: when someone loads a mscorlib from a file, return the
425         currently loaded mscorlib (fixes bug #369253).
426
427 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
428
429         * class.c: handle types with no parents by forcing them to have
430         System.Object as a parent and marking them as broken (this currently
431         allows the first part of bug #369173 to work as well, likely because
432         we don't check for typeload exceptions everywhere yet).
433
434 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
435
436         * class.c: more complete check that types belong to corlib
437         (fixes second part of bug #369173).
438
439 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
440
441         * generic-sharing.c:  Including glib.h for the MSVC builds to define
442           "inline" to "__inline" before including mono-membar.h.
443           
444         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
445           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
446           MSVC builds.
447
448         Contributed under MIT/X11 license.
449
450 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
451
452         * verify.c (do_invoke_method): Remove return type validation.
453
454         * verify.c (do_ret): Do return type validation at return site instead of
455         call site.
456
457 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
458
459         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
460
461         * verify.c: Some todos cleaned and improved a few error messages.
462
463 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
464
465         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
466
467 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
468
469         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
470         system types correctly.
471
472         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
473         function.
474
475 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
476
477         * assembly.c (build_assembly_name): Fix a warning.
478
479 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
480
481         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
482         the called function takes an object type argument. Fixes storing or
483         valuetypes across remoting as well as reducing memory usage.
484         * image.c, metadata-internals.h: remove now unused ldfld_remote and
485         stfld_remote wrapper caches.
486
487 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
488
489         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
490         is not found.
491
492         * reflection.c (mono_image_register_token): New helper function to save
493         a token->object mapping.        
494
495         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
496         managed code.
497
498         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
499         one dimension arrays. Fixes #367670.
500         (mono_reflection_get_type_internal): Ditto.
501
502 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
503
504         * marshal.c: mono_load_remote_field_new() always returns object.
505         so use the proper signature (fixes bug #366445).
506
507 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
508         
509         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
510         add an 'inline_failure' flag instead.
511
512 2008-03-04  Mark Probst  <mark.probst@gmail.com>
513
514         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
515         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
516         contains the location of "this", used for exception handling.
517
518 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
519
520         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
521         their size on all platforms for perf reasons.
522
523 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
524
525         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
526         object-internal.h
527
528         * object-internal.h: Same.
529
530 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
531
532         * reflection.h: Fix the build I just broke.
533
534 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
535
536         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
537         Test if a token is valid, this remove explicit usage of 
538         MonoDynamicImage::tokens from the verifier code.
539
540         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
541
542         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
543         instead of direct access to MonoDynamicImage::tokens.
544
545 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
546
547         * verify.c (token_bounds_check): Fix the build I just broke.
548
549 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
550
551         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
552
553         * verify.c (verifier_load_method): Fixed the errors message.
554
555         * verify.c (mono_method_verify): Fixed a debug message.
556
557 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
558
559         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
560         mono-perfcounters.h, class-internals.h: support for predefined
561         writable counters, query of categories and counters, bugfixes.
562
563 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
564
565         * verify.c (do_refanytype): Verify the refanytype opcode.
566
567         * verify.c (mono_method_verify): Use do_refanytype.
568
569 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
570
571         * verify.c (do_mkrefany): Verify the mkrefany opcode.
572
573         * verify.c (mono_method_verify): Use do_mkrefany.
574
575 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
576
577         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
578         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
579         implementation.
580
581 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
582
583         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
584         the type load exception.
585
586 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
587
588         * verify.c: Added a few FIXME for method signatures
589
590         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
591         of mono_method_get_signature and get vararg call working. Removed unused
592         checks for return value.
593
594         * verify.c (do_refanyval): Verify the refanyval opcode.
595
596         * verify.c (mono_method_verify): Implemented verification of arglist and
597         use do_refanyval.
598
599 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
600
601         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
602         vtypes to marshal.c.
603
604         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
605         it works for AOT as well.
606
607 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
608
609         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
610         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
611         the system time is adjusted.
612
613 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
614
615         * icall.c, icall-def.h: use the new time functions (fixes the
616         non-monotonic behaviour of TickCount).
617
618 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
619
620         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
621         it breaks the build.
622         
623         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
624         cattr is not finished yet.
625
626 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
627
628         * verify.c: Proper token validation for field, method and type.
629
630 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
631
632         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
633
634         * loader.c (method_from_memberref): Generate type load error instead of method missing
635         if the type is not found.
636
637 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
638
639         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
640         some of the conversions caused the generation of a marshal directive exception.
641
642 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
643
644         verify.c: Report which exception should be thrown by the JIT.
645         Added a lot of FIXME notes.
646
647 2008-02-22  Mark Probst  <mark.probst@gmail.com>
648
649         * generic-sharing.c: Runtime generic context slots are not
650         instantiated on init anymore.  Instead, provide function to do the
651         instantiating on demand.
652
653         * class-internals.h: Added vtable to runtime generic context.
654         Macros for encoding direct and indirect slot offsets in one
655         guint32.
656
657 2008-02-21  Mark Probst  <mark.probst@gmail.com>
658
659         * object.c, generic-sharing.c: Moved some generic sharing code
660         from object.c to generic-sharing.c.
661
662         * generic-sharing.c: Added support for extensible runtime generic
663         context.
664
665         * metadata-internals.h: Two new hash tables in MonoImage for
666         extensible runtime generic context support.
667
668         * domain.c: Unregister generic vtables upon domain unloading.
669
670         * image.c: Destroy new hash tables upon image unloading.
671
672         * metadata.c: Unregister generic subclasses upon image unloading.
673
674         * class-internals.h: New data structure for runtime generic
675         context template.  New fields in the runtime generic context for
676         extensible part.
677
678         * Makefile.am: Added generic-sharing.c.
679
680 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
681
682         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
683         there is a pending loader exception, raise it.
684
685         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
686         same.
687
688         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
689         same.
690
691         Fixes #363450.
692
693 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
694
695         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
696
697         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
698         
699         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
700         ref-only requests for compatibility with MS.
701
702 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
703
704         * reflection.c (mono_custom_attrs_from_method): Don't silently
705         return an empty list for generic method instances.
706         (mono_custom_attrs_from_param): Likewise.
707
708 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
709             Raja R Harinath  <harinath@hurrynot.org>
710
711         Fix #354757
712         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
713         * class.c (mono_class_inflate_generic_method_full): Initialize it
714         when a fully-open method is instantiated.
715         * metadata.c (inflated_method_equal, inflated_method_hash): Update
716         to new field.
717         * reflection.c (inflate_mono_method): Don't create a temporary context.
718
719 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
720
721         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
722         Compute correct value, to prepare for imethod->reflection_info going away.
723
724 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
725
726         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
727
728 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
729
730         * verify.c: Implement skip visibility flag.
731
732 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
733
734         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
735         which contains an extra field to tell the kind of exception that should be thrown.
736
737         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
738
739 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
740
741         * loader.c (mono_method_get_param_names): Initialize 'klass' after
742         'method' is updated.
743
744 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
745
746         * class.c (mono_class_layout_fields): Set class->min_align for classes using
747         explicit layout as well. Fixes #360375.
748
749 2008-02-11  Geoff Norton  <gnorton@novell.com>
750
751         * loader.c: Guard and dereference against inflated generic methods
752
753 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
754
755         * class.c: Include Retargetable spec in assembly name.
756         * assembly.c: Always include PublicKeyToken spec in assembly name
757         (with value "null" if assembly is not signed), and include
758         Retargetable spec.
759         * icall-def.h: Added icall for Assembly.get_fullname.
760         * icall.c: Added icall returning the fullname of an assembly.
761
762 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
763
764         * class.c (mono_class_setup_vtable_general): Add a missing call to
765         mono_class_setup_methods () which is needed in the AOT case.
766
767 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
768
769         * verify.c (mono_type_get_stack_name): Added. Return the name for the
770         stack type of the given MonoType.
771
772         * verify.c (verify_type_compatibility_full): Handle the void type.
773
774         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
775         way stack merging works.
776
777         * verify.c (store_local): Improved verification message.
778
779         * verify.c (do_branch_op): If the merging is invalid, the method
780         is unverifiable and not invalid. Improved error message.
781
782         * verify.c (merge_stacks): Properly merge a boxed valuetype and
783         a reference type diferent than System.Object. Improved error
784         message.
785
786 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
787
788         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
789
790         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
791         type of an enum even if the argument is byref.
792
793         * verify.c: Replace all explicit uses of enumtype and enum_basetype
794         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
795
796         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
797
798         *verify.c (verify_type_compatibility_full): Make enum types
799         compatible with their base types.
800
801         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
802         types are compatible for the special case of a boxed valuetype and
803         System.Object.
804
805         * verify.c (verify_stack_type_compatibility): The function
806         is_compatible_boxed_valuetype was extracted from here.
807
808         * verify.c (push_arg): Only set ctx->has_this_store if the method
809         is not static.
810
811         * verify.c (do_ldelem): Fixed a typo in an error message and added
812         strict check for mixing int32 and native int as the array type
813         and ldelem type.
814
815         * verify.c (merge_stacks): Consider boxed valuetypes in the
816         compatibility checks.
817
818 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
819         * profiler.h: (MonoGCEvent): Added start-stop the world events.
820
821 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
822         *class.c: use_new_interface_vtable_code: renamed the env var to have
823         a "MONO_" prefix, and fix the logic to enable it by default.
824
825 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
826         *class.c:
827         mono_class_setup_vtable_general: rewrote the way in which interface
828         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
829         makes the code more maintainable.
830         For now the old code is still there, and can be activated setting
831         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
832
833 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
834
835         * verify.c: guarded some debug functions around and #ifdef.
836
837         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
838
839 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
840
841         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
842         changes for now since they seem to break too many things.
843
844 2008-02-05  Mark Probst  <mark.probst@gmail.com>
845
846         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
847         mono_marshal_find_nonzero_bit_offset): Added macro and function
848         for finding the byte- and bit-offset of a bitfield within a
849         struct.
850
851 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
852
853         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
854         (mono_marshal_get_struct_to_ptr): Ditto.
855
856         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
857         cctor_signature.
858
859 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
860
861         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
862         between methods for non-corlib types.
863
864 2008-02-02  Geoff Norton  <gnorton@novell.com>
865
866         * loader.c (mono_method_get_param_names): Populate the parameter name for 
867         generic parameters as well. (Fixes #342536)
868
869 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
870
871         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
872
873         * verify.c (do_invoke_method): Fix for calling with byref structs.
874
875         * verify.c (do_cast): push a boxed value type based on the type token and not
876         the type of stack.
877
878 2008-01-31  William Holmes  <billholmes54@gmail.com>
879
880         * process.c (process_module_string_read): Check the size returned form 
881           VerQueryValue to avoid out of memory exception. 
882
883 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
884
885         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
886         Handle properly modules which are not in the moduleref table. Fixes
887         #356938.
888
889 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
890
891         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
892         the dynamic case which is now in managed code.
893         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
894
895         * marshal.c (mono_string_to_bstr): Fix a warning.
896         (init_com_provider_ms): Ditto.
897
898         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
899
900         * exception.c (mono_get_exception_out_of_memory): New helper function.
901
902 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
903
904         * marshal.c: Add support for BSTR marshalling
905         using other COM systems.
906
907         Code is contributed under MIT/X11 license.
908
909 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
910
911         * object.c (mono_runtime_invoke_array): reverted previous
912         commit as it breaks the build.
913
914 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
915
916         * object.c (mono_runtime_invoke_array): Verify arguments for
917         invalid types. Fixes #348522.
918
919 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
920
921         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
922         non-final virtual calls using call. 
923
924         * verify.c (do_invoke): fixed some TODOs.
925
926         * verify.c (push_arg): set has_this_store for "ldarga 0".
927
928 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
929
930         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
931         which belong to an inflated class. Fixes #356531.
932
933 2008-01-26  Robert Jordan  <robertj@gmx.net>
934
935         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
936         which resort to FindFirstFile when a certain error condition
937         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
938         Code is contributed under MIT/X11 license.
939
940 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
941
942         * marshal.c (emit_marshal_string): Fix out string marshalling
943         to use specified encoding. Fixes #323900.
944
945         Code is contributed under MIT/X11 license.
946
947 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
948
949         * class.c (mono_class_inflate_generic_method_full): Don't modify
950         iresult->context after cache check.
951
952 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
953
954         * class.c (mono_class_inflate_generic_method_full): Change the
955         struct assignments to memcpy for better visibility and add some comments.
956
957 2008-01-23  Dick Porter  <dick@ximian.com>
958
959         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
960         procedure, and make it work on windows.
961
962 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
963
964         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
965         a MonoReflectionTypeBuilder since it is always of that type.
966
967         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
968
969         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
970
971         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
972         
973         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
974
975         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
976
977         * reflection.c (mono_reflection_create_runtime_class): Remove already created
978         instantiations from the type cache.
979
980 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
981
982         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
983
984         * verify.c (do_unbox_value): push a controled mutability managed pointer.
985
986 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
987
988         * verify.c (do_ldstr): added, verifies if the #US token is valid.
989
990         * verify.c (mono_method_verify): removed old TODO
991
992 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
993
994         * verify.c (do_newobj): add visibility check.
995
996 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
997
998         * verify.c (do_load_function_ptr): add visibility check.
999
1000 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
1001         *class.c:
1002         mono_generic_class_get_class: hook profiler events.
1003         mono_field_get_offset: added to support heap-shot in the new profiler.
1004         *class.h: exported mono_field_get_offset.
1005         * reflection.c:
1006         mono_reflection_setup_internal_class: hook profiler events.
1007
1008 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
1009
1010         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
1011         argument here too and use it to avoid checking for pending exceptions if 
1012         possible.
1013
1014 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
1015
1016         * assembly.c (build_assembly_name): add arg for passing the assembly
1017         flags. Do not consider a PublicKey with value "null" valid.
1018         (mono_assembly_name_parse_full): added boolean argument that will be
1019         set if the assembly name contains a PublicKeyToken spec. Added support
1020         for the Retargetable spec for which only Yes or No are allowed as valid
1021         value. Consider assembly name invalid if Retargetable spec is set, but
1022         either version, culture or public key (token) are not specified.
1023         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
1024         with implementation in assembly.c.
1025         * icall.c (fill_reflection_assembly_name): also copy assembly flags
1026         from MonoAssemblyName.
1027         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
1028         introduced argument for mono_assembly_name_parse_full to know if the
1029         assembly name has a PublicKeyToken spec, and if it has instruct
1030         fill_reflection_assembly_name to use default value for keyToken (if
1031         PublicKeyToken is null).
1032
1033 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
1034
1035         * verify.c (mono_method_verify): fixed ovf ops with
1036         float values. They are unverifiable now.
1037
1038 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
1039
1040         * class.c (set_failure_from_loader_error): add BadImageException to the
1041         list of exceptions that can cause a type to fail to load.
1042
1043         * class.c (mono_class_get_exception_for_failure): same.
1044
1045 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
1046
1047         * verify.c (in_any_exception_block): added, check if offset
1048         is part of any exception handling clause.
1049
1050         * verify.c (get_stack_type): added VAR and MVAR types.
1051
1052         * verify.c (do_stobj): better error messages.
1053
1054         * verify.c (do_cpobj): added, check cpobj.
1055
1056         * verify.c (do_initobj): added, check initobj.
1057
1058         * verify.c (do_sizeof): added, check sizeof.
1059
1060         * verify.c (do_localloc): added, check localloc.
1061
1062         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
1063
1064 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
1065
1066         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
1067         save_lmf/restore_lmf opcodes.
1068
1069         * threads.c (mono_threads_install_notify_pending_exc): New function to
1070         install a callback notifying the JIT there is a pending exception on a thread.
1071         (mono_thread_request_interruption): Call the new callback.
1072         (mono_thread_get_and_clear_pending_exception): New function to return the
1073         exception pending on a thread.
1074
1075         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
1076         to turn off checking for pending exceptions.
1077         (mono_marshal_get_native_wrapper): Ditto.
1078
1079 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
1080
1081         * threads-types.h: Get rid of the unnecessary extern declarations.
1082
1083 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
1084
1085         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
1086         return field from parent class if not private.
1087         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
1088         returns fields from parent class if they are not private.
1089         (method_nonpublic): added function to determine if a given method
1090         should be considered non-public. Returns false for private methods
1091         on parent class, and internal methods from parent on the 1.0 profile.
1092         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
1093         use method_nonpublic function to determine whether method should be
1094         returned.
1095         (property_accessor_public): use newly introduced method_nonpublic
1096         function to determine whether accessor is non-public. 
1097         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
1098         event from parent class if not private. Only return static event if
1099         Static flag is set, and only return static event from parent class if
1100         FlattenHierarchy flag is set.
1101         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
1102         include non-private events from parent class.
1103
1104 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
1105
1106         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
1107         warning.
1108
1109 2008-01-16  Wade Berrier <wberrier@novell.com>
1110
1111         * security.c: Add assembly.h header to appease some warnings
1112
1113 2008-01-16  Dick Porter  <dick@ximian.com>
1114
1115         * process.c (process_module_string_read): Remove trailing null
1116         when saving string.
1117
1118 2008-01-16  Mark Probst  <mark.probst@gmail.com>
1119
1120         * class-internals.h: A new data structure describing the layout of
1121         a runtime generic context (MonoRuntimeGenericContextTemplate).
1122
1123         * metadata-internals.h: Added a hash table to MonoDomain that maps
1124         from open generic classes to their runtime generic context
1125         templates.
1126
1127         * object.c: Building of the runtime generic context, including
1128         proper handling of generic type arguments of superclasses.
1129         Building of the runtime generic context according to the template.
1130
1131 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
1132
1133         * class.c (mono_class_setup_fields): Set field.count for generic instances.
1134         Fixes #350856.
1135
1136         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
1137         mono_portability_find_file (). Fixes #325466.
1138         (mono_image_get_public_key): Fix a warning.
1139
1140 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
1141
1142         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
1143         Fixes #353550.
1144         (mono_class_from_name_case): Ditto.
1145
1146 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
1147
1148         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
1149           common storage for the tables used in the System/NumberFormatter class.
1150
1151 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
1152
1153         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
1154
1155 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
1156
1157         * verify.c (get_boxable_mono_type): check if the token is valid.
1158
1159         * verify.c (set_stack_value): changed to add an error if an
1160         invalid type is set on stack. Changed all callers due to signature change.
1161
1162         * verify.c (do_stobj): implement stobj validation.
1163
1164 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
1165
1166         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
1167         set container->is_method, it was set earlier.
1168
1169         * metadata.c (type_in_image): Handle MVARs which belong to not finished
1170         generic methods.
1171
1172         * reflection.c (mono_reflection_initialize_generic_parameter): Set
1173         is_method of the generic container to TRUE for methods.
1174
1175 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
1176
1177         * metadata.c (type_in_image): Handle type parameters properly.
1178
1179         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
1180         memory ownership of this structure.
1181
1182 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
1183
1184         * verify.c (get_boxable_mono_type): make typedref types been just
1185         unverifiable. check for void type.
1186
1187         * verify.c (do_unbox_any): added, verify opcode unbox.any.
1188
1189         * verify.c (do_load_function_ptr): accept method spec tokens.
1190
1191 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
1192
1193         * marshal.c (mono_class_native_size): Always set *align even if this is called
1194         recursively.
1195
1196 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
1197
1198         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
1199         out-of-date.
1200
1201 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
1202
1203         * verify.c: removed some old unused tables. A huge bunch of small fixes
1204         to things found while testing the verifier with mono basic.
1205
1206         * verify.c (dump_stack_value): dump null literal flag to.
1207
1208         * verify.c (verify_type_compatibility_full): fix comparison
1209         for types that have a generic super type.
1210
1211         * verify.c (verify_stack_type_compatibility): fix compatibility
1212         between null literals and reference types. fix compatibility between
1213         boxed valuetypes and object. fix corner case test for enums.
1214
1215         * verify.c (do_cmp_op): proper verification of cgt.un in case
1216         of reference types.
1217
1218         * verify.c (do_invoke_method): fix error message.
1219
1220         * verify.c (do_store_indirect
1221
1222         * verify.c (check_is_valid_type_for_field_ops): proper verification
1223         of managed pointers to valuetypes and boxed valuetypes. proper verification
1224         of null literals.
1225
1226         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
1227         allow token to be a reference type.
1228
1229         * verify.c (do_cast): proper handling of boxes valuetypes.
1230
1231         * verify.c (do_stelem): proper handling of storing a boxed valuetype
1232         in object[].
1233
1234         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
1235         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
1236         fixed the decoding of unbox_any
1237
1238 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
1239
1240         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
1241
1242 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
1243
1244         * verify.c (do_newobj): do delegate verification.
1245
1246         * verify.c (verify_delegate_compatibility): perform delegate
1247         verification.
1248
1249         * verify.c (verify_ldftn_delegate): perform tests related to
1250         ldftn delegates.
1251
1252         * verify.c (mono_delegate_signature_equal): perform the
1253         slightly diferent signature comparison required by delegates.
1254
1255         * metadata.c (mono_metadata_type_equal_full): added and exported
1256         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
1257         allows signature only comparison.
1258
1259         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
1260         as MONO_INTERNAL.
1261
1262 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
1263
1264         * verify.c: added a bunch of stack_slot_* functions to
1265         make access to stack slot type easier. This is required to
1266         allow optional flags, like null literal, boxed value and
1267         this pointer.
1268         All access paths to IlStackDesc::stype have been changed 
1269         to use these new funcions.
1270         Removed a bunch of unused functions and cleared all warnings.
1271         This patch introduces the usage of the this pointer and 
1272         boxed value flags.
1273
1274 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
1275
1276         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
1277
1278 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
1279
1280         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
1281         match managed version.
1282
1283         * appdomain.c: Bump corlib version.
1284         
1285         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
1286         argument.
1287
1288 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
1289
1290         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
1291         Set public key token to zero-length byte array if assembly is not
1292         strongnamed.
1293
1294 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
1295
1296         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
1297         writing a vtype array elem.
1298
1299 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
1300
1301         * assembly.c (build_assembly_name): return FALSE if length of token is
1302         not 16 (if not "null").
1303         (mono_assembly_name_parse_full): return FALSE if value of version,
1304         culture, token or key is 0.
1305         * icall.c (fill_reflection_assembly_name): add boolean arguments to
1306         specify whether public key and public key token must be set to default
1307         value (zero-length byte array) if not available. Set versioncompat to
1308         SameMachine. If public key is available or the default is set, then
1309         set PublicKey flag.
1310         (ves_icall_System_Reflection_Assembly_FillName): if no public key
1311         is available, use empty byte array as default value. On the 2.0
1312         profile, use default value for public key token if not set.
1313         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
1314         profile, use default value for public key if not set. On the 2.0
1315         profile, use default value for public key token if not set.
1316         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
1317         default values for public key and public key token.
1318
1319 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
1320
1321         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
1322         field to keep it in synch with the managed object.
1323
1324         * marshal.c (emit_marshal_object): Add support for byref marshalling of
1325         delegates. Fixes #351520.
1326
1327         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
1328         contains defined memory.
1329         
1330         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
1331
1332         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
1333         
1334         * sgen-gc.c (check_consistency): New helper function to do a consistency check
1335         of the GC data structures.
1336
1337         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
1338
1339         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
1340         
1341         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
1342         barrier.
1343         (mono_array_clone_in_domain): Ditto.
1344         (mono_array_clone_in_domain): Ditto.
1345
1346         * threads.c (start_wrapper): Register the thread start argument as a GC root.
1347         (cache_culture): Use a write barrier.
1348
1349         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
1350         (ves_icall_get_property_info): Ditto.
1351
1352         * object.h (MONO_STRUCT_SETREF): New macro.
1353
1354         * class-internals.h (MonoStats): Add some GC statistics.
1355
1356         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
1357
1358 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
1359
1360         * exception.c (mono_exception_from_name_two_strings):
1361         Break from loop after method is found.
1362
1363 2008-01-04  Dick Porter  <dick@ximian.com>
1364
1365         * process.c (process_module_string_read): Rename variable to
1366         reflect correct usage, after fixing bug 345972.
1367
1368 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
1369
1370         * verify.c (mono_type_create_fnptr_from_mono_method): 
1371         created a MonoType function pointer instance to be used during
1372         verification. The verifier releases this memory at end.
1373
1374         * verify.c (mono_method_is_constructor): extracted repeated
1375         checks for constructor into a single class.
1376
1377         * verify.c (do_push_field): use new extracted method
1378         for constructor check.
1379
1380         * verify.c (do_newobj): same.
1381
1382         * verify.c (do_ldftn): renamed to do_load_function_ptr
1383         and make it verify ldvirtftn too.
1384
1385         * verify.c (mono_method_verify: proper verification
1386         of ldvirtftn. release created MonoMethod instances.
1387
1388 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
1389
1390         * verify.c (token_bounds_check): added.
1391
1392         * verify.c (do_ldftn): added.
1393
1394         * verify.c (mono_method_verify): proper verificartion of ldftn.
1395
1396 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
1397
1398         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
1399         than the table row count. It's the resposibility of the caller to
1400         make the bounds check and raise the correct error.
1401
1402         * metadata.c (mono_metadata_decode_row_col): Same.
1403
1404         * loader.c (mono_get_method_from_token): perform bounds check
1405         on token for methoddef table.
1406
1407 2007-12-29  Miguel de Icaza  <miguel@novell.com>
1408
1409         * icall.c
1410         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
1411         assert into a negative result, the managed code already coped with
1412         that.
1413
1414         Some folks on Windows reported this error. 
1415
1416 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
1417
1418         * appdomain.c: Bump corlib version.
1419         * icall.c:
1420         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
1421         CultureInfo.CreateCulture to create CultureInfo for name.
1422         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
1423         create CultureInfo for name. Fixes bug #347174.
1424
1425 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
1426
1427         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
1428         flags.
1429
1430         * verify.c (is_valid_branch_instruction): allow branching to the
1431         first instruction of the protected block.
1432
1433         * verify.c (is_valid_cmp_branch_instruction): same.
1434
1435         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
1436         avoid double initialization.
1437
1438         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
1439         detect which cases the eval stack should just be copied.
1440
1441         * verify.c (mono_method_verify): check if the eval stack
1442         is empty when entering a protected block.
1443
1444 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
1445
1446         * verify.c: added is_clause_in_range, is_clause_inside_range,
1447         is_clause_nested and verify_clause_relationship. They perform
1448         the verifications stated in P1 12.4.2.7.
1449
1450         * verify.c (mono_method_verify): remove some unused variables,
1451         add the new exception clause checks, add instruction border
1452         checks for protected block start/end, improved some error 
1453         messages and fixed a bug in the way invalid instruction access
1454         is detected.
1455
1456 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
1457
1458         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
1459         from GC 7.0 if available.
1460
1461         * object.c: Remove an unused define.
1462         
1463         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
1464
1465         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
1466
1467         * null-gc.c (mono_gc_make_descr_for_array): Implement.
1468
1469         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
1470
1471         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
1472         to take the same arguments as the other make_descr functions.
1473
1474         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
1475
1476         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
1477         directly.
1478
1479         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
1480         mini.c.
1481
1482         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
1483         call to boehm-gc.c.
1484
1485         * boehm-gc.c (mono_gc_register_root): Fix a warning.
1486
1487         * null-gc.c (mono_gc_register_root): Fix a warning.
1488
1489         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
1490
1491         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
1492         (mono_gc_base_init): Call GC_init ().
1493
1494         * null-gc.c: Define mono_gc_register_root () as a no-op.
1495
1496         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
1497
1498 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
1499
1500         * verify.c: add prototype for merge_stacks at top
1501
1502         * verify.c (do_switch): added.
1503
1504         * verify.c (merge_stacks): on some cases the stack merging
1505         was not happening properly. Unequal stack sizes at merge
1506         points should be invalid.
1507
1508         * verify.c (mono_method_verify): added more debug info on stack state.
1509         verify switch properly.
1510
1511 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
1512
1513         * method-builder.h: New file, moved the mono_mb_ declarations here from 
1514         marshal.h.
1515
1516         * boehm-gc.c marshal.c: Include method-builder.h.
1517
1518         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
1519
1520         * marshal.c: Remove some code which is now in method-builder.c.
1521
1522 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
1523
1524         * method-builder.c: New file, extraction of the method builder functionality 
1525         from marshal.c.
1526
1527         * marshal.c: Move the mb functions into method-builder.c.
1528
1529         * marshal.h marshal.c: Export some mono_mb_... functions.
1530
1531         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
1532
1533         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
1534         the caller.
1535
1536         * class.c (mono_class_get_full): Check the token type in the dynamic case.
1537
1538         * loader.c (mono_field_from_token): Ditto.      
1539
1540         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
1541         type as well.
1542         
1543         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
1544         Fixes #342565.
1545
1546         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
1547         a helper function for setting it.
1548
1549         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
1550
1551         
1552         * assembly.c: Significally simplify code now that referenced assemblies are 
1553         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
1554
1555         * threads.h: Don't include  the internal threads-types.h header file. Fixes
1556         #349952.
1557
1558 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
1559
1560         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
1561         instructions that were target of branches or are at protected block boundaries.
1562
1563         * verify.c (in_same_block): handle filter clauses.
1564
1565         * verify.c (is_valid_branch_instruction): added. checks the target of
1566         instructions br or brtrue/false.
1567
1568         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
1569         binary branch instructions such as beq and bge.
1570
1571         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
1572         and made it pin the instruction as been part of the exception block.
1573
1574         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
1575         of in_same_block.
1576
1577         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
1578         of in_same_block.
1579
1580         * verify.c (do_ret): ret from a protected block is unverifiable and
1581         not invalid.
1582
1583         * verify.c (do_static_branch): verify br and br.s instructions.
1584
1585         * verify.c (merge_stacks): add extra param to support detection
1586         of branches in the middle of instructions.
1587         
1588         * verify.c (mono_method_verify): verify branches and exception blocks
1589         that target the middle of instructions. Proper verification of br and br.s.
1590
1591 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
1592
1593         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
1594         skip_visibility field.
1595         (reflection_methodbuilder_from_dynamic_method): Ditto.
1596
1597         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
1598         registrations. Fixes #348193.
1599
1600         * threads.h: Move the internal mono_thread_get_pending_exception () to
1601         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
1602
1603 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
1604
1605         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
1606         icall registration. Fixes #348193.
1607
1608         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
1609         for corlib classes into object. Fixes #349621.
1610
1611 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
1612
1613         * icall.c (property_accessor_nonpublic): new function to determine
1614         whether an accessor allows a property to be considered non-public.
1615         Returns false for private accessor(s) from parent class, and internal
1616         accessor(s) from parent on 2.0 profile (and higher).
1617         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
1618         to determine whether property should be included if NonPublic flag
1619         is set. Fixes bug #349078.
1620
1621 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
1622
1623         * verify.c (init_stack_with_value): added.
1624
1625         * verify.c (mono_method_verify): extracted common
1626         code for exception initialization into init_stack_with_value.
1627
1628         * verify.c (mono_method_verify): initialize the exception
1629         for handler clauses as well.
1630
1631         * verify.c (mono_method_verify): fix the exception clause
1632         ordering rules, it should use handler end offset and not
1633         start offset.
1634
1635 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
1636
1637         * rawbuffer.c: remove useless warning.
1638
1639 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
1640
1641         * threads.h, threads-types.h: move functions to the correct header
1642         (fixes bug#349952).
1643
1644 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1645
1646         * verify.c (mono_method_verify): proper verification
1647         of exception handling clauses ranges and fallthru in
1648         and out of protected blocks.
1649
1650 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1651
1652         * verify.c (mono_method_verify): fixed compilation issue.
1653
1654 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
1655
1656         * verify.c (mono_method_verify): a printf slipped in, changed
1657         to use verifier debug macro.
1658
1659 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
1660
1661         * verify.c (is_correct_leave): check for filter clauses.
1662
1663         * verify.c (do_filter): added.
1664
1665         * verify.c (mono_method_verify): property verification of leave.
1666
1667
1668 2007-12-18  Mark Probst  <mark.probst@gmail.com>
1669
1670         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
1671         Win32 build, until we figure out how to do the proper thing on
1672         Win32.
1673
1674 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
1675
1676         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
1677         by the previous patch.
1678         
1679         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
1680         the assembly resolve handler for refonly assemblies.
1681
1682 2007-12-17  Mark Probst  <mark.probst@gmail.com>
1683
1684         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
1685         Make sure only one thread is allowed to commence shutdown, and
1686         don't allow new threads to be started once shutdown is in
1687         progress.
1688
1689 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
1690
1691         * verify.c (is_correct_endfilter): added.
1692
1693         * verify.c (is_unverifiable_endfilter): added.
1694
1695         * verify.c (do_endfilter): added.
1696
1697         * verify.c (mono_method_verify): property verification of endfilter
1698         and fixed a corner case or endfinally.
1699
1700 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
1701
1702         * verify.h: new flags to support fail fast of unverifiable code and
1703         do non-strict verification. Non-strict verification is required to
1704         have MS runtime compatibility. There are a huge amount of unverifiable
1705         code that it accepts as verifiable. The strict mode verifies the code
1706         as the specs says.
1707         Non-strict mode will be required in cases where code needs to be
1708         accepted as verifiable but fails under strict mode.
1709
1710         * pedump.c: added support to fail fast and non-strict verification.
1711
1712         * verify.c: added support for both fail fast and non-strict verification.
1713
1714 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
1715
1716         * verify.c (is_correct_endfinally): added.
1717
1718         * verify.c (mono_method_verify): property verification of endfinally.
1719
1720 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
1721
1722         * verify.c (in_any_block): check for filter clauses.
1723
1724         * verify.c (is_correct_rethrow): added.
1725
1726         * verify.c (mono_method_verify): property verification of rethrow.
1727
1728         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
1729
1730 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
1731
1732         * verify.c (do_throw): added.
1733
1734         * verify.c (mono_method_verify): property verification of throw
1735
1736 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
1737
1738         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
1739         assemblies. Fixes #346425.
1740
1741 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
1742
1743         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
1744         FieldBuilders.
1745
1746         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
1747
1748         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
1749         prevent asserts when this is called with a token which might not be valid.
1750
1751         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
1752         lookup_dynamic_token_class with valid_token == FALSE.
1753
1754         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
1755
1756         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
1757
1758         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1759         
1760 2007-12-10  Mark Probst  <mark.probst@gmail.com>
1761
1762         * gc.c: Don't delay threadpool thread finalization unless Mono is
1763         shutting down.
1764
1765 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1766
1767         * threads.c: turn an assert into a non-fatal warning.
1768
1769 2007-12-09  Robert Jordan  <robertj@gmx.net>
1770
1771         * icall.c (GetVirtualMethod): Add missing argument validation.
1772
1773 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1774
1775         * verify.c (do_cast): added.
1776
1777         * verify.c (mono_method_verify): property verification of castclass and isinst.
1778
1779
1780 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1781
1782         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
1783
1784         * verify.c (do_stelem): added.
1785
1786         * verify.c (mono_method_verify): property verification of stelem.X.
1787
1788 2007-12-07  Mark Probst  <mark.probst@gmail.com>
1789
1790         * class.c, class-internals.h: Introduce an environment variable
1791         (MONO_GENERIC_SHARING) through which the extent of generic code
1792         sharing can be controlled (share all classes, share only corlib
1793         classes, or share nothing).
1794
1795         * object.c: Only create runtime generic context for classes for
1796         which sharing is enabled.
1797
1798 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1799
1800         * verify.c (do_ldelem): refactor it to work with ldelem.any.
1801
1802         * verify.c (mono_method_verify): property verification of ldelem.any.
1803
1804 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
1805
1806         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
1807         added ldelem.X opcodes.
1808
1809         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
1810
1811         * verify.c: proper verification of ldelem.X 
1812
1813 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
1814
1815         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
1816
1817 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
1818
1819         * verify.c (mono_method_verify): null literal requires special handling,
1820         the value pushed on stack need to be flagged as so.
1821
1822         * verify.c (do_ldelema): Verify ldelema properly.
1823
1824 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
1825
1826         * verify.c: Verify ldlen properly.
1827
1828 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
1829
1830         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
1831         to the target object's type. Fixes #346160.
1832
1833 2007-12-05  Dick Porter  <dick@ximian.com>
1834
1835         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
1836         Solaris needs the same workaround as BSD-derived systems.  Fixes
1837         bug 323524, patch by Burkhard Linke
1838         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
1839
1840 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
1841
1842         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
1843         handle to use when error dialog is shown; otherwise, update mask
1844         to show no error dialog when an error occurs.
1845
1846 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
1847
1848         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
1849
1850         * class.c (mono_class_get_field_default_value): New helper function to initialize
1851         field->def_type and field->data.
1852
1853 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
1854
1855         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
1856         the general one.
1857
1858         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
1859
1860         * marshal.c: Avoid depending on delegate->method_info being set.
1861
1862         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
1863         
1864         * object.c (mono_delegate_ctor): Set delegate->method.
1865
1866         * object-internals.h (struct _MonoDelegate): Add 'method' field.
1867
1868         * appdomain.c: Bump corlib version.
1869
1870 2007-11-27  Raja R Harinath  <harinath@gmail.com>
1871
1872         * metadata.c (mono_generic_inst_equal_full): Short-circuit
1873         equality check if we're comparing canonicalized MonoGenericInsts.
1874
1875 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
1876
1877         * class.c (generic_array_methods): Call mono_class_setup_methods () before
1878         accessing class->methods.
1879
1880 2007-11-22  Dick Porter  <dick@ximian.com>
1881
1882         * threads.c: Ensure that the synch_cs is set before trying to use
1883         it.
1884
1885 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
1886
1887         * profiler.c: r89126 broke the statistial profiler, unbreak.
1888
1889 2007-11-22  Martin Baulig  <martin@ximian.com>
1890
1891         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
1892
1893         * mono-debug.c
1894         (mono_debug_debugger_version): Bump to 3.
1895         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
1896         -> mono_debugger_class_initialized().
1897
1898         * mono-debug-debugger.c
1899         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
1900
1901         * class.c
1902         (mono_debugger_start_class_init_func): Removed.
1903         (mono_debugger_class_loaded_methods_func): Added.
1904         (mono_class_setup_methods): Call it here.
1905
1906 2007-11-22  Martin Baulig  <martin@ximian.com>
1907
1908         * mono-debug.c
1909         (mono_debug_add_delegate_trampoline): New public method.
1910         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
1911
1912         * mono-debug.h
1913         (MonoSymbolTable): Added `global_data_table'.
1914         (MonoDebuggerTypeKind): Removed.
1915
1916 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
1917
1918         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
1919         these methods.
1920
1921         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1922         
1923 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1924
1925         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
1926
1927 2007-11-20  Martin Baulig  <martin@ximian.com>
1928
1929         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
1930
1931         * mono-debug-debugger.c
1932         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
1933         (mono_debugger_remove_breakpoint): Likewise.
1934         (mono_debugger_check_breakpoints): Likewise.
1935         (mono_debugger_register_class_init_callback): New public method.
1936         (mono_debugger_remove_class_init_callback): Likewise.
1937         (mono_debugger_add_type): Likewise.
1938
1939         * mono-debug-debugger.h
1940         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
1941
1942 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
1943
1944         * class.c: more interface implementations needed for the
1945         array enumerator (fixes bug #341112).
1946
1947 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
1948
1949         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
1950         fix ParamName of ArgumentNullExceptions.
1951
1952 2007-11-17  Miguel de Icaza  <miguel@novell.com>
1953
1954         * reflection.c (mono_reflection_encode_sighelper): Generate the
1955         modopts and modreqs.   I have a useless test that crashes monodis,
1956         but that shows the code working.
1957
1958 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
1959
1960         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
1961         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
1962
1963 2007-11-15  Dick Porter  <dick@ximian.com>
1964
1965         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
1966         When joining a thread, it's the thread that's calling Join that
1967         gets WaitSleepJoin state not the target.  Fixes the standalone
1968         test case in bug 334740, and hopefully the whole bug too.
1969
1970 2007-11-15  Dick Porter  <dick@ximian.com>
1971
1972         * process.c: Read file version info from the files pointed at by
1973         process modules, not the current process.  Fixes bug 315969.
1974
1975         Use windows typedef names in some places to fix warnings on the
1976         windows build.
1977
1978 2007-11-15  Mark Probst  <mark.probst@gmail.com>
1979
1980         * image.c, metadata-internals.h: Added a generic_class_cache hash
1981         to MonoImage for looking up generic classes when sharing generics.
1982
1983 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1984
1985         * sgen-gc.c: warning cleanups.
1986
1987 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
1988
1989         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
1990         inherited properties.
1991
1992 2007-11-14  Mark Probst  <mark.probst@gmail.com>
1993
1994         * object.c, class-internals.h: Added more information to the
1995         runtime generic context.
1996
1997 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
1998
1999         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
2000         instead of just the target method. Generalize the abstract method handling to
2001         handle any non-static method.
2002
2003         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
2004         mono_marshal_get_delegate_invoke () signature change.
2005
2006 2007-11-13  Mark Probst  <mark.probst@gmail.com>
2007
2008         * class.c, class-internals.h: Made
2009         mono_type_get_basic_type_from_generic () public.  Fixed member
2010         access check for shared generics.
2011
2012         * loader.c: Don't insert field into field cache if it's part of a
2013         non-inflated generic class.
2014
2015         * domain.c, domain-internals.h: The generic sharing context is now
2016         part of the jit info data structure.  Added two accessor
2017         functions.
2018
2019 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
2020
2021         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
2022         the array Get/Set/Address methods, since the JIT inlines them.
2023
2024         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
2025
2026         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
2027         (mono_image_init): Initialize runtime_invoke_direct_cache.      
2028
2029         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
2030         mono_marshal_get_delegate_invoke signature change.
2031
2032         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
2033         an additional argument. Add support for invoking abstract methods.
2034
2035         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
2036
2037         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
2038
2039 2007-11-09  Mark Probst  <mark.probst@gmail.com>
2040
2041         * class.c: Do field layout for open generic classes as well.
2042
2043 2007-11-09  Mark Probst  <mark.probst@gmail.com>
2044
2045         * gc.c, gc-internal.h: Don't finalize threadpool threads with
2046         other objects, because the threadpool is still around.  Put them
2047         in a list instead and after finalizing all other objects in the
2048         root domain shut down the thread pool and then finalize the
2049         threads.  Fixes bug #337383.
2050
2051         * threads.c, thread-types.h: New mono_thread_create_internal()
2052         function for marking a thread with the threadpool flag before it
2053         started.  Set synch_cs to NULL after freeing it.
2054
2055         * threadpool.c: Mark threadpool threads before they start.
2056
2057 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2058
2059         * reflection.h, reflection.c: don't export random functions
2060         and lazy load dbnull and missing objects.
2061
2062 2007-11-07  Jonathan Chambers <joncham@gmail.com>
2063
2064         * class.c: Initialize COM types if COM interfaces
2065         are present (not just COM classes).
2066         
2067         Code is contributed under MIT/X11 license.
2068
2069 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
2070         * reflection.c:
2071         create_dynamic_mono_image: hook module profiler events (dynamic case).
2072         mono_image_basic_init: hook assembly profiler events (dynamic case).
2073
2074 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
2075         * profiler.c:
2076         simple_appdomain_unload: completely terminate the profiler
2077         instead of only processing the statistical samples.
2078         simple_shutdown: make sure this is really called exactly once,
2079         even in multithreaded applications, and always listen to
2080         appdomain events.
2081         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
2082         here, the "[un]load" functions will do it.
2083         Fixes bugs #333791 and #325261.
2084
2085 2007-11-07  Geoff Norton  <gnorton@novell.com>
2086
2087         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
2088         rather than depend on __APPLE__.
2089
2090 2007-11-07  Mark Probst  <mark.probst@gmail.com>
2091
2092         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
2093
2094 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
2095
2096         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
2097         UTF16 MonoString. Fix the crash from bug #335488
2098
2099 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
2100
2101         * marshal.c: Correct (for non-Win32 OS) length != size in 
2102         mono_string_from_bstr. Fix #339530.
2103
2104 2007-11-06  Geoff Norton  <gnorton@novell.com>
2105
2106         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
2107         to succeed
2108
2109 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
2110
2111         * process.c: Added run-time GetProcessId API detection for Windows.
2112
2113 2007-11-04  Miguel de Icaza  <miguel@novell.com>
2114
2115         * reflection.c  (mono_param_get_objects): If a parameter has the
2116         attribute [System.Runtime.InteropServices.Optional] we should
2117         set the DefaultValue of the ParameterInfo to be
2118         System.Reflection.Missing instead of DBNull.
2119
2120         See bug #339013.
2121
2122         (mono_get_reflection_missing_object): New method,
2123         returns the System.Reflection.Missing.Value singleton instance.
2124
2125 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2126
2127         * culture-info-table.h : regenerated.
2128
2129 2007-11-02  Jonathan Chambers <joncham@gmail.com>
2130
2131         * icall.c: Use GetEnvironmentStrings on windows
2132         so we are using the same environment block as 
2133         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
2134         #333740.
2135         
2136         Code is contributed under MIT/X11 license.
2137
2138 2007-10-31  Martin Baulig  <martin@ximian.com>
2139
2140         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
2141
2142         * mono-debug-debugger.h
2143         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
2144
2145 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
2146
2147         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
2148         classes.
2149
2150 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
2151
2152         * culture-info-table.h : regenerated.
2153
2154 2007-10-30  Robert Jordan  <robertj@gmx.net>
2155
2156         * icall-def.h, icall.c:
2157         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
2158
2159         Code is contributed under MIT/X11 license.
2160
2161 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
2162
2163         * class.c (mono_class_setup_vtable): Find the inflated methods in the
2164         inflated class instead of inflating them again.
2165         
2166         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
2167         dynamic case.
2168
2169         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
2170         Call setup_supertypes () after klass->parent is set.
2171         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
2172
2173         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
2174         for inflated instances of not yet created dynamic generic classes.
2175         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
2176         times from inflated_method.
2177         (methodbuilder_to_mono_method): Ditto.
2178
2179 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2180
2181         * gc.c: code cleanup and removed old untested option of not creating the
2182         finalizer thread.
2183
2184 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
2185
2186         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
2187         creating a jump trampoline for dynamic methods.
2188
2189 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
2190
2191         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
2192         generic TypeBuilders when called from another method of the same type (bug #335131).
2193
2194
2195 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
2196
2197         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
2198         doesn't seem to work perfectly.
2199         
2200         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
2201         called multiple times.
2202         (methodbuilder_to_mono_method): Ditto.
2203         (resolve_object): Inflate FieldBuilder's.
2204
2205 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2206
2207         * string-icalls.c, string-icalls.h, appdomain.c: patch from
2208         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
2209         RemoveEmptyEntries in the string.Split implementation (bug #322375).
2210
2211 2007-10-26  Dick Porter  <dick@ximian.com>
2212
2213         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
2214         Thread initialisation changes
2215
2216 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
2217
2218         * verify.c: fix compatibility check between arrays and System.Array
2219
2220 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
2221
2222         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
2223         too. Fixes #336999.
2224
2225 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
2226
2227         * object.c (mono_value_box): Use typed allocation here.
2228
2229 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
2230
2231         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
2232         trampoline instead of compiling the method right away.
2233
2234         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
2235
2236 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
2237
2238         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
2239         related fields for dynamic classes. Fixes #334493.
2240
2241 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
2242
2243         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
2244         
2245         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
2246
2247         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
2248         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
2249
2250         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
2251
2252         * reflection.c (create_generic_typespec): Initialize klass->generic_container
2253         if needed.
2254         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
2255
2256 2007-10-18  Jonathan Chambers <joncham@gmail.com>
2257
2258         * marshal.c: Use correct key when removing item
2259         from ccw_hash.
2260         
2261         Code is contributed under MIT/X11 license.
2262
2263 2007-10-17  William Holmes  <billholmes54@gmail.com>
2264
2265         *marshal.c: Adding a case to marshal booleans to U1
2266
2267         Code is contributed under MIT/X11 license.
2268
2269 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
2270
2271         * class.c (mono_class_from_name): Search the modules compromising dynamic
2272         assemblies. Fixes #331601.
2273
2274 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
2275
2276         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
2277         exception if the type name contains an assembly component. Fixes #334203.
2278
2279         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
2280         modules inside dynamic assemblies. Fixes #334200.
2281         
2282         * reflection.c: Set image->public_key and image->public_key_length;
2283
2284         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
2285         fields.
2286
2287         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
2288         
2289 2007-10-16  Mark Probst  <mark.probst@gmail.com>
2290
2291         * metadata.c: Implemented correct comparing of generic classes.
2292         An inflated generic class can be equal to a non-inflated one if it
2293         is inflated with generic type variables as type arguments.  Fixes
2294         bug #333798.
2295
2296 2007-10-15  Dick Porter  <dick@ximian.com>
2297
2298         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
2299         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
2300         81646.
2301
2302         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
2303         instead of a monitor lock.  This means that monitor_try_enter and
2304         co can set the thread state safely.
2305         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
2306         thread_interrupt_requested, so interrupt actually works.
2307
2308         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
2309         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
2310         state accessor function
2311
2312 2007-10-15  Martin Baulig  <martin@ximian.com>
2313
2314         * mono-debug.h
2315         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
2316         the debugger with the current runtime.
2317
2318 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
2319
2320         * object.c, object-internals.h: added the ability to set a single
2321         trampoline for all the slots in a vtable.
2322
2323 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2324
2325         * marshal.c: deal with a possible race condition during multicast
2326         delegate invocation.
2327
2328 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2329
2330         * class.c: ensure value type methods don't have the synchronized
2331         flag set.
2332
2333 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
2334
2335         * string-icalls.c, string-icalls.h: reverted unapproved patch that
2336         breaks the build.
2337
2338 2007-10-11  Joel Reed  <joelwreed@comcast.com>
2339
2340         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
2341         to take an options parameter so that empty entries can be removed during
2342         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
2343
2344 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2345
2346         * marshal.c: make sure we don't store the signature from a dynamic
2347         method into the runtime invoke cache (bug #327189).
2348
2349 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2350
2351         * marshal.c: make sure the wrapper methods are properly initialized.
2352
2353 2007-10-11  Mark Probst  <mark.probst@gmail.com>
2354
2355         * metadata.c, metadata-internals.h: Generalized
2356         mono_type_stack_size() to mono_type_stack_size_internal() which
2357         takes an additional argument specifying whether it allows open
2358         types.
2359
2360 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
2361
2362         * verify.c (do_invoke_method): handle typedbyref params
2363         correctly and check for unverifiable return values.
2364
2365         * verify.c (do_newobj): fix a warning.
2366
2367 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
2368
2369         * verify.c: don't tread typedbyref as allways unverifable,
2370         so uses, like (ld/st)loc.0 are valid. verify for the cases
2371         that it matters, like boxing related operations.
2372
2373 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
2374
2375         * verify.c: add verification of the newobj opcode. verification
2376         of delegate instantation still missing due ldftn and virldftn not
2377         pushing the function type on stack
2378
2379 2007-10-08  Mark Probst  <mark.probst@gmail.com>
2380
2381         * class-internals.h: Runtime generic context data structure
2382         definition.
2383
2384         * object.c: Initialization of runtime generic context at runtime
2385         vtable creation time.
2386
2387 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
2388         * class.c (mono_class_create_from_typedef,
2389         mono_class_from_generic_parameter, mono_ptr_class_get,
2390         mono_fnptr_class_get, mono_bounded_array_class_get)
2391         * domain.c (mono_domain_create, mono_domain_free)
2392         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
2393         * image.c (do_mono_image_load, mono_image_close):
2394         Hooked up load-unload profiler events.
2395
2396 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
2397
2398         * domain.c: track statistics about the actual amount of native code
2399         allocated.
2400
2401 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
2402
2403         * class.c: the valuetype enumerators don't have the additional
2404         supertypes interfaces.
2405
2406 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2407
2408         * class.c: need more interfaces setup for the IEnumerator<T>
2409         object created for arrays (tests/ienumerator-interfaces.2.cs).
2410
2411 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
2412
2413         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
2414
2415 2007-10-05  Alp Toker  <alp@atoker.com>
2416
2417         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
2418         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
2419         #315863.
2420
2421 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
2422
2423         * verify.c (verify_type_compatibility_full): verification of
2424         compatibility improved, validates correctly non-strict checks between
2425         native int and I4 types different than (unsigned)int32.
2426
2427         * verify.c (do_store_indirect): added, do all verification of
2428         ldind.X opcodes. 
2429
2430         * verify.c (get_load_indirect_mono_type): renamed to
2431         get_indirect_op_mono_type, as it now returns the MonoType for 
2432         ldind.X and stind.X opcodes.
2433
2434 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
2435
2436         * reflection.c: Fix the encoding of generic type definition for
2437         TypeBuilders.
2438
2439         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
2440         mono_image_typedef_or_ref but allows to specify if typespec lookups should
2441         be made. Typespec check is done prior to typeref cache lookup.
2442
2443         * reflection.c (mono_image_typedef_or_ref): now just delegate to
2444         mono_image_typedef_or_ref_full.
2445
2446         * reflection.c (encode_generic_class): encode the generic class
2447         directly instead of calling encode_type.
2448
2449         * reflection.c (encode_type): encode the generic type definition
2450         MonoClass as a generic instantiation.
2451
2452         * reflection.c (create_typespec): cache typespec tokens in
2453         the assembly->typespec cache. Don't create typespec for a generic
2454         instance MonoClass. Create typespec for the generic type defintion.
2455
2456         * reflection.c (create_generic_typespec): encode the generic
2457         class directly instead of calling encode_type.
2458
2459         * reflection.c (mono_image_create_token): encode the generic
2460         type definition not using a typespec for MonoType instances.
2461
2462
2463 2007-10-04  Raja R Harinath  <rharinath@novell.com>
2464
2465         Fix #328812
2466         * class.c (mono_image_init_name_cache): Don't return nested
2467         'protected internal' classes.
2468         (mono_class_from_name_case): Likewise.
2469
2470 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2471
2472         * icall-def.h, icall.c : get_bundled_machine_config() is now the
2473           common function used by both DefaultConfig in System.dll and
2474           InternalConfigurationHost in System.Configuration.dll.
2475
2476 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
2477
2478         * class.c: automatically add to vectors only a few essential explicit
2479         generic interfaces. The rest of the interfaces that arrays should
2480         provide are currently implicitly added (but still not lazily, see the
2481         design in the discussion of bug#325495 for the details of what is
2482         needed for that). Additionally, implicit interfaces are assigned the
2483         same vtable slot as the explicit interfaces (as they are compatible):
2484         this enables huge memory savings since we don't need to instantiate
2485         as many memthods and as large vtables anymore. Also, Since
2486         GetEnumerator<T> returns an instance of a type that is required to
2487         support a similarly large set of interfaces as arrays, we add
2488         implicit interfaces and interface offset sharing support to those
2489         types, too. This change adds all the required interfaces so that
2490         the anonarray.cs test case in the bug report works (we don't add
2491         all the interfaces to arrays of arrays 3-level deep and more because
2492         of the memory requirements explained in the bug and since they are much
2493         less common: the lazy-loading support will enabled them to work, too).
2494
2495 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
2496
2497         * verify.c (merge_stacks): major clean up, all type compatibility
2498         checks are done by verify_type_compatibility. This fix my earlier lack
2499         of understanding of the CLR type system and merge_stacks no longer looks
2500         scary.
2501
2502         * verify.c: fixed some bad spelling.
2503
2504 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
2505
2506         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
2507         a given stack slock.
2508         
2509         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
2510         verify_type_compatibility_full. This removed a near indentical function and fixed
2511         handling of Int32 and IntPtr across all opcodes.
2512
2513 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
2514
2515         * class.c: only vectors have the additional generic interfaces.
2516
2517 2007-10-01  Jonathan Chambers <joncham@gmail.com>
2518
2519         * mono-config.c: Use g_strcasecmp instead of
2520         strcasecmp like everywhere else to fix
2521         compilation with MSVC.
2522         
2523         Code is contributed under MIT/X11 license.
2524
2525 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
2526
2527         * object.c, object-internals.h: refactored the IMT code to enable
2528         building a single slot at a time and lazily creating the IMT trampolines
2529         and thunks.
2530
2531 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
2532
2533         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
2534
2535         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
2536         Fixes #328501.
2537         
2538 2007-09-29  Raja R Harinath  <harinath@gmail.com>
2539
2540         * loader.c (method_from_methodspec): Rearrange to avoid
2541         un-necessary exposition.  Don't assert out if the method's
2542         declaring type is a generic type definition.
2543
2544 2007-09-28  Martin Baulig  <martin@ximian.com>
2545
2546         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
2547
2548 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
2549
2550         * class-internals.h: optimize field layout of MonoClass to
2551         requires less cachelines at runtime and save a few bytes on 64 bit
2552         systems.
2553
2554 2007-09-28  Jb Evain  <jbevain@novell.com>
2555
2556         * reflection.c: when encoding type names in custom attributes,
2557         if the type is a closed generic type, its generic arguments
2558         have to be serialized as AssemblyQualifiedName, so that when
2559         they are deserialized, it's possible to re-create them properly.
2560         Fixes #329450.
2561
2562
2563 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
2564
2565         * object.c, class-internals.h: added delegate-creation counter.
2566
2567 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
2568
2569         * class.c: cleanup of the code that synthetizes interfaces for
2570         arrays in 2.0: saves quit a bit of corlib mempool memory.
2571         Code to fix bug #325495 ifdeffed out for now until the issues
2572         with memory usage and O(n^2) behaviour are fixed.
2573
2574 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2575
2576         * marshal.c: when possible, do not duplicate the name of the methods
2577         in the method builder and in the generated MonoMethod.
2578
2579 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
2580         * verify.c: added support for type checking ldind_* opcodes.
2581
2582 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
2583
2584         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
2585         which is used to distinguish the fully open instantiation of a TypeBuilder
2586         with the rest. This temporary hack is required to restore the property that
2587         the fully open instantiation is the same type of the generic type definition.
2588
2589         * class-internals.h (mono_generic_class_is_generic_type_definition):
2590         new function as part of the internal API.
2591
2592         * class.c (inflate_generic_type): return NULL when the generic inst is
2593         fully open. The fully open generic type is now the same as the generic type
2594         definition for non TypeBuilder types.
2595
2596         * class.c (mono_generic_class_get_class): removed assert since it is
2597         no longer valid, gklass->cached_class can point to the generic type definition.
2598
2599         * class.c (mono_generic_class_is_generic_type_definition): new.
2600
2601         * metadata.c (mono_generic_class_hash): added is_tb_open field
2602         to the hash calculation.
2603
2604         * metadata.c (free_generic_class): if the generic class is associated
2605         with the generic type definition, its field will come from the mempool and
2606         must not be freed.
2607
2608         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
2609         new, this function identifies the corner case of a TypeBuilder fully open
2610         instantiation.
2611
2612         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
2613         for lookup. Set gclass->cached_class to be the container class in case of
2614         the fully open instantiation of non TypeBuilder types.
2615
2616         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
2617         to compare generic classes.
2618
2619         * reflection.c (method_encode_methodspec): remove assert that
2620         no longer is valid.
2621
2622         * reflection.c (mono_reflection_generic_class_initialize): add
2623         an aditional assert to ensure the proper type is used.
2624
2625 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
2626
2627         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
2628         to enjoy it.
2629
2630 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
2631
2632         * verify.c (push_arg): Fixed support for ldarga
2633         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
2634         MonoType used as first arg in case of instance calls.
2635
2636 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
2637
2638         * verify.c: Support for verifying VAR and MVAR types, 
2639
2640 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
2641
2642         * icall.c (ves_icall_get_property_info): Set the reflected type of the
2643         accessors correctly.
2644
2645 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
2646
2647         * threads.c: support OSX and other systems in
2648         mono_thread_get_stack_bounds (bug #328026).
2649
2650 2007-09-25  Martin Baulig  <martin@ximian.com>
2651
2652         * mono-debug.h
2653         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
2654
2655 2007-09-24  Martin Baulig  <martin@ximian.com>
2656
2657         * mono-debug.h
2658         (MonoDebugClassEntry): Moved the definition of this struct into
2659         mono-debug.c to make it private.
2660
2661         * mono-debug.c
2662         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
2663         type table per symbol file, we don't need to store the symfile id
2664         any longer.
2665
2666 2007-09-24  Martin Baulig  <martin@ximian.com>
2667
2668         Create one type table per symbol file, since a `MonoClass *' gets
2669         invalid when its image is unloaded.
2670
2671         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
2672         (MonoDebugHandle): Added `type_table'.
2673
2674 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
2675
2676         * mempool.c, mempool.h: added mono_mempool_new_size () API
2677         to be able to specify a smaller initial size for the pool.
2678         Adjusted the code to slowly increase pool size before using
2679         the previous default size.
2680         * image.c: use a small initial size for image mempools.
2681
2682 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
2683
2684         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
2685         Fixes ##320990.
2686
2687         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
2688         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
2689
2690 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
2691
2692         * metadata.c (mono_type_create_from_typespec): Remove an invalid
2693         free. Fixes #327438.
2694
2695 2007-09-21  Raja R Harinath  <harinath@gmail.com>
2696
2697         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
2698         generic instantiations, etc.
2699         <MONO_TYPE_ARRAY>: Likewise.
2700
2701 2007-09-21  Martin Baulig  <martin@ximian.com>
2702
2703         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
2704         these structs were never defined.
2705         (MonoDebugHandle): Removed the `_priv' field, it was never used.
2706
2707 2007-09-21  Martin Baulig  <martin@ximian.com>
2708
2709         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
2710
2711 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
2712
2713         * image.c: removed the guid hash tables: we can get the same info
2714         without the additional memory usage hit (partially fixes also bug #327052).
2715
2716 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2717
2718         * profiler.h, profiler-private.h, profiler.c: add a new profiler
2719         event to handle unloading methods. After the event is called, the
2720         corresponding MonoMethod* must be considered invalid.
2721         * loader.c (mono_free_method): call the new mono_profiler_method_free
2722         event.
2723
2724 2007-09-20  Mark Probst  <mark.probst@gmail.com>
2725
2726         * domain-internals.h: New flag in MonoJitInfo which marks shared
2727         generic methods.  New hash table (shared_generics_hash) in
2728         MonoDomain to keep track of shared generic methods.  Prototypes
2729         for functions to register and lookup shared generic methods.
2730
2731         * domain.c: Support for registering and looking up shared generic
2732         methods via a hash table (shared_generics_hash) in MonoDomain.
2733
2734         * class-internals.h: New exception to signal failure of shared
2735         compilation of a generic method.  New counters for generics
2736         sharing in MonoStats.
2737
2738 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
2739
2740         * image.c, metadata-internals.h: don't keep a file descriptor open
2741         for loaded assemblies (bug#325988).
2742
2743 2007-09-19  Raja R Harinath  <rharinath@novell.com>
2744
2745         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
2746         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
2747         use the corresponding datatypes.
2748         (type_in_image): Update to changes.
2749         (CleanForImageUserData): Simplify.
2750         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
2751         Avoid quadratic behaviour in handling the "stolen" list by
2752         separating the filter predicate out, and by prepending the stolen
2753         items rather than appending them.
2754         (steal_ginst_in_image): Likewise.
2755         (mono_metadata_clean_for_image): Update to changes.
2756
2757 2007-09-19  Martin Baulig  <martin@ximian.com>
2758
2759         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
2760
2761 2007-09-19  Martin Baulig  <martin@ximian.com>
2762
2763         * mono-debug.c (mono_debug_cleanup): Don't call
2764         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
2765
2766 2007-09-19  Raja R Harinath  <harinath@gmail.com>
2767
2768         Fix crash on 'make run-test' in mcs/errors
2769         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
2770         Avoid more potential allocations in mono_class_from_mono_type.
2771         (ginst_in_image): Update to changes.
2772         (gclass_in_image): Rearrange slightly.
2773
2774 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
2775
2776         * class.c (mono_class_init): Move the code that sets up class->methods to 
2777         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
2778
2779         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
2780         canonical instance of an inflated generic signature.
2781         (mono_type_create_from_typespec): Remove an invalid free.
2782
2783         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
2784
2785 2007-09-18  Marek Habersack  <mhabersack@novell.com>
2786
2787         * domain-internals.h: added a declaration of the
2788         mono_assembly_load_full_nosearch internal function.
2789
2790         * assembly.c (mono_assembly_load_with_partial_name): use
2791         mono_try_assembly_resolve return value properly.
2792         (mono_assembly_load_full_nosearch): copied the function body from
2793         mono_assembly_load_full, without the code to invoke assembly
2794         search hooks.
2795         (mono_assembly_load_full): calls the above new function and if the
2796         assembly is not resolved, invokes the search hooks.
2797
2798         * appdomain.c (mono_runtime_init): restore the global postload
2799         assembly search handlers.
2800
2801 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
2802
2803         * class.c (mono_class_init): Make sure class->methods and class->properties
2804         are never NULL in the generics case.
2805
2806         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
2807
2808 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
2809
2810         * metadata.c (free_generic_class): Disable some code to fix the build.
2811
2812         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
2813
2814         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
2815         from the image mempool.
2816
2817         * metadata.c (free_generic_class): Free more data from the inflated class.
2818
2819         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
2820
2821         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
2822         mempool.
2823         (mono_type_create_from_typespec): Ditto.
2824
2825         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
2826         MonoImage to the caller.
2827         (mono_init_internal): Save the opened image in a global variable.
2828         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
2829
2830         * reflection.c (resolve_object): Fix a leak.
2831
2832         * metadata.c: Fix the freeing of data in the generics caches.
2833         
2834         * metadata.c (free_generic_inst): Comment this out to fix the build.
2835         (free_generic_class): Ditto.
2836
2837         * metadata.c: Free cached generic methods, instantinations and classes when
2838         they are removed from the caches.
2839         (mono_metadata_free_type): Free the type itself.
2840
2841         * class.c: Free the result of mono_class_inflate_generic_type () in a few
2842         places.
2843
2844 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2845
2846         * boehm-gc.c: restrict managed allocs to __thread supporting
2847         architectures.
2848
2849 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
2850
2851         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
2852         (mono_generic_class_get_class): Fix a leak.
2853
2854         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
2855         mono_metadata_free_type ().
2856         (mono_metadata_inflate_generic_inst): Fix a leak.
2857
2858 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2859
2860         * mono-debug.c (free_header_data): Fix a leak missed earlier.
2861
2862         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
2863         mempool.
2864
2865         * mono-debug.c (mono_debug_close_image): Fix call to 
2866         g_hash_table_remove ().
2867
2868 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
2869
2870         * icall-def.h: redirect all the string ctor to the managed
2871         CreateString () methods.
2872         * string-icalls.c, string-icalls.h: removed dead code for string
2873         ctors and icalls.
2874
2875 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2876
2877         * mono-debug.c: Fix memory leaks.
2878
2879 2007-09-14  Jonathan Chambers <joncham@gmail.com>
2880
2881         * threads-types.h: Implement mono_hazard_pointer_set and 
2882         mono_hazard_pointer_clear macros using do/while(0) to fix
2883         compilation with MSVC.
2884         
2885         Code is contributed under MIT/X11 license.
2886
2887 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
2888
2889         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
2890         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
2891
2892 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2893
2894         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
2895         icalls.
2896
2897 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2898
2899         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
2900         managed-code allocated as well.
2901
2902 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
2903
2904         * class.c (mono_class_is_assignable_from): Add support for generic variance.
2905
2906 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
2907
2908         * boehm-gc.c: fixed the build after the AOT changes.
2909
2910 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
2911
2912         * wrapper-types.h: Add an ALLOC wrapper type.
2913
2914         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
2915         reference managed allocator methods.
2916
2917 2007-09-12  Marek Safar  <marek.safar@gmail.com>
2918
2919         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
2920         of Type array and not MonoType, a fix suggested by Hari.
2921         
2922 2007-09-12  Jonathan Chambers <joncham@gmail.com>
2923
2924         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
2925         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
2926         
2927         Code is contributed under MIT/X11 license.
2928
2929 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2930
2931         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
2932
2933 2007-09-12  Marek Habersack  <mhabersack@novell.com>
2934
2935         * image.c (do_mono_image_open): if assembly file fails to open and
2936         MONO_IOMAP is in effect, try to find the path in a
2937         case-insensitive way.
2938
2939         * appdomain.c (mono_runtime_init): do not install postload hooks -
2940         tests show that MS.NET doesn't use anything of that sort to
2941         trigger the AppDomain.AssemblyResolve event.
2942         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
2943         made non-static.
2944         (mono_runtime_init): init portability helpers here.
2945
2946         * assembly.c (mono_assembly_load_with_partial_name): if other   
2947         attempts fail, trigger the AppDomain.AssemblyResolve event handler
2948         to resolve the assembly.
2949
2950         * domain-internals.h: added mono_try_assembly_resolve and marked
2951         it as internal.
2952
2953 2007-09-11  Jb Evain  <jbevain@novell.com>
2954
2955         * object-internals.h (MonoReflectionDynamicMethod): add
2956         a `MonoReflectionType *owner` field. The owner is used
2957         * reflection.c:
2958         (mono_reflection_create_dynamic_method): use the owner of the dynamic
2959         method as the class declaring the dynamic method.
2960         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
2961         dynamic method to the declaring type of the methodbuilder.
2962
2963 2007-09-11  Mark Probst  <mark.probst@gmail.com>
2964
2965         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
2966         rules for calling methods via reflection.
2967
2968 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
2969
2970         * reflection.c (resolve_object): Add support for MonoGenericClass. 
2971         Inflate MonoType's.
2972
2973 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
2974
2975         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
2976         provide a managed method that does fast allocations without needing
2977         a managed->unmanaged transition. Boehm GC implementation currently
2978         enabled for ptrfree objects on sane architectures.
2979
2980 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
2981
2982         * marshal.c, marshal.h: exported a couple of useful functions and
2983         added mono_mb_get_label () to easily handle backward branches.
2984
2985 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
2986
2987         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
2988
2989 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
2990
2991         * loader.c (find_method): Fixed the regression introduced while
2992         fixing bug #81466.
2993
2994 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
2995
2996         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
2997         well.
2998         
2999         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
3000         icall.c reflection.c: Pass a MonoGenericContext argument to 
3001         mono_lookup_dynamic_token ().
3002
3003         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
3004         #82744.
3005         
3006 2007-09-09  Robert Jordan  <robertj@gmx.net>
3007
3008         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
3009         for generic methods.
3010
3011         * object.c (mono_object_get_virtual_method): Handle generic methods.
3012         Fixes bug #78882.
3013
3014         Code is contributed under MIT/X11 license.
3015
3016 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
3017
3018         * image.c: fix locking in mono_image_load_file_for_image ().
3019
3020 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
3021
3022         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
3023         used only as a cache: added an icall to fill it.
3024
3025 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
3026
3027         * reflection.h: exposed mono_reflection_free_type_info
3028         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
3029         since mono_reflection_bind_generic_parameters makes a copy of it.
3030         * reflection.c (free_type_info): subinfos should be freed.
3031         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
3032         made non static.
3033         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
3034         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
3035         this fixes #82695 and #81726.
3036    
3037
3038 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
3039
3040         * process.h, process.c:  added support for user profile/info in
3041           ProcessStartInfo. For now only Windows works.
3042
3043 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
3044
3045         * metadata.c: consider the generic arguments when comparing
3046         signatures (bug #82614).
3047
3048 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
3049
3050         * cil-coff.h, image.c: updated assembly loader to cope with the
3051         PE32+ 64 bit file format.
3052
3053 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
3054
3055         * assembly.c, class.c, domain.c, loader.c: remove useless
3056         inclusion of cil-coff.h.
3057
3058 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
3059
3060         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
3061         if interface is marked with CoClassAttribute. 
3062    
3063         Code is contributed under MIT/X11 license.
3064
3065 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
3066
3067         * sgen-gc.c: ensure no object from the to space is copied again or finalized
3068         if it's seen twice in major collections.
3069
3070 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
3071
3072         * sgen-gc.c: big objects are not copied to the gray area, but they
3073         need to be considered for scanning, too, if they are brought alive
3074         by an object ready for finalizations or a survived one.
3075
3076 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3077
3078         * sgen-gc.c: properly account the number of disappearing links when
3079         they are nullified.
3080
3081 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
3082
3083         * sgen-gc.c: share the code to scan the registered roots between the
3084         different types of collections.
3085
3086 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
3087
3088         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
3089
3090 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
3091
3092         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
3093         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
3094
3095 2007-08-28  Mark Probst  <mark.probst@gmail.com>
3096
3097         * security-manager.c (mono_security_manager_get_methods):
3098         LinkDemandSecurityException now has 2 arguments instead of 3.
3099
3100 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
3101
3102         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
3103         platforms which need it.
3104
3105 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
3106
3107         * sgen-gc.c: unregister thread data structures with a pthread_key_t
3108         dtor.
3109
3110 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
3111
3112         * threads.c: free the thread static data on thread exit.
3113
3114 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
3115
3116         * class.c: walk the hierarchy to find the generic definition for
3117         a class (fixes runtime part of bug #82498).
3118
3119 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
3120
3121         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
3122         ...
3123
3124         * image.c (mono_image_close): Here. Hopefully fixes #82510.
3125
3126 2007-08-24  Mark Probst  <mark.probst@gmail.com>
3127
3128         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
3129
3130 2007-08-24  Robert Jordan  <robertj@gmx.net>
3131
3132         * appdomain.c: don't perform the ':'->';' substitution on Win32.
3133
3134 2007-08-24  Jb Evain  <jbevain@novell.com>
3135
3136         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
3137         for byref types.
3138
3139 2007-08-24  Mark Probst  <mark.probst@gmail.com>
3140
3141         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
3142         #82286.
3143
3144 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
3145
3146         * assembly.c: Fix a warning.
3147         
3148 2007-08-23  Marek Habersack  <mhabersack@novell.com>
3149
3150         * appdomain.c: parse the <runtime> section looking for the probing
3151         element with the 'privatePath' attribute, which sets additional
3152         directories in which the runtime should look for assemblies.
3153
3154 2007-08-23  Robert Jordan  <robertj@gmx.net>
3155
3156         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
3157         Fixes #82499.
3158
3159 2007-08-23  Martin Baulig  <martin@ximian.com>
3160
3161         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
3162         _mono_debug_init_corlib() and remove it from the header file.
3163
3164 2007-08-23  Martin Baulig  <martin@ximian.com>
3165
3166         * mono-debug-debugger.c
3167         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
3168         don't notify the debugger about it.
3169
3170         * mono-debug-debugger.h
3171         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
3172
3173 2007-08-23  Robert Jordan  <robertj@gmx.net>
3174
3175         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
3176         Code is contributed under MIT/X11 license.
3177
3178 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
3179
3180         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
3181
3182 2007-08-22  Martin Baulig  <martin@ximian.com>
3183
3184         * mono-debug.c: Store debugging info on a per-domain basis and
3185         free it on domain unload.  Add support for unloading symbol files.
3186
3187         * mono-debug.h
3188         (MonoDebugList): New typedef.
3189         (MonoSymbolTable):
3190         - add `data_tables and `type_table'.
3191         - replace 'symbol_files' and `num_symbol_files' with a
3192           `MonoDebugList *'.
3193         (mono_debug_data_table): Removed.
3194         (mono_debug_list_add): New public function.
3195         (mono_debug_list_remove): New public function.
3196         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
3197         (mono_debug_init_2_memory): Renamed into
3198         mono_debug_open_image_from_memory().
3199         (mono_debug_close_image): New public function.
3200         (mono_debug_domain_create): Likewise.
3201         (mono_debug_domain_unload): Likewise.
3202         (MONO_DEBUGGER_VERSION): Bump to 60.
3203
3204         * mono-debug-debugger.h
3205         (MonoDebuggerEvent):
3206         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
3207         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
3208         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
3209         - rename `THREAD_CREATED' and `THREAD_EXITED' into
3210           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
3211         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
3212           meaning.
3213         (mono_debugger_add_symbol_file): Removed.
3214         (mono_debugger_add_type): Removed.
3215         (mono_debugger_lookup_type): Removed.
3216         (mono_debugger_lookup_assembly): Removed.
3217
3218         * domain.c
3219         (mono_domain_create): Call mono_debug_domain_create().
3220         (mono_init_internal): Call mono_debug_init_corlib().
3221
3222         * assembly.c
3223         (mono_assembly_close): Call mono_debug_close_image().
3224
3225 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
3226
3227         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
3228         mmap call.
3229
3230 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
3231
3232         * sgen-gc.c: ensure section->pin_queue_end is initialized
3233         correctly when non pinning objects in the section have been found.
3234
3235 2007-08-22  Marek Habersack  <mhabersack@novell.com>
3236
3237         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
3238         containing a list of directories separated by ':'. MSDN docs say
3239         the directories should be separated with ';'. Part of a bugfix for
3240         bug #81446
3241
3242 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
3243
3244         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
3245         it should MonoType and not MonoClass.
3246
3247 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
3248
3249         * culture-info-table.h : regenerated.
3250
3251 2007-08-20  William Holmes  <billholmes54@gmail.com>
3252
3253         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
3254          to call ReplaceFile Kernel32 on windows or in io-layer.
3255         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
3256         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
3257          as an internal call.
3258
3259         Code is contributed under MIT/X11 license.
3260
3261 2007-08-20  Jb Evain  <jbevain@novell.com>
3262
3263         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
3264         and MONO_EXCEPTION_FIELD_ACCESS.
3265
3266         * debug-helpers.[c|h]: new mono_field_full_name function.
3267
3268 2007-08-20  Mark Probst  <mark.probst@gmail.com>
3269
3270         * class.c: Removed class_security_level() and moved it to
3271         security-core-clr.c.
3272
3273         * security-core-clr.c, security-core-clr.h: class_security_level()
3274         is now public and renamed to mono_security_core_clr_class_level().
3275         It also looks for security attributes in the classes a class is
3276         nested in.
3277
3278 2007-08-20  Mark Probst  <mark.probst@gmail.com>
3279
3280         * security-core-clr.c, security-core-clr.h: CoreCLR security
3281         utility functions.
3282
3283         * Makefile.am: Added security-core-clr.[ch].
3284
3285         * security-manager.c, security-manager.h: Functions and enum for
3286         setting and getting the security mode.
3287
3288         * class.c: CoreCLR security checks.
3289
3290 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
3291
3292         * icall-def.h, process.c, process.h: implemented icall to get
3293         user/system processor times.
3294
3295 2007-08-17  Mark Probst  <mark.probst@gmail.com>
3296
3297         * domain.c, threads.c, class-internals.h, domain-internals.h: New
3298         reader-lock-free jit_info_table.
3299
3300 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
3301
3302         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
3303
3304         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
3305
3306         * object-internals.h (MonoException): Add missing _data member.
3307
3308 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
3309
3310         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
3311         checking that only methods with matching qname or fqname are picked
3312         from implemented interfaces.
3313
3314 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
3315
3316         * verify.c (do_newarr):added, do type verification of
3317         newarr ops, push the right value on the eval stack.
3318         * verify.c (mono_method_verify): use do_newarr
3319
3320
3321 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
3322
3323         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
3324         factored the common code into get_boxable_mono_type, which
3325         is now using mono_type_get_full, this fixed byref related tests.
3326
3327 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
3328
3329         * class.c: added mono_type_get_full, this function has the same
3330         behavior of mono_class_get_full but the returned MonoType has
3331         all metadata of the associated token in case of a typespec token.
3332         * class.c: added mono_type_retrieve_from_typespec, used by 
3333         mono_type_get_full to retrieve the token type.
3334         * class.c (mono_class_create_from_typespec): changed to use
3335         mono_type_retrieve_from_typespec.
3336         * class.c (mono_ldtoken): changed to use mono_type_get_full
3337         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
3338         * class-internals.h: exported mono_type_get_full for internal use.
3339
3340 2007-08-16  Jb Evain  <jbevain@novell.com>
3341
3342         * domain.c (supported_runtimes): add entry for
3343         the 'moonlight' runtime version.
3344
3345 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
3346
3347         * verify.c (mono_method_verify): small typo sliped in.  
3348
3349 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
3350
3351         * verify.c (do_unbox_value): added, do type verification of
3352         unboxing ops
3353         * verify.c (mono_method_verify): use do_unbox_value
3354
3355
3356 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
3357
3358         * verify.c (dump_stack_value): fixed typo, was printing string
3359         instead of object on stack.
3360         * verify.c (do_box_value): moved the byref check up as it leads
3361         to invalid code and should be done earlier.
3362         * verify.c: improved error messages for and ldobj
3363
3364 2007-08-15  William Holmes  <billholmes54@gmail.com>
3365
3366         * marshal.c (emit_marshal_custom): Omit the call to 
3367           marshal_native_to_managed when calling native to managed 
3368           and the argument is specified as an out argument.
3369
3370         Code is contributed under MIT/X11 license.
3371
3372 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
3373
3374         * verify.c: fixed the type checks for generics, function pointers and vectors.
3375         Added type verification for ldobj and ldtoken. The verifier
3376         would segfault if header or signature of a method contained references
3377         to non-existant types.
3378
3379 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
3380
3381         * marshal.c (cominterop_get_ccw): Patch from
3382         Bill Holmes to no walk up interface hierarchy. 
3383         All parent methods should be present in the interface for COM.
3384    
3385         Code is contributed under MIT/X11 license.
3386
3387 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
3388
3389         * marshal.c (emit_marshal_com_interface): Patch from
3390         Bill Holmes to handle COM Interfaces as return values
3391         for native->managed calls.
3392    
3393         Code is contributed under MIT/X11 license.
3394
3395 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
3396
3397         * marshal.c (cominterop_get_idispatch_for_object): Implement
3398         for runtime callable wrappers.
3399    
3400         Code is contributed under MIT/X11 license.
3401
3402 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
3403
3404         * pedump.c (main): changed from mono_init to mono_init_from_assembly
3405         so 2.0 types are accessible
3406
3407
3408 2007-08-13  Miguel de Icaza  <miguel@novell.com>
3409
3410         * domain.c (mono_init_internal): Call mono_assembly_load_friends
3411         once we load mscorlib.   Due to the order in which we initialize,
3412         the mono_assembly_load_full routine that loads mscorlib did not
3413         load friends.   We now load it once we load the
3414         mono_defaults.internals_visible_class class. 
3415
3416         * assembly.c: Expose the mono_load_friend_assemblies method.
3417
3418 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
3419
3420         * verify.c: improved the handling of boxing, better
3421         type checking for unary ops and conversion. Fix bug
3422         regarding managed pointer compatibility checking
3423
3424 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
3425
3426         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
3427
3428         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
3429
3430 2007-08-09  Raja R Harinath  <rharinath@novell.com>
3431
3432         * reflection.c (dup_type): Remove.
3433         * class.c (dup_type): Remove.
3434         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
3435         instead of the dodgy 'dup_type'.
3436         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
3437         handle the case where 'dup_type' needed the second argument.
3438
3439 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
3440
3441         * domain.c: Fix a warning.
3442
3443 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
3444
3445         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
3446         checking that methods with the same fqname are not overridden
3447         with a method from an ancestor.
3448
3449 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
3450
3451         * threads.c (free_thread_static_data_helper): Avoid a crash if
3452         thread->static_data is not yet set.
3453
3454 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
3455
3456         * marshal.c: Use correct image when emitting
3457         native wrapper for COM calls.
3458    
3459         Code is contributed under MIT/X11 license.
3460
3461 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
3462
3463         * icall-def.h, security.c, security.h :
3464           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
3465
3466 2007-08-07  Martin Baulig  <martin@ximian.com>
3467
3468         * mono-debug-debugger.h
3469         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
3470
3471         * domain.c (mono_domain_free): Call
3472         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
3473
3474 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
3475
3476         * verify.c (check_underflow, check_overflow): error message now returns IL offset
3477         * verify.c (in_same_block): code should test if either offset is inside the clauses
3478         * verify.c (mono_method_verify): push the exception into the eval stack of exception
3479         and filter blocks
3480
3481 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
3482
3483         * image.c (mono_image_close): Fix a leak.
3484
3485         * object.c (mono_runtime_invoke_array): Avoid using alloca.
3486
3487         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
3488
3489 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
3490
3491         * domain.c, threads.c, threads-types.h: fix memory retention issue
3492         with thread static variables not being cleared on domain unload.
3493         Reuse thread static slots after domain unload.
3494
3495 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
3496
3497         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
3498         nullable type.
3499
3500         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
3501         now done in mono_runtime_invoke_array.
3502
3503         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
3504         receiver is a nullable type.
3505
3506         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
3507         generic parameter.
3508
3509 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
3510
3511         * marshal.c: Implement COM Objects as return type for 
3512         managed->unmanaged calls. Added Release calls for COM Object
3513         out/return values in managed->unmanaged calls.
3514
3515         Code is contributed under MIT/X11 license.
3516
3517 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
3518
3519         * threads.h, threads-type.h: move the hazard pointer declarations
3520         to the private header.
3521
3522 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
3523
3524         * file-io.c, appdomain.c: memory leak fixes.
3525
3526 2007-08-02  Dick Porter  <dick@ximian.com>
3527
3528         * socket-io.c
3529         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
3530         SO_REUSEADDR setting into io-layer/sockets.c.
3531
3532 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
3533
3534         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
3535         from Object when called on a generic parameter. Fixes #82211.
3536
3537 2007-08-01  Dick Porter  <dick@ximian.com>
3538
3539         * file-io.c (convert_share): Test FileShare values bit-by-bit.
3540         Fixes bug 79250 yet again.
3541
3542 2007-07-30  Martin Baulig  <martin@ximian.com>
3543
3544         Merged the `debugger-dublin' branch.
3545
3546         * mono-debug.h
3547         (MonoDebugDataTable): New typedef.
3548         (MonoDebugMethodAddressList): New typedef.
3549         (MonoDebugWrapperData): Removed.
3550         (MonoDebugSymbolTable): Removed `current_data_table',
3551         `current_data_table_size', `current_data_table_offset'.
3552         (MonoDebugDataItemType): Moved into mono-debug.c.
3553         (MonoDebugMethodJitInfo): Remove `address'.
3554         (mono_debug_data_table): New global variable.
3555         (mono_debug_lookup_method_addresses): New public function.
3556         (mono_debug_find_method): Take a `MonoMethod *', not a
3557         `MonoDebugMethodInfo *'.
3558
3559         * mono-debug.c: Drop support for the old symbol tables.
3560
3561 2007-06-28  Martin Baulig  <martin@ximian.com>
3562
3563         * mono-debug.c (mono_debug_debugger_version): New public variable.
3564
3565 2007-07-31  William Holmes  <billholmes54@gmail.com>
3566
3567         * metadata.c Changed mono_type_create_from_typespec to not insert
3568           the type into the hash map until after
3569           do_mono_metadata_parse_type has completed.
3570         Fixes Bug #82194
3571         Code is contributed under MIT/X11 license.
3572
3573 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
3574
3575         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
3576         generic parameter. Fixes #82211.
3577
3578 2007-07-27  Jb Evain  <jbevain@novell.com>
3579
3580         * pedump.c (dump_metadata, dump_metadata_header): dump
3581         versions contained in the metadata header.
3582
3583 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3584
3585         * threads.c: register small_id_table with the GC.
3586
3587 2007-07-27  Mark Probst  <mark.probst@gmail.com>
3588
3589         * threads.c, threads.h, class-internals.h, object-internals.h:
3590         Hazard pointers, to be used by lock-free parallel algorithms.
3591
3592 2007-07-26  Dick Porter  <dick@ximian.com>
3593
3594         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
3595         routine on non-windows platforms, as I've not managed to think of
3596         a non-kludgy way of doing this.  Finishes off bug 78739.
3597
3598 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
3599
3600         * object.c: properly setup interface_bitmap in proxy vtables.
3601
3602 2007-07-25  Marek Habersack  <mhabersack@novell.com>
3603
3604         * appdomain.c (get_shadow_assembly_location): do not use TickCount
3605         to create unique shadow copy target directories, use the domain's
3606         serial number instead. Each domain gets a unique target directory
3607         that way.
3608
3609         * domain.c (mono_domain_create): added code to increment domain
3610         shadow copy serial number and cache the value in the current
3611         domain structure.
3612
3613         * domain-internals.h (struct _MonoDomain): added a new field -
3614         shadow_serial to hold the serial number used in generation of
3615         shadow-copy directories. This is to make sure that the directory
3616         name is unique for each and every domain created. We avoid a race
3617         condition with overriding assemblies already in use by other app
3618         domains.
3619
3620 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
3621
3622         * class.c (mono_bounded_array_class_get): fixed memory leak when 
3623         binding generic parameters.
3624
3625 2007-07-24  Raja R Harinath  <rharinath@novell.com>
3626
3627         * metadata.c (do_mono_metadata_parse_generic_class): Use
3628         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
3629         error.
3630
3631 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
3632
3633         * loader.c, class-internals.h, reflection.c: removed the per-method
3634         generics hashtable: we use the global one through the call of
3635         mono_class_inflate_generic_method ().
3636
3637 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
3638
3639         * class.c, metadata.c, class-internals.h: introduce yet another
3640         generics global cache for inflated methods (fixes 98% of the perf
3641         issue in bug #81806).
3642
3643 2007-07-23  Raja R Harinath  <rharinath@novell.com>
3644
3645         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
3646         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
3647         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
3648         return a MonoGenericInst containing (a copy) of those types.
3649         (mono_metadata_inflate_generic_inst): Update to changes.
3650         (mono_metadata_parse_generic_inst): Likewise.
3651         (mono_get_shared_generic_inst): Likewise.
3652         * reflection.c (mono_class_bind_generic_parameters): Likewise.
3653         (mono_reflection_bind_generic_method_parameters): Likewise.
3654         * metadata-internals.h: Likewise.
3655         * icall.c (free_generic_context): Kill.
3656         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
3657
3658         * reflection.c (reflection_methodbuilder_to_mono_method): Use
3659         mono_metadata_type_dup.
3660         * marshal.c (mono_mb_create_method): Likewise.
3661
3662         * metadata.c (mono_metadata_type_dup): Rename from
3663         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
3664         MonoImage.  Handle a few more cases, esp. when no mempool is given.
3665         * marshal.c, metadata-internals.h: Update to changes.
3666
3667 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3668
3669         * class.c: fixed a small leak for array classes and removed warning.
3670
3671 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
3672
3673         * loader.c (mono_method_get_param_token): Make this work on generic methods.
3674         Return 0x8000000 for return parameters. Fixes #82161.
3675
3676 2007-07-21  Marek Habersack  <grendello@gmail.com>
3677
3678         * appdomain.c (get_shadow_assembly_location): append the current
3679         ticks value to the path. Avoids overwriting the same assemblies by
3680         several threads at the same time.
3681
3682 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3683         and Raja R Harinath  <rharinath@novell.com>
3684
3685         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3686         Simplify slightly.
3687         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
3688         property for testing if a method is a generic method definition.
3689
3690 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
3691
3692         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
3693
3694 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3695
3696         * verify.c: used function from private branch, reverted to the one in class.h 
3697
3698 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3699
3700         * verify.c: a typo slipped in and the code wont compile
3701
3702 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3703
3704         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
3705         disabled box instruction as it is doing the wrong thing
3706         improved stack dump messages, now it is easier to debug type related issues
3707
3708
3709 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
3710
3711         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
3712
3713 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3714
3715         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
3716         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
3717         grouped with class and valuetype. This change will simply 
3718         the code as it should be handled just like unmanaged pointers.
3719
3720 2007-07-19  Mark Probst  <mark.probst@gmail.com>
3721
3722         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
3723
3724 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
3725
3726         * verify.c: several stack merge issues fixed, reference comparisons now
3727         check the type size. strict type check now works correctly.
3728         added more uses of IS_MANAGED_POINTER macro.
3729         fixed issues pointed by running the test suite against .net.
3730         
3731
3732 2007-07-19  Mark Probst  <mark.probst@gmail.com>
3733
3734         * class.c, loader.c, class-internals.h: Removed the
3735         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
3736         defines.
3737
3738         * icall.c: Better error checking in some internal reflection
3739         methods.
3740
3741 2007-07-18  William Holmes  <billholmes54@gmail.com>
3742
3743         * filewatcher.c : removed unused variable 'filename' in 
3744           ves_icall_System_IO_FSW_SupportsFSW
3745
3746 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
3747
3748         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
3749         obsolete, removed.
3750
3751 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
3752
3753         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
3754         
3755         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
3756
3757 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
3758
3759         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
3760         Implement generics support.
3761         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3762
3763         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
3764         type_args and method_args arguments.
3765         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
3766         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3767         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
3768
3769 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
3770
3771         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
3772           It adds a rootimage parameter to mono_reflection_get_type_internal,
3773           adds new function mono_reflection_get_type_with_rootimage and use
3774           the rootimage to resolve the types instead of the current image
3775
3776 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3777
3778         * culture-info-table.h: Forgot to update after r78304.
3779
3780 2007-07-13  Raja R Harinath  <rharinath@novell.com>
3781
3782         * class.c (mono_class_is_open_constructed_type)
3783         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
3784
3785 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
3786
3787         * class.c (mono_bounded_array_class_get):  method fails if used with
3788         an incomplete TypeBuilder enum (no basetype field), fixed it by 
3789         avoiding calculating the size for such array as it cannot be instantiated.
3790         Fix bug #82015
3791
3792 2007-07-12  Raja R Harinath  <rharinath@novell.com>
3793
3794         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
3795         field.
3796         * metadata.c, reflection.c: Update to changes.
3797
3798 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
3799
3800         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
3801         mono_class_is_valid_enum, they are used to valide a enum when loading.
3802         * reflection.c: used new functions to throw TypeLoadException when and
3803         invalid enum is build with TypeBuilder. Fixes #82018
3804   
3805 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
3806
3807         * object.c: forgot commit of mono_class_setup_methods () to access
3808         iface->methods.
3809         * object-internals.h: added a few more handy fields to
3810         MonoIMTCheckItem.
3811
3812 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
3813
3814         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
3815         iface->methods.
3816
3817 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
3818
3819         * class-internals.h, object-internals.h, object.c: IMT-based
3820         interface invocation core from Massimiliano Mantione
3821         (massi@ximian.com) with a reworked arch-specific interface,
3822         bsearch implementation and a few bugfixes and memory savings by me.
3823
3824 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
3825
3826         * class.c (mono_class_create_from_typedef): mono would segfault if 
3827         an enum did not have a __value field. It now throws a TypeLoadException
3828         for such cases. Fix bug #82022
3829
3830 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
3831
3832         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
3833
3834 2007-07-09  Mark Probst  <mark.probst@gmail.com>
3835
3836         * class.c (mono_class_init): If a class is already inited but has
3837         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
3838
3839 2007-07-09  Mark Probst  <mark.probst@gmail.com>
3840
3841         * class.c: Properly handle the case of an unimplemented interface
3842         method.  Fixes: 81673.
3843
3844 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
3845
3846         * class-internals.h, object.c: cleanup patch from massi: use
3847         MonoVTable->interface_bitmap since the vtable interfaces offset array
3848         is going away.
3849
3850 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
3851
3852         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
3853         GetMDStreamVersion icall instead.
3854
3855 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
3856
3857         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
3858         not use mono_dl_build_path() with a full library name: makes
3859         fallbacks to libgaim and libfam work.
3860
3861 2007-07-06  William Holmes  <billholmes54@gmail.com>
3862
3863         * assembly.c: Added a continue statement in probe_for_partial_name when
3864          parse_assembly_directory_name fails.  Fixes : 82002
3865
3866 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
3867
3868         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
3869         and added a verification  for TYPEDBYREF.
3870         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
3871         make native int interchangeable with int32 and some small cleanup and formating.
3872         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
3873         handle byref of byref.
3874         * verify.c (push_local): handle byref of byref.
3875         * verify.c (do_binop): invalid mix of values is unverifiable
3876         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
3877         added visibility checks
3878         * verify.c (field related method): added visibility checks
3879         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
3880
3881 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
3882
3883         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
3884         string.
3885
3886 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
3887
3888         * profiler.c (mono_profiler_load): Fix an off-by-one error.
3889
3890         * marshal.c (emit_marshal_string): When returning a string from managed code,
3891         allways make a copy even for unicode strings. Fixes #81990.
3892
3893 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
3894
3895         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
3896         of byref generic inst types (bug #81997).
3897
3898 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
3899
3900         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
3901         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
3902
3903 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
3904
3905         * marshal.c (emit_marshal_string): Add support for unicode strings in
3906         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
3907
3908 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
3909
3910         * verify.c: field load/store are now verified, missing only access checks now
3911
3912 2007-06-28  Martin Baulig  <martin@ximian.com>
3913
3914         * mono-debug.c (mono_debug_debugger_version): New public variable.
3915
3916 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
3917
3918         * locales.c: When constructing DateTimeFormat or NumberFormat for
3919         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
3920         MonoCultureInfo contructed from the current locale is always
3921         read-only and has UseUserOverride set to true. All MonoCultureInfo
3922         instances returned for GetCultures have both IsReadOnly and
3923         UseUserOverride set to true. Fixes part of bug #81930.
3924
3925 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
3926
3927        * icall-def.h: Update System.__ComObject icalls
3928        * marshal.c: Avoid managed transition (and object creation)
3929        when looking up COM interface in RCW.
3930        * marshal.h: Ditto.
3931        
3932        Code is contributed under MIT/X11 license.
3933
3934 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
3935
3936         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
3937         to avoid crashes during assembly unloading.
3938
3939 2007-06-22  Raja R Harinath  <rharinath@novell.com>
3940
3941         Fix MethodInfo.IsGenericMethodDefinition
3942         * reflection.c (mono_reflection_bind_generic_method_parameters):
3943         Rearrange code to ensure we always uses a generic method definition.
3944         * class.c (mono_class_inflate_generic_method_full): Set
3945         'generic_container' field only for generic method definitions.
3946         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
3947         Use presense of 'generic_container' field as indication of being a
3948         generic method definition.
3949
3950 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
3951
3952         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3953
3954         * object-internals.h: Reflect changes in the layout of the managed Delegate
3955         class.
3956         
3957         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
3958         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
3959         runtime memory used by the dynamic method. Fixes #77146.
3960
3961 2007-06-21  Dick Porter  <dick@ximian.com>
3962
3963         * file-io.h: 
3964         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
3965         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
3966         81767.
3967
3968 2007-06-21  Raja R Harinath  <rharinath@novell.com>
3969
3970         * reflection.c (method_encode_methodspec): Add a tripwire.
3971         * class.c (inflate_generic_type): The fully open generic type is
3972         not the same as the generic type definition.
3973
3974 2007-06-21  Martin Baulig  <martin@ximian.com>
3975
3976         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
3977
3978         * mono-debug-debugger.h
3979         (MonoDebuggerBreakpointInfo): Removed.
3980         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
3981         (mono_debugger_remove_breakpoint): Likewise.
3982         (mono_debugger_breakpoint_callback): Likewise.
3983         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
3984
3985 2007-06-21  Raja R Harinath  <rharinath@novell.com>
3986
3987         * metadata.c (mono_metadata_lookup_generic_class): The fully open
3988         generic type is not the same as the generic type definition.
3989         * class.c (mono_generic_class_get_class): Likewise.
3990
3991 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
3992
3993         * icall.c: The second argument to 
3994         System.Reflection.MethodBase.GetMethodFromHandleInternalType
3995         is a MonoType not a MonoClass.
3996
3997 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
3998
3999         * verify.c: support for function pointers in the verifier
4000
4001 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
4002
4003         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
4004
4005 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
4006
4007         * assembly.c: removed Mono.Data.SqliteClient from the list of
4008         forward-compatible assemblies as it breaks the ABI (bug #81899).
4009
4010 2007-06-19  Raja R Harinath  <rharinath@novell.com>
4011
4012         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
4013         lookup/update with the loader lock.
4014         * reflection.c (mono_class_bind_generic_parameters): No need to
4015         protect mono_metadata_lookup_* with the loader lock.
4016         * class.c (inflate_generic_type): Likewise.
4017         
4018         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
4019         on a generic instantiated type.
4020
4021 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
4022
4023         *verify.c: produce meanfull error messages on verification error
4024         *verify.c: fixed some cases of verification errors reported as validation errors
4025         *pedump.c: fixed the error name array, now it shows validation errors properly
4026         *verify.h: fixed the contant that should be used for verification errors
4027
4028 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
4029
4030         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
4031         for bug #77596, 81858 and 80743 (generics data structures on domain
4032         unload).
4033
4034 2007-06-15  Raja R Harinath  <rharinath@novell.com>
4035
4036         Avoid allocating 'MonoGenericContext' on the heap.
4037         * class-internals (_MonoMethodInflated::context): Make field
4038         inline, not a pointer.
4039         * loader.c (method_from_methodspec): Allocate 'new_context' on the
4040         stack.  Use the context embedded within the inflated method as the
4041         hash key, rather than 'new_context'.
4042         * class.c (inflate_generic_context): Simplify.  Return a struct
4043         rather than allocating on the heap.
4044         (mono_class_inflate_generic_method_full): Update to changes.  Now,
4045         doesn't salt away a copy of the context -- simplifying the
4046         lifetime rules of a 'MonoGenericContext *'.
4047         (mono_method_get_context): Return pointer to embedded context.
4048         (setup_generic_array_ifaces): Allocate temporary context on stack.
4049         * reflection.c (inflate_mono_method): Likewise.
4050         (mono_reflection_bind_generic_method_parameters): Likewise.
4051         Use the context embedded within the inflated method as the hash key.
4052
4053         Avoid a source of allocation of 'MonoGenericContext'.
4054         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
4055         and 'cached_context' fields into embedded 'MonoGenericContext' field.
4056         * class.c: Update to changes.
4057         (mono_generic_class_get_context): Simplify drastically.  Now just
4058         returns a pointer to the field.
4059         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
4060         argument as a const pointer.
4061         (mono_metadata_generic_context_equal): Likewise.
4062         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
4063         Update to changes.
4064
4065 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
4066
4067         * verify.c improved the handling of brtrue/brfalse, factored out common code
4068
4069 2007-06-14  Raja R Harinath  <rharinath@novell.com>
4070
4071         Kill MonoGenericMethod.
4072         * class-internals.h (MonoGenericContext::method_inst): Rename from
4073         'gmethod' and convert to a MonoGenericInst.
4074         (MonoGenericMethod): Remove.
4075         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
4076         * loader.c (method_from_methodspec): Update to changes.  Use a
4077         MonoGenericContext as the key to the hashtable.
4078         * metadata.c (mono_metadata_generic_context_equal): Rename from 
4079         'mono_metadata_generic_method_equal' and take MonoGenericContext.
4080         (mono_metadata_generic_context_hash): Likewise from
4081         'mono_metadata_generic_method_hash'.  Change hash function.
4082         (mono_metadata_load_generic_params): Update to changes.
4083         (mono_get_shared_generic_method): Remove.
4084         * metadata-internals.h (mono_get_shared_generic_method): Remove.
4085         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
4086         (inflate_generic_context): Likewise.
4087         (mono_class_inflate_generic_method_full): Likewise.
4088         (setup_generic_array_ifaces): Likewise.
4089         (mono_class_create_from_typespec): Likewise.
4090         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
4091         (method_encode_methodspec): Update callsite.
4092         (reflection_methodbuilder_to_mono_method): Update to changes.
4093         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
4094         MonoGenericContext as the key to the hashtable.
4095         (inflate_mono_method): Update to changes.
4096
4097         * class-internals.h (MonoGenericMethod::container): Remove.
4098         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
4099
4100 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
4101
4102         * profiler-private.h, profiler.c, profiler.h: added API to profile
4103         exception events.
4104
4105 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
4106
4107         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
4108
4109 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
4110
4111         * verify.c: method invocation is now validated, now we verify parameter types on stack.
4112         Fixed overflow and underflow not aborting the verification process.
4113
4114 2007-06-13  Mark Probst  <mark.probst@gmail.com>
4115
4116         * class-internals.h (MonoStats): Added stats entries for dynamic
4117         code allocations.
4118
4119 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
4120
4121         * loader.c (mono_free_method): Free header->locals and header->clauses.
4122
4123         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
4124         dynamic case.
4125
4126         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
4127
4128         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
4129
4130 2007-06-12  Raja R Harinath  <rharinath@novell.com>
4131
4132         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
4133         the tables.
4134
4135 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
4136
4137         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
4138
4139 2007-06-11  Raja R Harinath  <harinath@gmail.com>
4140
4141         MonoGenericMethod on a diet
4142         * class-internals.h (_MonoMethodInflated::reflection_info): Move
4143         here ...
4144         (_MonoGenericMethod::reflection_info): ... from here.
4145         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
4146         Update to changes.
4147         * reflection.c (inflate_mono_method): Likewise.
4148         (mono_reflection_bind_generic_method_parameters): Likewise.
4149
4150 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
4151
4152         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
4153         *verify.c: factored long ldarg forms to share code with short forms
4154
4155 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
4156
4157         *verify.c: fixed code formating factored some duplicate code
4158         into a new function
4159
4160         *verify.h: fixed binary incompatibility introduced earlier
4161
4162         *pedump.c: fixed formating
4163
4164 2007-06-11  Raja R Harinath  <harinath@gmail.com>
4165
4166         Fix assertion when disassembling Mono.C5.dll
4167         * loader.c (method_from_methodspec): Avoid inflating a method
4168         twice with the same context.  If the methodref is inflated, use
4169         the declaring method instead.
4170
4171         * class.c (mono_class_from_generic_parameter): Fix case similar to
4172         bug #81830 handled below, but for method containers.
4173
4174 2007-06-10  Raja R Harinath  <harinath@gmail.com>
4175
4176         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
4177         get_shared_generic_class.  Directly inflate the instance.
4178         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
4179         (inflate_generic_class): Delete.
4180         (get_shared_generic_class): Delete.  Move setting of
4181         'cached_class' and 'cached_context' ...
4182         * metadata.c (mono_metadata_lookup_generic_class): ... here.
4183
4184         * metadata.c (mono_metadata_lookup_generic_class): Change
4185         signature to take the components of a MonoGenericClass rather than
4186         an allocated MonoGenericClass.  Change semantics to be intern-like.
4187         * reflection.c (mono_class_bind_generic_parameters): Update to
4188         changes.  Make locking region tighter.
4189         * class.c (inflate_generic_class): Update to changes.
4190         (get_shared_generic_class): Likewise.
4191         * metadata-internals.h: Likewise.
4192
4193         * reflection.c (mono_class_bind_generic_parameters): Take and
4194         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
4195         (mono_reflection_bind_generic_parameters): Use
4196         'mono_class_bind_generic_parameters' rather than duplicate the code.
4197         * class.c (mono_bounded_array_class_get): Update to changes.
4198         * object-internals.h: Likewise.
4199
4200         * reflection.c (mono_class_bind_generic_parameters): Only support
4201         parameterizing generic type definitions.  Remove support for other
4202         open types.
4203
4204 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
4205
4206         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
4207
4208         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
4209         in the dynamic case.
4210
4211 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
4212
4213         * threads.c: When cleaning up thread, reset the Background bit.
4214         Fixes bug #81720.
4215
4216 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
4217
4218        * metadata.c: Move variable declarations to top of scope.
4219        * verify.c: Move variable declarations to top of scope.
4220
4221        Code is contributed under MIT/X11 license.
4222
4223 2007-06-08  Raja R Harinath  <rharinath@novell.com>
4224
4225         * reflection.c (mono_class_bind_generic_parameters): Replace
4226         open-coded loop with mono_metadata_inflate_generic_inst.
4227
4228         * class.c (get_shared_generic_class): Don't call
4229         mono_get_shared_generic_inst.  Use the container's own
4230         'class_inst'.
4231
4232         * metadata.c (mono_metadata_load_generic_params): Move
4233         initialization of 'context' field here from ...
4234         * class.c (mono_class_create_from_typedef): ... here, and ...
4235         * loader.c (mono_get_method_from_token): ... here.
4236
4237         * class.c (get_shared_generic_class): Rename from
4238         mono_get_shared_generic_class and make static.
4239         (mono_get_shared_generic_inst): Move to metadata.c.
4240         * loader.c (mono_get_shared_generic_method): Likewise.
4241         * class-internals.h, metadata-internals.h: Update to changes.
4242
4243         Fix #81830
4244         * class.c (mono_class_from_generic_parameter): Don't assume a
4245         generic container owner exists.  Generic containers from monodis
4246         don't have any.
4247
4248 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
4249
4250         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
4251         * verify.h: new typedefs to returns the non-verifiable status
4252         * verify.c: initial implementation of generics, stack merging and object compatibility check
4253
4254 2007-06-06  Mark Probst  <mark.probst@gmail.com>
4255
4256         * class.c, image.c, class-internals.h (MonoImage): class_cache is
4257         a MonoInternalHashTable again (fixed bug in internal hash table
4258         code).
4259
4260 2007-06-06  Mark Probst  <mark.probst@gmail.com>
4261
4262         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
4263         MonoInternalHashTable again (fixed bug in internal hash table
4264         code).
4265
4266 2007-06-06  Mark Probst  <mark.probst@gmail.com>
4267
4268         * class.c, image.c, class-internals.h, domain.c,
4269         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
4270         changes.  Have to figure out what makes them break the SWF
4271         regression.
4272
4273 2007-06-04  Mark Probst  <mark.probst@gmail.com>
4274
4275         * class.c, image.c, class-internals.h (MonoImage): class_cache is
4276         a MonoInternalHashTable now.
4277
4278 2007-06-04  Mark Probst  <mark.probst@gmail.com>
4279
4280         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
4281         MonoInternalHashTable now.
4282
4283 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
4284
4285         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
4286         invoke_impl code.
4287
4288         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
4289
4290         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
4291         dependent trampoline.
4292
4293         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4294
4295         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
4296
4297 2007-05-29  Robert Jordan  <robertj@gmx.net>
4298
4299         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
4300
4301 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
4302
4303         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
4304
4305 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
4306
4307        * marshal.c: Fix interface lookup loops for
4308        cominterop_get_com_slot_for_method and 
4309        cominterop_get_method_interface. Only need to lookup
4310        if type is a class, else use interface type method is on.
4311
4312        Code is contributed under MIT/X11 license.
4313
4314 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
4315
4316         * reflection.c: HasSecurity can be present even if no specially 
4317         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
4318         SecurityAttribute). Fix CAS regression tests on buildbot.
4319
4320 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
4321
4322        * appdomain.c: Add configure checks for header files.
4323        * image.c: Add configure checks for header files.
4324        * file-io.c: Add configure checks for header files.
4325        * debug-mono-symfile.c: Add configure checks for header files.
4326        * threadpool.c: Add configure checks for header files.
4327        * console-io.c: Add configure checks for header files.
4328        * profiler.c: Add configure checks for header files.
4329        * rawbuffer.c: Add configure checks for header files.
4330        * icall.c: Add configure checks for header files.
4331        * rand.c: Add configure checks for header files.
4332        * socket-io.c: Add configure checks for header files.
4333
4334        Code is contributed under MIT/X11 license.
4335
4336 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
4337
4338         * reflection.c (mono_custom_attrs_from_builders): Remove the 
4339         assertion as it breaks the build.
4340         
4341         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
4342
4343         * reflection.c (lookup_custom_attr): Make a copy here too.
4344
4345         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
4346         dynamic images.
4347
4348         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
4349         images.
4350
4351         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
4352         info.
4353
4354 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
4355
4356         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
4357         (load_cattr_value): Ditto.
4358
4359 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
4360
4361         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
4362
4363 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
4364
4365         * threads.c: In "start_wrapper", set apartment_state to MTA if
4366         apartment_state is Unknown and we're running on 2.0 profile or
4367         higher.
4368         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
4369         to main method, then set apartment_state to Unknown on 1.0 profile,
4370         and MTA on 2.0 profile.
4371
4372 2007-05-16  Jb Evain  <jb@nurv.fr>
4373
4374         * class-internals.h (MonoDefaults): Add an attribute_class and
4375           customattribute_data_class.
4376         * domain.c (mono_init_internal): Populate them.
4377         * reflection.c: Use them to remove duplicates. Make a vew
4378         MonoClass variables `static'.
4379
4380 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
4381
4382         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
4383         step in implementing IMT, so that all isinst checks now can go
4384         through the bitmap.
4385         This was needed because vtables for TransparentProxy need to look
4386         like the vtable of the "target" class, so they need to point to
4387         its interface bitmap directly.
4388
4389         * object.c: inside "mono_class_create_runtime_vtable" and
4390         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
4391
4392 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
4393
4394         * object-internals.h
4395           culture-info.h : added territory field in MonoCulture and
4396           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
4397         * locales.c : fill territory field above too.
4398         * culture-info-table.h : regenerated.
4399
4400 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
4401
4402         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
4403         Fixes #81599.
4404
4405 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
4406
4407         * object.c: Always initialize apartment, even if 
4408         there is no custom attributes on entry point.
4409         
4410         Code is contributed under MIT/X11 license.
4411
4412 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
4413
4414         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
4415         * metadata.c: If no encoding is set, check for unicode
4416         on class.
4417         
4418         Code is contributed under MIT/X11 license.
4419
4420 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
4421
4422         * threads.c: Handle if mono_thread_current returns NULL 
4423         
4424         Code is contributed under MIT/X11 license.
4425
4426 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
4427
4428         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
4429         in start_wrapper. Added mono_thread_init_apartment_state and
4430         mono_thread_cleanup_apartment_state.
4431         * object.c: Initialize thread apartment state on main thread
4432         by checking for STAThreadAttribute on entry point.
4433         * object-internals.h: Add apartment_state field to MonoThread.
4434         * threads-types.h: Add unmanaged definition of 
4435         System.Threading.ApartmentState, MonoThreadApartmentState.
4436         
4437         Code is contributed under MIT/X11 license.
4438         
4439 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
4440
4441         * class.c: Fix windows build.
4442         * class-internals.h: Fix windows build.
4443         
4444         Code is contributed under MIT/X11 license.
4445
4446 2007-05-08  Robert Jordan  <robertj@gmx.net>
4447
4448         * process.c (CreateProcess_internal):
4449         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
4450         .CreateNoWindow was specified. Fixes #81496.
4451
4452 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
4453
4454         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
4455         step in implementing IMT, replaced it with two compact arrays
4456         (interfaces_packed and interface_offsets_packed) and a bitmap that
4457         is used for isinst checks (interface_bitmap).
4458
4459         * class.c: (compare_interface_ids): compare function to pass to
4460         bsearch when looking for an interface with a given id.
4461         (mono_class_interface_offset): reimplemented using bsearch on
4462         interfaces_packed, getting the offset from interface_offsets_packed.
4463         (print_implemented_interfaces): utility debugging function.
4464         (setup_interface_offsets): reworked to initialize interfaces_packed,
4465         interface_offsets_packed and interface_bitmap.
4466
4467         * object.c: replaced all accesses to "MonoClass.interface_offsets"
4468         with uses of interfaces_packed and interface_offsets_packed.
4469
4470 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
4471
4472         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
4473         mono_class_interface_offset prototype to wrap all accesses to
4474         "MonoClass.interface_offsets".
4475
4476         * class.c: Implemented mono_class_interface_offset, and wrapped all
4477         accesses to "MonoClass.interface_offsets".
4478
4479         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
4480         "MonoClass.interface_offsets".
4481
4482 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
4483
4484         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
4485         GetMethodFromHandle overloads (bug #78637).
4486
4487 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
4488
4489         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
4490         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
4491
4492 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
4493
4494         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
4495         #81498.
4496
4497         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
4498         gracefully.
4499         (mono_custom_attrs_from_index): Ditto.
4500
4501         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
4502         Fixes #81501.
4503
4504 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
4505
4506         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
4507         is now allocated from a mempool.
4508
4509 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
4510
4511         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
4512         caller holds threads_lock, leading to deadlocks. Fixes #81476.
4513
4514 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
4515
4516         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
4517         mono_loader_clear_error () too late. Fixes #81463.
4518
4519 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
4520
4521         * culture-info-table.h : regenerated.
4522
4523 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
4524
4525         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
4526         is missing.
4527
4528 2007-04-25  Dick Porter  <dick@ximian.com>
4529
4530         * Makefile.am: Put the mingw enforced-optimisation back into the
4531         PLATFORM_WIN32 section.
4532
4533 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
4534
4535         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
4536         patch.
4537
4538         * image.c (mono_image_load_module): New API function to load a module reference.
4539
4540         * image.c (load_modules): Load modules lazily. Fixes #80812.
4541
4542         * class.c (mono_class_from_typeref): Use mono_image_load_module.
4543         
4544         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
4545
4546         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
4547         to mono_image_load_module_dynamic.
4548
4549 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
4550
4551         * marshal.c: Fix calling convention for CCW on non-windows
4552         platforms. STDCALL on windows, CDECL everywhere else to work 
4553         with XPCOM and MainWin COM.
4554         
4555         Code is contributed under MIT/X11 license.
4556
4557 2007-04-23  Martin Baulig  <martin@ximian.com>
4558
4559         Fix #80969.
4560
4561         * loader.c
4562         (method_from_memberref): Added `gboolean *used_context' argument.
4563         (mono_get_method_from_token): Likewise.
4564         (mono_get_method_full): Don't insert the method in the cache when
4565         `used_context' is true.
4566
4567 2007-04-23  Raja R Harinath  <rharinath@novell.com>
4568
4569         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
4570
4571         * reflection.c (mono_reflection_bind_generic_parameters): Don't
4572         create new MonoTypes for returned types.
4573         * class.c (mono_generic_class_get_class): Export mono-internal.
4574         * class-internals.h: Update to changes.
4575
4576 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
4577
4578         * threadpool.c, threadpool.h, icall-def.h: patch from
4579         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
4580
4581 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
4582
4583         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
4584         
4585         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
4586
4587         * threads.c (mono_thread_get_stack_bounds): New helper function.
4588
4589         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
4590         Correctly compute stack bounds when attaching. Fixes #81394.
4591
4592 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
4593
4594         * reflection.c: fix handling of doubles in custom attributes
4595         for the arm-fpa format (bug #81368).
4596
4597 2007-04-18  Raja R Harinath  <rharinath@novell.com>
4598
4599         * reflection.c (assembly_add_win32_resources): Mildly relax an
4600         bounds check to let the end pointer point just past the end of the
4601         allocated buffer.  (may fix #81384)
4602
4603 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
4604
4605         * culture-info-table.h : regenerated.
4606
4607 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
4608
4609         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
4610         the thread is aborted early.
4611
4612 2007-04-05  Dick Porter  <dick@ximian.com>
4613
4614         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
4615         FindFirstFile()/FindNextFile() to find entries.  This lets the
4616         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
4617         81038.
4618
4619         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
4620         the parameters of
4621         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
4622
4623 2007-04-04  Martin Baulig  <martin@ximian.com>
4624
4625         * debug-helpers.c
4626         (mono_method_desc_full_match): Add support for nested classes.
4627
4628 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
4629
4630         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
4631
4632 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
4633
4634         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
4635         waiting for too many threads.
4636
4637 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
4638
4639         * environment.c: Fix return value check on uname so we can get the 
4640         executing version on Solaris operating systems.
4641
4642 2007-03-28  Jb Evain  <jbevain@gmail.com>
4643
4644         * class.c (mono_type_get_name_recurse): Complete the
4645         fix for the creation of assembly qualified names for
4646         pointer types. Fixes #81208.
4647
4648 2007-03-27  Dick Porter  <dick@ximian.com>
4649
4650         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
4651         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
4652         changed.
4653
4654         * threads.c
4655         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
4656         the value of ReleaseMutex().
4657
4658 2007-03-27  Dick Porter  <dick@ximian.com>
4659
4660         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
4661         in little-endian order, not network endian, so must be converted
4662         to host endian here.  Fixes bug 80593.
4663
4664 2007-03-22  Jb Evain  <jbevain@gmail.com>
4665
4666         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
4667         qualified names for pointer types. Fixes #81208.
4668
4669 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
4670
4671         * marshal.c: Add support for PreserveSigAttribute. 
4672         
4673         Code is contributed under MIT/X11 license.
4674
4675 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
4676
4677         * process.c: Fix endianness issues. Fixes #81126.
4678
4679         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
4680         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
4681
4682         * image.c (mono_image_lookup_resource): Make this work on big-endian
4683         machines.Change API contract so the caller needs to free the return value.
4684         
4685         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
4686         API change.
4687         
4688 2007-03-14  Martin Baulig  <martin@ximian.com>
4689
4690         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
4691         mono_type_get_desc() as well.
4692
4693 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
4694
4695         * icall.c:  Fix environ access in VS.  
4696         
4697 2007-03-13  Alp Toker  <alp@atoker.com>
4698
4699         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
4700         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
4701         #63841.
4702
4703 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
4704
4705         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
4706         circular references among dynamic methods. Fixes #81091.
4707
4708         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
4709
4710 2007-03-09  Martin Baulig  <martin@ximian.com>
4711
4712         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
4713
4714 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
4715
4716         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
4717         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
4718         
4719         Code is contributed under MIT/X11 license.
4720         
4721 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
4722
4723         * loader.c: Reapply patch for bug #79424.
4724
4725 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
4726
4727         * metadata.c (mono_type_to_unmanaged): Only convert object to
4728         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
4729
4730 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
4731
4732         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
4733         (and incorrectly set) is_reference field from MonoGenericInst.
4734
4735 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
4736
4737         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
4738         a little earlier.
4739
4740         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
4741
4742         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
4743
4744 2007-03-05  Miguel de Icaza  <miguel@novell.com>
4745
4746         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
4747         FileOptions.1 value to mean "temporary", map that to
4748         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
4749
4750         Fixes 80688
4751
4752 2007-03-03  Marek Habersack  <mhabersack@novell.com>
4753
4754         * appdomain.c: implement MS .Net style shadow copying. Copies of
4755         the assemblies are made in a subdirectory of the dynamic base
4756         directory, the assembly names are preserved.
4757         Copy .mdb and .config files along with the assemblies being shadowed.
4758
4759 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
4760
4761         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
4762         (emit_marshal_handleref): Ditto.
4763
4764         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
4765         on Visual C++. Fixes #80671.
4766
4767 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
4768
4769         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
4770         for clone operations.
4771
4772 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
4773
4774         * marshal.c: Fix warnings.
4775
4776 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
4777
4778         * loader.c: allow case-insensitive matching of the dll name
4779         in dllmap handling when prefixed with "i:".
4780
4781 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
4782
4783         * threads.c: Fix #ifdef for dummy_apc function for VS.
4784
4785 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
4786
4787         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
4788
4789 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
4790         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
4791         giving precedence to the methods with a fully qualified name
4792         (InterfaceName.MethodName) when building the interface sections
4793         of the vtable.
4794
4795 2007-02-16  Dick Porter  <dick@ximian.com>
4796
4797         * threadpool.c (append_job): Fix fast-path array handling, so it's
4798         less likely the array will grow exponentially when the load is
4799         heavy.
4800
4801 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4802
4803         * metadata-internals.h, loader.c: fix dllmap lookup order
4804         for non-function maps, too, and prepare for fallback code.
4805
4806 2007-02-12  Robert Jordan  <robertj@gmx.net>
4807
4808         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
4809         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
4810         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
4811         GlobalFree. Fixes a part of bug #77075.
4812
4813 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
4814
4815         * loader.c: implemented typedef parent in field memberref.
4816
4817 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
4818
4819         * marshal.c: Fix warnings and remember to call Release on
4820         IUnknown of RCW.
4821         
4822         Code is contributed under MIT/X11 license.
4823
4824 2007-02-10  Miguel de Icaza  <miguel@novell.com>
4825
4826         * class-internals.h: Add MonoHandleRef definition, and
4827         handleref_class to mono_defaults. 
4828
4829         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
4830         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
4831
4832         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
4833         (do nothing on this stage)
4834         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
4835         (emit_marshal_handleref): New method, used for argument handling
4836         of HandleRefs. 
4837
4838 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
4839
4840         * class.c (mono_class_setup_parent): Lazily init com types.
4841         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
4842         init com types.
4843         * object.c (mono_remote_class_vtable): Lazily init com types.
4844         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
4845         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
4846         * domain-internals.h: Expose mono_init_com_types.
4847         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
4848         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
4849         Add support for COM Callable Wrapper marshalling.
4850         * marshal.h: Add icall definitions.
4851         * gc.c: Handle freeing of CCWs in finalizer code.
4852         
4853         Code is contributed under MIT/X11 license.
4854
4855 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
4856
4857         * reflection.c: changed all the signature encoding code to use
4858         a variable-sized buffer.
4859
4860 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4861
4862         * marshal.c: locking fixes: never take the loader lock
4863         or other runtime locks when holding the marshal lock
4864         (fixes bug#80664).
4865
4866 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
4867
4868         * marshal.c: make the delegate function pointer mapping
4869         work for the moving GC.
4870
4871 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
4872
4873         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
4874         for bug #80618.
4875
4876 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4877
4878         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
4879         gmodule.
4880
4881 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
4882
4883         * threadpool.c: made the code moving-GC safe.
4884
4885 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
4886
4887         * assembly.c, boehm-gc.c, class-internals.h, class.c,
4888         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
4889         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
4890         warning cleanup.
4891         * reflection.c: warning cleanup, some threading and moving GC fixes.
4892
4893 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
4894
4895         * class.c, loader.c: create the needed Set/Get/Address array methods
4896         as well as the .ctors in mono_class_init (), fixes bug #80567.
4897
4898 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
4899
4900         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
4901         we doesn't decrease its alignment. Should fix the sparc build.
4902
4903 2007-01-24  Dick Porter  <dick@ximian.com>
4904
4905         * socket-io.c
4906         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4907         Create the returned object if we need to ignore an unsupported
4908         socket option.  Fixes a segfault reported by Atsushi.
4909
4910 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
4911
4912         * class.c, object.c: restrict GC-tracked fields to
4913         UIntPtr fields used inside corlib, so we provide better
4914         type info to the GC and also allow broken packing as in
4915         bug #80580.
4916
4917 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
4918
4919         * sgen-gc.c: removed duplicated function.
4920
4921 2007-01-19  Miguel de Icaza  <miguel@novell.com>
4922
4923         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
4924         value that means that the value is not supported, but that we
4925         should not return a failure, but instead report this as a
4926         successful operation.
4927
4928 2007-01-19  Raja R Harinath  <rharinath@novell.com>
4929
4930         Fix tests/bug79956.2.il
4931         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
4932         (mono_generic_class_get_class): If the generic definition in an
4933         enum, copy over other fields related to it.
4934
4935 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
4936
4937         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
4938         genericinst enums (bug #79215).
4939
4940 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
4941         * class.c: Fix bug 80307.
4942
4943 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
4944
4945         * image.c: if the file table is not present, try to load
4946         all the modules, since we don't have info about them
4947         having or not metadata (bug #80517).
4948         * assembly.c: allow mono_assembly_load_references () to
4949         work for netmodules.
4950
4951 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4952
4953         * image.c, metadata-internals.h, object.c: execute module
4954         cctors when running on the 2 runtime if present (bug #80487).
4955
4956 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
4957
4958         * icall.c: optimized InitializeArray() on bigendian.
4959
4960 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
4961
4962         * icall.c: fix for the broken ARM FPA double format.
4963
4964 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
4965
4966         * icall.c: handle endian issues for r4 and r8 types, too, in
4967         the InitializeArray() icall.
4968
4969 2007-01-15  Miguel de Icaza  <miguel@novell.com>
4970
4971         * loader.c (mono_loader_error_prepare_exception): Clear the error
4972         once we have extracted the information from it, do this before we
4973         call into the JIT's class loading mechanisms.
4974
4975         * object.c (mono_class_create_runtime_vtable): Do not clear the
4976         loader error before calling mono_class_get_exception_for_failure
4977         as the loader error is needed inside
4978         mono_class_get_exception_for_failure to throw the error (thinko).
4979
4980         Fixes #80521
4981         
4982 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
4983
4984         * reflection.c: align fields rva data so it's faster to load at
4985         runtime.
4986
4987 2007-01-12  Raja R Harinath  <rharinath@novell.com>
4988
4989         Prepare to simplify GenericMethod handling.
4990         * class-internals.h (mono_method_get_context): New accessor function.
4991         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
4992         rather than directly accessing '->context' field.
4993
4994         * class-internals.h (_MonoGenericParam.method): Move ...
4995         (_MonoGenericContainer): ... here.  Add into union with klass field.
4996         * class.c, icall.c, loader.c, metadata.c, reflection.c:
4997         Update to changes.
4998
4999 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
5000
5001         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
5002         the wrapper type enum and reduce relocations.
5003
5004 2007-01-12  Raja R Harinath  <rharinath@novell.com>
5005
5006         * reflection.c (inflate_mono_method): Reuse method instantiation
5007         from the generic method, if available.
5008
5009 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
5010
5011         * marshal.c (emit_marshal_variant): Fix conv_arg
5012         type in last commit, based on whether parameter is byref.
5013         
5014 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
5015
5016         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
5017         marshalling.
5018         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
5019         MONO_TYPE_OBJECT back for VARIANT support.
5020
5021 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
5022
5023         * marshal.c, marshal.h, icall-def.h: Implement 
5024         Marshal.ReAllocCoTaskMem.
5025
5026 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
5027
5028         * marshal.c: memory retention fixes: use the proper
5029         image cache for runtime_invoke method lookups.
5030
5031 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
5032
5033         * mempool.c: added code to help debug mempool allocations.
5034
5035 2007-01-11  Dick Porter  <dick@ximian.com>
5036
5037         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
5038         support (experimenting with faking it with IP_MTU_DISCOVER for
5039         systems that don't have IP_DONTFRAGMENT.)
5040         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
5041         icall.
5042
5043         * icall-def.h: new System.Net.Sockets.Disconnect icall.
5044
5045         * socket-io.h: Add new fields to MonoSocketAsyncResult
5046         corresponding to the new ones in Socket.cs.
5047
5048 2007-01-11  Raja R Harinath  <rharinath@novell.com>
5049
5050         Fix IronPython regression mentioned in #80249
5051         * metadata.c (do_mono_metadata_parse_generic_class): Clear
5052         'cached_context' field, since it may have been initialized as a
5053         side-effect of metadata parsing.
5054
5055         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
5056         (_MonoGenericClass.cached_class): Move here and rename from lone
5057         remaining field of ...
5058         (_MonoInflatedGenericClass): ... this.  Remove.
5059         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
5060         to changes.
5061
5062         Fix mcs/tests/test-128.cs regression.
5063         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
5064         2007-01-10 change below.
5065         [MONO_TYPE_OBJECT]: Recurse into array case.
5066
5067 2007-01-11  Raja R Harinath  <harinath@gmail.com>
5068
5069         * class-internals.h (mono_get_inflated_generic_class): Remove.
5070         * class.c (mono_get_inflated_generic_class): Remove.
5071         (mono_generic_class_get_class): Rename from
5072         mono_class_create_generic.
5073         (mono_class_from_mono_type) [GENERICINST]: Use it.
5074         * reflection.c, metadata.c: Update to changes.  Use
5075         'mono_class_from_mono_type'.
5076
5077 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
5078
5079         * reflection.c: use passed type when encoding an array element
5080         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
5081
5082 2007-01-09  Robert Jordan  <robertj@gmx.net>
5083
5084         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
5085         result arguments (someDelegate.EndInvoke (unrelatedAres)).
5086         Fixes bug #80392.
5087
5088 2007-01-09  Raja R Harinath  <rharinath@novell.com>
5089
5090         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
5091
5092         * object.c (set_value): Avoid aliasing between type->data.klass
5093         and type->data.generic_class.
5094
5095         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
5096
5097 2007-01-08  Raja R Harinath  <rharinath@novell.com>
5098
5099         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
5100         between type->data.klass and type->data.generic_class.
5101
5102 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
5103
5104         * marshal.c: In MS.NET, StringBuilder objects are not copied by
5105         value in out parameters.
5106
5107 2007-01-08  Raja R Harinath  <rharinath@novell.com>
5108
5109         Simplify invariant for MonoGenericClass::klass field.
5110         * class.c (mono_class_create_generic): Verify 'klass' is null.
5111         * metadata.c (do_mono_metadata_parse_generic_class): Don't
5112         initialize 'klass' field.
5113
5114 2007-01-05  Raja R Harinath  <rharinath@novell.com>
5115
5116         Ongoing work to avoid redundant data and simplify invariants.
5117         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
5118         'generic_class', and change type to a GenericInst.
5119         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
5120         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
5121
5122 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
5123
5124         * class.c : skip io-layer under PLATFORM_WIN32.
5125
5126 2007-01-03  Tor Lillqvist  <tml@novell.com>
5127
5128         Fix #80305: In a bundled executable, look in the bundled exe
5129         assembly to determine the runtime version. Add the possibility to
5130         bundle also the machine.config file.
5131         
5132         * assembly.c (mono_assembly_open_from_bundle): Make
5133         non-static. Allow being called even if we have no bundled
5134         assemblies, and return NULL right away in that case.
5135
5136         * domain-internals.h: Declare mono_assembly_open_from_bundle()
5137         here.
5138
5139         * domain.c (app_config_parse): Take an assembly exe file name as
5140         parameter instead of a config file name. Check for a bundled
5141         config file for that assembly by calling
5142         mono_config_string_for_assembly_file() (see below) before looking
5143         for one in the file system.
5144         (get_runtimes_from_exe): Corrsponding change to call of
5145         app_config_parse().
5146         (get_runtimes_from_exe): Check for bundled assembly exe file first
5147         by calling mono_assembly_open_from_bundle(). If no bundled
5148         assembly exe file is found, call mono_image_open() as before to
5149         look it up in the file system.
5150
5151         * mono-config.c: Add variable bundled_machinec_onfig.
5152         (mono_config_string_for_assembly_file): New function.
5153         (mono_config_for_assembly): Move code snippet that looks for a
5154         bundled assembly .config file into the above new function. Call
5155         it.
5156         (mono_register_machine_config, mono_get_machine_config): New
5157         functions to set and retrieve
5158
5159         * assembly.h: Declare mono_register_machine_config().
5160
5161         * mono-config.h: Declare mono_get_machine_config() and
5162         mono_config_string_for_assembly_file().
5163
5164         * icall.c: No declaration of environ necessary on Win32. It is
5165         declared (as a macro expanding to a function call) in stdlib.h.
5166         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
5167         New internal mono function. Returns the value of
5168         mono_get_machine_config() as a Mono string.
5169
5170         * icall-def.h: Add get_bundled_machine_config().
5171
5172 2007-01-04  Raja R Harinath  <rharinath@novell.com>
5173
5174         Remove redundant field
5175         * class-internals.h (_MonoGenericContext.container): Remove field.
5176         * loader.c (mono_method_get_signature_full): Don't parse a
5177         "container" for a signature parse when the signature is inflated
5178         immediately.
5179         (method_from_methodspec): Likewise, for a generic_inst.
5180         * class.c, metadata.c, reflection.c: Update to changes.
5181
5182 2006-01-04  Raja R Harinath  <rharinath@novell.com>
5183
5184         * class-internals.h (_MonoGenericClass): Rename 'context' field to
5185         'cached_context', and change semantics -- it starts off NULL, and
5186         is initialized on demand.
5187         * class.c (mono_generic_class_get_context): New accessor to
5188         replace 'context' field accesses.
5189         (mono_class_get_context): New helper.
5190         (*): Update to changes.
5191         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
5192
5193 2007-01-03  Miguel de Icaza  <miguel@novell.com>
5194
5195         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
5196         before the memcpy.   Fixes Marshal2 regression.
5197
5198 2007-01-02  Jb Evain  <jbevain@gmail.com>
5199
5200         * blob.h: add a MONO_TYPE_ENUM definition
5201         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
5202         fix the encoding of arrays of enums in custom attributes.
5203
5204         Fixes #79666.
5205
5206 2007-01-01  Miguel de Icaza  <miguel@novell.com>
5207
5208         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
5209         string is null terminated, but only cut the string short if it
5210         overflows the buffer.   
5211         
5212         (mono_string_to_byvalstr): Also fix this routine.   The code here
5213         was not properly terminating a string (it was only terminated
5214         because of the previous catch-all memset). 
5215
5216         I left the memset, because I do not know if applications expect
5217         the runtime to clear this region. 
5218
5219         Fixes #79944.
5220
5221         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
5222         Clear the error before returning to unmanaged code to prevent the
5223         runtime from being confused later on (fixes  80420).
5224         (ves_icall_type_from_name): Always call mono_loader_clear_error
5225         after parsing a type that could have failed.
5226         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
5227
5228         * loader.c (mono_loader_clear_error): Fix indentation.
5229
5230 2006-12-28  Martin Baulig  <martin@ximian.com>
5231
5232         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
5233
5234 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
5235
5236         * reflection.c: patch from Rolf Bjarne Kvinge to fix
5237         getting a token for an EnumBuilder.
5238
5239 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
5240
5241         * reflection.c: be more careful in case resource generation
5242         fails to create the data array.
5243
5244 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
5245
5246         * sgen-gc.c: write barrier for clone and fix unregister handles.
5247
5248 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
5249
5250         * reflection.c: some fixes needed in the generics code for the moving GC.
5251
5252 2006-12-22  Robert Jordan  <robertj@gmx.net>
5253
5254         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
5255         account. Fixes bug #80299.
5256
5257 2006-12-21  Raja R Harinath  <rharinath@novell.com>
5258
5259         Fix WaitHandle usage in delegates.
5260         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
5261         * object.c (mono_wait_handle_new): Use the property set method to
5262         initialize the handle.
5263         (mono_wait_handle_get_handle): New.
5264         * threadpool.c (mono_async_invoke): Use it.
5265         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
5266         Likewise.
5267         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
5268
5269 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
5270
5271         * marshal.c (emit_marshal): Call emit_marshal_variant and
5272         emit_marshal_com_interface when applicable.
5273         (emit_marshal_variant, emit_marshal_com_interface): Add
5274         methods for this case and remove if's from emit_marshal_object.
5275         
5276 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
5277
5278         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
5279
5280 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
5281
5282         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
5283         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
5284         and GlobalFree on Windows. Remove FIXME.
5285
5286 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5287
5288         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
5289         implementation for managed objects.
5290
5291 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
5292
5293         * object.c: implemented code to be used for checking
5294         that no reference field overlaps with non-references.
5295
5296 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5297
5298         * threadpool.c: fix queue code to be compatible with the
5299         moving GC.
5300
5301 2006-12-18  Miguel de Icaza  <miguel@novell.com>
5302
5303         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
5304         in structures by throwing ArgumentNullException.
5305
5306         (emit_marshal_safehandle): Also when they are null parameters.
5307
5308         (emit_marshal_safehandle): Add support for ref
5309         SafeHandles parameters
5310
5311 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5312
5313         * profiler.c: updated to use the mono-dl API instead of
5314         gmodule.
5315
5316 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5317
5318         * profiler.c: updated to use the mono-dl dynamic loading
5319         API instead of gmodule.
5320
5321 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
5322
5323         * profiler.c: use readlink, older versions of glib don't have
5324         g_file_read_link ().
5325
5326 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5327
5328         * profiler.c: try to detect the path to mono if libc fails to provide
5329         a useful name (bug #80286).
5330
5331 2006-12-16  Raja R Harinath  <rharinath@novell.com>
5332
5333         Fix #80242
5334         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
5335         instance, use the generic type definition instead.
5336         (ves_icall_Type_GetNestedTypes): Likewise.
5337         * class.c (mono_class_create_generic): Always set the
5338         nested_classes of a generic instance to NULL, even if the generic
5339         type definition has nested types.
5340
5341 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
5342
5343         * marshal.c (mono_string_from_bstr): Revert previous Windows change
5344         and fix on Linux.
5345         
5346 2006-12-15  Miguel de Icaza  <miguel@novell.com>
5347
5348         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
5349         my arguments were in the wrong order.   I also fixed the Windows
5350         version which seems to have had the same issue.
5351
5352         (mono_free_bstr): On Unix, this is g_free.
5353         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
5354         conversions (for the tests in corlib to pass).
5355
5356 2006-12-14  Miguel de Icaza  <miguel@novell.com>
5357
5358         * marshal.c (emit_ptr_to_object_conv): For now, ignore
5359         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
5360         exception if a ref SafeHandle in a struct has changed).
5361         
5362         (emit_struct_conv): Do not perform layout checks for classes
5363         derived from SafeHandle, as those are specially handled. 
5364
5365         (emit_object_to_ptr_conv): Add support for
5366         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
5367
5368         (emit_marshal_safehandle): Implement conversion of return values
5369         of safehandles (MARSHAL_ACTION_CONV_RESULT).
5370         
5371         * threads.c: WaitHandle now is compiled with two different handles
5372         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
5373         for 2.0.
5374         
5375         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
5376         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
5377         these routines to cope with both kinds of fields.
5378
5379 2006-12-12  Miguel de Icaza  <miguel@novell.com>
5380
5381         * metadata.c (mono_type_to_unmanaged): Handle the case where
5382         type->data.klass is a SafeHandle, and in that case, return the
5383         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
5384         MONO_MARSHAL_CONV_SAFEHANDLE. 
5385
5386 2006-12-11  Miguel de Icaza  <miguel@novell.com>
5387
5388         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
5389         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
5390         calling emit_marshal_object.
5391
5392         (emit_marshal_safehandle): Implement marshalling of
5393         SafeHandle parameters (no ref support yet).
5394
5395         (MarshalAction): Document the defines as I implement
5396         them for SafeHandle.
5397
5398         (emit_marshal_object): indentation police.
5399
5400         * class-internals.h: Define MonoSafeHandle.
5401         Add safehandle_class to MonoDefaults type.
5402
5403         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
5404         list of classes to check for fields. 
5405
5406         * domain.c (mono_init_internal): Add SafeHandle to the list of
5407         mono_defaults loaded.
5408
5409 2006-12-15  Raja R Harinath  <rharinath@novell.com>
5410
5411         Fix #80253
5412         * reflection.c (mono_reflection_bind_generic_parameters): If the
5413         generic type definition is a type builder, ensure that it is fully
5414         initialized before instantiating it.  Kill some dead code.
5415
5416 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
5417
5418         * object.c: clear the loader_error () before loading
5419         more metadata stuff (bug #80258).
5420
5421 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
5422
5423         * icall.c, icall-defs.h: type modifiers icalls for
5424         parameters and properties.
5425
5426 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
5427
5428         * object.c, icall.c: fixed warnings.
5429
5430 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
5431
5432         * marshal.c: fixed a couple of leaks and coding style in a few places.
5433
5434 2006-12-08  Dick Porter  <dick@ximian.com>
5435
5436         * process.c: Cope with NULL ProcessStartInfo arguments on windows
5437         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
5438         80173.
5439
5440 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
5441
5442         * process.c: ProcessStartInfo may have only filename set and
5443         arguments can be NULL.
5444
5445 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5446
5447         * icall.c: fix leak found by Robert Jordan.
5448
5449 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
5450
5451         * marshal.c, marshal.h: generate managed method to access an element
5452         of a multi-dimensional array.
5453
5454 2006-11-30  Paolo Molaro (lupus@ximian.com)
5455
5456         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
5457
5458 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5459
5460         * icall.c: back out GetFields () fix until the serialization code is
5461         fixed to not depend on the incorrect behaviour.
5462
5463 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
5464
5465         * profiler.c: provide defaults if none are set.
5466
5467 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
5468
5469         * Makefile.am, attrdefs.h: new public header file with
5470         constants for attributes for use by embedders.
5471
5472 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
5473
5474         * icall.c: GetFields () fix for bug #80064.
5475
5476 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
5477
5478         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
5479         removed long unused icalls.
5480
5481 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
5482   
5483         * marshal.c: 
5484                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
5485                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
5486                 can be generated without a delegate class.
5487                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
5488         
5489         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5490
5491 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5492
5493         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
5494         #80069.
5495
5496 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5497
5498         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
5499         icall-def.h: added icalls needed by System.GC.
5500
5501 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
5502
5503         * loader.c: ensure the class in catch clauses is handled
5504         correctly for generics methods (fixes bug#79980).
5505
5506 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
5507
5508         * monitor.h, monitor.c: added mono_locks_dump () function
5509         to help debug deadlocks involving managed locks.
5510
5511 2006-11-13  Dick Porter  <dick@ximian.com>
5512
5513         * file-io.c (get_file_attributes): If the file is a symlink try
5514         and get the stat data for the target, but also add the
5515         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
5516         the specs for the windows symlink support, but will probably have
5517         to be reworked when I have test data from a vista machine.  Fixes
5518         bug 79887.
5519
5520 2006-11-13  Dick Porter  <dick@ximian.com>
5521
5522         * gc.c (mono_domain_finalize): 
5523         * marshal.c (mono_delegate_begin_invoke): 
5524         * threadpool.c (socket_io_init, mono_thread_pool_init)
5525         (mono_thread_pool_finish): 
5526         * monitor.c (mono_monitor_try_enter_internal): 
5527         * threads.c (mono_thread_resume, mono_thread_init)
5528         (mono_thread_suspend_all_other_threads)
5529         (mono_thread_execute_interruption): 
5530         * appdomain.c (mono_domain_unload): Check for NULL error returns
5531         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
5532         75733.
5533
5534 2006-11-11  Miguel de Icaza  <miguel@novell.com>
5535
5536         * process.c
5537         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
5538         Only close the handle if the value of the handle is not
5539         INVALID_HANDLE_VALUE.  This just makes the process a bit more
5540         robust.
5541
5542         Improvement for #75733, so that we do not run into this problem. 
5543
5544         
5545         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
5546         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
5547         internal variables.  Fixes #79462 
5548         
5549
5550 2006-11-09  Dick Porter  <dick@ximian.com>
5551
5552         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5553         Use poll() not select().  Fixes bug 79397.
5554
5555 2006-11-09  Raja R Harinath  <rharinath@novell.com>
5556
5557         Fix #79872
5558         * assembly.c (mono_assembly_load_from_full): Check that the given
5559         image has an assembly manifest.
5560
5561 2006-11-09  Ankit Jain  <jankit@novell.com>
5562
5563         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
5564         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
5565         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
5566
5567 2006-11-07  Dick Porter  <dick@ximian.com>
5568
5569         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5570         Put the old resolver behaviour back for pre-2.0 profiles.
5571
5572 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5573
5574         * threadpool.c: precise GC and locking fixes.
5575
5576 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
5577
5578         * class.c: don't load types that have an explicit unaligned
5579         managed reference. Provide better info in the TypeLoad exception.
5580         Part of the fix for bug #79744.
5581         * object.c: use the correct check for class type load issues.
5582
5583 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5584
5585         * class.c: enforce alignment of fields with managed references
5586         even when Pack=1 is forced by the user (bug #77788).
5587
5588 2006-11-03  Dick Porter  <dick@ximian.com>
5589
5590         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
5591         If the address reverse lookup fails, return it as the hostname
5592         anyway.  Fixes bug 79721.
5593
5594 2006-11-03  Dick Porter  <dick@ximian.com>
5595
5596         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
5597         Fix build on Windows.
5598
5599 2006-11-02  Dick Porter  <dick@ximian.com>
5600
5601         * icall-def.h: 
5602         * object-internals.h: 
5603         * exception.c (mono_get_exception_thread_interrupted): 
5604         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
5605         Fixes bug 74525.
5606
5607         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
5608         Check for pending Thread.Interrupt.
5609
5610 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
5611         * loader.c: Fixed bug 79684.
5612
5613 2006-10-27  Dick Porter  <dick@ximian.com>
5614
5615         * file-io.c (get_file_attributes): Force symlinks to directories
5616         to be returned as a regular file.  Fixes bug 79733.
5617 2006-10-26  Dick Porter  <dick@ximian.com>
5618
5619         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
5620         CreateFile to open a directory then we need to set the
5621         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
5622
5623 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
5624
5625         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
5626         friends.
5627
5628 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5629
5630         * sgengc.c: small cleanup of timer code.
5631
5632 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
5633
5634         * sgen-gc.c: fix some warnings and start adding support for
5635         complete object removal on domain unload.
5636
5637 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
5638
5639         * assembly.c: build_assembly_name should not consider a version
5640         number without build or revision number invalid. Fixes bug #79715.
5641
5642 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
5643
5644         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
5645         call kernel32 function OutputDebugString directly.
5646         
5647         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
5648         
5649 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
5650
5651         * reflection.c: small cleanup, using a function to insert a MonoString
5652         in the string heap.
5653
5654 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
5655
5656         * reflection.c: moving GC fixes.
5657
5658 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
5659
5660         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
5661         all the objects with finalizers belonging to an unloading appdomain.
5662
5663 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
5664
5665         * sgen-gc.c: added ability to allocate even when the nursery is fully
5666         pinned and fixed a couple of bugs.
5667
5668 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
5669
5670         * threads.h: Revert the last change for now.
5671
5672         * threads.h (mono_thread_get_pending_exception): Rename this to
5673         mono_thread_get_undeniable_exception ().
5674
5675 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
5676
5677         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
5678         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
5679         when fname does not refer to valid assembly. This result in a more
5680         meaningful error message.
5681         * exception.c: added mono_get_exception_bad_image_format2 which 
5682         constructs a BadImageFormatException using the ctor taking a custom
5683         message and the file name. Passing in a NULL msg results in a default
5684         message.
5685         * exception.h: define mono_get_exception_bad_image_format2 function.
5686         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
5687         when file name pointed to an invalid IL image. Use 
5688         mono_get_exception_file_not_found2 to construct FileNotFoundException,
5689         as this results in a more meaningful error message.
5690
5691 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
5692
5693         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
5694         #79465.
5695
5696 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
5697
5698         * metadata.c (mono_type_size): Change the align parameter to guint32 for
5699         consistency with the other _size functions.
5700         (mono_type_stack_size): Ditto.
5701
5702         * class.c object.c icall.c: Fix warnings caused by the above change.
5703
5704         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
5705
5706         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
5707
5708         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
5709
5710 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
5711
5712         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
5713         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
5714         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
5715         threadpool.h, threads-types.h: mark more internal functions.
5716
5717 2006-10-11  Dick Porter  <dick@ximian.com>
5718
5719         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
5720         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
5721         reproduce the bug even before applying the fix.)
5722
5723 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
5724
5725         * reflection.c: allow retrieving attributes for arguments in generic
5726         methods (bug #79241).
5727
5728 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
5729
5730         * debug-mono-symfile.c: properly check fopen () result (found by
5731         coverity).
5732
5733 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
5734
5735         * reflection.c: make error message clearer and fixed two
5736         issuelets found by Coverity.
5737
5738 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
5739
5740         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
5741
5742 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
5743
5744         * object-internals.h, gc-internal.h, profiler-private.h:
5745         mark internal functions.
5746
5747 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
5748
5749         * reflection.c: put data in the text section.
5750         * icall.c: recognize more types in type_from_typename ().
5751         * process.c, marshal.c: added some GC FIXMEs.
5752
5753 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5754
5755         * loader.c: check for NULL before initializing.
5756
5757 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
5758
5759         * gc.c (finalizer_thread): Use a non-alertable wait here.
5760
5761         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
5762         until the correct solution is found.
5763
5764 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
5765
5766         * reflection.c (mono_module_get_object): Avoid an assert when operating on
5767         modules with no metadata. Fixes #79596.
5768
5769         * image.c (load_metadata_ptrs): Put back the error message when
5770         the #- heap is encountered since the support is not complete yet.
5771
5772 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
5773
5774         * gc.c: do not allow the user to SuppressFinalize () a
5775         delegate because it would leak the trampoline if present.
5776
5777 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
5778
5779         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
5780         PropertyPtr table.
5781
5782 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
5783
5784         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
5785
5786         * metadata.c (mono_metadata_get_param_attrs): Ditto.
5787
5788         * row-indexes.h: Add definitions for *Ptr tables.
5789
5790         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
5791
5792         * metadata.c (mono_metadata_translate_token_index): New helper function to
5793         translate table indexes used in uncompressed metadata.
5794         (mono_metadata_decode_table_row): Ditto.
5795         (mono_metadata_decode_table_row_col): Ditto.
5796
5797         * metadata.c: Add table schema for *Ptr tables.
5798
5799         * class.c loader.c: Use the new helper function to access the affected metadata
5800         tables.
5801         
5802         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
5803         #38532.
5804         
5805 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
5806
5807         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
5808         sequences which can be unbounded in size. Fixes #79583.
5809
5810 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
5811
5812         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
5813         static initialization.
5814
5815         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
5816
5817         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
5818
5819         * domain.c (mono_domain_free): Free up type_init_exception_hash.
5820
5821         * object.c (mono_runtime_class_init): Implement correct semantics when a static
5822         ctor fails, i.e. throw the same exception on subsequent accesses.
5823         
5824 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
5825
5826         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
5827         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
5828         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
5829         Handle marshalling of interfaces and VARIANTs contained in structs.
5830         
5831         Code is contributed under MIT/X11 license.
5832         
5833 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
5834
5835         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
5836         
5837         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
5838         mempool.
5839
5840 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5841
5842         * console-io.c: ignore previous SIGINT handler.
5843
5844 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
5845
5846         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
5847         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
5848         #79460, #79461, #79485.
5849
5850         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
5851
5852         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
5853         #79217.
5854
5855 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
5856
5857         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
5858         could be generated from it.
5859
5860 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
5861
5862         * rand.c: fix read loop to correctly handle EINTR.
5863
5864 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5865
5866         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
5867         internal calls are defined to keep methods closer to the declaring
5868         type and allow a significant reduction in runtime relocations and
5869         memory usage.
5870
5871 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
5872
5873         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
5874         exception message to have FileNotFoundException use the default
5875         assembly load error message. Fixes bug #79426.
5876         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
5877
5878 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5879
5880         * threadpool.c: (start_thread_or_queue) use the root domain when
5881         creating the thread instead of the async object one.
5882
5883 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
5884
5885         * class.c, object.c, class-internals.h, reflection.c:
5886         for arrays, store element_size inside MonoClass (speedup
5887         for array object creation).
5888
5889 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
5890
5891         * icall.c: fixed CodeBase to use the file name and not the module
5892         name (bug #79365).
5893
5894 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5895
5896         * mono-debug.c, mono-debug.h: export find_method as
5897         mono_debug_find_method ().
5898
5899 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
5900
5901         * debug-helpers.c, class-internals.h: added a few functions useful
5902         when debugging under gdb.
5903
5904 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5905
5906         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
5907         characters that need special handling.
5908
5909 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
5910
5911         * mono-config.c: make the os/cpu specification more flexible,
5912         allowing lists and negation.
5913
5914 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
5915
5916         * marshal.c: COM Interop fixes. Handle case where method->klass.
5917         is interface. Handle BSTR/MonoString when null. Use CDECL as 
5918         calling convention on non-windows platforms. This is for
5919         compatibility with XPCOM and MainWin COM.
5920         
5921         Code is contributed under MIT/X11 license.
5922         
5923
5924 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
5925
5926         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
5927         correctly. Fixes #79217.
5928
5929         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
5930
5931 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
5932
5933         * mono-config.c: allow both an os and cpu attribute for dllmap
5934         and dllentry elemnets to enable a single config file to be used
5935         for multiple architectures.
5936
5937 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
5938
5939         * loader.c: MonoLoaderError was cleared too soon on load failure.
5940         Fixes bug #79424.
5941
5942 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
5943
5944         * icall.c: use the defining class vtable when accessing a
5945         static field, not a pobblibly derived class.
5946
5947 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
5948
5949         * icall.c string-icalls.c: Remove references to unicode.h.
5950
5951         * unicode.h unicode.c Makefile.am: Remove these unused source files.
5952
5953         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
5954
5955         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
5956         indicating the image where custom marshaller types should be looked up.
5957         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
5958         custom marshallers, instead of corlib. Fixes #79425.
5959
5960 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
5961
5962         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
5963
5964 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
5965
5966         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
5967         Implement Environment.ProcessorCount.
5968         
5969         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
5970         Implement Environment.ProcessorCount.
5971         
5972         * icall.c: 
5973         Add Environment.ProcessorCount icall.
5974         
5975         Patch by Jason McFall.
5976
5977 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5978
5979         * assembly.c: don't append .exe/.dll when the filename already contains
5980         one of those extensions.
5981
5982 2006-09-12  Martin Baulig  <martin@ximian.com>
5983
5984         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
5985         to array interfaces.
5986
5987 2006-09-11  Martin Baulig  <martin@ximian.com>
5988
5989         * reflection.c (mono_image_build_metadata): Create the
5990         MethodImpl's after emitting all types and methods, so we don't
5991         need another fixup pass for them.
5992
5993 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
5994
5995         * class.c (mono_class_from_name_case): Fix regression introduced by the last
5996         change.
5997
5998 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
5999
6000         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
6001         unload.
6002
6003 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
6004
6005         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
6006         args is not set. Fixes #78926.
6007
6008 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
6009
6010         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
6011
6012         * image.c (load_class_names): Move this to class.c, and rename it to 
6013         'mono_image_init_name_cache'.
6014         (load_modules): Fix a warning.
6015
6016         * class.c icall.c image.c: Initialize image->name_cache lazily.
6017
6018         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
6019         on its name using information in the AOT file.
6020
6021         * class.c (mono_class_from_name): Use the new hook function.
6022
6023 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
6024
6025         * reflection.c (mono_param_get_objects): Handle enum default parameter values
6026         correctly.
6027
6028         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
6029         Fixes #79289.
6030         
6031 2006-09-06  Martin Baulig  <martin@ximian.com>
6032
6033         * icall.c (mono_lookup_internal_call): Small fix.
6034
6035 2006-09-05  Raja R Harinath  <rharinath@novell.com>
6036
6037         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
6038         double g_free.
6039
6040 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
6041
6042         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
6043         when --debug is specified.
6044
6045 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
6046
6047         * class.c (setup_generic_array_ifaces): Fix a warning.
6048
6049 2006-09-04  Miguel de Icaza  <miguel@novell.com>
6050
6051         * Temporarily remove the patch to assemly.c that checks the
6052         assembly versions as it breaks our gacutil.
6053
6054 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
6055
6056         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
6057
6058         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
6059         a net 1.0 runtime.
6060
6061         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
6062         created using the default ctor. Fixes #79152.
6063         (mono_string_builder_to_utf16): Ditto.
6064
6065 2006-09-01  Martin Baulig  <martin@ximian.com>
6066
6067         Fix handling of the generic array interfaces.
6068
6069         * class-internals.h
6070         (MonoDefaults): Removed `generic_array_class' and added
6071         `generic_ilist' class.
6072
6073         * class.c
6074         (mono_bounded_array_class_get): Add the new generic array interfaces.
6075         (setup_generic_array_ifaces): New static method; create vtable
6076         entries for each method in the generic array interfaces.
6077
6078         * metadata.c
6079         (select_container): Allow "parent-less" generic methods.
6080
6081         * marshal.c
6082         (mono_marshal_get_generic_array_helper): New public method.
6083
6084         * icall.c
6085         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
6086         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
6087         moved the interncall into System.Array.
6088
6089 2006-09-01  Raja R Harinath  <rharinath@novell.com>
6090
6091         A few more cases of avoiding work on types with ->byref set.
6092         Has the real fix for #79238
6093         * icall.c (is_generic_parameter): New helper.
6094         (ves_icall_Type_GetGenericParameterPosition): Use it.
6095         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
6096         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
6097         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
6098         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
6099         reference types.
6100         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
6101         reference types.
6102         (ves_icall_Type_get_IsGenericInstance): Likewise.
6103         (ves_icall_Type_get_IsGenericType): Likewise.
6104
6105 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
6106
6107         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
6108         class if possible.
6109
6110         * mempool.h (mono_mempool_get_allocated): New helper function.
6111
6112         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
6113         change.
6114
6115         * mempool.c: Fix warnings and the calculation of stats.
6116
6117         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
6118
6119         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
6120
6121         * loader.c (mono_get_method_from_token): Update method_count stat.
6122
6123         * class-internals.h (MonoStats): Add some stats.
6124
6125 2006-08-31 Robert Jordan  <robertj@gmx.net>
6126
6127         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
6128         with managed variants.
6129         All code is contributed under the MIT/X11 license.
6130         
6131 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
6132
6133         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
6134         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
6135
6136         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
6137
6138         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
6139         with cycles in classes.
6140
6141         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
6142
6143         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
6144         missing a [MarshalAs] directive. Fixes #79203.
6145
6146         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
6147         klass->marshal_info. Fixes #79217.
6148
6149 2006-08-30  Martin Baulig  <martin@ximian.com>
6150
6151         Committing a patch from Joachim Ante <joe@otee.dk>:
6152         Add support for binary data symbol stores.
6153
6154         * debug-mono-symfile.c
6155         (mono_debug_open_mono_symbol_file): Renamed into
6156         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
6157         arguments.
6158
6159         * mono-debug.c
6160         (mono_debug_open_image): Added `raw_contents' and `size' args.
6161         (mono_debug_init_2_memory): New public function.
6162
6163 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
6164
6165         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
6166
6167 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6168
6169         * appdomain.c: implement support for ShadowCopyFiles.
6170
6171 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
6172
6173         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
6174         when value is NULL (and should remove CID #51).
6175
6176 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6177
6178         * image.c: moved 2 functions to ../utils.
6179
6180 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
6181
6182         * gc.c: cope with the target object of a GC handle being NULL
6183         (bug #78877).
6184
6185 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
6186
6187         * class.c: recursively check parent's explicit implementations
6188         of interface methods (fixes bug #79125).
6189
6190 2006-08-19  Miguel de Icaza  <miguel@novell.com>
6191
6192         * filewatcher.c: Avoid warnings when building, do not redefine
6193         constants that are defined.
6194
6195         Remove warnings.
6196
6197 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6198
6199         * image.c: don't fail when the link points to an absolute path.
6200
6201 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
6202
6203         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
6204         Fix CID #3.
6205
6206 2006-08-17  Miguel de Icaza  <miguel@novell.com>
6207
6208         * image.c (full_path): A new method used to obtain the actual path
6209         of an assembly even in the presence of symbolic links.  
6210
6211         This is necessary for the case where we are running a binary that
6212         has been GACed, but we are using the "published" path name
6213         ($prefix/mono/1.0/blah.exe) which happens to point to the real
6214         file in the GAC.
6215
6216         This was the source of the failure for the `xsp' command with the
6217         recent AppDomain changes, as far as the runtime was concerned,
6218         there were two different assemblies: $prefix/mono/1.0/blah.exe and
6219         $prefix/mono/gac/blah/version/blah.exe.
6220
6221         (do_mono_image_open): use full path
6222
6223 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
6224
6225         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
6226
6227 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
6228
6229         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
6230         domain_id is supplied. Fix CID #241 and corlib's unit tests.
6231
6232 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
6233
6234         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
6235         small structures. Fixes #78990.
6236
6237 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
6238
6239         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
6240
6241         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
6242
6243 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6244
6245         * appdomain.c:
6246         * marshal.c: don't load all the assemblies from a domain into newly
6247         created ones. The new domains might have different rules and load
6248         assemblies from different locations. Fixes bug #76757.
6249
6250         Patch by Lluis. Conflicts resolved by Brian Crowell.
6251
6252 2006-08-16  Alp Toker  <alp@atoker.com>
6253
6254         * socket-io.c: First half of the fix for #79084.
6255         Set sa_size to the length of the content, not that of the struct.
6256         Don't add NULL suffix to the content, this should be done in
6257         managed code if needed.
6258
6259 2006-08-14  Raja R Harinath  <rharinath@novell.com>
6260
6261         Fix part of #79012
6262         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
6263         mono_metadata_parse_type returns NULL.
6264
6265 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
6266
6267         * normalization-tables.h : new file for string normalization data.
6268         * locales.c, locales.h, icall.c :
6269           added load_normalization_resource() for string normalization,
6270           and icall as well.
6271         * Makefile.am : added normalization-tables.h to the sources.
6272
6273 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
6274
6275         * marshal.c: Add more helper functions to reduce code duplication and use them
6276         everywhere.
6277
6278 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
6279
6280         * marshal.c: Fix non-x86 stdcall warnings.
6281         
6282         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
6283         them everywhere.
6284
6285 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
6286
6287         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
6288         type check on multi-dimensional arrays. Fixes #79000.
6289
6290 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
6291
6292         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
6293         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
6294         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
6295         * class-internals.h: add is_com_object to class structure.
6296         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
6297         null checks to COM object marshalling. Fix .ctor call on RCW.
6298         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
6299         
6300         All code is contributed under the MIT/X11 license.
6301
6302 2006-08-09  Dick Porter  <dick@ximian.com>
6303
6304         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
6305         racing mono_monitor_allocator_lock() somewhere, so don't delete
6306         the critical section for now.  Found by running and exiting
6307         monodevelop.
6308
6309 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
6310
6311         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
6312         (ves_icall_System_ComObject_FindInterface): Ditto.
6313         (ves_icall_System_ComObject_CacheInterface): Ditto.
6314
6315         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
6316         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
6317
6318 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6319
6320         * threadpool.c: treat pipes from process asynchronous reads as sockets
6321         when reading from them, so we get select/poll or epoll to wait for
6322         data.
6323
6324 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
6325
6326         * loader.c: Fix a typo (CID #233) in the null check.
6327
6328 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
6329
6330         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
6331         Hopefully fixes #78949.
6332         
6333         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
6334         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
6335         bytes. Fixes #78972.
6336
6337 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6338
6339         * filewatcher.c: we need to set errno here.
6340
6341 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6342
6343         * filewatcher.c: let Win32Exception get the error value.
6344
6345 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6346
6347         * filewatcher.c: translate errno into win32 errors for Win32Exception
6348         to know what happened.
6349
6350 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
6351
6352         * threadpool.c: Fix more warnings.
6353
6354         * assembly.c (search_loaded): Fix warnings.
6355
6356         * threadpool.c (mono_thread_pool_finish): Fix warnings.
6357         (mono_async_invoke): Ditto.
6358
6359 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
6360
6361         * object.c (mono_remote_class_vtable): Need to create proxy vtable
6362         entries for __ComObject type in addition to ComImport types.
6363         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
6364         about hash table.
6365         
6366         All code is contributed under the MIT/X11 license.
6367
6368 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
6369
6370         * image.c: avoid tentative loading of modulerefs that contain
6371         no metadata (P/Invoke library names).
6372
6373 2006-07-28  Dick Porter  <dick@ximian.com>
6374
6375         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
6376         mono_loader_lock() somewhere, so don't delete the critical section
6377         for now.  Found by running and exiting monodevelop.
6378
6379 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6380
6381         * filewatcher.c: define the inotify syscalls when we're building on
6382         linux and have sys/syscall.h. The build system might not have support
6383         for inotify but the target system might have it.
6384
6385 2006-07-26  Miguel de Icaza  <miguel@novell.com>
6386
6387         * domain.c: Documentation updates.
6388
6389         * loader.c (mono_free_method): Do not release the method
6390         information if we are being profiled, as profilers will use this
6391         information at shut down to present some data to the user.
6392
6393         This is needed so that the profiler does not crash, as the
6394         profiler tends to keep MonoMethods around, and they might become
6395         invalid if we free these.
6396
6397         (mono_get_method_constrained): Return the original CIL stream
6398         method as well, so verification can be performed against it.
6399
6400 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6401
6402         * filewatcher.[ch]: support for inotify file system watcher.
6403         * icall.c: add new internal calls for the inotify file system watcher.
6404
6405 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6406
6407         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
6408         #78888.
6409
6410 2006-07-20  Dick Porter  <dick@ximian.com>
6411
6412         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
6413         warning.
6414
6415 2006-07-20  Dick Porter  <dick@ximian.com>
6416
6417         * threads.c (start_wrapper): Do the thread cleanup while we still
6418         hold a reference to its object.  Fixes bug 78123.
6419
6420 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
6421
6422         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
6423         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
6424           "managed-to-managed".
6425         * icall.c: Redirect string constructors that take sbyte* to
6426           ves_icall_System_String_ctor_RedirectToCreateString.
6427         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
6428           to CreateString () methods with matching signature.
6429         * reflection.c: Use original security informations for
6430           MONO_WRAPPER_MANAGED_TO_MANAGED.
6431         * security-manager.c: Use original security informations for
6432           MONO_WRAPPER_MANAGED_TO_MANAGED.
6433         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
6434           that is a placeholder and only its address should be used.
6435         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
6436           that is a placeholder and only its address should be used.
6437
6438 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
6439
6440         Begin implementing COM Interop.
6441         * appdomain.c: Increment corlib version.
6442         * class.c: Set ComImport classes' parent to __ComObject.
6443         * loader.c: Mark cominterop methods as such.
6444         * domain.c: Add __ComObject class to MonoDefaults structure.
6445         * image.c: Add 2 hashtables to the image for COM Interop related methods
6446         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
6447         using the mempool allocator
6448         
6449         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
6450         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
6451         declaration for mono_metadata_type_dup_mp.
6452         
6453         * debug-helpers.c: Added strings for two additional wrapper types
6454         * object.c: Create proxy objects for ComImport classes
6455         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
6456         and added __ComObject class to MonoDefaults structure.
6457         
6458         * object-internals.h: Finish MonoRealProxy definition, and add definition of
6459         MonoComInteropProxy and MonoComObject.
6460         
6461         * marshal.c: Added support for COM Interop
6462         (signature_cominterop): Converts managed signature to corresponding
6463         unmanaged COM signature.
6464         (cominterop_get_function_pointer): gets unmanaged function pointer via
6465         COM object vtable
6466         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
6467         (cominterop_get_method_interface): returns interface type that method is defined on
6468         (mono_mb_emit_cominterop_call): emits native call to function pointer
6469         gotten from vtable
6470         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
6471         that matches signature of unmanaged function.
6472         (cominterop_get_native_wrapper): wrapper around adjusted method call.
6473         (cominterop_get_invoke): forwards call from proxy to __ComObject
6474         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
6475         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
6476         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
6477         
6478         * marshal.h: Added Marshal icall declarations.
6479         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
6480         so we can access them in finalizer
6481         
6482 2006-07-14  Dick Porter  <dick@ximian.com>
6483
6484         * object.c (mono_type_initialization_cleanup): Fix a race
6485         condition by temporarily commenting out the critical section
6486         deletion.
6487
6488 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
6489
6490         * reflection.c (create_custom_attr): Fix some warnings.
6491         (create_custom_attr_data): Ditto.
6492         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
6493         types. Fixes #78855.
6494
6495 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
6496
6497         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
6498
6499         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
6500
6501 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
6502
6503         * reflection.c (resolve_object): Add support for DynamicMethod.
6504
6505         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
6506         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
6507
6508 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
6509
6510         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
6511         don't leak GPtrArray's pdata has we have no use (nor free) for it.
6512
6513 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
6514
6515         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
6516         Fixes #77888.
6517
6518 2006-06-30  Raja R Harinath  <rharinath@novell.com>
6519
6520         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
6521         slightly: remove a shadow local variable.
6522
6523 2006-06-29  Raja R Harinath  <rharinath@novell.com>
6524
6525         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
6526         definition that introduces the virtual function slot.
6527         Also fix Coverity #105.
6528
6529 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
6530
6531         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
6532         for dynamic assemblies. Fixes #78724.
6533
6534 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
6535
6536         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
6537         Fixes #78722.
6538
6539 2006-06-21  Martin Baulig  <martin@ximian.com>
6540
6541         * reflection.c
6542         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
6543         fixes #76484.
6544
6545 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
6546
6547         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
6548
6549 2006-06-20  Raja R Harinath  <rharinath@novell.com>
6550
6551         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
6552         nor TYPEREFs.
6553         * class.c (mono_class_create_from_typespec): Add 'context' argument.
6554         Inflate result if necessary.
6555         (mono_class_get_full): Remove old version.  Rename from
6556         'mono_class_get' and add 'context' argument.  Pass it to
6557         ..._create_from_typespec.
6558         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
6559         (mono_ldtoken): Revert change below.
6560
6561 2006-06-20  Martin Baulig  <martin@ximian.com>
6562
6563         * class.c (mono_ldtoken): Don't pass the generic context to
6564         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
6565
6566 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
6567
6568         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
6569         and later freeing it. Fixes #78638.
6570
6571 2006-06-15  Miguel de Icaza  <miguel@novell.com>
6572
6573         * icall.c (mono_class_get_throw): Revert over-zealous error
6574         throwing, the caller for mono_class_get_throw will cope with
6575         errors when classes are not properly initialized already.
6576
6577         The code still copes with loader exceptions though.
6578
6579         Fixes the regression in reftype1 and reftype3 from the CAS tests.
6580         
6581 2006-06-14  Miguel de Icaza  <miguel@novell.com>
6582
6583         Fixes the `make run1' version of RuntimeAbort (to be commited,
6584         source is in Bugzilla).
6585         
6586         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
6587         FALSE on class loading failure instead of returning true.
6588
6589         * class.c (mono_class_create_from_typedef): It is possible for
6590         mono_metadata_interfaces_from_typedef_full to fail if a class is
6591         not found, cope with this.
6592         
6593
6594 2006-06-14  Dick Porter  <dick@ximian.com>
6595
6596         * socket-io.c: 
6597         * process.c: Fix a bunch of signed/unsigned warnings from gcc
6598         4.1.1
6599
6600 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
6601
6602         * culture-info-table.h : oops, forgot to make it nsync with r61548.
6603
6604 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
6605
6606         * icall.c: Another fix for building mono in Visual Studio.
6607
6608 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
6609
6610         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
6611         
6612 2006-06-09  Martin Baulig  <martin@ximian.com>
6613
6614         * debug-mono-symfile.c: Put this back and really fix it this
6615         time. Sorry for all the trouble.
6616
6617 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
6618
6619         * icall.c (mono_class_get_throw): Fix a warning.
6620         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
6621         ReflectionTypeLoadException if needed. Fixes #78606.
6622
6623         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
6624         (mono_class_init): Ditto.
6625
6626         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
6627         ref_only exceptions.
6628         (mono_loader_clear_error): Make this work even if there is no error.
6629
6630 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
6631
6632         * object-internals.h marshal.c marshal.h icall.c: Implement method 
6633         Marshal.GetComSlotForMethodInfo using internal call.
6634
6635 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
6636
6637         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
6638         a function for signalling it.
6639
6640         * class.c (mono_class_from_typeref): Use the new kind of loader error when
6641         a referenced assembly is not found.
6642
6643         * loader.c (mono_loader_error_prepare_exception): Add support for 
6644         LOADER_ERROR_ASSEMBLY. Fix formatting.
6645
6646 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
6647
6648         * domain.c appdomain.c class-internals.h marshal.c: Add support 
6649         for VARIANT marshalling on windows and increment corlib version
6650         since Variant struct was added.
6651
6652 2006-06-03  Miguel de Icaza  <miguel@novell.com>
6653
6654         * debug-mono-symfile.c: Revert Martin's previous patch which broke
6655         stack trace line information:
6656
6657         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
6658         (Martin) when looking up B which is between A and C, return A not C.
6659
6660         Bug is #78573.
6661
6662         Thanks to Alexander Olk for tracking this down.
6663
6664 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
6665
6666         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
6667         
6668         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
6669         avoid clobbering its value.
6670         (mono_string_to_lpstr): Fix a warning on windows.
6671
6672 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
6673
6674         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
6675
6676         * reflection.c loader.c: Removed references to 'dummy' flag.
6677
6678         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
6679
6680         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
6681         it gets GC tracking.
6682
6683         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
6684         GC tracking.
6685         
6686         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
6687
6688         * marshal.c threadpool.c: Update callers of mono_async_result_new.
6689
6690         * appdomain.c: Bump corlib version.
6691
6692 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
6693
6694         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6695         CEE_STIND_REF when working with object references.
6696
6697 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
6698
6699         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
6700         Fixes #78539.
6701
6702 2006-05-30  Miguel de Icaza  <miguel@novell.com>
6703
6704         * loader.c (method_from_memberref): Fix argument value for
6705         mono_loader_set_error_method_load (I was passing the MonoClass
6706         instead of the class name char *).
6707
6708 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
6709
6710         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
6711         CEE_STIND_REF when working with object references.
6712
6713 2006-05-30  Martin Baulig  <martin@ximian.com>
6714
6715         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
6716         mono_method_full_name() change and replace the ':' with a '.'
6717         here.
6718
6719 2006-05-30  Martin Baulig  <martin@ximian.com>
6720
6721         * debug-mono-symfile.c
6722         (mono_debug_symfile_lookup_location): Fix the algorithm:
6723         when looking up B which is between A and C, return A not C.
6724
6725 2006-05-29  Martin Baulig  <martin@ximian.com>
6726
6727         * mono-debug.h
6728         (MonoDebugMethodInfo): Make the typedef public.
6729         (MonoDebugSourceLocation): New public struct.
6730
6731         * mono-debug.c
6732         (mono_debug_source_location_from_address): Removed.
6733         (mono_debug_source_location_from_il_offset): Removed.
6734         (mono_debug_il_offset_from_address): Removed.
6735         (mono_debug_address_from_il_offset): Removed.
6736         (mono_debug_lookup_method): New public function.
6737         (mono_debug_lookup_source_location): New public function; replaces
6738         the old mono_debug_source_location_from_*() functions; see the
6739         inline documentation.
6740         (mono_debug_free_source_location): New public function.
6741         (mono_debug_print_stack_frame): New public function; see the
6742         inline documentation.
6743
6744         * debug-mono-symfile.c
6745         (mono_debug_find_source_location): Renamed into
6746         mono_debug_symfile_lookup_location(); only take a
6747         `MonoDebugMethodInfo *' and an `offset' argument; added inline
6748         documentation.
6749         (mono_debug_find_method): Renamed into
6750         mono_debug_symfile_lookup_method().
6751
6752 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
6753
6754         * assembly.c (mono_assembly_open_full): Dont overwrite the status
6755         returned by mono_image_open_full ().
6756
6757         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
6758         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
6759         #78517.
6760
6761         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
6762         #78518.
6763
6764 2006-05-27  Miguel de Icaza  <miguel@novell.com>
6765
6766         * class.c (mono_class_from_typeref): handle missing images
6767         earlier, deals with bug #78418.   Refactor code; 
6768
6769         Fix a warning introduced in my previous commit (some stale code
6770         from before I revisited my patch).
6771
6772         * class.c (mono_class_create_from_typedef): On failure, remove the
6773         class from the MonoImage->class_cache as the class is not
6774         initialized;   Fixes the leak pointed out by Paolo.
6775
6776 2006-05-25  Dick Porter  <dick@ximian.com>
6777
6778         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
6779         DeleteCriticalSections until I figure out which one may still be
6780         sometimes locked when mono_thread_cleanup is called.
6781
6782 2006-05-24  Dick Porter  <dick@ximian.com>
6783
6784         * threads.c (mono_thread_cleanup): Move the threading cleanup out
6785         of mono_thread_manage and back into its own function, so it can be
6786         called after the finalizer thread has finished.
6787
6788         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
6789
6790 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
6791
6792         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
6793         Fixes #78495.
6794
6795         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
6796         with non-blittable elements.
6797         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
6798
6799 2006-05-24  Martin Baulig  <martin@ximian.com>
6800
6801         * mono-debug-debugger.h (MonoDebuggerEvent): Added
6802         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
6803
6804         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
6805         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
6806         `mono_debugger_event_handler' to NULL.
6807
6808 2006-05-24  Martin Baulig  <martin@ximian.com>
6809
6810         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
6811
6812 2006-05-24  Martin Baulig  <martin@ximian.com>
6813
6814         * mono-debug-debugger.h
6815         (mono_debugger_create_notification_function): Added
6816         `MonoCodeManager *' argument.
6817
6818 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
6819
6820         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
6821
6822 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
6823
6824         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
6825         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
6826         implementation.
6827
6828 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
6829
6830         * icall.c: precise GC support: objects can't be stored in unmanaged
6831         memory anymore, even if they are kept alive by other references: since
6832         they can move the GC needs to be able to always find them.
6833
6834 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
6835
6836         * object.c: precise GC support for static fields. Support
6837         for moving GCs: write barriers and pinned allocation for interned
6838         strings.
6839
6840 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
6841
6842         * domain.c, domain-internals.h: precise GC support for the MonoDomain
6843         structure.
6844
6845 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
6846
6847         * class.c, gc.c: sgen and precise GC updates.
6848
6849 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
6850
6851         * marshal.h, marshal.c: added write barrier wrapper and precise type
6852         fixes.
6853
6854 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
6855
6856         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
6857         support.
6858
6859 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
6860
6861         * reflection.c: precise and sgen GC updates.
6862
6863 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
6864
6865         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
6866
6867 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
6868
6869         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
6870
6871 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
6872
6873         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
6874         MONO_TYPE_OBJECT. Fixes #78462.
6875
6876 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
6877
6878         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
6879         and blittable types.
6880
6881 2006-05-17  Miguel de Icaza  <miguel@novell.com>
6882
6883         * class.c (mono_class_get_exception_for_failure): Implement parts
6884         of a TODO: if the loader error is set (instead of the class
6885         error), we return a Loader exception that can be properly thrown
6886         elsewhere.
6887
6888         This was exposed by some Winforms 2.0 code that I tried to run
6889         (Atsushi pointed me to it).
6890
6891 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
6892
6893         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
6894         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
6895         
6896         * marshal.c (emit_marshal_vtype): Add limited support for 
6897         UnmanagedType.LPStruct. Fixes #78427.
6898
6899         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
6900         Applied a patch from kangaroo to fix #77523.
6901
6902 2006-05-17  Martin Baulig  <martin@ximian.com>
6903
6904         * threads.c
6905         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
6906         (debugger_thread_created): Removed.
6907         (debugger_thread_exited): Removed.
6908
6909 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
6910
6911         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6912
6913         * object-internals.h (MonoReflectionResource): Sync with managed version.
6914
6915 2006-05-12  Wade Berrier <wberrier@novell.com>
6916
6917         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
6918
6919 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
6920
6921         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
6922         functions try to allocate from the image mempool.
6923
6924 2006-05-12  Dick Porter  <dick@ximian.com>
6925
6926         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
6927
6928 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
6929
6930         * object.c: The FieldGetter and FieldSetter methods require the full
6931         name of the class, not only the name. Fixes bug #78277.
6932
6933 2006-05-11  Miguel de Icaza  <miguel@novell.com>
6934
6935         * loader.c (method_from_memberref): Do not pass the NULL klass to
6936         mono_loader_set_error_() methods.  Pass the non-NULL value
6937         (class). 
6938
6939 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
6940
6941         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
6942         (mono_assembly_close): Null out assembly->image->references after freeing it.
6943
6944         * image.c (mono_image_close): Free image->references.
6945         
6946         * reflection.c (mono_image_basic_init): Fix a small memory leak.
6947
6948 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
6949
6950         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
6951         before checking if it's NULL (g_assert).
6952
6953 2006-05-10  Martin Baulig  <martin@ximian.com>
6954
6955         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
6956         I thought I already killed that two months ago, but now it somehow reappeared.
6957
6958 2006-05-10  Martin Baulig  <martin@ximian.com>
6959
6960         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
6961
6962 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
6963
6964         * reflection.c: Allocate memory for dynamically created methods in the image
6965         mempools.
6966
6967 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
6968
6969         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
6970         don't use the ad pointer before checking if it's NULL (g_assert).
6971
6972 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
6973
6974         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
6975         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
6976
6977         * marshal.c: Allocate all signatures from mempools.
6978
6979         * marshal.c: Allocate some more signatures from mempools.
6980
6981 2006-05-09  Miguel de Icaza  <miguel@novell.com>
6982
6983         * object.c (mono_load_remote_field): The code used to provide a
6984         temporary variable for returning results if the user did not
6985         provide a result pointer.  But our temporary variable was allocted
6986         on the satck.
6987
6988         Fix calling code to always pass a result area.   Coverity ID 103.
6989
6990 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
6991
6992         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
6993         value, not the old. Fixes #78312.
6994         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
6995
6996         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
6997         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
6998         per-image cache.
6999
7000         * assembly.c (mono_assembly_close): Free image->references.
7001
7002         * assembly.c (mono_assembly_names_equal): Fix a warning.
7003         (mono_assemblies_cleanup): Cleanup more global data.
7004
7005         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
7006
7007         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
7008         ptr_cache and image->modules.
7009
7010         * image.c (mono_image_init): Allocate array_cache lazily.
7011         
7012 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7013
7014         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
7015         behavior was changed recently and has bad side effects.
7016
7017 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
7018
7019         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
7020         
7021         * assembly.c (mono_assembly_close): Remove a debug printf.
7022
7023         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
7024
7025         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
7026         to also allow for temporary references between mono_image_open ()/close ().
7027
7028         * domain.c (get_runtimes_from_exe): Add a FIXME.        
7029
7030 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
7031
7032         * marshal.c: Fix support for dynamic methods.
7033
7034         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
7035
7036         * marshal.c (mono_marshal_cleanup): New cleanup function.
7037
7038         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
7039         image mempools.
7040
7041         * class.c (mono_class_init): Fix leaking class->nested_classes.
7042
7043         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
7044
7045         * image.c (mono_image_init): Initialize the new cashes.
7046
7047         * image.c (mono_image_close): Destroy the new cashes.
7048
7049         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
7050
7051         * mempool.c (mono_mempool_strdup): New helper function.
7052
7053         * class-internals.h: Add prototype for mono_loader_unlock ().
7054
7055         * domain.c (mono_jit_info_table_find): Fix a warning.
7056         (mono_debugger_check_runtime_version): Ditto.
7057
7058         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
7059         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
7060         functions to these modules.
7061
7062         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
7063         metadata modules.
7064         
7065         * marshal.c (mono_free_bstr): Fix a warning.
7066
7067         * assembly.c (mono_assembly_open_full): Fix another small leak.
7068
7069         * object.c: Fix some unload leaks in the remoting code.
7070
7071         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
7072         function.
7073
7074         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
7075
7076         * reflection.c: Fix some unload leaks in dynamic assemblies.
7077
7078 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
7079
7080         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
7081         * marshal.h: Add BSTR support on Win32
7082         * icall.c: Add BSTR icalls
7083         * metadata.h: Add BSTR enums
7084
7085 2006-04-28  Miguel de Icaza  <miguel@novell.com>
7086
7087         Work to catch the crash from #76795 and turn it into an
7088         exception.   As I stubbed out pieces of the VisualBasic support,
7089         I found a number of places where the code was failing and I added
7090         checks to those places. 
7091         
7092         * metadata.c (do_mono_metadata_parse_generic_class): Make this
7093         function return a status code.  If we fail to parse the signature
7094         from mono_metadata_parse_generic_inst, return FALSE.
7095
7096         * loader.c (mono_get_method_from_token): If we fail to load the
7097         method (mono_class_get) return NULL.   
7098
7099         * (method_from_memberref): Return NULL if we are unable to parse
7100         the method signature
7101
7102         (mono_loader_error_prepare_exception): Since we now use the
7103         loader_error flag internally to stop processing, and obtaining
7104         exceptions that might be thrown will walk this code path the
7105         proper way of going from a MonoLoaderError into a
7106         MonoException was convoluted.   This new routine encapsulates the
7107         process of turning the error into an exception and *clearing* the
7108         error afterwards.
7109         
7110 2006-04-27  Miguel de Icaza  <miguel@novell.com>
7111
7112         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
7113         with missing assemblies), and to cope with:
7114
7115                 * Missing fieldref from a non-existing assembly.
7116                 * Missing methodref from a non-existing assembly.
7117
7118         The first batch of work to address *some* of the issues from 76661.
7119         
7120         * object.c (mono_class_create_runtime_vtable): If we fail to
7121         initialize the class raise the exception here. 
7122
7123         * metadata.c (mono_class_get_overrides_full): If any methods fail
7124         to load return the failure to the caller.
7125
7126         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
7127         flagging assemblies that failed to load.   
7128
7129         Do not crash if we are unable to load the assembly.
7130
7131         (mono_assembly_close): Do nothing with REFERENCE_MISSING
7132         assemblies. 
7133
7134         * loader.c (mono_loader_set_error_type_load): Change the
7135         convention to always pass unallocated strings, so we make our own
7136         copies (I know our own code had duplicated strings before, but
7137         this keeps the normal conventions).
7138         (method_from_memberref): Call mono_loader_set_error_method_load
7139         for all possible failures of loading the class. 
7140         Remove assert, turn into a loader error.
7141
7142         (mono_loader_error_to_exception): Move this routine from mini
7143         (mini_loader_error_to_exception) there was no need to have that in
7144         mini. 
7145
7146         * class.c (mono_class_from_typeref): If we were not able to load
7147         the assembly with mono_assembly_load_reference, call the
7148         mono_loader_set_error_type_load to register the problem.
7149
7150         (mono_class_setup_fields): If we fail to load the type from
7151         mono_metadata_parse_type_full, call mono_class_set_failure and
7152         break from the loop.
7153
7154         If class->exception_type is set, we do not layout the fields as
7155         that might crash the runtime, and instead return (from breaking
7156         from the previous loop).
7157
7158         (mono_class_setup_vtable): This now returns a boolean indicating
7159         whether the table was properly setup.   The decision is driven by
7160         mono_class_get_overrides_full which might run into non-existing
7161         methods. 
7162         
7163         (mono_class_init): Returns TRUE on success or FALSE if there was a
7164         problem in loading the type (incorrect assemblies, missing
7165         assemblies, methods, etc).
7166
7167         When we call mono_class_setup_fields we also check for a potential
7168         error inside this call (either a class exception or a general
7169         loader exception).
7170
7171         (mono_class_create_from_typedef): If the parent fails to load
7172         (calling mono_class_get_full) return NULL.
7173         
7174         ** Important **
7175
7176         calls to mono_metadata_parse_type_full should be checked
7177         everywhere and set the mono_class_set_failure
7178         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
7179
7180         The current patch checks the places where my manually constructed
7181         tests show the errors are showing up, but we should do it
7182         everywhere. 
7183
7184         ** Important2 **
7185
7186         mono_class_init return values should be tested everywhere, like
7187         the previous case this is something that we should audit
7188         everywhere and not only on the cases exposed by the tests I
7189         created. 
7190
7191 2006-04-26  Miguel de Icaza  <miguel@novell.com>
7192
7193         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
7194         boolean parameter and instead pass the information on `options'
7195         parameter (FileOptions).
7196
7197         * icall.c: Register the new signature for MonoIO.Open.
7198
7199         * debug-helpers.c (dis_one): Trying to understand how coverity
7200         works.  Fix Run 5, item 78.
7201
7202 2006-04-26  Dick Porter  <dick@ximian.com>
7203
7204         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
7205         dereference.
7206
7207 2006-04-25  Martin Baulig  <martin@ximian.com>
7208
7209         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
7210
7211         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
7212         debugger_thread_created().
7213         (debugger_gc_push_all_stacks): Don't handle the main thread in any
7214         special way.
7215         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
7216         (mono_debugger_finalize_threads): New function; undo the effects
7217         of mono_debugger_init_threads().
7218         (mono_debugger_create_all_threads): Removed.
7219
7220 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
7221
7222         * image.c (mono_image_close): Tidy up trace messages.
7223
7224         * assembly.c (mono_assembly_close): Ditto.
7225
7226         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
7227         no longer references an already freed assembly. Fixes #78168.
7228
7229 2006-04-21  Dick Porter  <dick@ximian.com>
7230
7231         * threads.c (mono_thread_detach): Fix reference counting when
7232         detaching threads.
7233
7234 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
7235
7236         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
7237         #78155.
7238
7239 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
7240
7241         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
7242         (mono_type_to_stind): Ditto.
7243
7244         * marshal.c: Use the new helper functions to simplify code.
7245
7246         * image.c (mono_image_close): Add some code for help debug assembly unloading
7247         problems.
7248
7249         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
7250         image mempool.
7251
7252         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
7253         assembly was already loaded in another appdomain. Fixes #78083.
7254
7255 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
7256
7257         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
7258         referenced assemblies.
7259         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
7260
7261         * domain.c (mono_domain_free): Add a trace message.
7262
7263         * appdomain.c (add_assemblies_to_domain): Ditto.        
7264
7265         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
7266         field.  
7267
7268 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
7269
7270         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
7271
7272 2006-04-12  Martin Baulig  <martin@ximian.com>
7273
7274         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
7275         `USE_INCLUDED_LIBGC'.   
7276
7277 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
7278
7279         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
7280         the patch contains ../ and a small directory name later. Hopefully fixes
7281         #78035.
7282
7283 2006-04-10  Martin Baulig  <martin@ximian.com>
7284
7285         Clean up the debugger's thread-handling code.
7286
7287         The debugger's thread-handling code has been moved from
7288         ../mini/debug-debugger.c to threads.c.  We now iterate directly
7289         over the `threads' hash, keep track of exiting threads and also
7290         use proper locking.
7291
7292         We can now debug XSP and XSP based applications with the debugger.
7293
7294         * object-internals.h (MonoThread): Added `gpointer end_stack'.
7295
7296         * threads.h
7297         (MonoThreadCallbacks): Removed; this was only used by the debugger.
7298         (mono_install_thread_callbacks): Likewise.      
7299
7300         * threads.c (mono_thread_callbacks): Removed.
7301         (debugger_thread_created, debugger_thread_exited): New static functions.
7302         (start_wrapper): Call debugger_thread_created().
7303         (thread_cleanup): Call debugger_thread_exited().
7304         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
7305         (mono_debugger_init_threads): New public function.
7306         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
7307         iterate directly over the `threads' hash and also use proper locking.
7308
7309         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
7310
7311         * mono-debug-debugger.h
7312         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
7313
7314 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
7315
7316         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
7317         argument type=array. Fixes #78057.
7318
7319 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
7320
7321         * culture-info-table.h : regenerated. Fixed bug #69652.
7322
7323 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
7324
7325         * loader.c metadata.c: Reapply a variant r59116.
7326         
7327         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
7328
7329         * class.c (mono_class_setup_interface_offsets): New internal function.
7330
7331         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
7332         interfaces too. Fixes #77398.
7333
7334         * reflection.c (encode_cattr_value): Add support for 
7335         parameter type=object, argument type=array.
7336         (load_cattr_value): Ditto. Fixes #77916.
7337
7338         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
7339         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
7340
7341         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
7342         a byval char array and CharSet is Ansi.
7343
7344         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
7345
7346 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
7347
7348         * metadata.c: Add some locking comments.
7349         
7350         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
7351         mempool.
7352         (mono_metadata_free_method_signature): Don't free the signature itself.
7353
7354         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
7355
7356         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
7357         reference the same MonoImage.
7358         (mono_assembly_load_from_full): Add an assert.
7359
7360 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
7361
7362         * image.c (mono_image_close): Don't put the image we are about to free into the
7363         loaded_images_guid_hash.
7364
7365         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
7366         to reduce code duplication.
7367
7368         * marshal.c: Register the native functions called by this module as icalls, to
7369         somewhat centralize the creation of MonoMethodSignature's.
7370
7371         * loader.c (mono_method_signature): Add a cache for method signatures.
7372
7373         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
7374         the parameter attributes of a method.
7375         (mono_metadata_parse_method_signature_full): Refactored the computation of
7376         parameter attributes into a separate function. Also avoid one allocation in
7377         most cases.
7378
7379         * assembly.c (mono_assembly_close): Ditto.
7380
7381         * image.c (mono_image_close): Log trace messages with INFO level.
7382
7383         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
7384
7385         * image.c reflection.c: Correct reference counting of image modules.
7386         
7387         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
7388         of this function from the image mempool.
7389         
7390         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
7391         to allow more cached types to be used.
7392
7393         * mono-debug.c (mono_debug_add_method): Appled patch from
7394         David S. Miller  <davem@sunset.davemloft.net>: Access 
7395         minfo->lexical_blocks[] entry elements using read32().
7396
7397 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
7398
7399         * loader.c (mono_free_method): No longer free the method header for non-dynamic
7400         methods as it is allocated from the mempool.
7401
7402         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
7403         image mempool.
7404
7405         * metadata-internals.h: Add comments describing the reference counting scheme
7406         used for MonoImage and MonoAssembly.
7407
7408         * image.c assembly.c reflection.c: Rework reference counting of images and 
7409         assemblies so they are freed when the runtime is shut down. Free some 
7410         additional memory structures when an image is unloaded.
7411         
7412 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
7413
7414         * class.c loader.c reflection.c: Allocate more data structures in
7415         the image mempool.
7416
7417 2006-03-31  Miguel de Icaza  <miguel@novell.com>
7418
7419         * icall.c
7420         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
7421         build on pre glib 2.4 systems.
7422
7423 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
7424
7425         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
7426
7427         * icall.c: Fix some warnings.
7428
7429 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
7430
7431         * culture-info-table.h : regenerated.
7432
7433 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
7434
7435         * threads.c, object-internals.h, verify.c: changed the culture caching
7436         code to use a normal MonoArray for storage so the GC can keep track of
7437         them easily. Fixed bits of the cache logic, too and simplified the
7438         code.
7439
7440 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
7441
7442         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
7443         thread for non-Boehm GCs.
7444
7445 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
7446
7447         * domain.c, object.c, domain-internals.h: reduce the amount of memory
7448         needed to keep track of the data for static fields.
7449
7450 2006-03-29  Raja R Harinath  <rharinath@novell.com>
7451
7452         Fix #75172
7453         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
7454         for interface classes.  Use 'num_methods' instead.
7455         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
7456         before using '->vtable_size' field.
7457
7458 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
7459
7460         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
7461         doesn't contain managed pointers, so use a normal hashtable.
7462
7463 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
7464
7465         * reflection.c, class-internals.h, domain.c: fixed handling of types
7466         used as values for objects in custom attributes (bug #77915):
7467
7468 2006-03-24  Martin Baulig  <martin@ximian.com>
7469
7470         * class.c (mono_class_setup_fields): Added support for generic
7471         instances; fixes #77580.
7472
7473 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7474
7475         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
7476
7477 2006-03-24  Dick Porter  <dick@ximian.com>
7478
7479         * file-io.c (get_file_attributes): More stat macro breakage.
7480         Fixes bug 77759.
7481
7482 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
7483
7484         * profiler.c: added the file=filename option in the default profiler
7485         to output the profile data to filename.
7486
7487 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7488
7489         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
7490         bug #77877.
7491
7492 2006-03-22  Martin Baulig  <martin@ximian.com>
7493
7494         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
7495         allocated `MonoClassField *' in `fb->handle'.
7496
7497 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
7498
7499         * class.c, image.c, metadata-internals.h: implemented new mechanism to
7500         allocate interface ID to save memory and allow better ID reuse on
7501         appdomain unload. setup_generic_vtable () removal from Martin.
7502
7503 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7504
7505         * object.h, appdomain.c, domain.c, exception.c, icall.c,
7506         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
7507         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
7508         write barriers for reference stores with managed objects accessed with
7509         C structures in the runtime and in embedding programs.
7510
7511 2006-03-20  Raja R Harinath  <rharinath@novell.com>
7512
7513         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
7514         'interface_id' and 'max_interface_id' fields of MonoClasses
7515         representing open generic types.
7516
7517 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
7518
7519         * object.h, object.c, icall.c: added functions to deal with
7520         storing valuetypes that contain references in managed objects.
7521         * reflection.c, string-icalls.c, threads.c, marshal.c: small
7522         fixes and comments around uses of mono_array_addr ().
7523
7524 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
7525
7526         * object.h, icall.c, monitor.c: object.GetHashCode ()
7527         implementation that supports the moving garbage collector.
7528
7529 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
7530
7531         * icall.c, threads-types.h, threads.c: implemented finalizer for
7532         LocalDataStoreSlot.
7533
7534 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
7535
7536         * metadata.c (mono_type_size): Add a fixme.
7537         (mono_type_stack_size): Ditto.
7538
7539         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
7540         'type_forwarders' field.
7541
7542         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
7543         attribute from net 2.0.
7544
7545         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
7546         from class.c.
7547
7548         * class.c (mono_class_setup_fields): Fix a warning.
7549         
7550         * class.c (mono_class_from_name): Add support for assemblyref entries
7551         in the EXPORTEDTYPE table.
7552
7553         * reflection.c: Add support for handling type forwarders under net 2.0.
7554
7555         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
7556         
7557 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
7558
7559         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
7560         overwriting entries in ModuleBuild->types, also clean up the code
7561         a little. Fixes #77774.
7562
7563 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
7564
7565         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
7566         load friend assembly info when present.
7567
7568 2006-03-14  Raja R Harinath  <rharinath@novell.com>
7569
7570         Fix crasher on gtest-158.cs.
7571         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
7572         the return value if the MonoClass we want is yet in an
7573         inconsistent state.
7574         * class.c (mono_class_create_from_typedef): Add an comment
7575         explaining an order dependency between mono_class_setup_parent and
7576         mono_class_setup_mono_type.
7577
7578 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
7579
7580         * class.c: documentation updates and events bug fix.
7581
7582 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
7583
7584         * class.c: some cleanup, locking fixes.
7585
7586 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
7587
7588         * class.c: fix the generics code to setup nested
7589         type info to the instantiated type (bug #77770).
7590
7591 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
7592
7593         * marshal.c: fixed a few type correctness issues.
7594
7595 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7596
7597         * loader.c: the Set/Get/Addrtess array methods should be public.
7598
7599 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
7600
7601         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
7602         
7603         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
7604         info->wrapper.
7605
7606 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
7607
7608         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
7609
7610         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
7611
7612         * mempool.c (mono_mempool_alloc): Speed this up a bit.
7613         (mono_mempool_alloc0): Ditto.
7614
7615 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7616
7617         * socket-io.c:
7618         (create_object_from_sockaddr): it was allocating 4 extra bytes
7619         for the AF_UNIX data. Fixes bug #77747.
7620
7621 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
7622
7623         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
7624
7625 2006-03-09  Dick Porter  <dick@ximian.com>
7626
7627         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
7628         Fixes bug 76966 again.
7629
7630 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
7631
7632         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
7633         names from r57532
7634         * appdomain.c: Bumped corlib version to 48 (due to r57532)
7635
7636 2006-03-07  Martin Baulig  <martin@ximian.com>
7637
7638         * object.c
7639         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
7640
7641 2006-03-07  Martin Baulig  <martin@ximian.com>
7642
7643         * class.c
7644         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
7645         regression introduced in r56970; see gtest-252.cs.
7646
7647         * loader.c (mono_get_method_constrained): Correctly handle generic
7648         methods; see gtest-253.cs.
7649
7650 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
7651
7652         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
7653
7654 2006-03-04  Martin Baulig  <martin@ximian.com>
7655
7656         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
7657         compute the parent type at runtime, just like we're already doing
7658         it for interfaces.
7659
7660         * reflection.c
7661         (mono_reflection_bind_generic_parameters): Don't compute the
7662         parent type anymore.
7663
7664         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
7665
7666 2006-03-04  Martin Baulig  <martin@ximian.com>
7667
7668         * mono-debug-debugger.h
7669         (mono_debugger_create_notification_function): Allocate memory at
7670         runtime and return a pointer to it.
7671
7672 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
7673
7674         * assembly.c: Fix windows build.
7675         
7676         * assembly.c: Fix build.
7677
7678         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
7679
7680         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
7681         
7682 2006-03-03  Dick Porter  <dick@ximian.com>
7683
7684         * process.c
7685         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
7686         Check parameters before dereferencing them.  Fixes Aaron's part of
7687         bug 77393.
7688
7689 2006-03-03  Raja R Harinath  <rharinath@novell.com>
7690
7691         Fix performance regression.
7692         * loader.c (find_method_in_class): Add 'from_class' argument.
7693         Rename 'klass' argument to 'in_class'.  The signature is compared
7694         against the method in 'in_class', and the corresponding method is
7695         returned from 'from_class'.
7696         (find_method): Walk both 'in_class' and 'from_class' in parallel.
7697         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
7698         type definition and generic instantiation in parallel.
7699         (mono_get_method_constrained): Update to changes.
7700
7701 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
7702
7703         * threads.c: make sure the domain is correct, too when doing
7704         mono_thread_attach ().
7705
7706 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
7707
7708         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
7709         windows. Fixes #77683.
7710
7711 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
7712
7713         * object.h, *: introduced specific way to set elements of an array
7714         of references to be used as write barrier. Still need to audit the
7715         uses of mono_array_addr.
7716
7717 2006-03-01  Miguel de Icaza  <miguel@novell.com>
7718
7719         * object-internals.h: New field to cache the assmebly name, patch
7720         from Tambet Ingo (tambet@ximian.com)
7721
7722 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
7723
7724         * decimal.h, class-internals.h, metadata-internals.h,
7725         file-io.h: mark a few function declarations as internal, to
7726         reduce the number of PLT entries.
7727
7728 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7729
7730         * file-io.c: fix typo in warning message.
7731
7732 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
7733
7734         * loader.c: on unix, lookup the "*A" version of a function
7735         if charset is auto as a second option before failing.
7736
7737 2006-02-28  Raja R Harinath  <rharinath@novell.com>
7738
7739         * class.h (mono_class_inflate_generic_method): Revert to two
7740         argument version.
7741         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
7742         (mono_class_inflate_generic_method_full): Add.
7743         * class.c (mono_class_inflate_generic_method_full): Rename from
7744         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
7745         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
7746         * loader.c, reflection.c: Update to changes.
7747
7748 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
7749
7750         * icall.c: const fixes and small improvements.
7751
7752 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7753
7754         * threadpool.c: for asynchronous connect(), enable the same workaround
7755         for BSD 6 as for the Mac. Fixes bug #77637.
7756
7757 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
7758
7759         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
7760         formatted classes. Fixes #77524.
7761
7762 2006-02-24  Raja R Harinath  <rharinath@novell.com>
7763
7764         * class.c (inflate_generic_type): Add a couple more
7765         micro-optimizations.
7766         (inflate_generic_context): Don't use the 'gmethod' from
7767         'inflate_with'.
7768         (mono_class_inflate_generic_method): If the method has generic
7769         parameters, but the passed-in context doesn't have a 'gmethod',
7770         create one.  Use the possibly simplified generic instantiation
7771         from the declaring class instead of the one passed in.
7772
7773 2006-02-24  Raja R Harinath  <harinath@gmail.com>
7774
7775         Make generic method signature and method header handling lazy.
7776         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
7777         (inflate_generic_header): Likewise.
7778         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
7779         parameter to avoid inflating types.
7780         (mono_get_inflated_method): Empty out.
7781         * class.h (mono_class_inflate_generic_method): Update to changes.
7782         * loader.c (mono_get_method_from_token): Don't parse signature for
7783         generic methods, nor methods of generic classes.
7784         (mono_method_signature): Rename from 'mono_method_signature'.
7785         Inflate signature on demand.
7786         (mono_method_get_header): Inflate method header on demand.
7787         * reflection.c: Update to changes.
7788
7789 2006-02-23  Raja R Harinath  <rharinath@novell.com>
7790
7791         * metadata.c (mono_metadata_inflate_generic_inst): If the
7792         instantiation is closed, don't bother expanding it in the new
7793         context.
7794         * class.c (inflate_generic_class): If the generic instantiation
7795         doesn't change after inflation, return the argument itself.
7796         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
7797         Add bounds checks.
7798         (inflate_generic_context): If neither the generic class nor the
7799         generic method instantiations change, return the original context.
7800         * reflection.c (mono_method_get_object): Do
7801         'mono_get_inflated_method' before accessing the ->klass field.
7802         (inflate_mono_method): Don't create a MonoGenericMethod unless
7803         necessary.
7804         (inflate_method): Don't pass a constructed type as the declaring
7805         type of a methodbuilder.
7806
7807 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
7808
7809         * object.c: fix memory overwrite.
7810
7811 2006-02-22  Dick Porter  <dick@ximian.com>
7812
7813         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
7814         it doesn't work any more.
7815         (mono_threads_request_thread_dump): Fix unused variable warnings.
7816
7817 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7818
7819         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
7820         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
7821         the public header file.
7822
7823 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
7824
7825         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
7826
7827 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
7828
7829         * class-internals.h, object.c: reduce the size of MonoVTable
7830         and store the interface_offsets array at negative offsets.
7831
7832 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
7833
7834         * metadata.c: tweak table descriptors data structures to reduce
7835         size and runtime relocations.
7836
7837 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7838
7839         * marshal.c: fix some types and opcodes to be type-safe
7840         in marshaling wrappers.
7841
7842 2006-02-21  Ankit Jain  <jankit@novell.com>
7843
7844         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
7845
7846 2006-02-21  Raja R Harinath  <rharinath@novell.com>
7847
7848         * metadata.c (get_constraints): Relax debugging checks for monodis.
7849
7850 2006-02-21  Ankit Jain  <jankit@novell.com>
7851
7852         * metadata.c (mono_metadata_load_generic_params): Move the code
7853         checking for ambiguous generic params from here to mono/dis/get.c
7854         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
7855
7856 2006-02-21  Raja R Harinath  <harinath@gmail.com>
7857
7858         Fix assertion triggered when compiling nemerle.
7859         * class.c (mono_get_shared_generic_inst): Rename from
7860         get_shared_inst and make non-static.
7861         * loader.c (mono_get_shared_generic_method): New.  Used to create
7862         the MonoGenericContext-equivalent of a MonoGenericContainer.
7863         (mono_get_method_from_token): Initialize the 'context' field of
7864         the created MonoGenericContainer.
7865         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
7866         * metadata.c (get_constraints): Add sanity check.
7867         * class-internals.h: Add new internal methods.
7868
7869         * reflection.c (verify_safe_for_managed_space): New sanity check.
7870         Currently checks that owner-less generic parameters aren't allowed
7871         in managed space.
7872         (mono_type_get_object): Use it.
7873         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
7874         that are now in mono_type_get_object.
7875         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
7876
7877 2006-02-19  Raja R Harinath  <harinath@gmail.com>
7878
7879         * metadata.c (mono_type_create_from_typespec): Rename from
7880         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
7881         argument and caching of types in the generic container.
7882         (unwrap_arrays, find_generic_param): Remove.
7883         * metadata-internals.h: Update.
7884         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
7885
7886 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
7887
7888         * class.c (mono_class_get_exception_for_failure): Fix a warning.
7889
7890         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
7891         return values. Fixes #77581.
7892
7893         * class.c (mono_fnptr_class_get): Switch name and name_space.
7894
7895         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
7896         classes and add support for [In, Out] attributes.
7897         (mono_marshal_free_asany): Ditto. Fixes #77524.
7898
7899 2006-02-18  Raja R Harinath  <harinath@gmail.com>
7900
7901         * class.c (mono_class_from_generic_parameter): Make more robust to
7902         incomplete MonoGenericContainers from monodis.
7903
7904 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7905
7906         * class-internals.h: added some more exception types.
7907         * class.c, metadata.c: added a few checks to handle missing
7908         types.
7909
7910 2006-02-17  Raja R Harinath  <rharinath@novell.com>
7911
7912         Use owner-less generic-params some more.
7913         * class.c (my_mono_class_from_generic_parameter): Remove.
7914         (mono_class_from_generic_parameter): Handle null image,
7915         param->name and param->owner.
7916         (mono_class_from_mono_type): Update.
7917         (mono_class_create_from_typespec): Remove 'container' parameter.
7918         If that parameter is non-null, the result is always inflated by
7919         'mono_class_get_full' anyway.
7920         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
7921         parameter.
7922         (mono_class_get_full): Update.
7923
7924         * class.c (inflate_generic_type) [GENERICINST]: If the generic
7925         instance is not open, don't bother inflating.
7926         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
7927         parse metadata for inflated classes.
7928         (_mono_class_get): Change GenericContext* parameter to
7929         GenericContainer*.
7930         (mono_class_create_from_typespec): Likewise.  Simplify, and
7931         implement trivially.  All the cases are handled in
7932         mono_class_from_mono_type.  Don't inflate returned class.
7933         (mono_class_get_full): Delegate GENERICINST optimization to
7934         inflate_generic_type.
7935         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
7936
7937 2006-02-16  Dick Porter  <dick@ximian.com>
7938
7939         * socket-io.c (create_object_from_sockaddr): Fix typo.
7940         (create_sockaddr_from_object): Check array lengths before
7941         potentially accessing items off the end.
7942         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
7943         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
7944         (ves_icall_System_Net_Sockets_Socket_Send_internal)
7945         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
7946         length checks to avoid wraparound overflows.
7947         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
7948         contents of the array of sockets
7949         (hostent_to_IPHostEntry2)
7950         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
7951         Check return value of inet_ntop ().
7952         (addrinfo_to_IPHostEntry): Fix typo
7953
7954 2006-02-16  Raja R Harinath  <rharinath@novell.com>
7955
7956         Type metadata parsing doesn't use generic-instantiation information.
7957         * metadata.c (mono_metadata_parse_array_full): Change
7958         MonoGenericContext* parameter to MonoGenericContainer*.
7959         (mono_metadata_parse_type_full): Likewise.
7960         (mono_type_create_from_typespec_full): Likewise.
7961         (mono_metadata_parse_mh_full): Likewise.
7962         (mono_metadata_parse_generic_inst): Likewise.
7963         (do_mono_metadata_parse_generic_class): Likewise.
7964         (do_mono_metadata_parse_type): Likewise.
7965         * metadata-internals.h: Update to changes.
7966         * class.c (mono_class_find_enum_basetype): Likewise.
7967         (mono_class_setup_fields): Likewise.
7968         (mono_class_create_from_typespec): Likewise.
7969         * loader.c (method_from_methodspec): Likewise.
7970         (mono_get_method_from_token): Likewise.
7971         (mono_method_get_header): Likewise.
7972
7973 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7974
7975         * marshal.c: handle additional GENERICINST case (patch from
7976         Thong Nguyen <tum@veridicus.com>).
7977         Fix a few cases where LDIND_I/STIND_I was used for references.
7978
7979 2006-02-16  Raja R Harinath  <rharinath@novell.com>
7980
7981         * reflection.c (mono_reflection_get_token): Remove unused variable.
7982
7983 2006-02-16  Martin Baulig  <martin@ximian.com>
7984
7985         * reflection.c (mono_reflection_get_token): Add support for fields
7986         in instantiated generic types.
7987
7988         * icall.c
7989         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
7990
7991 2006-02-15  Martin Baulig  <martin@ximian.com>
7992
7993         * icall.c
7994         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
7995         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
7996         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
7997         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
7998
7999 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
8000
8001         * class.c, metadata.c, metadata.h, object.c, icall.c,
8002         marshal.c: changed mono_type_get_underlying_type () to do
8003         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
8004         Fixed handling of instantiated generic valuetypes (bug #75479).
8005
8006 2006-02-15  Raja R Harinath  <rharinath@novell.com>
8007
8008         * metadata.c (mono_metadata_decode_signed_value): Simplify.
8009         Delegate to mono_metadata_decode_value, and work on the returned value.
8010
8011         * icall.c (ves_icall_MonoType_GetGenericArguments):
8012         Add consistency check here too.
8013         
8014 2006-02-15  Ankit Jain  <jankit@novell.com>
8015
8016         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
8017         char/short etc.
8018
8019 2006-02-15  Ankit Jain  <jankit@novell.com>
8020
8021         * metadata.c (mono_metadata_decode_signed_value): New function to decode
8022         signed values, used only for representing lower bounds of arrays.
8023         (mono_metadata_parse_array_full): Use new
8024         mono_metadata_decode_signed_value to decode lower bounds.
8025
8026 2006-02-14  Martin Baulig  <martin@ximian.com>
8027
8028         * reflection.c
8029         (mono_reflection_get_token): Support "MonoGenericMethod" and
8030         "MonoGenericCMethod" and allow generic instances / methods.
8031
8032 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
8033
8034         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
8035         to obtain the terminal size using an ioctl.
8036
8037         * object.c (mono_nullable_init): Revert this as nullable reference
8038         types are not valid.
8039         (mono_nullable_box): Ditto.
8040
8041 2006-02-09  Dick Porter  <dick@ximian.com>
8042
8043         * threads.c (mono_thread_detach): Drop a reference to the thread
8044         we're detaching.
8045
8046 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
8047
8048         * object.c (mono_nullable_init): Handle nullable reference types.
8049         (mono_nullable_box): Ditto. Fixes #77446.
8050
8051 2006-02-07  Martin Baulig  <martin@ximian.com>
8052
8053         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
8054
8055 2006-02-07  Ankit Jain  <jankit@novell.com>
8056
8057         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
8058         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
8059         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
8060         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
8061         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
8062         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
8063
8064 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
8065
8066         * class.c (mono_class_create_generic): Set type_token as well.
8067
8068         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
8069         compatible with MS.
8070
8071 2006-02-02  Martin Baulig  <martin@ximian.com>
8072
8073         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
8074         has never been used so far.
8075
8076 2006-02-02  Martin Baulig  <martin@ximian.com>
8077
8078         * mono-debug-debugger.h: Changed comment at the top of this file;
8079         the header is not installed, but it's safe to #include it from
8080         within the JIT.
8081
8082         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
8083         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
8084
8085 2006-02-02  Martin Baulig  <martin@ximian.com>
8086
8087         * mono-debug.h
8088         (MonoSymbolTable): Removed the `metadata_info' field.
8089
8090         * mono-debug.c
8091         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
8092
8093         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
8094         (mono_debugger_add_builtin_types): Removed.
8095         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
8096         (mono_debugger_create_notification_function): We now operate on a
8097         pre-allocated area; take a `gpointer' and return `void'.
8098
8099         * mono-debug-debugger.c
8100         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
8101         (mono_debugger_add_builtin_types): Removed.
8102
8103 2006-02-02  Martin Baulig  <martin@ximian.com>
8104
8105         * threads.c (mono_debugger_create_all_threads): New public method.
8106
8107 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
8108
8109         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
8110         breaks on several platforms.
8111
8112 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
8113
8114         * assembly.c: the VS.NET build doesn't supply default values for
8115         MONO_ASSEMBLIES and MONO_CFG_DIR.
8116
8117 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
8118
8119         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
8120         helper function.
8121
8122         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
8123
8124         * loader.c (method_from_memberref): Fix a warning.
8125
8126         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
8127
8128         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
8129         with explicit layout. Fixes #77433.
8130
8131 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
8132
8133         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
8134         max_interface_id is initialized before using it. Fixes #77398.
8135         (ves_icall_Type_GetInterfaces): Ditto.
8136
8137 2006-01-30  Raja R Harinath  <rharinath@novell.com>
8138
8139         * metadata.c (mono_metadata_parse_method_signature_full): Don't
8140         allocate memory for parameter attributes when parsing memberref
8141         signatures.
8142         * loader.c (mono_loader_set_error_method_load): Don't warn.
8143         (method_from_memberref): Ensure MissingMethodException gets thrown
8144         if method is not found.  Make warning more informative.
8145
8146 2006-01-29  Raja R Harinath  <harinath@gmail.com>
8147
8148         Fix #77397
8149         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
8150         return true if is byref.
8151         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
8152         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
8153         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8154
8155 2006-01-27  Raja R Harinath  <rharinath@novell.com>
8156
8157         Fix tests/find-method.2.il
8158         * loader.c (find_method, find_method_in_class): Remove is_inflated
8159         argument.  Revert 2006-01-18 change.
8160         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
8161         is generic, search for method in its generic definition.
8162         * class.c (mono_class_setup_vtable_general): Print generic
8163         arguments of generic types in debugging printf.
8164
8165 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
8166
8167         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
8168
8169         * threads.c (mono_threads_request_thread_dump): New helper function.
8170
8171 2006-01-25  Raja R Harinath  <rharinath@novell.com>
8172
8173         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
8174
8175 2006-01-25  Ankit Jain  <jankit@novell.com>
8176
8177         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
8178         move definition to ..
8179         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
8180         
8181 2006-01-25  Ankit Jain  <jankit@novell.com>
8182             Raja R Harinath  <rharinath@novell.com>
8183
8184         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
8185         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
8186         as necessary.
8187
8188 2006-01-25  Martin Baulig  <martin@ximian.com>
8189
8190         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
8191         `MonoDebuggerThread' into debug-debugger.c.
8192
8193 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
8194
8195         * profiler.c: fix printing of data.
8196
8197 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
8198
8199         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
8200           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
8201
8202 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
8203
8204         * object.c: fix deadlock related to string interning.
8205
8206 2006-01-23  Martin Baulig  <martin@ximian.com>
8207
8208         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
8209
8210         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
8211
8212 2006-01-23  Martin Baulig  <martin@ximian.com>
8213
8214         * mono-debug.h: Moved the prototypes of some functions which are
8215         used by the JIT here from mono-debug-debugger.h.
8216
8217 2006-01-21  Martin Baulig  <martin@ximian.com>
8218
8219         * Makefile.am: Don't install mono-debug-debugger.h.
8220
8221 2006-01-21  Martin Baulig  <martin@ximian.com>
8222
8223         * mono-debug-debugger.h: Enforce the private status of this header
8224         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
8225         Moved some stuff from mono-debugger-jit-wrapper.h here.
8226
8227 2006-01-20  Raja R Harinath  <rharinath@novell.com>
8228
8229         * class.c (mono_class_from_typeref): Add a sanity test to help
8230         catch lack of assembly load/search hooks.
8231
8232 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
8233
8234         * marshal.c (emit_struct_conv): Relax the fields with same offset
8235         check even more. Fixes #77230.
8236
8237 2006-01-18  Martin Baulig  <martin@ximian.com>
8238
8239         * loader.c (find_method_in_class): Added `gboolean is_inflated'
8240         argument; if false, we compare the uninstantiated signatures.
8241         (method_from_memberref): Compare the uninstantiated signatures;
8242         fixes #76417.
8243
8244 2006-01-18  Robert Jordan  <robertj@gmx.net>
8245
8246         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
8247         Clear the weak link. Fixes bug #77170.
8248
8249         * gc.c (mono_gchandle_free):
8250         Reflect *-gc.c changes (tiny optimization).
8251
8252 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
8253
8254         * metadata.c (mono_metadata_signature_dup): Applied patch from
8255         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
8256         Fixes #77288.
8257
8258 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
8259
8260         * marshal.c (emit_struct_conv): Allow fields with the same offset when
8261         marshalling from native to managed code. Fixes #77230.
8262
8263 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8264
8265         * threadpool.c: fix problem (Mac only) when more than one asynchronous
8266         connect. Fixes bug #77020.
8267
8268 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
8269
8270         * class.c: fixed id assignement for nested interfaces (bug #77275).
8271         Added also better info for --print-vtable debugging.
8272
8273 2006-01-12  Martin Baulig  <martin@ximian.com>
8274
8275         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
8276         interfaces on-the-fly; fixes #76625.
8277
8278         * class-internals.h
8279         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
8280         don't need that anymore.
8281
8282 2006-01-12  Miguel de Icaza  <miguel@novell.com>
8283
8284         * socket-io.c
8285         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8286         To avoid initing the nested_classes when not needed I turned the
8287         PeerCredData as a toplevel internal class, as it has to be shared
8288         anyways. 
8289
8290         Fixes the CASA issue.
8291
8292 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
8293
8294         * domain.c: Accessors for MonoJitInfo
8295
8296         * profiler-private.h: Add jitinfo to the end jit hook
8297
8298         * profiler.[ch]: Define new hooks, called after jitting which give
8299         the MonoJitInfo that was compiled
8300
8301 2006-01-10  Martin Baulig  <martin@ximian.com>
8302
8303         * class.c (mono_class_setup_events): Add support for generic
8304         classes; fixes #76440.
8305
8306 2006-01-06  Raja R Harinath  <rharinath@novell.com>
8307
8308         Fix #77160.
8309         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
8310         on passed-in method.
8311
8312 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
8313
8314         * object.c (mono_runtime_invoke_array): Add Nullable support.
8315
8316         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
8317
8318 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
8319
8320         * file-io.c: Don't consider sockets as directory and avoid an endless
8321         loop. Fix bug #76966.
8322
8323 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
8324
8325         * object.c (mono_nullable_init): New helper function.
8326         (mono_nullable_box): Ditto.
8327
8328         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
8329
8330         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
8331
8332         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
8333         
8334 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
8335
8336         * class.c (mono_class_is_assignable_from): Make T assignable to 
8337         Nullable<T>.
8338
8339 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
8340
8341         * appdomain.c: Bump corlib version to 46.
8342         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
8343         serialization purpose) and changed ves_icall_System_Reflection_
8344         Assembly_get_code_base signature to accept a boolean (to escape, or 
8345         not, the assembly code base).
8346
8347 2005-12-23  Dick Porter  <dick@ximian.com>
8348
8349         * icall.c: 
8350         * threads-types.h: 
8351         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
8352         CreateEvent icall now returns "created" boolean parameter.
8353
8354 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
8355
8356         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
8357         #76967.
8358
8359         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
8360         when attr_klass is an interface. Fixes #77045.
8361
8362 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
8363
8364         * marshal.c (emit_struct_conv): Fix previous patch.
8365         
8366         * marshal.c (emit_struct_conv): Add a check for fields with the same
8367         offset.
8368
8369 2005-12-20  Raja R Harinath  <rharinath@novell.com>
8370
8371         Fix regression in Mono.C5.
8372         * class.c (mono_class_create_generic): If 'klass' is an interface
8373         set up the interface offsets.
8374         (mono_class_is_assignable_from): Don't throw away generic arguments.
8375
8376 2005-12-19  Raja R Harinath  <rharinath@novell.com>
8377
8378         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
8379         type parameters.
8380
8381 2005-12-15  Raja R Harinath  <rharinath@novell.com>
8382
8383         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
8384         dead store.
8385         (do_mono_metadata_parse_generic_class): Don't pass the current
8386         generic context when parsing the type being instantiated: it
8387         cannot use it, anyway.
8388
8389         * loader.c (method_from_memberref): Don't inflate a signature if
8390         it doesn't contain any type parameters.
8391
8392 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
8393
8394         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
8395
8396 2005-12-14  Martin Baulig  <martin@ximian.com>
8397
8398         * class.c
8399         (mono_type_get_name_recurse): Don't return null for type
8400         parameters and open generic classes.
8401         (mono_class_setup_methods): Don't exclude generic instances.
8402         (mono_get_unique_iid): Use different IDs for different
8403         instantiations of the same generic type.
8404         (mono_class_setup_vtable): Only use setup_generic_vtable() for
8405         open generic instances; create a normal vtable for closed generic
8406         instances.
8407         (mono_class_setup_vtable_general): We're now also called for
8408         closed generic instances.
8409
8410         * reflection.c
8411         (mono_reflection_bind_generic_parameters): Correctly use
8412         mono_metadata_lookup_generic_inst() everywhere.
8413
8414 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
8415
8416         * object.c (mono_class_create_runtime_vtable): Call 
8417         mono_class_setup_vtable ().
8418
8419         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
8420         function.
8421         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
8422         #76959.
8423
8424         * loader.c (mono_loader_set_error_type_load): Print the type load
8425         warnings to the console so they are more visible to the user.
8426         (mono_loader_set_error_method_load): Ditto.
8427
8428         * reflection.c (ensure_runtime_vtable): Revert the last change as it
8429         is still broken.
8430         
8431         * reflection.c (ensure_runtime_vtable): Fix build.
8432
8433         * reflection.c (ensure_runtime_vtable): Disable an optimization which
8434         doesn't work in all cases.
8435
8436 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
8437
8438         * object.c (mono_array_new_full): Treat a single dimensional array
8439         with 0 lower bounds as an szarray. Fixes #76973.
8440
8441         * reflection.c (custom_attr_visible): Really fix this.
8442
8443 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
8444
8445         * reflection.c (custom_attr_visible): Allow nested public attributes
8446         as well.
8447
8448         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
8449         interface check.
8450
8451 2005-12-12  Raja R Harinath  <harinath@gmail.com>
8452
8453         * class.c (set_generic_param_owner): Delete.
8454         (mono_class_create_from_typedef): Don't set ->owner field of
8455         generic parameters to "param containers" of enclosing classes.
8456         * reflection.c (mono_reflection_initialize_generic_parameter):
8457         Likewise.
8458
8459 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
8460
8461         * reflection.c (custom_attr_visible): Fix build.
8462
8463 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
8464
8465         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
8466         private attributes.
8467         
8468         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
8469         handling of null parameter defaults.
8470
8471 2005-12-09  Raja R Harinath  <rharinath@novell.com>
8472
8473         * class.c (mono_class_from_generic_parameter): Don't set
8474         klass->generic_container.
8475         (my_mono_class_from_generic_parameter): Likewise.
8476
8477 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
8478
8479         * reflection.c (load_public_key): Fix a warning.
8480         (method_encode_code): Fix unaligned accesses.
8481
8482 2005-12-07  Martin Baulig  <martin@ximian.com>
8483
8484         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
8485
8486         * reflection.c
8487         (write_generic_param_entry): Encode our custom attrs.
8488
8489         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
8490
8491 2005-12-07  Martin Baulig  <martin@ximian.com>
8492
8493         * reflection.c (encode_new_constraint): Removed; we don't use the
8494         `NewConstraintAttribute' anymore.
8495
8496 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
8497
8498         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
8499         not fire a TypeResolve event when Assembly.GetType () is called.
8500
8501 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
8502
8503         Beginning of support for nullable types in the runtime. Parts of
8504         this patch are from Martin.
8505
8506         * appdomain.c (MONO_CORLIB_VERSION): Bump
8507
8508         * domain.c (mono_init_internal): get the nullable type
8509
8510         * class.c (mono_class_is_nullable): New method
8511         (mono_class_get_nullable_param): New mehod
8512         (mono_class_create_generic): In types T? set cast_class to T
8513
8514         * class-internals.h (MonoDefaults): new nullable default class
8515         (mono_class_get_nullable_param, mono_class_get_nullable_param):
8516         new methods.
8517
8518 2005-12-05  Raja R Harinath  <rharinath@novell.com>
8519
8520         * metadata.c (select_container): New.  Refactor code to select the
8521         appropriate GenericContainer given the type of generic parameter
8522         we are looking for.
8523         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
8524         not a MonoGenericContext.  Use select_container.  Update parameters.
8525         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
8526         and MONO_TYPE_MVAR.
8527         (unwrap_arrays): Remove duplicate tests.
8528         (find_generic_param): Rename from 'has_same_context'.  Now walks a
8529         generic instantiated class to find any arguments that are generic
8530         parameters.
8531         (mono_type_create_from_typespec_full): Use find_generic_param to
8532         avoid evicting some generic instantiations from the typespec
8533         cache.
8534
8535 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
8536
8537         * reflection.c: fixed writing of doubles on ARM FPA.
8538
8539 2005-12-02  Robert Jordan  <robertj@gmx.net>
8540
8541         * icall.c: Fixed EventInfo.ReflectedType (#76829).
8542
8543 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8544
8545         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
8546         least on SUSE 10 they are not the same (on debian, they are just the
8547         same thing).
8548
8549 2005-12-01  Raja R Harinath  <rharinath@novell.com>
8550
8551         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
8552         DeclaringType for VARs and MVARs.
8553         * class.c (set_generic_param_owner): Fix initialization of owner
8554         fields.
8555
8556 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8557
8558         * icall.c: fixed Enum.ToObject() to correctly convert the values.
8559
8560 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8561
8562         * threadpool.c: workaround for a bug that shows up on the Mac:
8563         select()+connect() on a blocking socket is not like it should
8564         be, so we proceed to connect() in that case, wasting the I/O
8565         threadpool thread until connect succeedes. Fixes bug #75436.
8566
8567 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8568
8569         * threadpool.c: fix typo when setting file descriptor states.
8570
8571 2005-11-28  Raja R Harinath  <rharinath@novell.com>
8572
8573         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
8574         * metadata.c (mono_metadata_parse_method_signature_full): Don't
8575         create a temporary signature container.
8576         (mono_metadata_parse_generic_param): Update to changes.
8577         (mono_type_create_from_typespec_full): Update to changes.
8578         * loader.c (method_from_memberref): Don't use a
8579         MonoGenericContainer while parsing a memberref signature.
8580         (method_from_methodspec): Remove dead-store of the 'container'
8581         variable.  It's overwritten before use.
8582
8583         * metadata.c (mono_type_create_from_typespec_full): Make debugging
8584         checks tighter.
8585         (mono_metadata_parse_generic_param): Likewise.
8586         * loader.c (find_method_in_class): Does not need a
8587         MonoGenericContainer.  Use 'mono_method_signature' rather than
8588         'mono_method_signature_full'.
8589         (find_method, mono_get_method_constrained, method_from_memberref):
8590         Update to changes.
8591
8592         * metadata.c (mono_type_create_from_typespec_full): Ensure that
8593         owner-less generic-parameters are never evicted from the typespec
8594         cache.
8595
8596         * loader.c (method_from_memberref): Don't use the current context
8597         when parsing signatures.
8598         (method_from_methodspec, mono_get_method_from_token): Update to changes.
8599
8600         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
8601         side-effects in g_assert.
8602         * loader.c (mono_get_method_from_token): Resolve klass earlier so
8603         that we don't potentially lose information.
8604
8605 2005-11-26  Dick Porter  <dick@ximian.com>
8606
8607         * icall.c:
8608         * threads.c: icalls to implement basic (ie, not named)
8609         System.Threading.Semaphore.
8610
8611 2005-11-24  Dick Porter  <dick@ximian.com>
8612
8613         * process.c
8614         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
8615         Use GetProcessId() if it's available.
8616
8617 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
8618
8619         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
8620
8621 2005-11-23  Raja R Harinath  <rharinath@novell.com>
8622             Ankit Jain  <jankit@novell.com>
8623
8624         * loader.c (mono_get_method_from_token): Initialize 'method' field
8625         of all generic parameters before parsing the signature.  Remove
8626         code that "fixed"-up MVAR references.
8627
8628 2005-11-23  Ankit Jain  <jankit@novell.com>
8629
8630         * metadata.c (mono_metadata_has_generic_params):
8631         (mono_metadata_load_generic_param_constraints):
8632         (mono_metadata_load_generic_params): Move duplicate code ...
8633         (mono_metadata_get_generic_param_row): ... here. Returns the
8634         first row-id in GenericParam table for a given owner (token).
8635         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
8636         prototype.
8637
8638 2005-11-23  Raja R Harinath  <rharinath@novell.com>
8639             Ankit Jain  <jankit@novell.com>
8640
8641         * metadata.c (mono_metadata_class_equal): Pass signature_only when
8642         comparing VARs too.
8643         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
8644         type->data.generic_param only if the type is an MVAR.
8645         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
8646         leak owner-less VARs and MVARs into managed space.
8647
8648 2005-11-21  Martin Baulig  <martin@ximian.com>
8649
8650         * class-internals.h
8651         (MonoMethod): Moved the `generic_container' here from
8652         `MonoMethodNormal' since we now also need it for
8653         `MonoMethodPInvoke';
8654         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
8655         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
8656         an union containing both `MonoMethodNormal' and
8657         `MonoMethodPInvoke'.
8658
8659         * loader.c
8660         (mono_get_method_from_token): Allow implementing generic methods
8661         as interncalls.
8662
8663         * threads.c
8664         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
8665         icall.
8666
8667 2005-11-17  Dick Porter  <dick@ximian.com>
8668
8669         * icall.c: 
8670         * process.h: 
8671         * process.c: Split the Process Start_internal icall into
8672         ShellExecuteEx_internal and CreateProcess_internal, which are
8673         called depending on whether UseShellExecute is true.  Fixes bug
8674         76670.
8675
8676         * appdomain.c (MONO_CORLIB_VERSION): Incremented
8677
8678 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
8679
8680         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
8681         'msize' parameters, use the information in 'mspec' instead.
8682         (emit_object_to_ptr_conv): Ditto.
8683
8684         * marshal.c (emit_struct_conv): Handle explicit layout structs with
8685         fields out of order. Fixes #76733.
8686
8687 2005-11-17  Ankit Jain  <jankit@novell.com>
8688
8689         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
8690
8691 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
8692
8693         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
8694           bug #76575.
8695
8696 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
8697
8698         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
8699         for types with non-auto layout. Fixes #76717.
8700
8701 2005-11-16  Ankit Jain  <jankit@novell.com>
8702
8703         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
8704         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
8705         if generic_context is null.
8706           (mono_metadata_generic_param_equal): param->owner can be null.
8707           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
8708         null.
8709
8710 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
8711
8712         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
8713         the correct value.
8714
8715 2005-11-15  Martin Baulig  <martin@ximian.com>
8716
8717         * object.c (set_value): Use mono_class_from_mono_type() instead of
8718         the hack for generic instances; fixes #76136.
8719
8720 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
8721
8722         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
8723         fields.
8724
8725         * image.c (load_metadata_ptrs): Initialize the new fields.
8726
8727         * reflection.c (create_dynamic_mono_image): Ditto.
8728
8729         * reflection.c (build_compressed_metadata): Use the new fields.
8730
8731         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
8732         icall.
8733
8734         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
8735         icall.
8736         
8737 2005-11-15  Ankit Jain  <jankit@novell.com>
8738             Raja R Harinath  <harinath@gmail.com>
8739
8740         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
8741         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
8742         new per-generic_container cache if the cached MonoType's context matches
8743         the current context.
8744           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
8745         to the expected context.
8746           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
8747
8748 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8749
8750         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
8751         we changed the signature of an icall.
8752         * icall.c: Modify to mono_double_ParseImpl return true/false 
8753         depending on the success, instead of throwing the exception. This will
8754         help us in Double.TryParse methods.
8755         
8756 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
8757
8758         * marshal.c (emit_marshal_object): Throw an exception when
8759         marshalling 'object' instead of crashing. Fixes #76696.
8760
8761 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
8762
8763         * class-internals.h: Add prototype for mono_type_get_full_name ().
8764
8765 2005-11-11  Dick Porter  <dick@ximian.com>
8766
8767         * threads.c (mono_thread_manage): Make sure the main thread has
8768         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
8769
8770 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
8771
8772         * loader.c (mono_loader_set_error_type_load): Log a warning to the
8773         console about the missing type.
8774         (mono_loader_set_error_method_load): Ditto.
8775
8776 2005-11-09  Miguel de Icaza  <miguel@novell.com>
8777
8778         * mono-config.c (mono_get_config_dir): Set the system defaults if
8779         none is specified.
8780
8781         * assembly.c (mono_set_dirs): New API entry point to set the
8782         assembly and the config directory in one call
8783
8784 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
8785
8786         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
8787         the ftnptr was created from a delegate in a domain other than the
8788         current domain. Fixes #75377.
8789
8790         * exception.h exception.c: Add mono_get_exception_not_supported ().
8791
8792 2005-11-08  Martin Baulig  <martin@ximian.com>
8793
8794         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
8795
8796 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
8797
8798         * security-manager.h: Added definitions to deal with strongname key 
8799         pairs bigger (and smaller) than 1024 bits.
8800         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
8801         adjust wrt the public key length being used.
8802
8803 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
8804
8805         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
8806           Windows build (r51396-51397).
8807
8808 2005-11-03  Martin Baulig  <martin@ximian.com>
8809
8810         * class.c (mono_class_setup_vtable_general): Also add generic
8811         methods to the vtable; fixes #76581.
8812
8813 2005-11-01  Miguel de Icaza  <miguel@novell.com>
8814
8815         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
8816         sure that we lookup GetString method from the System.Text.Encoding
8817         class, not the derived class or we get an empty method.
8818
8819         Fixed class #76612.
8820
8821 2005-10-25  Miguel de Icaza  <miguel@novell.com>
8822
8823         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
8824         if it has been previously set (embedders). 
8825
8826         Make mono_set_rootdir available also on Unix.
8827
8828 005-10-24  Robert Jordan  <robertj@gmx.net>
8829
8830         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
8831
8832 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
8833
8834         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
8835         only calls which are made to native code use this flag.
8836
8837         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
8838
8839 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
8840
8841         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
8842         Add support for FieldBuilders.
8843
8844 2005-10-29  Martin Baulig  <martin@ximian.com>
8845
8846         * mono-debug.c
8847         (mono_debug_using_mono_debugger): New public method; returns
8848         whether we're running inside the debugger.
8849
8850 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
8851
8852         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
8853         for Method/Constructor/FieldBuilders.
8854
8855 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
8856
8857         * reflection.c (module_add_cattrs): Save custom attributes for global methods
8858         and fields as well.
8859
8860 2005-10-26  Martin Baulig  <martin@ximian.com>
8861
8862         * mono-debug-debugger.c
8863         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
8864
8865 2005-10-24  Raja R Harinath  <harinath@gmail.com>
8866
8867         * icall.c (base64_to_byte_array): Don't pass an out-of-range
8868         integer to isspace.
8869
8870 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
8871
8872         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
8873         when passing valuetypes byref. Fixes #76502.
8874
8875 2005-10-19  Jackson Harper  <jackson@ximian.com>
8876
8877         * profiler.c: Don't put a . in front of types that are not in a
8878         namespace.
8879
8880 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
8881
8882         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
8883
8884 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
8885
8886         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
8887         #76436.
8888         (mono_marshal_get_ldflda_wrapper): Fix a warning.
8889
8890 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8891
8892         * assembly.c metadata-internals.h icall.c: Define an additional
8893         parameter for mono_assembly_name_parse_full, so we can avoid creating
8894         S.R.AssemblyName.Version when no version info wasn't passed.
8895         
8896 2005-10-09  Miguel de Icaza  <miguel@novell.com>
8897
8898         * class.c (mono_type_get_full_name): Reimplement method that was
8899         removed. 
8900
8901         * image.c: Some docs
8902
8903 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
8904
8905         * profiler.c (output_newobj_profile): Fix printing of Total memory
8906         on x86.
8907
8908 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
8909
8910         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
8911
8912 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
8913
8914         * threads.c: remove debug output.
8915
8916 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
8917
8918         * threads.c (mono_thread_manage): Fix crashes if more than 64
8919         threads need to be aborted. Hopefully fixes #75899.
8920
8921         * assembly.c (mono_stringify_assembly_name): New helper function.
8922
8923         * class.c: Use mono_stringify_assembly_name instead of the similar
8924         static function.
8925
8926         * assembly.h assembly.c: Add support for calling a postload search 
8927         hook if an assembly cannot be loaded.
8928
8929         * appdomain.c: Register new search hooks which call the AssemblyResolve
8930         events in AppDomain. Fixes #75231
8931
8932 2005-10-07  Martin Baulig  <martin@ximian.com>
8933
8934         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
8935         methods without debug info.
8936
8937 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
8938
8939         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
8940         wrappers.
8941
8942 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8943
8944         * file-io.c: now that we return symlinks, use lstat and, when the file
8945         is a symbolic link, stat, to get the file attributes. Also avoid the
8946         conversion to/from utf16/external.
8947
8948 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
8949
8950         * class.c (mono_class_layout_fields): Compute klass->has_references
8951         correctly if an embedded valuetype is not yet initialized. Fixes
8952         #76331.
8953
8954 2005-10-04  Martin Baulig  <martin@ximian.com>
8955
8956         * metadata.c
8957         (mono_metadata_load_generic_param_constraints): New public
8958         function; splitted the constraints loading out from
8959         mono_metadata_load_generic_params().
8960
8961         * class.c (mono_class_create_from_typedef): Call
8962         mono_metadata_load_generic_param_constraints() after setting up
8963         the type and creating our parent; fixes #75329.
8964
8965 2005-10-04  Martin Baulig  <martin@ximian.com>
8966
8967         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
8968         non-dynamic parent classes.
8969
8970 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
8971
8972         * file-io.c : win32 build fix (ETXTBSY seems not found).
8973
8974 2005-10-04  Martin Baulig  <martin@ximian.com>
8975
8976         * reflection.c
8977         (mono_image_get_methodspec_token): Make the cache actually work;
8978         fixes #75974.
8979
8980 2005-10-04  Martin Baulig  <martin@ximian.com>
8981
8982         * class.c (mono_class_name_from_token): Removed the unneccessary
8983         `MonoGenericContext *' argument.
8984
8985 2005-10-04  Martin Baulig  <martin@ximian.com>
8986
8987         * loader.c
8988         (method_from_methodspec): Make the caching work again; fixes the
8989         performance regression from #76262.
8990
8991 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8992
8993         * file-io.c:
8994         * file-io.h:
8995         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
8996         GetFileSystemEntries that performs the same work but without going
8997         into io-layer, locking, etc.
8998
8999 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
9000
9001         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
9002         ThreadState_Stopped as well. Fixes #76047.
9003
9004 2005-09-29  Martin Baulig  <martin@ximian.com>
9005
9006         * class.c
9007         (inflate_generic_context): If the new context has a `gmethod', set
9008         its `container' that that gmethod's `container'.
9009
9010         * metadata.c
9011         (mono_metadata_parse_generic_param): Simplify things;
9012         `generic_container = generic_context->container;' is just fine.
9013
9014         * loader.c (method_from_methodspec): Code cleanups.
9015
9016 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
9017
9018         * decimal.c: fix warning (and let gcc generate correct
9019         code on ARM with optimizations).
9020
9021 2005-09-28  Martin Baulig  <martin@ximian.com>
9022
9023         * loader.c
9024         (method_from_memberref): Added `MonoGenericContext *class_context'
9025         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
9026         (method_from_methodspec): If we're a memberref, use the enclosing
9027         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
9028
9029 2005-09-28  Martin Baulig  <martin@ximian.com>
9030
9031         * object.c (mono_runtime_invoke_array): Added support for
9032         MONO_TYPE_GENERICINST; fixes #75917.
9033
9034 2005-09-27  Martin Baulig  <martin@ximian.com>
9035
9036         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
9037         `k->byval_arg.type' to determine the actual type.
9038
9039         * loader.c (method_from_methodspec): Removed some hacks.
9040
9041 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
9042
9043         * class-internals.h (mono_field_is_deleted): Do the test for
9044         rtspecialname before we check the actual name of the field. This
9045         prevents us from dereferencing a pointer into the string table,
9046         saving us from accessing a few pages
9047
9048         * *.c: Replace the use of {Enter,Leave}CriticalSection with
9049         macros. This will allow a deadlock debugger to easily be plugged
9050         in.
9051
9052 2005-09-27  Martin Baulig  <martin@ximian.com>
9053
9054         * loader.c (method_from_methodspec): Create a "signature"
9055         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
9056
9057 2005-09-27  Martin Baulig  <martin@ximian.com>
9058
9059         * class.c
9060         (inflate_generic_class): Correctly set the new context's
9061         container.
9062
9063         * loader.c
9064         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
9065         instead of a `MonoGenericContext *'.
9066         (mono_method_signature_full): Take a `MonoGenericContainer *'
9067         instead of a `MonoGenericContext *'.
9068
9069         * metadata.c
9070         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
9071         instead of a `MonoGenericContext *'.
9072         (mono_metadata_parse_method_signature_full): Likewise.
9073
9074 2005-09-26  Martin Baulig  <martin@ximian.com>
9075
9076         * class.c
9077         (mono_class_from_generic_parameter): Set `klass->generic_container'
9078         (mono_class_from_generic_parameter): Likewise.
9079         (mono_bounded_array_class_get): We inherit the generic container
9080         from the element class.
9081
9082         * loader.c
9083         (find_method, find_method_in_class): Take a `MonoGenericContext *'
9084         argument rather than computing it here.
9085         (method_from_memberref): Correctly set the generic context before
9086         parsing the signature.  Fixes #75681.
9087
9088 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
9089
9090         * object.c (mono_class_has_special_static_fields): Fix warnings.
9091
9092 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9093
9094         * assembly.c: Add parse_public_key function, to
9095         par the public keys. Also added mono_assembly_name_parse_full,
9096         to define it the parsed key should be freed or not.
9097         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
9098         to parse a long format assembly name.
9099         * metadata-internals.h: Keep mono_assembly_name_parse_full as
9100         private, since calling it to preserve the key requires
9101         freeing it manually.
9102         
9103 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
9104
9105         * locales.c : removed HAVE_ICU part.
9106
9107 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
9108
9109         * object.c (mono_class_create_runtime_vtable): Avoid calling 
9110         field_is_special_static if the klass has no special static fields.
9111
9112         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
9113         (MonoCachedClassInfo): Likewise.
9114
9115         * object.c (mono_class_has_special_static_fields): New helper function.
9116
9117 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
9118
9119         * class.c (mono_class_create_from_typedef): Don't call 
9120         interfaces_from_typedef_full for enums.
9121         (mono_class_create_from_typedef): Compute the base types of enums directly
9122         without calling mono_class_setup_fields ().
9123         (mono_class_find_enum_basetype): New helper function.
9124
9125         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
9126         one place inside the string heap.
9127         
9128 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
9129
9130         * class.c: locking fixes, code cleanups, some docs added.
9131         Allocate some data structures in the image mempool.
9132
9133 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
9134
9135         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
9136         the example code.
9137         
9138 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
9139
9140         * class-internals.h, class.c, reflection.c: reduce memory taken by
9141         MonoClass.
9142
9143 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
9144
9145         * metadata.c, metadata.h, loader.h: documentation updates, code and
9146         API cleanups.
9147
9148 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
9149
9150         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
9151         the example code.
9152
9153         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
9154         page faults caused by the runtime while reading metadata.
9155
9156 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9157
9158         * socket-io.c: the field names were changed 3 months ago and no one
9159         realized until bug #76077 got filed!
9160
9161 2005-09-20  Martin Baulig  <martin@ximian.com>
9162
9163         * icall.c (assembly_icalls): Removed some unused debugger icalls.
9164
9165 2005-09-20  Martin Baulig  <martin@ximian.com>
9166
9167         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
9168         write the rank into the class entry.
9169
9170 2005-09-20  Martin Baulig  <martin@ximian.com>
9171
9172         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
9173
9174 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
9175
9176         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9177
9178         * icall.c (custom_attrs_defined_internal): New icall.
9179
9180         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
9181         function.
9182         (mono_custom_attrs_construct_by_type): New helper function.
9183
9184 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
9185
9186         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
9187         terminate the resulting string. Fixes #76123.
9188
9189 2005-09-16  Martin Baulig  <martin@ximian.com>
9190
9191         * mono-debug.c
9192         (mono_debug_add_method): Ignore inflated methods for the moment.
9193
9194 2005-09-14  Martin Baulig  <martin@ximian.com>
9195
9196         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
9197
9198 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
9199
9200         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
9201         return a success/failure indication.
9202         (mono_metadata_interfaces_from_typedef_full): Ditto.
9203         (get_constraints): Ditto.
9204
9205 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
9206
9207         * marshal.c (emit_marshal_array): Fix handling of null arrays.
9208         
9209         * marshal.c (emit_marshal_array): Add support for returning string
9210         arrays from delegates. Fixes #76063.
9211
9212         * marshal.c: Use the emit_ldloc/stloc macros where possible.
9213
9214 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
9215
9216         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
9217         icall.
9218
9219 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
9220
9221         * reflection.c icall.c: Fix after mono_get_exception_type_load
9222         signature change.
9223
9224         * assembly.c (mono_assembly_get_assemblyref): New helper function.
9225         (mono_assembly_load_reference): Use the new helper.
9226
9227         * class-internals.h (MonoLoaderError): New structure containing 
9228         information about type loading errors.
9229
9230         * class-internals.h loader.c: Add APIs to store per-thread loader
9231         error information.
9232
9233         * loader.c class.c: Set the loader error if needed.
9234
9235         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
9236
9237 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
9238
9239         * decimal.c: fixed to handle the broken ARM fp format.
9240
9241 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
9242
9243         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
9244         broken.
9245
9246 2005-09-06  Martin Baulig  <martin@ximian.com>
9247
9248         * domain.c (supported_runtimes): Added v2.0.50727.
9249
9250 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
9251
9252         * culture-info.h: reduce the size of some structures.
9253
9254 2005-09-05  Martin Baulig  <martin@ximian.com>
9255
9256         Reflect latest API changes in the August CTP.
9257
9258         * icall.c
9259         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
9260         ("MonoType.HasGenericArguments"): Removed.
9261         ("MonoMethod.BindGenericParameters"): Renamed to
9262         "MakeGenericMethod".
9263         ("MethodBuilder.BindGenericParameters"): Renamed to
9264         "MakeGenericMethod".    
9265
9266 2005-09-05  Martin Baulig  <martin@ximian.com>
9267
9268         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
9269
9270 2005-09-05  Martin Baulig  <martin@ximian.com>
9271
9272         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9273
9274         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
9275         generic_container is non-NULL.
9276
9277 2005-09-05  Martin Baulig  <martin@ximian.com>
9278
9279         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9280
9281         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
9282
9283 2005-08-29  Michal Moskal  <malekith@nemerle.org>
9284
9285         * reflection.c (encode_locals,
9286         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
9287         for large generic types.
9288
9289 2005-09-05  Martin Baulig  <martin@ximian.com>
9290
9291         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9292
9293         * class.c (mono_dup_array_type): New public method.
9294         (mono_metadata_signature_deep_dup): New public method.
9295         (dup_type): Correctly duplicate array and function types.
9296
9297 2005-09-05  Martin Baulig  <martin@ximian.com>
9298
9299         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9300
9301         * reflection.c (get_default_param_value_blobs): Handle generic types
9302         and generic methods.
9303
9304 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
9305
9306         * class.c: Fixed error reporting (method/class were inversed) for 
9307         inheritance demands.
9308         * security-manager.c|h: Added the AppDomain when calling the managed
9309         System.Security.SecurityManager.InheritanceDemand method.
9310
9311 2005-09-01  Raja R Harinath  <rharinath@novell.com>
9312
9313         * reflection.c (encode_marshal_blob): 'marshaltype' and
9314         'marshaltyperef' are alternate sources for the custom marshaler
9315         name.
9316
9317 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
9318
9319         * class.c: fix creation of array classes with rank == 1
9320         (patch by Ankit Jain <jankit@novell.com>).
9321
9322 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
9323
9324         * object.c: fix check for creating the bound data for arrays vs
9325         szarrays.
9326
9327 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9328
9329         * object.c: configuration file name is now based on the executable name,
9330         not the image name. Fixes bug #75931.
9331
9332 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
9333
9334         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
9335         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
9336
9337 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
9338
9339         * rand.c: Use wincrypt.h instead of WinCrypt.h.
9340
9341 2005-08-24  Ankit Jain  <jankit@novell.com>
9342             Raja R Harinath  <rharinath@novell.com>
9343
9344         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
9345           called by it recursively.
9346           (mono_class_init): Remove special case in pending_init handling, since it's
9347           superseded by the fix to mono_class_from_typeref.
9348
9349 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
9350
9351         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
9352         BROKEN_THREAD_START stuff.
9353
9354 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
9355
9356         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
9357         trampoline.
9358
9359         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
9360         
9361         * object.c (mono_delegate_ctor): Replace the original function address with
9362         a delegate trampoline.
9363
9364 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
9365
9366         * icall.c: add boolean argument to base64_to_byte_array and 
9367         InternalFromBase64String to control whether a whitespace-only string
9368         is allowed (or should casue a FormatException to be thrown). We need
9369         this as the behavior has changed between MS.NET 1.x and 2.0, and we
9370         to match the MS behaviour in both profiles.
9371         * appdomain.c: Bump corlib version.
9372
9373 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9374
9375         This patch implements a big portion of publisher policy
9376         support, used to bind assembly versions and redirect
9377         one assembly from version A to version B.
9378
9379         * assembly.c:
9380         New GSList loaded_assembly_bindings, for storing the cached
9381         assembly bindings.
9382         (assembly_binding_maps_name): New static function for checking if a 
9383         assembly binding information maps an assembly name.
9384         (mono_assembly_binding_info_free): New function for freeing
9385         assembly binding information resources.
9386         (get_publisher_policy_info): New static function for retrieving 
9387         assembly binding information from a MonoImage.
9388         (compare_versions): New static function for comparing an assembly
9389         binding information data and the version of an assembly name.
9390         (check_policy_versions): New static function for checking if an
9391         assembly binding info mapping an assembly name is valid for it.
9392         (mono_assembly_load_publisher_policy): New static function for
9393         loading the 'policy.major.minor.MyAssembly' image for an assembly
9394         with an assembly name 'aname'.
9395         (mono_assembly_bind_version): New static function for updating
9396         assembly redirection.
9397         (mono_assembly_apply_binding): New static function for applying
9398         assembly binding.
9399         (search_binding_loaded): New static function for searching 
9400         loaded assembly binding infos in the cache domain.
9401         (mono_assembly_load_full): Don't apply assembly binding for
9402         reflection only assemblies.
9403
9404         * metadata-internals.h: Add MonoAssemblyBindingInfo,
9405         which contains information about assembly binding. Also
9406         declare signature for mono_config_parse_publisher_policy ()
9407         function, used to retrieve pub policy info.
9408         
9409         * mono-config.c:
9410         (publisher_policy_start): New static function used to parse publisher 
9411         policy config files.
9412         (publisher_policy_parser): New static MonoParseHandler containing 
9413         the functions used when parsing config files.
9414         (mono_config_parse_publisher_policy): New function for parsing
9415         publisher policy files.
9416         
9417 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
9418
9419         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
9420
9421         * marshal.c (mono_delegate_free_ftnptr): Ditto.
9422
9423         * object.c (mono_get_addr_from_ftnptr): New helper function.
9424
9425         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
9426
9427         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9428
9429 2005-08-19  Dick Porter  <dick@ximian.com>
9430
9431         * threads.c, threads.h, appdomain.c, appdomain.h,
9432         profiler-private.h, monitor.c, object.c, object-internals.h,
9433         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
9434         store the thread ID, so it can hold a 64 bit value if needed.
9435
9436 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
9437
9438         * reflection.c (mono_reflection_create_dynamic_method): Store the
9439         handle class into the method references as well so ldtoken works in
9440         dynamic methods.
9441
9442         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
9443         types.
9444
9445 2005-08-19  Ankit Jain <jankit@novell.com>
9446
9447         Fix #75847.
9448         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
9449           here rather than using the method signature of a arbitrary function
9450           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
9451           two arguments.
9452           Hack done with Harinath.
9453
9454 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9455
9456         * threadpool.c: disable printing stack traces when we get a exception
9457         in a threadpool thread. I need to do more testing to figure out which
9458         cases actually print this. Fixes bug #75828.
9459
9460 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9461
9462         * icall.c: there might be ignored whitespace after the last '='. This
9463         fixes length computation and bug #75840.
9464
9465 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
9466
9467         * assembly.c (mono_assembly_load_full): Consider .exe extension as
9468         well. Fixes #75809.
9469
9470         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
9471         #75784.
9472         
9473         * reflection.c (create_custom_attr_data): Ditto.
9474
9475 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
9476
9477         * locales.c, culture-info.h : removed RegionLCIDMap.
9478         * culture-info-tables.h : regenerated.
9479
9480 2005-08-16  Martin Baulig  <martin@ximian.com>
9481
9482         * class.c (mono_type_get_name_recurse): Small fix.
9483
9484 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
9485
9486         * locales.c : indentation fixie.
9487
9488 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
9489
9490         * object-internals.h,
9491           locales.h,
9492           locales.c,
9493           culture-info.h,
9494           icall.c : added RegionInfo table support.
9495         * culture-info-table.h : regenerated for region support.
9496
9497 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
9498
9499         * reflection.c (resolve_object): handle all kinds of MonoMethod
9500         including generic ones
9501
9502 2005-08-12  Ankit Jain <jankit@novell.com>
9503
9504         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
9505           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
9506
9507 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
9508
9509         * process.c: Don't close a thread handle when it's NULL. This is a
9510         workaround for bug #75733.
9511
9512 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
9513
9514         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
9515
9516 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
9517
9518         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
9519
9520 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9521
9522         * threadpool.c: if a work item in the thread pool has a callback that
9523         catches a exception, don't propagate it after invoking the callback.
9524         Fixes bug #75336.
9525
9526 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
9527
9528         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
9529
9530         * class-internals.h (MonoCachedClassInfo): Add some new fields.
9531
9532         * class.c (mono_class_init): Load field info lazily in the AOT case.    
9533
9534         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
9535
9536 2005-08-03  Ankit Jain  <jankit@novell.com>
9537
9538         Fix #75683.
9539         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
9540           PInvoke calling convention is 0.
9541
9542 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
9543
9544         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
9545         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
9546
9547 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
9548
9549         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
9550         to handle threads not started by the GC (patch by Michael Meeks
9551         <michael.meeks@novell.com>).
9552
9553 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
9554
9555         * reflection.c: Make buffer used in emitting types larger for some
9556         big generic types (patch by Michal Moskal).
9557
9558 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
9559
9560         * mono-debug.c: Fix some (not all) alignment problems.
9561
9562 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9563
9564         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
9565         Invoke mono_image_load_from_data_full passing the refonly
9566         parameter.
9567
9568         * assembly.c
9569         (mono_assembly_open_from_bundle): Add the refonly argument, 
9570         in order to pass it to other methods it calls to.
9571         (do_mono_assembly_open): Add the refonly argument, in order 
9572         to pass it to other methods it calls to.
9573         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
9574         the refonly parameter to it.
9575
9576         * image.c: Add loaded_images_refonly_hash and
9577         loaded_images_refonly_guid_hash to cache the reflection
9578         only loaded images.
9579         (mono_images_init): Initialize the hash tables used for
9580         caching the reflection only images.
9581         (load_modules): Invoke mono_image_open_full passing the refonly
9582         parameter to load the modules the correct way.
9583         (build_guid_table): Add the refonly argument, to re-build the 
9584         correct hash table.
9585         (do_mono_image_open): Added the refonly argument, in order to
9586         define it for the loaded image.
9587         (mono_image_loaded_full): New function, which receives an
9588         additional parameter to look for the image in the refonly or
9589         non-refonly section.
9590         (mono_image_loaded): Updated, using mono_image_loaded_full.
9591         (mono_image_loaded_by_guid_full): The same case that happens
9592         with mono_image_loaded_full.
9593         (mono_image_loaded_by_guid): Likewise.
9594         (register_image): Use the ref_only variable inside MonoImage
9595         to decide in which hash table store the current image.
9596         (mono_image_open_from_data_full): Rename
9597         mono_image_open_from_data to mono_image_open_from_data_full,
9598         adding the refonly argument, to define the ref_only variable 
9599         inside MonoImage.
9600         (mono_image_open_from_data): Return 
9601         mono_image_open_from_data_full.
9602         (mono_image_open_full): Rename mono_image_open to
9603         mono_image_open_full, receiving the new refonly argument,
9604         to pass it to inner methods.
9605         (mono_pe_file_open): Update this function, to open
9606         a MonoImage as a non-refonly image.
9607         (mono_image_close): Use the refonly variable inside
9608         MonoImage to remove the image from the correct caches.
9609
9610         * image.h: Add the signatures of mono_image_open_full,
9611         mono_image_open_from_data_full, mono_image_loaded_full,
9612         mono_image_loaded_by_guid_full.
9613
9614         * metadata-internals.h: Add the ref_only field to 
9615         MonoImage.
9616         
9617 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9618
9619         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
9620         Fix the last behavior, which used to load the assemblies and
9621         extract MonoReflectionAssemblyName information, instead of
9622         extract it from the metadata tables. Needed for Reflection
9623         Only assemblies.
9624         
9625 2005-07-29  Martin Baulig  <martin@ximian.com>
9626
9627         * mono-debug-debugger.c
9628         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
9629         not initialized.
9630
9631         * mono-debug.c
9632         (mono_debug_address_from_il_offset): Check whether we have
9633         debugging support before attempting to take the lock.
9634         (mono_debug_source_location_from_address): Likewise.
9635         (mono_debug_source_location_from_il_offset): Likewise.
9636         (mono_debug_il_offset_from_address): Likewise.
9637         (mono_debug_address_from_il_offset): Likewise.
9638
9639 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
9640
9641         * class.c (mono_class_from_name_case): Add support for dynamic images.
9642         Fixes #75650.
9643
9644         * object.c (mono_class_compute_gc_descriptor): Add a workaround
9645         for #75479.
9646
9647 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
9648         
9649         * reflection.c (mono_method_get_object): Fix warning.
9650
9651 2005-07-28  Martin Baulig  <martin@ximian.com>
9652
9653         * mono-debug.c
9654         (mono_debug_add_wrapper): Also write the wrapper type.
9655
9656 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
9657
9658         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
9659         
9660         * class.c (mono_class_init): Avoid reading nested classes if the AOT
9661         data indicates the class has none.
9662
9663 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
9664
9665         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
9666         loader lock with the debugger lock. Prevents deadlocks for beagle.
9667
9668         Beagle can now run on an smp box for a weekend without any
9669         issues. Woohoo!
9670
9671 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
9672
9673         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
9674         in a module. Fixes #75629.
9675
9676 2005-07-26  Martin Baulig  <martin@ximian.com>
9677
9678         * mono-debug.c (mono_debug_add_wrapper): New static method.
9679         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
9680         interncall or a wrapper.
9681
9682         * mono-debug.h (MonoDebugWrapperData): New public typedef.
9683         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
9684         (MONO_DEBUGGER_VERSION): Bump to 51.
9685
9686         * mono-debug-debugger.c
9687         (mono_debugger_add_type): Removed this empty function.
9688         (mono_debugger_add_method): Likewise.
9689
9690 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
9691
9692         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
9693         before accessing method->slot.
9694
9695 2005-07-21  Jb Evain  <jbevain@gmail.com>
9696
9697         * reflection.c (method_encode_clauses/class): Handle filters clauses.
9698         Fixes #75010.
9699
9700 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
9701
9702         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
9703         #75587.
9704
9705 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
9706
9707         * image.h image.c: Add mono_image_get_guid () API function.
9708
9709 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
9710
9711         There were issues when multiple threads tried to load
9712         assemblies. A deadlock was created between assemblies_mutex and
9713         mono_domain_assemblies_lock. This fixes the issue by making the
9714         assembly ref counting be lock free. See bug 75586.
9715         
9716         * image.c (mono_image_close): The add ref function here was using
9717         Interlocked operations while the unref was using a mutex and a
9718         --. I don't think this was ever a bug that would be exposed in a
9719         non-pendantic way (ie, by an embedder doing a ref on one thread
9720         and an unref on another), but for the sake of correctness, this is
9721         now Interlocked.
9722
9723         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
9724         (mono_assembly_load_reference): Call mono_assembly_addref rather
9725         than touching the refcount ourselves.
9726         (mono_assembly_close): Use InterlockedDecrement to unref the
9727         assembly. Don't acquire the lock unless it is actually needed.
9728
9729 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
9730
9731         * class.c (mono_class_layout_fields): Fix calculation of has_references
9732         for generic types.
9733
9734 2005-07-12  Martin Baulig  <martin@ximian.com>
9735
9736         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9737
9738         * metadata.c
9739         (mono_type_hash): Provide better hashing for generic instances.
9740         (mono_generic_inst_hash): Improve hashing.
9741         (mono_generic_class_hash): Likewise.
9742
9743         * reflection.c (mymono_metadata_type_hash): Improve hashing for
9744         generic instances.
9745
9746 2005-07-12  Martin Baulig  <martin@ximian.com>
9747
9748         * reflection.c (mono_reflection_create_runtime_class): Remove the
9749         hack for generic type definitions and non-`Run' assemblies.
9750         (mono_reflection_bind_generic_parameters): Also use
9751         `klass->wastypebuilder' to check for TypeBuilders.
9752
9753 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
9754
9755         * class.c (mono_class_layout_fields): Fix calculation of has_references
9756         for generic types.
9757
9758         * class.c (inflate_generic_class): Fix a leak.
9759         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
9760         for generic types.
9761
9762 2005-07-11  Martin Baulig  <martin@ximian.com>
9763
9764         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
9765         on error.
9766
9767 2005-07-11  Martin Baulig  <martin@ximian.com>
9768
9769         * loader.c (find_method): Also lookup in
9770         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
9771
9772 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9773
9774         * appdomain.c (mono_domain_unload): Don't free the error message
9775         before passing it to mono_get_exception_...
9776
9777         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
9778         
9779 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
9780
9781         * threads.c: try to better guess an available RT signal (bug #75387).
9782
9783 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9784
9785         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
9786         and CACHE_OBJECT.
9787
9788 2005-07-07  Martin Baulig  <martin@ximian.com>
9789
9790         * class.c (mono_type_get_name_full): Return NULL for
9791         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
9792         fixes #75408.
9793
9794 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
9795
9796         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
9797         exit the appdomain as well being aborted.
9798
9799         * threadpool.c: Create all threadpool threads inside the root appdomain, and
9800         change back to the root domain after calling managed code. This enables
9801         appdomains using threadpools to be unloaded.
9802
9803 2005-07-07  Martin Baulig  <martin@ximian.com>
9804
9805         * class-internals.h
9806         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
9807         into `MonoDynamicGenericClass' since we only need it for dynamic
9808         types.
9809
9810         * reflection.c (mono_class_bind_generic_parameters): We don't need
9811         to compute the `parent' here.
9812
9813 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
9814
9815         * culture-info-table.h : regenerated.
9816
9817 2005-07-06  Martin Baulig  <martin@ximian.com>
9818
9819         * icall.c
9820         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
9821
9822         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
9823
9824 2005-07-06  Martin Baulig  <martin@ximian.com>
9825
9826         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
9827         we're doing a signature-only comparision; fixes #74945.
9828
9829 2005-07-06  Martin Baulig  <martin@ximian.com>
9830
9831         * class-internals.h (MonoGenericClass): Moved some things out into
9832         a new `MonoInflatedGenericClass' type.  
9833         (MonoInflatedGenericClass): New type; the `klass' of a
9834         `MonoGenericClass' is now computed lazyly in
9835         mono_get_inflated_generic_class().      
9836
9837         * class.c (mono_get_inflated_generic_class): New public function.
9838         (mono_class_inflate_generic_method): Removed the unused
9839         `MonoClass *' argument.
9840         (setup_generic_vtable): Don't call mono_get_inflated_method() on
9841         all the methods.
9842         (mono_class_create_generic): Make this static and merge it with
9843         mono_class_create_generic_2(); we're now called automatically from
9844         mono_get_inflated_generic_class().
9845
9846         * loader.c (mono_method_signature): Call
9847         mono_get_inflated_method() here.
9848
9849 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
9850
9851         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
9852         type of fields with RVA.
9853
9854         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
9855         for this pseudo class.
9856         (my_mono_class_from_generic_parameter): Likewise.
9857         (mono_class_init): Allow interfaces to have cctors.
9858
9859 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
9860
9861         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
9862         lazily for AOT methods.
9863
9864 2005-07-05  Martin Baulig  <martin@ximian.com>
9865
9866         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
9867         returns FALSE for a successful match, not TRUE.
9868
9869 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
9870
9871         * loader.c (mono_method_get_index): Optimize this a bit.
9872
9873 2005-07-04  Martin Baulig  <martin@ximian.com>
9874
9875         * class.c
9876         (class_compute_field_layout): Move the check for generic type
9877         definitions into mono_class_layout_fields().  Fixes #74684.
9878         (mono_class_from_generic_parameter): Correctly compute
9879         `klass->parent'; fixes #75457.
9880
9881         * reflection.c (register_assembly, register_module): Make sure
9882         `domain->rejobject_hash' is already created.
9883
9884 2005-07-02  Martin Baulig  <martin@ximian.com>
9885
9886         * class-internals.h
9887         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
9888         `MonoDynamicGenericClass'.      
9889
9890 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
9891
9892         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
9893         returned by a field getter is null, since null is a valid value.
9894
9895 2005-07-01  Martin Baulig  <martin@ximian.com>
9896
9897         * reflection.c (mono_reflection_generic_class_initialize): Update
9898         the `dgclass->fields [i].parent' to the correct class.
9899         (mono_image_get_fieldref_token): Use the declaring type, not the
9900         reflected type.
9901
9902 2005-07-01  Martin Baulig  <martin@ximian.com>
9903
9904         * loader.c (find_method): Also look in the interfaces; fixes #75429.
9905
9906 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
9907
9908         * threads.c (thread_cleanup): assert that thread != NULL
9909         (wait_for_tids_or_state_change): We were using the wrong variable
9910         when accessing wait->threads. `i' was always out of the bounds of
9911         the array.
9912
9913 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9914
9915         * loader.c: map user32 and kernel32 to libMonoSupportW
9916
9917 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
9918
9919         * appdomain.c (unload_thread_main): Mark this as WINAPI.
9920
9921 2005-06-28  Martin Baulig  <martin@ximian.com>
9922
9923         * loader.c (method_from_methodspec): Fix #75334.
9924
9925 2005-06-28  Martin Baulig  <martin@ximian.com>
9926
9927         Fix #74953 - Arrays now implement the generic IList<T> interface
9928         on the 2.0 platform.
9929
9930         * class-internals.h (MonoDefaults): Added `generic_array_class'.
9931
9932         * reflection.c (mono_class_bind_generic_parameters): New public
9933         function; similar to mono_reflection_bind_generic_parameters(),
9934         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
9935
9936         * domain.c (mono_init_internal): Try to initialize.
9937         `mono_defaults.generic_array_class' here; this'll only succeed if
9938         we're using the 2.0 corlib.
9939
9940         * icall.c
9941         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
9942         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
9943         (mono_lookup_internal_call): Added support for nested classes.
9944
9945         * loader.c
9946         (mono_get_method_from_token): Set `result->signature->pinvoke' if
9947         we're an interncall and have generic arguments.
9948
9949         * class.c
9950         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
9951         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
9952         instance of System.Array.InternalArray<T> for arrays, so they
9953         implement the generic IList<T> interface.
9954
9955 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
9956
9957         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
9958         (chastamar@yahoo.com). Fixes #75374.    
9959
9960 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
9961
9962         * culture-info-table.h: regenerated.
9963
9964 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9965
9966         * icall.c: handle spaces correctly for base64 strings.
9967
9968 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
9969
9970         * *.c: Kill some warnings.
9971
9972 2005-06-23  Duncan Mak  <duncan@novell.com>
9973
9974         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
9975         that this builds on Solaris 10 (x86).
9976
9977 2005-06-23  Martin Baulig  <martin@ximian.com>
9978
9979         * class.c
9980         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
9981         generic type definitions.
9982
9983 2005-06-23  Martin Baulig  <martin@ximian.com>
9984
9985         Fix #75331.
9986
9987         * metadata.c (mono_class_get_overrides): Renamed to
9988         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
9989         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
9990         pass it to mono_get_method_full().
9991
9992 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
9993
9994         * reflection.c (mono_reflection_create_runtime_class): take the
9995         mono_domain_lock in this method. Prevents deadlocks
9996
9997 2005-06-22  Martin Baulig  <martin@ximian.com>
9998
9999         * loader.c (method_from_methodspec): Fix #75330.
10000
10001 2005-06-22  Martin Baulig  <martin@ximian.com>
10002
10003         * reflection.c (type_get_qualified_name): Use
10004         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
10005         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
10006         argument; use it if we don't have an assembly name.
10007
10008 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
10009
10010         * object.c: In mono_message_init, set "copy out" flag for in
10011         parameters with the [Out] flag.
10012
10013 2005-06-21  Martin Baulig  <martin@ximian.com>
10014
10015         * class.c
10016         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
10017         and MONO_TYPE_PTR.
10018
10019 2005-06-21  Martin Baulig  <martin@ximian.com>
10020
10021         * class.c (mono_class_init): Don't initialize `class->fields' for
10022         generic instances since they're initialized again in
10023         compute_field_layout(). 
10024         (compute_field_layout): Set the field's `generic_info' here; fix
10025         #75320. 
10026
10027 2005-06-21  Martin Baulig  <martin@ximian.com>
10028
10029         * class-internals.h
10030         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
10031
10032         * metadata.c (mono_metadata_generic_method_equal): Also
10033         distinguish the `generic_class'; fixes #75334.
10034
10035 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10036
10037         * domain.c:
10038         * appdomain.c:
10039         * domain-internals.h:
10040         * reflection.c: 'domain_assemblies' field is now protected by its own
10041         lock. Don't call into managed code to run the AssemblyLoad event if we
10042         now there are no registered delegates for it.
10043
10044 2005-06-20  Martin Baulig  <martin@ximian.com>
10045
10046         * class.c (mono_class_is_assignable_from): Use a custom version of
10047         mono_class_has_parent() to make things work for generic instances;
10048         fix #75300.
10049
10050 2005-06-20  Martin Baulig  <martin@ximian.com>
10051
10052         * loader.c (method_from_methodspec): Apply a patch from
10053         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
10054
10055 2005-06-20  Martin Baulig  <martin@ximian.com>
10056
10057         * class.c (mono_class_init): Reverted Zoltan's last change; it
10058         breaks generics.
10059
10060 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
10061
10062         * threads.c (wait_for_tids_or_state_change): Add missing locking.
10063
10064 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10065
10066         * socket-io.c: fix the index in the socket array for writable/error
10067         sockets. Fixes bug #75306.
10068
10069 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
10070
10071         * class.c (mono_class_init): Allow interfaces to have static ctors.
10072
10073 2005-06-17  Martin Baulig  <martin@ximian.com>
10074
10075         * loader.c (method_from_methodspec): Use `context->container' when
10076         parsing the `gmethod->inst'.
10077
10078 2005-06-17  Martin Baulig  <martin@ximian.com>
10079
10080         * class.c (mono_type_get_name_recurse): Don't add the assembly
10081         name for type arguments.
10082
10083 2005-06-15  Martin Baulig  <martin@ximian.com>
10084
10085         * reflection.c (mono_image_get_inflated_method_token): Encode
10086         correct klass; fixes #75260.
10087
10088 2005-06-13 Michal Moskal <malekith@nemerle.org>
10089
10090         * icall.c: Make GetCorrespondingMethod/Constructor take
10091         MonoReflectionMethod method not MonoMethod. Removed
10092         MonoType.GetCorrespondingField, and make
10093         MonoGenericType.GetCorrespondingField take name not
10094         MonoClassField.
10095
10096 2005-06-13  Michal Moskal <malekith@nemerle.org>
10097
10098         * reflection.c (field_encode_signature, encode_locals):
10099          Make sizes of buffers for types larger (for big generic types).
10100          (create_generic_typespec,
10101          mono_reflection_sighelper_get_signature_local,
10102          mono_reflection_sighelper_get_signature_field):
10103          Add asserts for too small buffers.
10104
10105 2005-06-15  Martin Baulig  <martin@ximian.com>
10106
10107         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
10108         if our parent is not a dynamic type.
10109
10110 2005-06-15  Martin Baulig  <martin@ximian.com>
10111
10112         * class-internals.h (MonoTypeNameFormat): New enum.
10113
10114         * class.c
10115         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
10116         (mono_type_get_full_name): Removed.
10117         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
10118         argument instead of the boolean's.
10119
10120         * icall.c (ves_icall_System_MonoType_getFullName):
10121         Added `gboolean assembly_qualified'.    
10122
10123         * reflection.h
10124         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
10125
10126         * reflection.c (mono_reflection_parse_type): Parse the new type
10127         name format.
10128
10129 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10130
10131         * icall.c: no need to convert from utf16 to utf8 and then back again
10132         after the call to GetLogicalDrives.
10133
10134 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10135
10136         * icall.c: frombase64. Fix problems exposed by new tests.
10137
10138 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10139
10140         * icall.c: added internal calls for converting char [] and strings in
10141         base64 into byte [].
10142
10143 2005-06-10  Martin Baulig  <martin@ximian.com>
10144
10145         * class.c (mono_class_create_generic_2): Read the nested classes
10146         from the metadata rather than from `gklass->nested_classes' since
10147         `gklass' might not be initialized yet.
10148
10149 2005-06-09  Duncan Mak  <duncan@novell.com>
10150
10151         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
10152         all public headers. Fixes #74919.
10153
10154 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
10155
10156         * domain.c: The key for proxy_vtable_hash is now a pointer
10157         array. Added new GHashFunc and GCompareFunc functions for this.
10158
10159         * class.h: The list of interfaces in MonoRemoteClass is known in
10160         advance and can't grow (we create a new MonoRemoteClass if needed),
10161         so now the interface array can be allocated together with
10162         MonoRemoteClass.
10163         
10164         * object.c: Added a new method create_remote_class_key.
10165         Fixed mono_remote_class so it does not depend on
10166         mono_upgrade_remote_class.
10167         Removed extend_interface_array.
10168         Added new method clone_remote_class(), which makes a copy of a remote
10169         class and adds a new interface or class to it.
10170         mono_upgrade_remote_class() now creates a new remote class (or gets
10171         it from the cache) if an vtable upgrade is needed. In this way
10172         we make sure that other objects sharing the same remote class
10173         don't get the new vtable with unwanted interfaces.
10174         
10175         * object-internals.h:
10176         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
10177         
10178         * marshal.c: Track changes in mono_upgrade_remote_class().
10179
10180 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
10181         * icall.c: Add runtime methods for obtaining members of inflated
10182         class, which were created from supplied non-inflated members. It
10183         is used in internal Get{Method,Constructor,Field} methods in
10184         System.Type
10185
10186 2005-06-09  Martin Baulig  <martin@ximian.com>
10187
10188         * reflection.c
10189         (mono_reflection_bind_generic_method_parameters): Fix #75169.
10190
10191 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10192         * reflection.c (mono_image_basic_init): Define
10193         Version in MonoDynamicAssembly. 
10194         
10195 2005-06-08  Martin Baulig  <martin@ximian.com>
10196
10197         Fix #75136.
10198
10199         * loader.c
10200         (mono_method_signature_full): New public method; takes a
10201         `MonoGenericContext *'.
10202         (find_method): Use mono_method_signature_full() and pass the
10203         klass'es context to it.
10204
10205         * class.c (mono_class_is_inflated_method): Use
10206         mono_method_signature_full() and pass the context to it.
10207
10208 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
10209
10210         * object.c: add proper locking in mono_remote_class_vtable(),
10211         fixes possible memory corruption.
10212
10213 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
10214
10215         * marshal.c (mono_remoting_marshal_init): set
10216         initialized after initialization.
10217
10218 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10219
10220         * locales.c : hush.
10221
10222 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
10223
10224         * object.c (extend_interface_array): fix really silly
10225         memory corrupting / comparison bug.
10226
10227 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10228
10229         * reflection.c: Functions added to support the creation
10230         of CustomAttributeData, which includes Attribute data
10231         used by ReflectionOnly methods.
10232
10233         * reflection.h:  mono_reflection_get_custom_attrs_data and
10234          mono_custom_attrs_data_construct added (functions exposed).
10235
10236          * icall.c: Added mono_reflection_get_custom_attrs_data
10237          as icall.
10238         
10239 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
10240
10241         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
10242         lupus's request.
10243
10244 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
10245
10246         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
10247
10248         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
10249         dynamic DllImportAttribute.
10250
10251         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
10252         dynamic DllImportAttribute.
10253
10254         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
10255         Fixes #75162.
10256
10257 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10258
10259         * threads.c: avoid segfault when an unstarted thread is aborted.
10260
10261 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
10262
10263         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
10264         Returns the name and version of the runtime for reporting.
10265
10266 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10267
10268         * appdomain.c: bump corlib version.
10269         * object-internals.h: new field in MonoReflectionAssembly.
10270
10271 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10272
10273         * object-internals.h: Carlos forgot to add this field.
10274
10275 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10276
10277         * icall.c: Added create_version to create instances
10278         of Version of MonoReflectionAssemblyName. This change helps
10279         the AssemblyName tests to keep running fine.
10280         
10281 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
10282   
10283         * object.c (mono_method_return_message_restore): A somehow less
10284         intrusive fix for #75138.
10285
10286 2005-06-03  Raja R Harinath  <rharinath@novell.com>
10287
10288         * object.c (mono_method_return_message_restore): Fix computation
10289         of expected number of out args.
10290
10291 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
10292
10293         * reflection.c (mono_image_get_method_info): Fix the case when the
10294         charset is empty.
10295
10296 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
10297
10298         * object.c: Added missing null check in
10299           mono_method_return_message_restore.
10300
10301 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
10302
10303         * reflection.c (mono_image_get_method_info): Handle the case when
10304         dllentry is empty.
10305
10306 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
10307
10308         * object.c: When creating the vtable for a proxy, take into account
10309         all inherited interfaces, not only the ones registered in
10310         iclass->interfaces. This fixs bug #74996.
10311         Also, in mono_method_return_message_restore, verify that the array
10312         of out args has the expected lengh.
10313
10314 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10315
10316         * socket-io.c: update the timeout in Poll when the call is interrupte.
10317
10318 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10319
10320         * socket-io.c: support abort/suspend in Select_internal after last
10321         change.
10322
10323 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10324
10325         * threadpool.c: remove warning.
10326
10327 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10328
10329         * icall.c:
10330         * socket-io.[ch]: Select_internal uses poll() now when available, thus
10331         removing the 1024 limit from select(). Runtime part of the fix for
10332         bug #71203.
10333
10334 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10335
10336         * socket-io.c: when resolving the addresses for the same
10337         host returned by gethostname(), get the local IPs from the interface
10338         list. Loopback addresses are discarded if the are interfaces up with
10339         non-loopback ones. Fixes bug #63265.
10340
10341 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
10342
10343         * appdomain.c, verify.c, object-internals.h, reflection.c:
10344         bumped corlib number to 36, and added new extra_flags field
10345         to ReflectionMethodBuilder and friends.  Fixes #75060.
10346
10347 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
10348
10349         * gc.c: register a new weak link only if the object is non-null
10350         (fixes bug#75047).
10351
10352 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10353
10354         * culture-info.h : short time pattern too.
10355
10356 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10357
10358         * culture-info.h : expand long time pattern string length.
10359
10360 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10361
10362         * culture-info-table.h : update (more French date format; #72788).
10363
10364 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
10365
10366         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
10367         the method is static. Fixes #75029.
10368
10369 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
10370
10371         * reflection.c: Update the table_idx field of method builders after
10372         saving the module, since it can change. This is a workaround for
10373         bug #74914. 
10374
10375 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10376
10377         * culture-info-table.h : update (additional French date format).
10378
10379 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
10380
10381         * icall.c (ves_icall_type_Equals): Revert last change.
10382         
10383         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
10384
10385         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
10386
10387 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
10388
10389         * class-internals.h: Added executioncontext_class field to 
10390         MonoDefaults structure.
10391         * domain.c: Cache System.Threading.ExecutionContext class in 
10392         mono_defaults.
10393         * object.c: Capture the ExecutionContext for asynchroneous calls in
10394          mono_async_result_new.
10395         * object-internals.h: Added execution_context and original_context 
10396         fields to MonoAsyncResult. Added execution_context to MonoThread.
10397         * security-manager.c|.h: Added mono_get_context_capture_method to 
10398         return the capture method (if required by the security manager or by
10399         the framework version used).
10400         * threadpool.c: Apply capture (if present) ExecutionContext in 
10401         mono_async_invoke and revert to original context after it completes.
10402
10403 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
10404
10405         * culture-info-table.h : updated (real hacky solution for zh-CHT).
10406
10407 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
10408
10409         * culture-info-table.h : zh-CHT related workaround.
10410
10411 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
10412
10413         * marshal.c (emit_marshal_custom): Add some error checking and call the
10414         methods in the ICustomMarshaler interface. Fixes #74875.
10415         
10416         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
10417         native->managed wrappers.
10418
10419 2005-05-12  Martin Baulig  <martin@ximian.com>
10420
10421         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
10422         here and use the loader lock.
10423
10424         * mono-debug.c: Properly lock when the debugger is not attached.
10425         (mono_debug_init): Release the initial lock if we're not running
10426         in the debugger.
10427
10428 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
10429
10430         * marshal.c (emit_marshal_custom): Pass through NULL values without
10431         calling the custom marshalling routines.
10432
10433         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
10434         conversion in structures. Fixes #74882.
10435
10436 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
10437
10438         * culture-info-table.h : zh-* cultures were missing.
10439
10440 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
10441
10442         * threads.c: Added a new event background_change_event which is signaled
10443         when a thread changes its background mode.
10444         Moved here several checks previously done in managed code. The checks
10445         require the thread lock, and using the thread lock in managed code
10446         can result in deadlocks.
10447         Merged Start_internal and Thread_internal into a single method. Now 
10448         Thread_internal does all work of creating and starting a thread.
10449         Added icalls for setting and getting the state of the object. Moved from
10450         managed code to avoid locking there.
10451         Added wait_for_tids_or_state_change() which is called instad of
10452         wait_for_tids when waiting for non-backround threads to end. This method
10453         will return if one of the threads ends or the background_change_event
10454         is signaled.
10455         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
10456         the background mode. This method signals the background_change_event
10457         event.
10458         * icall.c:
10459         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
10460         removed Start_internal.
10461         
10462 2005-05-11  Martin Baulig  <martin@ximian.com>
10463
10464         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
10465         to order of some fields to get proper alignment on 64-bit machines.
10466
10467 2005-05-11  Martin Baulig  <martin@ximian.com>
10468
10469         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
10470         changes as they're broken and completely fuck up the debugger.
10471
10472         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
10473
10474 2005-05-10  Martin Baulig  <martin@ximian.com>
10475
10476         * reflection.c (mono_reflection_generic_class_initialize): Don't
10477         call mono_class_setup_parent() here.
10478
10479 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10480
10481         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
10482         send/receive timeout use an integer in milliseconds. We were using a
10483         struct timeval.
10484
10485 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10486
10487         * locales.c:
10488         (internal_get_cultures): reserve the first slot of the array for the
10489         InvariantCulture, which will be filled in managed code.
10490
10491 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
10492
10493         * reflection.c (mono_image_fill_module_table): Initialize the
10494         GENERATION field as well.
10495
10496 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10497
10498         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
10499         Monitor.Enter on the object.
10500
10501 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
10502
10503         * threads.c: Enable the wait for running threads when exiting.
10504         * icall.c: Suspend all threads before exiting.
10505
10506 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
10507
10508         * assembly.c (mono_assembly_load_reference): Fix warning.
10509
10510 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10511
10512         * threadpool.c: changed the default number of threads per cpu. From now
10513         on, the default will be 20 + (5 * number of cpus) instead of 50.
10514
10515 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
10516
10517         * loader.c (mono_method_get_signature_full): Add locking here.
10518
10519 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
10520
10521         * appdomain.c: Moved methods for parsing and freeing assembly
10522         names to assembly.c.
10523         * assembly.c, domain-internals.h: Created public methods for parsing
10524         assembly names. Fixed mono_assembly_load_with_partial_name:
10525         it now finds the best match, taking into account the version,
10526         token and culture specified in the partial name. Also return
10527         the latest version if no version information is specified.
10528
10529 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
10530
10531         * threadpool.c: replace check for SocketAsyncCall class.
10532
10533 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10534
10535         * threadpool-internals.h:
10536         * Makefile.am: added threadpool-internals.h
10537
10538         * threadpool.c: call mono_unhandled_exception on exceptions not handled
10539         that happen in threadpool threads (tested on MS).
10540         (mono_thread_pool_remove_socket): new function that dispatch any pending
10541         AIO call on a socket that is closing. By now only epoll really needs it,
10542         as select/poll wake up when the socket closes.
10543
10544
10545         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
10546
10547 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
10548
10549         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
10550
10551 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
10552
10553         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
10554
10555 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
10556
10557         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
10558         has an abort request, convert it into a suspend request.
10559
10560 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
10561
10562         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
10563         warning for the usage of `UnmanagedFunctionPointerAttribute' which
10564         is not supported yet.
10565
10566 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10567
10568         * image.c: register assemblies loaded from data (bundles) in the loaded
10569         assemblies hash. Fixes bug #74772.
10570
10571 2005-04-29  Martin Baulig  <martin@ximian.com>
10572
10573         * class.c (mono_type_get_name_recurse): Update to the new naming
10574         schema from the latest .NET 2.x beta2.
10575         (mono_class_setup_vtable_general): If we're a generic instance,
10576         copy the vtable from our generic type definition and inflate all
10577         the methods in it.
10578
10579         * loader.c (find_method): Update to the new naming schema from the
10580         latest .NET 2.x beta2.
10581
10582 2005-04-29  Raja R Harinath  <harinath@gmail.com>
10583
10584         * class.c (mono_class_init): Add a mono_loader_unlock to the
10585         #74734 fix.
10586
10587 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
10588
10589         * icall.c (ves_icall_System_Environment_Exit): Remove the 
10590         suspend_all_other_threads () call for the time being, since it can hang.
10591
10592         * threads.c (mono_thread_manage): Similarly, disable the waiting for
10593         the background threads to exit, since it can also hang.
10594
10595         * class.c (mono_class_init): Applied patch from Ankit Jain 
10596         (radical@gmail.com). Avoid pending init errors when a field refers
10597         to a nested class using a typeref. Fixes #74734.
10598
10599         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
10600         this for dynamic modules.
10601
10602 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10603
10604         * threads.c: don't wait for threads that are in the process of aborting
10605         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
10606         and waiting for background threads to finish. This makes xsp and
10607         mod-mono-server exit without random length delays and/or hangs.
10608
10609 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10610
10611         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
10612
10613 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
10614
10615         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
10616         dynamic types to prevent infinite loops. Fixes #74727.
10617
10618         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
10619         ..._is_assignable_to.
10620
10621 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
10622
10623         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
10624
10625 2005-04-25  Martin Baulig  <martin@ximian.com>
10626
10627         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
10628
10629         * domain.c
10630         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
10631
10632         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
10633
10634         * reflection.c (build_compressed_metadata): Set metadata header
10635         version to 2.0.
10636
10637 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
10638
10639         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
10640         number into an integral and a decimal part. Fixes #70473.
10641
10642         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
10643
10644 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
10645
10646         * culture-info-table.h : reflected the latest locale-builder output.
10647
10648 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10649
10650         * threadpool.c: check for SuspendRequested too when deciding if
10651         mono_thread_interruption_checkpoint should be called.
10652
10653 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10654
10655         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
10656         * threads.c: remove interruption_mutex and use Interlocked instead. When
10657         suspending all the threads, wait for all the suspended events at once.
10658         If we're shutting down and get an APC that is going to be queued,
10659         call mono_thread_execute_interruption immediately, as the thread might
10660         be sleeping on a pthread condition or mutex.
10661
10662         * icall.c: call mono_runtime_set_shutting_down before suspending the
10663         threads.
10664
10665         Fixes bug #74693. And now xsp is happier when exiting.
10666
10667 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
10668
10669         * loader.c (mono_stack_walk): Fix #74690.
10670
10671 2005-04-22  Martin Baulig  <martin@ximian.com>
10672
10673         * mono-debug.h (MonoDebugMethodJitInfo): Added
10674         `MonoDebugMethodJitInfo *jit'.
10675
10676         * mono-debug.c (mono_debug_read_method): Cache the
10677         MonoDebugMethodJitInfo in `address->jit'.
10678         (mono_debug_free_method_jit_info): New public method.
10679
10680 2005-04-22  Martin Baulig  <martin@ximian.com>
10681
10682         * class.c (mono_class_is_assignable_from): Disallow
10683         type parameter -> interface.
10684
10685 2005-04-21  Dick Porter  <dick@ximian.com>
10686
10687         * threads.c (mono_thread_create): Turn an assertion into an error.
10688
10689 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
10690
10691         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
10692         
10693         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
10694         Fix some gcc 4.0 warnings.
10695
10696 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
10697
10698         * file-io.c: fix alt dir separator char on unix systems
10699         and cleanup (fixes bug #71214).
10700
10701 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
10702
10703         * marshal.c: Use CALLVIRT instead of CALL when dispatching
10704         a call to a remote domain, since the method may be an
10705         interface method in the client domain. This fixes bug #74192.
10706
10707 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10708
10709         * threadpool.c: recv/send are now performed before going back to managed
10710         code to save one transition.
10711
10712 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10713
10714         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
10715
10716         * metadata/threadpool.c: removed hack to workaround the bug above.
10717
10718         Fixes bug #74618.
10719
10720 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
10721
10722         * reflection.c reflection.h: Fix handling of parameter defaults in
10723         dynamic methods. Also fixes handling of parameter attributes.
10724         Fixes #74609.
10725
10726         * mono-debug.c (mono_debug_close_image): Fix warning.
10727
10728 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10729
10730         * socket-io.h: replaced old unused field with new 'blocking'.
10731         * threadpool.c: restore socket blocking state on windows(tm).
10732
10733 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
10734
10735         * icall.c: don't return the codebase in the AssemblyName[] returned by
10736         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
10737         * object-internals.h: Removed FIXME (fields were presents) and fixed
10738         versioncompat declaration.
10739
10740 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10741
10742         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
10743         not closed, so don't cleanup when it happens.
10744
10745 2005-04-13  Chris Toshok  <toshok@ximian.com>
10746
10747         * mono-debug-debugger.h: change prototype for
10748         mono_debugger_lookup_type.
10749
10750         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
10751         this function, although it should probably be named
10752         mono_debugger_init_type.
10753
10754 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10755
10756         * threadpool.c: fix non-AIO case.
10757
10758 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
10759
10760         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
10761         the built-in profiler to measure just JIT compilation times.
10762
10763 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10764
10765         * threadpool.c: the epollfd might be closed by another thread at
10766         any time, so ignore EBADF at treat it as a "we're closing" sign.
10767
10768 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10769
10770         * threadpool.c: release the semaphores with a count equals to the number
10771         of working threads in both IO and regular pools. Fixed typo that messed
10772         up the count of IO pool threads. Don't initialize the pipe handles if
10773         we're using epoll.
10774
10775 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10776
10777         * threadpool.c: some systems don't like a NULL when deleting the socket
10778         from epoll.
10779
10780 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10781
10782         * threadpool.c: fix semaphore allocation.
10783
10784 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10785
10786         * threadpool.c: added epoll() based implementation for asynchronous IO
10787         that is used instead of the default poll() when available.
10788         It can be disabled by setting MONO_DISABLE_AIO.
10789
10790 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10791
10792         * threadpool.c: windows needs 'closesocket' and instead of returning
10793         0 when the stream is closed while in select, it returns -1. Fixes bug
10794         #74573.
10795
10796 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
10797
10798         * class.c (class_compute_field_layout): Fix the regression caused by
10799         the previous try.
10800
10801 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10802
10803         * threadpool.c: separate pool for socket async. IO.
10804         * threadpool.h: mono_max_worker_threads is not a global any more.
10805
10806 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
10807
10808         * class.c (class_compute_field_layout): Fix #74549.
10809
10810 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10811
10812         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
10813         use 2 connected sockets instead.
10814
10815 2005-04-08  Miguel de Icaza  <miguel@novell.com>
10816
10817         * mono-config.c: Add new entry point for mkbundle
10818         mono_config_parse_memory. 
10819
10820 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10821
10822         * threadpool.c: removed another unused function.
10823
10824 2005-04-08  Ankit Jain  <radical@corewars.org>
10825
10826         * reflection.c (get_default_param_value_blobs): Add 'types'
10827         parameter to get the types encoded in the constant table.
10828         (mono_param_get_objects): Use the type from the constant table,
10829         not the type of the parameter, when creating default values.
10830         Handle null default values correctly.
10831
10832 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10833
10834         * file-io.c:
10835         * file-io.h:
10836         * threadpool.c:
10837         * threadpool.h:
10838         * icall.c:
10839         * socket-io.c: removed dead code for async IO.
10840
10841 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10842
10843         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
10844
10845         * threadpool.c: intercept socket async. calls and pass them to a thread
10846         that is polling and dispatching the job items to the threadpool as
10847         socket become ready. Fixes bugs #71217, #71933.
10848
10849         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
10850         between char and short/ushort arrays.
10851
10852         * socket-io.c: remove dead code.
10853
10854 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
10855
10856         * locales.c,
10857           icall.c : removed InternalToUpper_Comp() and
10858           InternalToLower_Comp().
10859
10860 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
10861
10862         * char-conversions.h : The tables were incorrectly generated. Should
10863           be generated against invariant culture.
10864
10865 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
10866
10867         * object.c (mono_runtime_invoke_array): Fix return value when 
10868         passing pre-created valuetype objects to ctors.
10869
10870         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
10871         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
10872         Fixes #74338.
10873
10874 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
10875
10876         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
10877         only used with --security and hides the wrong corlib version error.
10878
10879 2005-03-30  Joshua Tauberer  <tauberer@for.net>
10880
10881         * class.c: Changed mono_class_name_from_token so that types
10882         outside of a namespace don't have an initial period.  Improved
10883         the g_warning message used in _mono_class_get when loading
10884         fails.
10885         * assembly.c: In mono_assembly_load_reference, when an assembly
10886         can't be found, "No such file or directory" is misleading and
10887         unhelpful because a few paths were checked for the presence of
10888         the assembly.  When that happens (ENOENT), display a nicer
10889         message indicating the directories that were searched.  In all
10890         cases, the warning is made easier to read for non-hackers.
10891
10892 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
10893
10894         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
10895         project/solution.
10896         * appdomain.h|domain.c: Removed inline from functions.
10897         * appdomain.c: Reduced warnings when compiling on windows.
10898         * icall.c: Fixed output_debug declaration to gunichar2*.
10899         * mono-config.c: Reduced warnings when compiling on windows.
10900         * rand.c: Added missing "windows.h". Added missing return value.
10901         * rawbuffer.c: Added missing winsock2.h for windows.
10902         * sysmath.h: Added mono-compiler.h header to allow/ease 
10903         compilation with non-GCC compilers.
10904         * threads.c: Fixed declarations to compile with VS.NET C compiler.
10905         Removed cast warnings.
10906
10907         Adapted from the work of J Lothian (for VC6).
10908
10909 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
10910
10911         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
10912         from default_path.
10913
10914 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
10915
10916         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
10917         the 2.0 profile.
10918
10919 2005-03-27  Raja R Harinath  <harinath@gmail.com>
10920
10921         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
10922         has to be in $(exec_prefix).  $(prefix) is for arch-independent
10923         stuff, and it would probably use $(prefix)/share rather than
10924         $(prefix)/lib.
10925
10926 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10927
10928         * console-io.c: added 2 includes that might be missing.
10929
10930 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
10931
10932         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
10933         profile.
10934
10935         * reflection.c (create_custom_attr): Allocate the params array using
10936         alloca so it gets GC tracking.
10937
10938 2005-03-23  Chris Toshok  <toshok@ximian.com>
10939
10940         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
10941         out some spew.
10942
10943 2005-03-24  Raja R Harinath  <rharinath@novell.com>
10944
10945         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
10946         changes to pick up any changes in prefix, etc.
10947
10948 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
10949
10950         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
10951         
10952         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
10953         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
10954
10955 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
10956
10957         * class-internals.h object-internals.h class.c reflection.c: Extend the
10958         mono_lookup_dynamic_token () function to return the class of the
10959         token as well. 
10960
10961         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
10962         well. Fixes #73848.
10963
10964 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
10965
10966         * security-manager.c: Skip inheritance checks for intra-corlib
10967         class inheritance and method overrides. This skips a lot of checks
10968         and (anyway) permissions cannot work until corlib is loaded.
10969
10970 2005-03-23  Martin Baulig  <martin@ximian.com>
10971
10972         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
10973         MONO_TYPE_GENERICINST.  
10974
10975 2005-03-23  Martin Baulig  <martin@ximian.com>
10976
10977         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
10978
10979 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10980
10981         * class.c: added locking comments to some functions.
10982         Cache the interface offsets arrays (saves about 20 KB
10983         of runtime memory in a typical app).
10984         Reduce the time overhead in mono_class_setup_supertypes ().
10985
10986 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
10987
10988         * icall.c: speedup and fix leaks in GetMethodsByName and
10989         GetPropertiesByName.
10990
10991 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10992
10993         * reflection.c: some locking fixes.
10994
10995 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10996
10997         * metadata.c: added missing break in case statement.
10998
10999 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
11000
11001         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
11002         typedbyref return values. Fixes #73941.
11003
11004 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
11005
11006         * security-manager.c|h: Added demandunmanaged method and 
11007         suppressunmanagedcodesecurity class to MonoSecurityManager.
11008         Renamed aptc class to allowpartiallytrustedcallers.
11009
11010 2005-03-17  Martin Baulig  <martin@ximian.com>
11011
11012         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
11013
11014 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11015
11016         * file-io.c: disabled file async. IO using aio_*. It uses the
11017         threadpool now. Workaround for bug #73718.
11018
11019 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11020
11021         * assembly.h, mono-config.c: added code to deal with bundled configs
11022         for bundled assemblies.
11023
11024 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
11025
11026         * *.c, private.h: cleanup, removing old private.h header file.
11027
11028 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
11029
11030         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
11031         and throw_on_unmappable_char attributes.
11032
11033 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
11034
11035         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
11036         _ProcessName_internal.
11037
11038 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
11039
11040         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
11041         #73631.
11042
11043         * icall.c threads.c threads-types.h: Remove slothash icalls as they
11044         are no longer used.
11045
11046 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
11047
11048         * object.c (compute_class_bitmap): Add support for generics. Fixes
11049         #73527.
11050
11051 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
11052
11053         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
11054
11055 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11056
11057         * filewatcher.c: commented out the code for windows watcher, as we don't
11058         use it (we use the managed implementation instead).
11059
11060 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
11061
11062         * object-internals.h (MonoThread): Remove 'unused1' field.
11063
11064         * appdomain.c: Bump corlib version.
11065
11066         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
11067
11068         * reflection.c (mono_reflection_create_runtime_class): Remove the
11069         AssemblyBuilder.Save optimization since it causes too many problems.
11070
11071 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
11072
11073         * exception.c|h: Added mono_get_exception_reflection_type_load to
11074         create a ReflectionTypeLoadException object.
11075         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
11076         to return NULL is a InheritanceDemand fails during reflection. Updated
11077         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
11078         ReflectionTypeLoadException if an InheritanceDemand fails during 
11079         reflection. Added icall mapping for GetLinkDemandSecurity.
11080         * security-manager.c|h: Added ves_icall_System_Security_
11081         SecurityManager_GetLinkDemandSecurity internal call to return the
11082         class and methods permissions set for a LinkDemand. Removed unused
11083         fields in MonoSecurityManager.
11084
11085 2005-03-10  Martin Baulig  <martin@ximian.com>
11086
11087         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
11088         it's a generic instance.
11089
11090 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
11091
11092         * reflection.c (mono_get_object_from_blob): Applied patch from
11093         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
11094
11095         * class.c (mono_class_is_assignable_from): Another try at fixing 
11096         #73469 without breaking anything.
11097
11098 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
11099
11100         * class.c: (mono_class_is_assignable_from): Revert the last changes
11101         since they don't work with generics.
11102         
11103         * class.c (mono_class_is_assignable_from): Fix build bustage.
11104
11105         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
11106         the managed IsAssignableFrom method. Fixes #73469.
11107
11108         * reflection.c (mono_reflection_call_is_assignable_from): New helper
11109         function.
11110
11111 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
11112
11113         * object.c (mono_load_remote_field_new): Fix returning uninitialized
11114         memory when the remoting callback does not sets the out arguments.
11115         Fixes #73007.
11116
11117         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
11118         by mistake.
11119
11120         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
11121
11122         * object-internals.h (MonoStackFrame): Sync with managed object layout.
11123
11124         * appdomain.c: Bump corlib version.
11125
11126 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
11127
11128         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
11129         function.
11130
11131         * threads.c (mono_thread_attach): Detect threads which are not started
11132         by the GC pthread wrappers.
11133
11134 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
11135
11136         * icall.c: Added new icall for RNG.
11137         * rand.c|h: Added new icall to open the RNG. This allows to share a 
11138         single handle on Linux to access /dev/urandom and fix #73183.
11139
11140 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
11141
11142         * object.c: setting the new vtable in a transparent proxy object must
11143         not change the GC descriptor.
11144
11145 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11146
11147         * object.c: fixed compilation without GCJ support.
11148         * reflection.c: for runtime-created types ensure klass->has_references
11149         is correct (bug #73215).
11150
11151 2005-03-02  Martin Baulig  <martin@ximian.com>
11152
11153         * class.c (mono_class_is_assignable_from): Make this work if
11154         `oklass' is a generic instance; fixes #72831.
11155
11156 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
11157
11158         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
11159         with hasthis set.
11160         
11161         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
11162
11163         * marshal.c: Reorganize native->managed marshalling code to also use
11164         the emit_marshal_... functions.
11165
11166 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
11167
11168         * object.c: typed allocs have issues with bitmap sizes > 30,
11169         so check for max_set >= 30.
11170
11171 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
11172
11173         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
11174         managed code. Fixes #73012.
11175
11176         * metadata.h (MonoMarshalSpec): Add elem_mult field.
11177
11178         * metadata.c reflection.c: Load/Emit elem_mult as well.
11179         
11180         * metadata.h (MonoMarshalSpec): Add comment.
11181
11182         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
11183
11184         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
11185         num_elem to -1 if not given.
11186
11187         * object-internals.h (MonoReflectionMarshal): Add has_size field.
11188
11189         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
11190         given values.
11191
11192 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
11193
11194         * null-gc.c (mono_gc_free_fixed): Was not compilable.
11195
11196 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
11197
11198         * reflection.c (encode_marshal_blob): Encode param_num field as well.
11199
11200         * object-internals.h (MonoReflectionMarshal): Add param_num field.
11201
11202 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
11203
11204         * object.c: generalized the reference bitmap creation
11205         and added hooks for the new GC.
11206         * class-internals.c: removed the gc_bitmap field from MonoClass.
11207
11208 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11209
11210         * domain.c: help the compiler to produce better code
11211         in mono_jit_info_table_find ().
11212
11213 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
11214
11215         * object.c: make all allocations look typed.
11216
11217 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11218
11219         * socket-io.c: load Mono.Posix if it's not loaded already
11220         (fixes bug#73033).
11221
11222 2005-02-24  Martin Baulig  <martin@ximian.com>
11223
11224         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
11225         * reflection.c (dup_type): Likewise.
11226
11227 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
11228
11229         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
11230         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
11231
11232 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11233
11234         * domain.c, threads.c, object-internals.h: make the critical thread
11235         local vars use the fast access mode (even when we're compiled in
11236         a lib). Provide accessors to be used by the jit during codegen.
11237
11238 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11239
11240         * appdomain.c: Changed hook functios behavior to include
11241         support for the reflection only assemblies. Some icalls were changed
11242         to support the mentioned assemblies too. Signatures of static methods
11243         try_assembly_resolve and real_load now have an additional parameter:
11244         refonly.
11245
11246         * assembly.c: General changes to mono_assembly_ methods to support
11247         reflection only api. Functions mono_assembly_open, mono_assembly_load,
11248         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
11249         suffix, to support an additional gbool parameter to specify whether
11250         the assembli is reflection only or not. Created some new hook functions 
11251         to add support for reflection only assemblies. Signatures of static 
11252         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
11253         have now an additional parameter: refonly.
11254
11255         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
11256         indicating whether the assembly is reflection only or not.
11257
11258         * exception.c: Add mono_get_exception_invalid_operation.
11259
11260         * icall.c: Throw an InvalidOperationException when trying to invoke
11261         a property/method/event, or trying to set/get the value of a field.
11262         Also add an icall to retrieve the ref_only flag to the
11263         MonoReflectionAssembly.
11264
11265 2005-02-23  Chris Toshok  <toshok@ximian.com>
11266
11267         Part of fix for #72827.
11268         * mono-debug.c (mono_debug_add_method): add lexical block data to
11269         the info we write.  Kind of a hack at the moment - we copy the
11270         lexical block info from the MonoDebugMethodInfo to the
11271         MonoDebugMethodJitInfo here, before writing it.
11272         (mono_debug_read_method): read the lexical block info.
11273
11274         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
11275
11276         * debug-mono-symfile.h: add lexical block support.
11277
11278         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
11279         support.
11280
11281 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
11282
11283         * loader.c (mono_lookup_pinvoke_call): Fix warning.
11284
11285         * object.c (mono_runtime_free_method): Call mono_free_method () and
11286         put the TODOs there.
11287
11288         * loader.c (mono_free_method): Free up most memory allocated for 
11289         dynamic methods.
11290
11291 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
11292
11293         * reflection.c: properly flag a Type argument to a
11294         named custom attr value (bug #72248).
11295
11296 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11297
11298         * reflection.c: reduce code duplication in named custom
11299         attribute encoding.
11300
11301 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
11302
11303         * reflection.c: properly encode custom attrs of type object
11304         (bug #72649).
11305
11306 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
11307
11308         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
11309
11310 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
11311
11312         * socket-io.c: load System.dll if it's not loaded already
11313         (bug #72850 and #70477).
11314
11315 2005-02-21  Martin Baulig  <martin@ximian.com>
11316
11317         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
11318         generic instances.
11319
11320 2005-02-21  Martin Baulig  <martin@ximian.com>
11321
11322         * reflection.c (mono_image_build_metadata): We also need to
11323         "fixup" the MethodImpl table after we computed the final method
11324         indices.  Call fixup_methodimpl() to do that.
11325         (fixup_methodimpl): New private method.
11326
11327 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
11328
11329         * assembly.c: special case mscorlib.dll (bug#72536),
11330         patch from Carlos Alberto Cortez.
11331
11332 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
11333
11334         * threads-types.h threads.c: Fix build bustage.
11335
11336         * threads.c: Use a union for long<->double conversions.
11337
11338         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
11339         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
11340
11341         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
11342         containing the checkpoint call with NOT_TAKEN.
11343         
11344         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
11345         checkpoint before pushing the arguments, so they won't have to be
11346         spilled to stack.
11347
11348 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11349
11350         * domain.c, assembly.c, domain-internals.h: make some data
11351         const and relocation-free.
11352
11353 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
11354
11355         * object.c, appdomain.c, class-internals.h: introduce the
11356         MonoClassRuntimeInfo structure to hold the info needed to
11357         use a class at runtime. Made mono_class_vtable() lock-free
11358         for all the appdomains.
11359
11360 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
11361
11362         * metadata-internals.h, image.c: introduce a per-image mempool to
11363         be used for memory that has the same lifetime as the image.
11364
11365 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
11366
11367         * domain.c: In mono_init_internal(), instead of selecting the first
11368         runtime version supported by an executable, get a list of all
11369         supported versions and select the one for which an mscorlib exists
11370         (since even if the runtime supports a given version, it doesn't mean
11371         that the framework for that version is installed).
11372         Modified get_runtimes_from_exe to support this behavior.
11373         In supported_runtimes, added information about additional system
11374         assembly versions.
11375         
11376         * assembly.c: Added support for more than one system assembly version
11377         per runtime version. Updated the assembly list.
11378         In mono_assembly_remap_version, removed the initial version check,
11379         since we don't know to which version we need to compare until we
11380         get the version set on which the assembly is based.
11381         Moved the code for loading corlib into the new method
11382         mono_assembly_load_corlib(), so it can be used by the initialization
11383         code.
11384         
11385         * domain-internals.h: Updated data structures and added declaration
11386         for mono_assembly_load_corlib.
11387
11388 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
11389
11390         * reflection.c (resolve_object): Fix the creation of the signature in 
11391         the SignatureHelper case.
11392
11393         * assembly.c (mono_assembly_remap_version): Fix binary search.
11394         
11395 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
11396  
11397         * class.c: Added inheritance check when a method is overloaded (from a
11398         virtual method or when implementing an interface) and when a class is
11399         inherited. Added functions to set a failure for a class and to 
11400         retreive the exception from a failure.
11401         * class-internals.h: Added fields to MonoClass to keep the exception
11402         information status for inheritance (or other exceptions) to be thrown
11403         later (i.e. not at load time).
11404         * object.c: Throw the inheritance SecurityException when a type is to 
11405         be created with either class or method inheritance violations.
11406         * reflection.c|h: Fix when getting declsec from a class. Removed 
11407         unrequired code for class. Improved sanity in parameter naming.
11408         * security-manager.c|h: Added functions to check for class and method
11409         inheritance.
11410
11411 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
11412
11413         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
11414         and has_finalize in dynamic types as well.
11415
11416 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
11417
11418         * culture-info-table.h : fixed currency format for en-GB (and so on).
11419
11420 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
11421
11422         * gc.c: ensure the GC handles never have 0 as a value.
11423
11424 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
11425
11426         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
11427         a pointer to a struct to unmanaged code. Fixes #72625.
11428
11429 2005-02-16  Martin Baulig  <martin@ximian.com>
11430
11431         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
11432
11433 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
11434
11435         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
11436
11437 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
11438
11439         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
11440
11441         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
11442         UnmanagedFunctionPointerAttribute, use it for determining calling convention
11443         etc. Fixes #71471.
11444
11445         * reflection.c (mono_custom_attrs_get_attr): New helper function.
11446
11447         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
11448
11449 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
11450
11451         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
11452         changes to make the current context a field in MonoThread.
11453
11454 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
11455
11456         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
11457         the last change.
11458         
11459         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
11460         extracted from mono_marshal_get_native_wrapper.
11461
11462         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
11463         to create wrappers around native functions.
11464
11465         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
11466         delegates for arbitrary function pointers. Fixes #71472.
11467
11468 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
11469
11470         * threads.c: cleaned up the code a little.
11471
11472 2005-02-15  Martin Baulig  <martin@ximian.com>
11473
11474         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
11475         the data table.
11476
11477         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
11478         allocate larger chunks if needed.
11479
11480 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
11481
11482         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
11483         in by mistake.
11484
11485 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
11486
11487         * domain.c: keep the domains in an array and ensure the domain ids
11488         are kept small, so they can be used as indexes to domain-specific data
11489         with a small memory overhead.
11490
11491 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
11492
11493         * icall.c: Handle byref types in Type icalls. Fixes #72544.
11494
11495 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
11496
11497         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
11498
11499 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
11500
11501         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
11502
11503         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
11504         values.
11505
11506         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
11507         
11508 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
11509
11510         * domain-internals.h: add the hashtable here.
11511
11512         * class-internals.h: Remove `info' from MonoMethod
11513
11514         * domain.c: Add a new hashtable, jit_trampoline_hash
11515
11516 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
11517
11518         * object.c: don't set the value of static fields
11519         (fixes bug#72494).
11520
11521 2005-02-11  Martin Baulig  <martin@ximian.com>
11522
11523         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
11524         (mono_debug_add_method): Silently ignore the method if it's too big.
11525         (mono_debug_add_type): Likewise.
11526
11527 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
11528
11529         * threads.c, appdomain.c: remove #ifdefs from the code.
11530
11531 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
11532
11533         * metadata-internals.h: Added flags to MonoAssembly to cache the most
11534         common security informations. This allows us to stay in unmanaged code
11535         when doing LinkDemand and it's special cases (except for the first 
11536         time for initialization). The flags a very much used with --security.
11537         * reflection.c|h: Added code to get declarative security attributes 
11538         for LinkDemand and InheritanceDemand. This required to refactor the
11539         existing code for Demand.
11540         * security-manager.c|h: Added new method fields for the special cases
11541         of LinkDemand.
11542
11543 2005-02-10  Martin Baulig  <martin@ximian.com>
11544
11545         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
11546         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
11547
11548 2005-02-10  Martin Baulig  <martin@ximian.com>
11549
11550         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
11551         debugging code; this is almost a complete rewrite.
11552
11553         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
11554
11555 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11556
11557         * domain.c, object.h: expose mono_string_equal () and 
11558         mono_string_hash ().
11559         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
11560         it's implemented in managed code.
11561
11562 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11563
11564         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
11565         lo leak objects between appdomains.
11566
11567 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11568
11569         * assembly.c: old compilers compilation fix from 
11570         robertj@gmx.net (Robert Jordan).
11571
11572 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
11573
11574         * class-internals.h: Little reminder for the future.
11575
11576         * debug-helpers.c: Fix up wrapper_type_names
11577
11578 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11579
11580         * image.c, metadata-internals.h: when loading an image from a file,
11581         mmap all of it and use the same codepaths as when using a
11582         in-memory image: the code is simpler and we use less memory
11583         (both writable and readonly).
11584
11585 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11586
11587         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
11588         API to alloc runtime data structures that need to be tracked by the
11589         GC and contain pointers.
11590         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
11591         make the code more readable and eventually use a different GC.
11592
11593 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
11594
11595         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
11596         for out arguments.
11597         
11598 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
11599
11600         * object.c: In release_type_locks(), don't release the cctor lock
11601         if it has already been released. This fixes a crash in the
11602         thread5 test.
11603
11604 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11605
11606         * gc.c, marshal.c, icall.c: register a delegate for finalization
11607         only when the native function pointer has been allocated for it.
11608
11609 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11610
11611         * object.c: cleaned up some code, allocate objects that are
11612         pointer free with the atomic malloc variant. Allocate memory
11613         for static data from the mempool if it's pointer-free.
11614         Allocate the bounds array at the end of the array data, when needed.
11615         * object-internals.h, object.h: move a private function in a private
11616         header.
11617         * class.c: handle missing case in tracking references in fields.
11618
11619 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
11620
11621         * class.c, class-internals.h: keep track if a type has
11622         reference fields in either the instance or static fields.
11623
11624 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
11625
11626         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
11627         and renamed to MonoRuntimeInfo. Added fields to store the expected
11628         framework assembly version. Changed mono_get_framework_version and
11629         mono_get_runtime_version for a single mono_get_runtime_info method.
11630         
11631         * assembly.c: Added method to remap system assembly versions to the
11632         current executing runtime version. Removed old mapping code.
11633         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
11634         
11635         * icall.c, reflection.c: Track api changes.
11636
11637 2005-02-06  Miguel de Icaza  <miguel@novell.com>
11638
11639         * loader.c (method_from_memberref): Improve error reporting,
11640         produce the class name instead of the typeref/typedef index. 
11641
11642 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
11643
11644         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
11645
11646 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11647
11648         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
11649         stdcall and charset name mangling.  Reorganize the code and add
11650         some tracing stuff.
11651
11652 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
11653
11654         * monodiet.c: More iters!
11655
11656         * marshal.c: Iter usage.
11657
11658         * icall.c: Iter usage.
11659
11660         * object.c: Use iters.
11661
11662         * debug-helpers.c: More iters
11663
11664 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11665
11666         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
11667         under win32.
11668
11669 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
11670
11671         * mono-debug-debugger.c: use iters
11672
11673         * class.c, class-internals.h: mono_class_setup_events is static
11674         now
11675
11676         * All callers: use iters
11677
11678 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
11679
11680         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
11681         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
11682
11683 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
11684
11685         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
11686
11687         * marshal.h: Add prototypes for ldfld/stfld_remote.
11688
11689         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
11690         this is called during startup.
11691         
11692 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
11693
11694         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
11695         MonoThreadsSync struct private in monitor.c. Changed the way
11696         MonoThreadsSync is allocated so it's faster and there is no
11697         need to keep track of it with a finalizer and it uses less memory.
11698         This also finally allows us to allocate mono objects as ptrfree when
11699         there are no reference fields.
11700
11701 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
11702
11703         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
11704         disappearing link to the GC interface and use them to simplify
11705         the gchandles code.
11706
11707 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
11708
11709         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
11710         stfld_remote which call mono_load/store_field_new. This allows methods
11711         calling ldfld/stfld wrappers to be AOTed.
11712
11713         * console-io.c: Include sys/filio.h under solaris.
11714         
11715         * console-io.c: Include curses.h if needed correctly.
11716
11717 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
11718         
11719         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
11720         method->klass as well.
11721
11722         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
11723
11724         * class.c (mono_class_init): Switch on lazy initialization of 
11725         methods.
11726
11727         * class.c (mono_class_get_finalizer): Handle the case when the 
11728         finalizer is inherited.
11729
11730 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11731
11732         * console-io.c: <curses.h> is needed by term.h on solaris.
11733
11734 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
11735
11736         * icall.c, class-internals.h, monodiet.c, class.c: Remove
11737         mono_class_setup_properties where possible. Remove this ftn from
11738         the header file, and make it static.
11739
11740 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
11741
11742         * loader.c: Add missing setup_... call.
11743
11744         * class.c: Add missing setup_... calls.
11745
11746         * class.c (mono_class_init): Switch on lazy initialization of 
11747         the generic vtable.
11748         
11749         * class.c (mono_class_init): Fix generics broken by the recent changes.
11750
11751         * monodiet.c (handle_type): Add missing setup_... calls.
11752
11753         * class.c: Back out garbage in previous patch.
11754         
11755         * class.c: Add missing setup_... calls.
11756
11757         * class.c (mono_class_get_method_from_name_flags): Avoid calling
11758         mono_class_setup_methods () if possible.
11759
11760         * class-internals.h (MonoClass): Add 'has_cctor' flag.
11761
11762         * class-internals.h (MonoCachedClassInfo): New structure.
11763
11764         * class.c: Initialize properties and events fields of MonoClass lazily.
11765
11766         * class.c: Add infrastructure for lazily initializing the methods and
11767         vtable fields of MonoClass. Not yet used.
11768
11769         * class.c (mono_class_get_finalizer): New helper function.
11770
11771         * class.c: Add infrastructure for loading some class related data from
11772         an AOT file.
11773
11774         * object.c: Add infrastructure for initializing the vtable from data
11775         in the AOT file.
11776
11777         * gc.c (run_finalize): Use mono_class_get_finalizer ().
11778
11779         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
11780         appropriate initialization function before accessing parts of the
11781         MonoClass structure.
11782
11783         * marshal.c: Fix warnings.
11784         
11785         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
11786
11787         * mono-debug-debugger.c (get_exception_message): Use 
11788         mono_class_get_method_from_name_flags ().
11789
11790 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
11791
11792         * reflection.c, appdomain.c: Replace a few manual searches that
11793         Zoltan missed. (Paolo approved this part of my initial patch).
11794
11795 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
11796
11797         * profiler.c: disable recording statistical events at report time.
11798
11799 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11800
11801         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
11802         to byteswap arrays of enum values, too (bug #72080).
11803
11804 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
11805
11806         * appdomain.c (set_domain_search_path): Allow this to be called if
11807         domain->setup is not yet set.
11808
11809         * loader.c (mono_method_get_index): New helper function.
11810
11811         * loader.c reflection.c: Use mono_method_get_index ().
11812
11813         * class.c (mono_class_get_method_from_name_flags): New helper method.
11814
11815         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
11816         this.
11817
11818         * class.c (mono_class_get_cctor): New helper method.
11819
11820         * string-icalls.c object.c class.c marshal.c reflection.c: Use
11821         mono_class_get_method () to look up methods.
11822
11823 2005-02-01  Miguel de Icaza  <miguel@novell.com>
11824
11825         * console-io.c: Fix the build, this should work on Windows.
11826
11827 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
11828
11829         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
11830         be set to null to keep things valid
11831
11832 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11833
11834         * icall.c: added Console 2.0 icalls.
11835         * Makefile.am: added console-io.[ch]
11836         * console-io.[ch]: internal calls for Console 2.0 API.
11837
11838 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11839
11840         * class.c: make sure we consider all the interfaces
11841         when calculating max_interface_id (bug found by
11842         Jeroen Frijters running ikvm).
11843
11844 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
11845
11846         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
11847         valuetype fields to null.
11848
11849         * object.c (set_value): Ditto. Fixes #71669.    
11850
11851 2005-01-31  Martin Baulig  <martin@ximian.com>
11852
11853         * metadata.c (mono_metadata_has_generic_params): New public
11854         function; checks whether something is a generic method.
11855
11856 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
11857
11858         * appdomain.c: fix infinite recursion when adding assemblies.
11859
11860 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
11861
11862         * object.c: Fix small typo to return all items for Environment.
11863         GetCommandLineArgs.
11864
11865 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11866
11867         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
11868         reflection.c: more domain and assembly-unload related fixes
11869         and memory leaks plugs.
11870
11871 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
11872
11873         * 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.
11874
11875 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
11876
11877         * loader.c (mono_method_signature): Make this method lazy
11878         (mono_get_method_from_token): Don't computate the signature here.
11879
11880         Doing this saves quite a bit of memory. I got 90 kb on starting up
11881         monodoc. It should also save some disk reads on startup.
11882
11883         * *: MonoMethod->signature might be NULL now. You *MUST* use
11884         mono_method_signature.
11885
11886 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
11887
11888         * object.c (mono_runtime_get_main_args): Return an array from the
11889         current domain here. Fixes #71938.
11890
11891 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
11892
11893         * monitor.c: formatting changes to comply with the
11894         mono coding style and remove #ifdefs from the code.
11895
11896 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11897
11898         * metadata.c, private.h: remove some unneeded data
11899         and use a more compact representation for table schemas.
11900
11901 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
11902
11903         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
11904         to get a better distribution in hash tables.
11905         * *.c: use mono_aligned_addr_hash() where appropriate.
11906         * assembly.c: make var static.
11907
11908 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
11909
11910         * domain-internals.h: Put MonoJitInfo on a diet.
11911
11912         * domain.c: Fix a warning.
11913
11914 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11915
11916         * gc.c: rework the gc handles code to reuse handles
11917         when freed.
11918
11919 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
11920
11921         * domain.c: fixed long standing bug in mono_string_equal() which
11922         was brought to light with the ldstr changes.
11923
11924 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
11925
11926         * reflection.c: Remove warning by adding missing include for marshal.h
11927
11928 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11929
11930         * domain.c, object.c: change the ldstr_table to hold
11931         MonoString* as keys: makes the runtime isinterned lookup
11932         faster and simplifies memory management.
11933
11934 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
11935  
11936         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
11937         possible to add imperative security checks before calling the icall.
11938         * reflection.c: Return security attributes on the original MonoMethod
11939         (and not the wrapped one). This fix permissions on icalls.
11940
11941 2005-01-25  Dick Porter  <dick@ximian.com>
11942
11943         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
11944         the check for mktime() support actually test the mktime() return
11945         value.  "Fixes" bug 71682, though the output is still different to
11946         MS.
11947
11948 2005-01-25  Martin Baulig  <martin@ximian.com>
11949
11950         * class.c (mono_class_is_assignable_from): Make this work for
11951         generic instances.
11952
11953 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
11954
11955         * marshal.c (mono_string_utf8_to_builder)
11956         (mono_string_builder_to_utf16): We might not have ownership of the
11957         string. In thise case, we need to create a new buffer.
11958
11959         * object-internals.h (mono_stringbuilder_capacity): sb->str might
11960         be null, in which case, use the default capacity.
11961
11962 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11963
11964         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
11965         GC events to the profiler.
11966
11967 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11968
11969         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
11970         if you don't want the GC to run.
11971
11972 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
11973
11974         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
11975         start providing a GC API and keeping different implementations in
11976         their own file.
11977         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
11978
11979 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
11980
11981         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
11982         mmap rather than allocating a huge buffer.
11983         (mono_debug_close_mono_symbol_file): Free the buffer allocated
11984         above.
11985
11986 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
11987
11988         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
11989         and CheckExecutionRights.
11990         * reflection.c|h: Keep the index of the declarative security to be 
11991         used, instead of the pointer, when AOT compiler is used. Also add 
11992         class initialization when requesting demands.
11993         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
11994         CheckExecutionRights. Both properties are now FALSE by default, and
11995         unmodifiable, unless the --security option is used.
11996
11997 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
11998
11999         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
12000         reflection.c: properly refcount images and assemblies, many leaks fixed.
12001
12002 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12003
12004         * threadpool.c: increase the timeout for threads in the thread pool to
12005         10s.  Fixes bug #67159.
12006
12007 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12008
12009         * class-internals.h: Sun's compiler insists on explicit
12010         signed on bit fields to handle then correctly.
12011
12012 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
12013
12014         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
12015         Make the size of the array fit only the number of invalid path
12016         chars that we have.
12017
12018         * class.c (_mono_class_get): Improve the error reporting when a
12019         class referenced is not found, to assist debugging. 
12020
12021 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
12022
12023         * threads.c: fix off-by-one error.
12024         * domain.c: free data allocated in the domain.
12025
12026 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
12027
12028         * reflection.c (mono_method_body_get_object): Fill out exception info
12029         as well.
12030
12031         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
12032         structure.
12033         
12034 2005-01-19  Martin Baulig  <martin@ximian.com>
12035
12036         * loader.c (mono_get_method_constrained): Make this work again.
12037
12038 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
12039
12040         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
12041         guint16 to match the managed side.
12042
12043         * reflection.c (mono_reflection_body_get_object): Fill out local
12044         variables array.
12045
12046         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
12047         as well.
12048
12049         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
12050         'local_var_sig_token'.
12051
12052 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
12053
12054         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
12055         System.Drawing.
12056
12057         * reflection.c (mono_method_body_get_object): Handle abstract and
12058         runtime methods.
12059
12060 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
12061
12062         * marshal.c, loader.c, class-internals.h, reflection.c:
12063         store the emthod data for a wrapper in an array instead of a list.
12064
12065 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
12066
12067         * marshal.c: change the code to allocate memory more
12068         conservatively for method wrappers.
12069
12070 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
12071
12072         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
12073         fields from MonoClass to the marshal info structure where they belong.
12074
12075 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12076
12077         * class.c, object.c, class-internals.h, marshal.c: rearrange
12078         some fields and tweak some types to lower memory usage.
12079
12080 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
12081
12082         * threads.c (signal_thread_state_change): Handle the case when the
12083         target thread is the current thread.
12084
12085         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
12086
12087         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
12088         emit_ptr_to_object_conv. 
12089
12090         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
12091         marshalling. Fixes #71352.
12092
12093 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
12094
12095         * metadata.h, blob.h: move table enum to blob.h so it can be included
12096         in any header.
12097         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
12098         cut the size of MonoImage/MonoDynamicImage.
12099
12100 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
12101
12102         * profiler.c (mono_profiler_install_simple): Fix default arguments.
12103
12104 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
12105
12106         * reflection.c, reflection.h, icall.c: add a function to check
12107         if an attribute type is defined for a metadata object.
12108
12109 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
12110
12111         * object-internals.h: Added some needed fields from StringBuilder class.
12112         * marshal.c: Set the maxCapacity when creating a StringBuilder.
12113
12114 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
12115
12116         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
12117         threads before shutting down the runtime.
12118
12119         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
12120
12121 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
12122
12123         * object-internal.h, threads.c: implement stacksize and 
12124         parameterized thread start functionality (requires
12125         matching corlib). Marked broken code for later removal.
12126
12127 2005-01-12  Martin Baulig  <martin@ximian.com>
12128
12129         * class-internals.h (MonoGenericClass): Moved the `initialized'
12130         flag to MonoDynamicGenericClass, removed `init_pending'.
12131         (MonoGenericInst): Added `is_reference' flag.
12132
12133 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
12134
12135         * reflection.c (mono_image_create_pefile): Only set the pe_offset
12136         inside the MSDOS header. Fixes #71201.
12137
12138         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
12139         gc thread.
12140         (mono_domain_finalize): Ditto.
12141
12142 2005-01-12  Martin Baulig  <martin@ximian.com>
12143
12144         * class.c (mono_get_shared_generic_class): Use the cache for
12145         non-dynamic generic classes.
12146
12147         * class-internals.h (mono_class_create_generic_2): Removed
12148         function prototype, this function is now static inside class.c.
12149
12150         * class.c (mono_class_create_generic_2): Made this static, only
12151         call it from mono_class_init() and mono_class_setup_parent().
12152         (collect_implemented_interfaces_aux): Call mono_class_init() on
12153         the interfaces we collect.
12154         (mono_class_setup_vtable): Call mono_class_init (class->parent).
12155
12156 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
12157
12158         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
12159         it a real thread handle.
12160
12161         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
12162         MonoJitExceptionInfo, since each catch clause needs its own variable.
12163         
12164 2005-01-11  Dick Porter  <dick@ximian.com>
12165
12166         * image.c (mono_pe_file_open): New variant on mono_image_open()
12167         that does not set up the CLI metadata; used for FileVersionInfo so
12168         it can get the data for windows binaries too.
12169         
12170         * process.c (process_read_string_block): Don't read off the end of
12171         the StringTable block.
12172
12173         These both fix bug 70766.
12174
12175 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
12176
12177         * gc.c: set some fields to NULL at GC cleanup time.
12178         * threads.c: if we quit the main thread, call exit ().
12179
12180 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
12181
12182         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
12183
12184 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
12185
12186         * threads.h, threads.c, object.c: added accessor and settor for
12187         main_thread. Handle it specially when exiting from it: wait
12188         for other foreground threads to exit.
12189
12190 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
12191
12192         * process.c, verify.c: remove some bloat.
12193
12194 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
12195
12196         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
12197         the calling convention to cdecl under win32.
12198
12199 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
12200
12201         * object.c (mono_object_get_size): New function to get the size of
12202         an object instance.
12203
12204         * profiler.c (simple_allocation): Use above.
12205
12206 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
12207
12208         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
12209         ves_icall_System_AppDomain_getRootDomain (as it's not required to
12210         get an appdomain by it's id and we can't assume the root's id is 0).
12211         * domain-internals.h: Change the function prototype to match.
12212         * icall.c: Change the icall table for AppDomain.
12213
12214 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
12215
12216         * locales.c (string_invariant_compare_char): Only compute
12217         GUnicodeTypes in the case where we need them.  Test for ordinality
12218         first and return if so.
12219
12220         From the commit:
12221
12222                 /*
12223                  * FIXME: here we must use the information from c1type and c2type
12224                  * to find out the proper collation, even on the InvariantCulture, the
12225                  * sorting is not done by computing the unicode values, but their
12226                  * actual sort order.
12227                  */
12228
12229 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
12230
12231         * loader.c: for P/Invoke methods, allow the "Internal" shared
12232         library name to refer to the calling process symbol namespace.
12233
12234 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
12235
12236         * Makefile.am: Add the security manager to the build.
12237         * security-manager.c|h: New. Initialization of the security manager.
12238
12239 2005-01-07  Dick Porter  <dick@ximian.com>
12240
12241         * threads.c: 
12242         * monitor.c: Update thread state during Monitor and WaitHandle
12243         waits.  Fixes bug 71031.
12244
12245 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
12246
12247         * reflection.c (property_encode_signature): Correctly handle when the
12248         property has no methods.
12249
12250 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
12251
12252         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
12253         
12254         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
12255         fields from mb, not rmb. Fixes #71017.
12256
12257         * marshal.c (emit_ptr_to_str_conv): Add support for 
12258         ByValTStr -> string conversion. Fixes #71015.
12259
12260         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
12261
12262         * mempool.c (mono_mempool_contains_addr): New helper function.
12263
12264 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
12265
12266         * metadata.c (mono_metadata_compute_size): Fix size calculation of
12267         HasSematics encoded fields.
12268         
12269         * metadata.c (mono_type_to_unmanaged): Improve error message for 
12270         invalid string marshalling.
12271
12272         * metadata.c: Fix warnings.
12273         
12274 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
12275
12276         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
12277         profiler support.
12278
12279 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
12280
12281         * domain.c object.c domain-internals.h: Revert part of r38077 since the
12282         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
12283         tests.
12284
12285 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
12286
12287         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
12288         so methods containing these can be AOTed.
12289
12290 2005-01-03  Martin Baulig  <martin@ximian.com>
12291
12292         * loader.c (find_method): Removed the hack for generic instances.
12293         (method_from_memberref): If our parent is a generic instance, pass
12294         its generic type definition to find_method() and then inflate the
12295         method.
12296         (mono_get_method_constrained): Pass the generic type definition to
12297         find_method() and inflate the method later.
12298
12299         * class-internals.h (MonoStats): Added `generic_class_count'.
12300
12301         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
12302         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
12303
12304         * reflection.c (mono_custom_attrs_from_params): Don't ignore
12305         generic type definitions.
12306
12307 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
12308
12309         * loader.c icall.c: Fix warnings.
12310
12311 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
12312
12313         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
12314         blittable types. Fixes #70864.
12315
12316 2004-12-29  Martin Baulig  <martin@ximian.com>
12317
12318         * icall.c
12319         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
12320
12321         * reflection.c (mono_method_get_object): Create a
12322         "System.Reflection.MonoGenericMethod" for inflated methods; don't
12323         call mono_get_inflated_method().
12324
12325         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
12326
12327 2004-12-27  Martin Baulig  <martin@ximian.com>
12328
12329         * class-internals.h (MonoMethod): Added `is_inflated' flag.
12330         (MonoMethodInflated): Added `inflated' field.
12331
12332         * class.c (mono_class_inflate_generic_method): Don't really
12333         inflate the method here; just set the `is_inflated' flag in the
12334         MonoMethod.
12335         (mono_class_get_inflated_method): Actually inflate the method here
12336         if it's not already inflated; we use the MonoMethodInflated's new
12337         `inflated' field as a cache.
12338
12339 2004-12-26  Martin Baulig  <martin@ximian.com>
12340
12341         * class.c
12342         (inflate_generic_class): Moved some code out of inflate_generic_type().
12343         (mono_class_inflate_generic_method): If we're already inflated,
12344         inflate the context and use the declaring method; ie. make sure
12345         the declaring method of an inflated method is always the generic
12346         method definition.
12347         (mono_class_create_from_typedef): Create
12348         `class->generic_container->context->gclass'.
12349
12350 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
12351
12352         * metadata-internals.h, marshal.c, reflection.c: More
12353         MonoGHashTable->GHashTable.
12354
12355         * domain-internals.h, class.c: Change MonoGHashTable's into
12356         GHashTables for some cases where no gc stuff is used
12357
12358         All users: update apis
12359
12360 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
12361
12362         * metadata.c (builtin_types): Make this `const'. Makes this get
12363         put into the shareable section.
12364         (mono_metadata_init): Casts to make gcc happy.
12365
12366 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
12367
12368         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
12369
12370 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
12371
12372         * icall.c: Added an internal call to retrieve the position and length
12373         of assembly-level declarative security attributes (RequestMinimum, 
12374         RequestOptional and RequestRefuse). This is used by the Assembly class
12375         to re-create the corresponding permission sets.
12376
12377 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
12378
12379         * marshal.c: fix the stelemref wrapper to be type correct
12380         (and faster).
12381
12382 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
12383
12384         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
12385         to do key & 0x7fffffff. Hashtable already does this. It just
12386         results in longer code.
12387
12388 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
12389
12390         * appdomain.c: Bump corlib version.
12391         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
12392         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
12393         * reflection.c|h: Add functions to get declarative security infos
12394         (blob position and length) for assemblies, classes and methods.
12395
12396 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
12397
12398         * reflection.c: sort the constant table (bug #70693).
12399
12400 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
12401
12402         * object-internals.h, threads.c, domain.c: add accessors for
12403         the MonoThread and MonoDomain tls keys.
12404
12405 2004-12-18  Martin Baulig  <martin@ximian.com>
12406
12407         * class.c (inflate_generic_type): If we're inflating a generic
12408         instance, set `ngclass->context->container = context->container';
12409         ie. the container we inflated into.
12410
12411         * metadata.c (mono_metadata_parse_generic_param): Reflect above
12412         inflate_generic_type() changes.
12413
12414 2004-12-17  Martin Baulig  <martin@ximian.com>
12415
12416         * class-internals.h
12417         (MonoGenericClass): Replaced `MonoType *generic_type' with
12418         `MonoClass *generic_class'.  Removed `dynamic_info'; if
12419         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
12420         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
12421
12422 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
12423
12424         * exception.c (mono_exception_from_token): New helper function.
12425
12426 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
12427
12428         * assembly.c (mono_assembly_load_with_partial_name): Call 
12429         mono_assembly_loaded before invoking the preload hooks. Fixes
12430         #70564.
12431
12432         * object-internals.h (MonoThread): Change culture_info and 
12433         ui_culture_info into an array.
12434
12435         * threads.c: Cache culture info objects from more than one appdomain.
12436
12437         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
12438         current UI culture.
12439
12440 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
12441
12442         * threads.h threads.c appdomain.c: Clear the culture_info field of
12443         all threads during unloading if they point to an object in the dying
12444         appdomain.
12445
12446 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
12447
12448         * culture-info.h (TextInfoEntry): New struct
12449         * object-internals.h: sync with managed
12450         * locales.c: fill the `text_info_data' field
12451         * culture-info-tables.h: update
12452
12453 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
12454
12455         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
12456         collector.
12457
12458 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
12459
12460         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
12461         (ves_icall_ModuleBuilder_getMethodToken): Ditto
12462
12463 2004-12-12  Martin Baulig  <martin@ximian.com>
12464
12465         * mono-debug-debugger.c (write_type): If we're an enum and the
12466         builtin types have already been initialized, call mono_class_init().
12467
12468 2004-12-11  Martin Baulig  <martin@ximian.com>
12469
12470         * metadata.c (mono_metadata_load_generic_params): Added
12471         `MonoGenericContainer *parent_container' argument; automatically
12472         compute `container->is_method'; pass the correct owner to
12473         get_constraints().      
12474
12475         * reflection.c (compare_genericparam): Sort the GenericParam table
12476         according to increasing owners. 
12477
12478 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
12479
12480         * profiler.c: allow disabling the default profiler.
12481
12482 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
12483
12484         * decimal.c, icall.c: allow disabling System.Decimal support.
12485
12486 2004-12-09  Marek Safar <marek.safar@seznam.cz>
12487
12488         * reflection.c: Add support for null attribute arguments.
12489
12490 2004-12-09  Martin Baulig  <martin@ximian.com>
12491
12492         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
12493         names to get rid of compiler warnings.
12494
12495 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
12496
12497         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
12498         mono_marshal_load_type_info (). Fixes #69625.
12499         (mono_marshal_get_ptr_to_struct): Likewise.
12500
12501 2004-12-08  Martin Baulig  <martin@ximian.com>
12502
12503         * mono-debug.h: Bumped version number to 47.
12504
12505         * mono-debug-debugger.c
12506         (mono_debugger_event_handler, mono_debugger_event): Take two
12507         guint64 arguments insteed of a gpointer and a guint32.  
12508
12509 2004-12-08  Martin Baulig  <martin@ximian.com>
12510
12511         * debug-mono-symfile.h
12512         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
12513         `address' to `native_offset'.
12514
12515 2004-12-08  Martin Baulig  <martin@ximian.com>
12516
12517         * class.c (mono_class_create_from_typespec): Only inflate if we
12518         either have `context->gclass' or `context->gmethod'.
12519
12520 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
12521
12522         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
12523
12524         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
12525
12526         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
12527
12528         * reflection.c (mono_assembly_get_object): Remove the workaround put
12529         in for the release.
12530         
12531         * appdomain.c: Use the corlib_internal field from MonoAssembly.
12532
12533         * appdomain.c: Bump corlib version.
12534
12535         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
12536         be visible in other appdomains.
12537
12538 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
12539
12540         * threads.c: Interlocked inc and dec for longs were messed up,
12541         use a KISS based impl for this. Fixes 70234
12542
12543 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
12544
12545         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
12546
12547 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12548
12549         * icall.c: fix to follow policy not to allow struct
12550         arguments in icalls.
12551
12552 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12553
12554         * process.c: make the patch that handles spaces in file paths work
12555         on mono/windows too.
12556
12557 2004-12-06  Martin Baulig  <martin@ximian.com>
12558
12559         * class.c (mono_class_create_generic): Call
12560         mono_class_setup_supertypes() if we're dynamic.
12561         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
12562
12563 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
12564
12565         * object-internals.h: Add new fields to MonoThread.
12566
12567         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12568
12569         * icall.c threads-types.h threads.c: Add new icalls.
12570
12571         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
12572
12573         * object-internals.h (MonoReflectionAssembly): Sync object layout with
12574         managed side.
12575
12576         * appdomain.c: Bump corlib version.
12577
12578         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
12579         internal assemblies. Fixes #69181.
12580
12581 2004-12-05  Martin Baulig  <martin@ximian.com>
12582
12583         * class.c (mono_class_inflate_generic_signature): Make this a
12584         no-op if `context' is NULL or we don't have any type parameters;
12585         also copy `sentinelpos'.        
12586
12587 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
12588
12589         * image.c: Add unbox_wrapper_cache.
12590
12591         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
12592
12593         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
12594         function generator.
12595         
12596         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
12597         Fixes #70173.
12598
12599         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
12600         
12601 2004-12-04  Martin Baulig  <martin@ximian.com>
12602
12603         * loader.c (mono_method_get_signature_full): New public function;
12604         like mono_method_get_signature(), but with an additional
12605         `MonoGenericContext *' argument.
12606
12607         * class.c (mono_class_inflate_generic_signature): Formerly known
12608         as inflate_generic_signature(); make this public.
12609
12610 2004-12-04  Martin Baulig  <martin@ximian.com>
12611
12612         * metadata.c
12613         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
12614         instead of a `MonoGenericContainer *'.  
12615         (mono_metadata_parse_array_full): Likewise.
12616         (mono_metadata_parse_signature_full): Likewise.
12617         (mono_metadata_parse_method_signature_full): Likewise.
12618         (mono_metadata_parse_generic_inst): Likewise.
12619         (mono_metadata_parse_generic_param): Likewise.
12620         (mono_metadata_parse_mh_full): Likewise.
12621         (mono_type_create_from_typespec_full): Likewise.
12622
12623 2004-12-03  Martin Baulig  <martin@ximian.com>
12624
12625         * class-internals.h (MonoGenericContainer): Replaced the
12626         `MonoGenericContext * pointer with a `MonoGenericContext'
12627         structure and made it the first element.
12628
12629 2004-12-03  Martin Baulig  <martin@ximian.com>
12630
12631         * class.c
12632         (inflate_generic_type): Set the `context->container' when creating
12633         a new MonoGenericContext.
12634         (mono_class_inflate_generic_method): Likewise.
12635         (mono_class_create_from_typespec): Just use `context->container'
12636         to get the container.
12637
12638         * loader.c (method_from_methodspec): Set `context->parent' from
12639         `context->container' - and if that's a method container, use its
12640         parent.  Also set the `context->container' when creating a new
12641         MonoGenericContext.
12642         (mono_get_method_from_token): Use just `context->container' to get
12643         the container.
12644
12645         * metadata.c (do_mono_metadata_parse_generic_class): Also set
12646         `gclass->context->container'.
12647
12648         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
12649         the `context->container' when creating a new MonoGenericContext.
12650
12651 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
12652
12653         * reflection.c (compare_genericparam): Sort params with identical
12654         owner by their number. Fixes gen-111 on sparc.
12655
12656 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
12657
12658         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
12659         around the domain changes.
12660
12661         * appdomain.c (mono_domain_unload): Handle the case when the thread
12662         calling Unload is itself being aborted during unloading. Fixes #70022.
12663
12664         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
12665
12666         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
12667         checkpoint_func as an icall so it gets a wrapper.
12668         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
12669         in the cross-appdomain wrappers too.
12670
12671         * threads.c (mono_thread_has_appdomain_ref): Make this public.
12672
12673         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
12674
12675         * reflection.c: Fix some memory leaks.
12676         
12677 2004-12-02  Martin Baulig  <martin@ximian.com>
12678
12679         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
12680
12681         * metadata.c (generic_class_cache): New static hashtable.
12682         (mono_metadata_lookup_generic_class): New public method.
12683
12684 2004-12-02  Martin Baulig  <martin@ximian.com>
12685
12686         * class.c (mono_class_create_from_typedef): Call
12687         mono_class_setup_parent() and mono_class_create_mono_type() before
12688         parsing the interfaces.
12689
12690 2004-12-02  Martin Baulig  <martin@ximian.com>
12691
12692         * metadata.c (generic_inst_cache): New static hashtable.
12693         (mono_metadata_lookup_generic_inst): New public function.
12694         (mono_metadata_inflate_generic_inst): New public function.
12695         (mono_metadata_parse_generic_inst): New public function.
12696         (do_mono_metadata_parse_generic_class): Use the new
12697         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
12698         since this'll also use the cache.
12699
12700         * reflection.c (mono_reflection_bind_generic_method_parameters):
12701         Use mono_metadata_lookup_generic_inst() to use the new cache.
12702
12703         * class.c (inflate_mono_type): Use
12704         mono_metadata_inflate_generic_inst() to inflate a generic
12705         instance; this'll also use the new cache.
12706
12707         * loader.c (method_from_methodspec): Use
12708         mono_metadata_parse_generic_inst() and
12709         mono_metadata_inflate_generic_inst() rather than parsing it
12710         manually, so we can use the new cache.
12711
12712 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
12713
12714         * threads.c (wait_for_tids): Do not incorrectly free threads when 
12715         the wait times out.
12716
12717 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
12718
12719         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
12720         iter->args based on whether parameters are passed in registers (i.e.
12721         MONO_ARCH_REGPARMS is defined)
12722
12723 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
12724
12725         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
12726         the exception message. Fixes #70070.
12727         (method_from_methodspec): Fix warnings.
12728
12729 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12730
12731         * process.c: (complete_path) return the path quoted
12732
12733 2004-12-01  Martin Baulig  <martin@ximian.com>
12734
12735         * class-internals.h (MonoGenericInst): New structure.
12736         (MonoGenericClass): Replaced `type_argc', `type_argv' and
12737         `is_open' with `MonoGenericInst *inst'.
12738         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
12739         `is_open' with `MonoGenericInst *inst'.
12740
12741 2004-11-30  Martin Baulig  <martin@ximian.com>
12742
12743         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
12744
12745         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
12746         to `generic_class_cache'.
12747
12748         * metadata.c
12749         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
12750         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
12751         (mono_generic_inst_is_valuetype): Renamed to
12752         mono_generic_class_is_valuetype().
12753
12754         * class-internals.h
12755         (MonoGenericInst): Renamed to MonoGenericClass.
12756         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
12757         (MonoClass): Renamed `generic_inst' to `generic_class'.
12758         (MonoGenericContext): Renamed `ginst' to `gclass'.
12759
12760         * object-internals.h
12761         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
12762
12763         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
12764         mono_reflection_generic_class_initialize().
12765
12766         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
12767         now known as "System.Reflection.MonoGenericClass".
12768         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
12769
12770 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
12771
12772         * class-internals.h: Added a flag field to MonoClass to cache the
12773         declarative security attributes actions associated with the class.
12774         * domain-internals.h: Added booleans to MonoJitInfo to cache the
12775         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
12776         applicable to the JITted method.
12777         * reflection.c|h: Added functions to extract (as flags) which security
12778         actions are available (declaratively) for a method, class or assembly.
12779         * metadata.c|h: Added functions to search the declarative security
12780         table in the metadata.
12781         
12782 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
12783
12784         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
12785         EXPORTEDTYPES are already in the class name cache, so there is no
12786         need to add extra code here to look at them. Just removes a bit of
12787         cruft.
12788
12789         (ves_icall_System_Environment_get_TickCount): No need for #if
12790         WINDOWS. We already have the code in io-layer.
12791
12792 2004-11-28  Martin Baulig  <martin@ximian.com>
12793
12794         * loader.c
12795         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
12796         Fixes gen-112.cs.
12797
12798 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
12799
12800         * assembly.c (do_mono_assembly_open): Instead of having a
12801         conditional WITH_BUNDLE, incorporate support for bundles here, by
12802         having a global `bundles' variable holding a pointer to the actual
12803         bundles. 
12804
12805         (mono_register_bundled_assemblies): New API call used by the
12806         bundle code. 
12807
12808         See mkbundle.1 for details.
12809         
12810 2004-11-27  Martin Baulig  <martin@ximian.com>
12811
12812         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
12813         the vtable for generic methods.
12814
12815 2004-11-26  Martin Baulig  <martin@ximian.com>
12816
12817         * metadata.c
12818         (mono_metadata_generic_method_hash): New public function.
12819         (mono_metadata_generic_method_equal): Likewise.
12820
12821         * class-internals.h
12822         (MonoGenericContainer): Added `GHashTable *method_hash'.
12823
12824         * reflection.c (ReflectionMethodBuilder): Added
12825         `MonoGenericContainer *generic_container'.
12826         (reflection_methodbuilder_to_mono_method): Don't create a new
12827         MonoGenericContainer each time we're called.
12828         (mono_reflection_bind_generic_method_parameters): Use
12829         `container->method_hash' to cache the results so we don't create a
12830         different method if we're called several times with the same
12831         arguments.
12832
12833         * loader.c (method_from_methodspec): Use the new
12834         `container->method_hash' here, too.
12835
12836 2004-11-26  Martin Baulig  <martin@ximian.com>
12837
12838         * class.c (inflate_generic_signature): Correctly compute
12839         `res->has_type_parameters'.
12840         (mono_class_vtable): Use the `has_type_parameters' flag to
12841         determine whether we're a generic method.
12842
12843         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
12844
12845 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
12846
12847         * object.c (mono_runtime_run_main): Fix a small memory leak.
12848
12849 2004-11-25  Martin Baulig  <martin@ximian.com>
12850
12851         * class.c (set_generic_param_owner): Fixed the loop.
12852
12853 2004-11-25  Martin Baulig  <martin@ximian.com>
12854
12855         * object.c (mono_class_vtable): Don't create any JIT wrappers for
12856         generic methods.
12857
12858 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
12859
12860         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
12861         names. Fixes #69787.
12862
12863 2004-11-24  Martin Baulig  <martin@ximian.com>
12864
12865         * class.c (mono_class_create_generic_2): If we don't have a
12866         `ginst->parent', inflate `gklass->parent' to get our parent.
12867
12868 2004-11-24  Martin Baulig  <martin@ximian.com>
12869
12870         * reflection.c (compare_genericparam): Correctly sort the
12871         GenericParam table; fixes #69779.
12872
12873 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
12874
12875         * reflection.c: When writing a PE file, don't create a huge
12876         buffer in memory. Just write the arrays we have to the file.
12877         This reduces memory usage.
12878
12879         * metadata-internals.h: MonoDynamicStream pefile is no longer used
12880         globally.
12881
12882 2004-11-17  Martin Baulig  <martin@ximian.com>
12883
12884         * class.c (mono_class_init): Don't setup `class->parent' for
12885         dynamic instances; moved this to mono_class_generic_2().
12886         (mono_class_create_generic): Also set `klass->inited' for dynamic
12887         generic instances.
12888         (mono_class_create_generic_2): Don't do anything for dynamic
12889         generic instances.  Set `klass->parent' here and also call
12890         mono_class_setup_parent() here. 
12891
12892         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
12893         `MonoType *parent' argument; set `ginst->parent' before calling
12894         mono_class_create_generic_2(), so we set the correct parent.
12895
12896 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
12897
12898         * reflection.c: allow getting attributes from ModuleBuilder
12899         (used by ikvm).
12900
12901 2004-11-17  Martin Baulig  <martin@ximian.com>
12902
12903         * class.c (mono_class_create_from_typedef): If a type parameter is
12904         inherited from an outer class, set its owner to that class.
12905
12906 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
12907
12908         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
12909           for (int*) written size. This fixes bug #69592.
12910
12911 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
12912
12913         * icall.c: Added IsAuthenticodePresnet internal call.
12914         * image.c|h: New function that check a MonoImage for an Authenticode
12915         signature in the certificate PE data directory.
12916         * security.c|h: New internal call to ask the runtime if an 
12917         Authenticode signature seems referenced in the PE header.
12918
12919 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
12920
12921         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
12922
12923         * reflection.c (mono_image_create_pefile): Free the assembly streams
12924         after writing out the assembly file.
12925
12926         * object.c (mono_runtime_run_main): Fix small memory leak.
12927
12928         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
12929         property access modifiers. Fixes #69389.
12930
12931 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
12932
12933         * domain.c, object.c, object-internals.h, domain-internals.h,
12934         object.h, marshal.c: keep dynamic code info per domain.
12935
12936 2004-11-15  Martin Baulig  <martin@ximian.com>
12937
12938         * class.c (mono_type_get_name_recurse): Put type arguments in
12939         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
12940         see bug #68387.
12941
12942 2004-11-15  Martin Baulig  <martin@ximian.com>
12943
12944         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
12945         (mono_class_setup_vtable): When computing `the_cname' for a
12946         generic instance, don't include the namespace since we'd otherwise
12947         add it twice.
12948
12949 2004-11-15  Martin Baulig  <martin@ximian.com>
12950
12951         * class.c (mono_class_create_generic): Changed return type to void.
12952         (mono_class_create_generic_2): New public function; setup
12953         `class->method', `class->field' and `class->interfaces' here
12954         instead of in mono_class_init().
12955
12956         * class.h (mono_class_create_generic): Moved to class-internals.h.
12957
12958 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
12959
12960         * reflection.c (mono_image_create_pefile): take a file HANDLE.
12961         rather than writing to memory, write to this file. Right now,
12962         we are just writting into a buffer, and copying that. However
12963         we can avoid the buffer later.
12964
12965         (mono_dynamic_stream_reset): new function
12966
12967         * icall.c, object-internals.h: update for the above.
12968
12969 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
12970
12971         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
12972         have been using gc'd memory. First it is slower, unlikely
12973         the comment in the source code said, secondly, it increases
12974         our footprint to do it in the gc.
12975
12976         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
12977         the method so that it does not have to copy to managed code.
12978
12979 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
12980
12981         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
12982
12983 2004-11-12  Martin Baulig  <martin@localhost>
12984
12985         * reflection.c (mono_image_create_token): Allow generic method
12986         definitions here, since they may appear in an `.override'; see
12987         gen-98/gen-99 for an example.
12988
12989 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
12990
12991         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
12992         #69365.
12993
12994         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
12995         descriptive.
12996
12997 2004-11-11  Martin Baulig  <martin@ximian.com>
12998
12999         * class.c (mono_class_setup_vtable): In an explicit interface
13000         implementation, the method name now includes the arity.
13001
13002 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
13003
13004         * object.c (mono_array_full_copy): Fix warning.
13005
13006 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
13007
13008         * appdomain.c: Removed look_for_method_by_name(). Use the new method
13009         mono_class_get_method_from_name() instead.
13010         
13011         * class-internals.h: Added two new types of wrappers. 
13012         Added MonoRemotingTarget enum. Added new trampoline function type, which
13013         takes an additional MonoRemotingTarget value as parameter, so it is
13014         possible to request a trampoline for a specific target.
13015         
13016         * class.c: Added new mono_class_get_method_from_name() method.
13017         
13018         * class.h: In MonoRemoteClass, we can have now to vtables, one for
13019         general remoting sinks and one specific for cross domain calls.
13020         
13021         * debug-helpers.c: Added new wrapper names.
13022         
13023         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
13024         of a remote class.
13025         
13026         * image.c: Porperly delete value objects form the remoting invoke hashtable.
13027         
13028         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
13029         with several other methods (mono_marshal_get_xappdomain_dispatch,
13030         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
13031         and others) can generate a fast remoting wrapper for cross domain calls.
13032         More information can be found in docs/remoting.
13033         Other changes: Removed mono_find_method_by_name, and used
13034         mono_class_get_method_from_name instead.
13035         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
13036         is stored in the remoting invoke hashtable.
13037         
13038         * marshal.h: published the new method for getting the xdomain wrapper,
13039         and also added a method for getting the adequate wrapper for a given
13040         method and target.
13041         
13042         * object-internals.h, object.c: Added a couple of methods for capying and
13043         cloning arrays.
13044         Modified mono_install_remoting_trampoline, which takes the new remoting
13045         trampoline that has a remoting target as parameter.
13046         mono_class_proxy_vtable now also takes a remoting target as parameter, and
13047         will return the most suitable vtable for the target.
13048         Added mono_remote_class_vtable, which returns the vtable of a remote class
13049         (which can be the normal remoting vtable or the xdomain vtable).
13050         
13051         * threads.c: the xdomain invoke and dispatch wrappers must also be
13052         protected against interruptions.
13053
13054 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13055
13056         * icall.c: use memmove in BlockCopyInternal when the source and
13057         destination arrays are the same.
13058
13059 2004-11-09  Martin Baulig  <martin@ximian.com>
13060
13061         * class-internals.h (MonoGenericContainer): Removed `method' and
13062         `signature', replaced them with `is_method' and `is_signature'
13063         flags.  Added `context'.
13064
13065         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
13066         instead of a `MonoGenericContainer *'.
13067
13068         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
13069         for dynamic type parameters.
13070         (mono_metadata_load_generic_params): Setup `container->context'.
13071
13072         * reflection.c (mono_reflection_setup_generic_class): Setup
13073         `tb->generic_container->context'.
13074         (do_mono_reflection_bind_generic_parameters): Use
13075         mono_class_inflate_generic_type() to correctly inflate types,
13076         rather than using our own hack just for MONO_TYPE_VAR.
13077
13078 2004-11-09  Martin Baulig  <martin@ximian.com>
13079
13080         * class.c (mono_class_inflate_generic_method): Small fix; don't
13081         crash here.
13082
13083         * icall.c
13084         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
13085         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
13086         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
13087         (ves_icall_Type_BindGenericParameters): Likewise.
13088         (ves_icall_Type_get_IsGenericInstance): Likewise.
13089         (ves_icall_Type_GetGenericParameterPosition): Likewise.
13090         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
13091         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
13092         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
13093
13094 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
13095
13096         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
13097         assembly versions and public key tokens. Fixes #69113.
13098
13099 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
13100
13101         * metadata.c: fix bug introduced with the type cache changes
13102         on 2004-11-06.
13103
13104 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
13105
13106         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
13107         the MonoClass pointer instead of the token in exception clauses.
13108         * reflection.c: updates for the above and make the code not depend
13109         on the structure of MonoExceptionClause.
13110
13111 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
13112
13113         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13114         Add support for dynamic assemblies. Fixes #69114.
13115
13116         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
13117
13118 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
13119
13120         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
13121         since most only those methods use it. the code member of
13122         MonoMethodPInvoke was dead, so that can be removed too. Also,
13123         remove inline_count (again, not used), and move slot so that it
13124         can share bits with some other flags. This saves 8 bytes in the
13125         structure and gives us about 50 kb back for mcs helloworld.cs
13126
13127         * *.[ch]: Do naming changes for the above.
13128
13129         * loader.c (mono_method_get_header): Lazily init the header
13130         on first access.
13131         (mono_get_method_from_token): don't init the header here
13132         (mono_free_method): the header may never be allocated
13133
13134         Overall, this saves 150 kb of unmanaged allocations
13135         for mcs helloworld.cs. That accounts for 10% of the unmanaged
13136         memory at runtime.
13137         
13138         * loader.c, loader.h (mono_method_get_header): new accessor.
13139
13140         * *.[ch]: use the above method. Prepares us to lazily load
13141         the header.
13142
13143         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
13144         three warnings, which are actual bugs (see 69206).
13145
13146         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
13147         unused. Saves a cool 4 bytes / method.
13148
13149 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
13150
13151         * metadata.c (builtin_types): Add types for System.Object here.
13152         (mono_metadata_parse_type_full): Cache MonoType*'s that are
13153         for a class or valuetype from klass->this_arg or klass->byval_arg.
13154
13155         On mcs for a hello world, this gets us down from 21836 MonoType's
13156         to 14560.
13157
13158         (mono_metadata_free_type): Account for the above change.
13159
13160 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
13161
13162         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
13163         exception instead of asserting if name is null.
13164         (ves_icall_System_AppDomain_GetData): Ditto.
13165
13166 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
13167
13168         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
13169         EnumBuilder.
13170
13171         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
13172         Return NULL when the domain does not have entry_assembly set.
13173
13174         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
13175         Add a 'resource_modules' argument.
13176         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
13177
13178         * reflection.c (mono_reflection_create_runtime_class): Move setting
13179         of wastypebuilder here, so mono_get_type_object () returns a MonoType
13180         for enums too.
13181
13182         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
13183         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
13184         Throw an ArgumentNullException if 'ptr' is null.
13185
13186         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
13187         assemblies here. Fixes #69020.
13188
13189 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
13190
13191         * reflection.c (build_compressed_metadata): Fix the previous patch for
13192         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
13193         the stack.
13194
13195 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
13196
13197         * assembly.c (mono_assembly_names_equal): Allow a match if one of
13198         the cultures is false. Fixes #69090.
13199
13200         * reflection.c (build_compressed_metadata): Fix invalid memory read 
13201         detected by valgrind.
13202         
13203         * reflection.c (mono_reflection_get_type): Avoid triggering a 
13204         TypeResolve multiple times for the same type. Fixes #65577.
13205
13206 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
13207
13208         * marshal.c: Avoid using ldftn to call managed functions. It is
13209         much slower than just a call.
13210
13211         * reflection.c (mono_module_get_object): free the basename we
13212         allocate here from glib.
13213         
13214         * reflection.c (ensure_runtime_vtable): make sure to free
13215         overrides.  Also, we were allocating an array of MonoMethod not an
13216         array of MonoMethod*.
13217
13218         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
13219
13220         * image.c (mono_image_close): free image->guid here.
13221
13222 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
13223
13224         * reflection.c: Fix some spec conformance issues with the PE file
13225         structures so mcs compiled apps run on the Net 2.0 beta.
13226
13227 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
13228
13229         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
13230         Implement this. Fixes #67264.
13231
13232         * debug-helpers.h debug-helpers.c marshal.c: Move 
13233         mono_find_method_by_name to debug-helpers.c.
13234
13235 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
13236
13237         * object.c (mono_release_type_locks): type_initialization_hash is
13238         a GHashTable.
13239
13240         * reflection.c object.c object-internals.h: Fix warnings.
13241
13242         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
13243         without accessors. Fixes #61561.
13244
13245         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
13246         application base from the root domain if not set. Fixes #65641.
13247         (mono_runtime_init): Fix warning.
13248
13249 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13250
13251         * appdomain.c: call mono_thread_pool_init.
13252         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
13253         of worker threads based on the number of CPUs and the environment
13254         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
13255         for non-windows (windows) systems.
13256
13257 2004-10-27  Chris Toshok  <toshok@ximian.com>
13258
13259         * mono-debug-debugger.c (write_class): don't call mono_class_init
13260         here, as even with the check for (!klass->init_pending), we get
13261         into a situation where we're hitting cycles in class
13262         initialization.  Fixes #68816.
13263
13264 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
13265
13266         * image.c: Avoid overwriting values in the loaded_images_hash when an
13267         assembly is loaded multiple times. Fixes #61152.
13268
13269         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
13270         so multiple satellite assemblies for the same name can be loaded.
13271         Fixes #68259.
13272
13273         * mono_domain_assembly_preload: Actually return the loaded assembly, 
13274         not NULL.
13275
13276         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
13277         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
13278
13279         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
13280         pending finalizers are not invoked after the appdomain has been 
13281         unloaded. Fixes #67862.
13282
13283 2004-10-22  Martin Baulig  <martin@ximian.com>
13284
13285         * mono-debug-debugger.c
13286         (mono_debugger_runtime_invoke): Don't box valuetypes.
13287
13288 2004-10-22  Chris Toshok  <toshok@ximian.com>
13289
13290         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
13291         don't hide private methods.
13292
13293 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
13294
13295         * icall.c: Allows the runtime to "share" (when known) the public key
13296         token of an assembly. This avoid the need to recalculate the token 
13297         (from the public key) in managed code.
13298
13299 2004-10-21  Chris Toshok  <toshok@ximian.com>
13300
13301         * debug-helpers.c (append_class_name): argh, revert last patch.
13302         
13303 2004-10-21  Chris Toshok  <toshok@ximian.com>
13304
13305         * debug-helpers.c (append_class_name): use '+' as the delimiter,
13306         not '/', so that it matches what the debugger uses to look up
13307         methods.
13308
13309 2004-10-21  Martin Baulig  <martin@ximian.com>
13310
13311         * mono-debug-debugger.c (mono_debugger_throw_exception): New
13312         public method; this is called each time an exception is thrown and
13313         allows the debugger to use exception catch points.
13314
13315 2004-10-21  Martin Baulig  <martin@ximian.com>
13316
13317         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
13318         the stack pointer and the exception object in some struct and pass
13319         that to the debugger.
13320
13321 2004-10-21  Chris Toshok  <toshok@ximian.com>
13322
13323         * mono-debug-debugger.c (do_write_class): add instance/static
13324         event support.  We don't expose "raise" or "other" yet.
13325         (event_is_static): new method.
13326
13327 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
13328
13329         * mono-debug-debugger.c
13330         (mono_debugger_handle_exception): Remove
13331         bogus return value for fussy compilers.
13332
13333 2004-10-20  Martin Baulig  <martin@ximian.com>
13334
13335         * mono-debug-debugger.c
13336         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
13337         (mono_debugger_handled_exception): Likewise.
13338
13339 2004-10-20  Martin Baulig  <martin@ximian.com>
13340
13341         * mono-debug-debugger.h (MonoDebuggerEvent): Added
13342         MONO_DEBUGGER_EVENT_EXCEPTION.
13343
13344         * mono-debug-debugger.c (mono_debugger_handle_exception): New
13345         public function to send the debugger a notification for an
13346         exception and inform it about a catch/finally clause.
13347
13348 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
13349
13350         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
13351         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
13352         fix 2.95 build. 
13353
13354         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
13355
13356 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
13357
13358         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
13359         marshalled as [In,Out]. Fixes #58325.
13360
13361 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
13362
13363         * reflection.c (mono_method_body_get_object): Implement some fields.
13364
13365 2004-10-12  Martin Baulig  <martin@ximian.com>
13366
13367         * reflection.c (mono_reflection_bind_generic_parameters): Small
13368         fix, correctly retrieve our parent from a generic instance.
13369
13370 2004-10-12  Martin Baulig  <martin@ximian.com>
13371
13372         * metadata.c (mono_metadata_generic_param_equal): We always have
13373         an owner.
13374
13375         * class.c
13376         (mono_class_from_generic_parameter): We need to have an owner.
13377         (my_mono_class_from_generic_parameter): Likewise.
13378
13379         * reflection.c (mono_reflection_setup_generic_class): Renamed to
13380         mono_reflection_create_generic_class() and added a new
13381         mono_reflection_setup_generic_class().  
13382         (mono_reflection_initialize_generic_param): If we're a nested
13383         generic type and inherited from the containing class, set our
13384         owner to the outer class.
13385
13386 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
13387
13388         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
13389
13390         * reflection.c (mono_method_body_get_object): New function to create
13391         a MethodBody object.
13392
13393         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
13394
13395 2004-10-11  Martin Baulig  <martin@ximian.com>
13396
13397         * metadata.c (_mono_metadata_type_equal): Renamed to
13398         do_mono_metadata_type_equal() and made static.
13399
13400 2004-10-11  Martin Baulig  <martin@ximian.com>
13401
13402         * appdomain.c: Bump corlib version number to 28.
13403
13404 2004-10-10  Martin Baulig  <martin@ximian.com>
13405
13406         * class-internals.h
13407         (MonoGenericInst): Added `MonoGenericContainer *container'.
13408         (MonoGenericMethod): Likewise.
13409         (MonoGenericContext): Likewise.
13410         (MonoGenericParam): Added `MonoGenericContainer *owner'.
13411
13412         * metadata.c
13413         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
13414         (do_mono_metadata_parse_generic_inst): Likewise.
13415         (mono_metadata_parse_type_full): New public method.  This is the actual
13416         mono_metadata_parse_type() implementation - with an additional
13417         `MonoGenericContainer *' argument.
13418         (mono_metadata_parse_array_full): Likewise.
13419         (mono_metadata_parse_signature_full): Likewise.
13420         (mono_metadata_parse_method_signature_full): Likewise.
13421         (mono_metadata_parse_mh_full): Likewise.
13422         (mono_type_create_from_typespec): Likewise.
13423         (mono_metadata_interfaces_from_typedef_full): New public method;
13424         this is similar to the other _full() methods, but we take a
13425         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
13426         (mono_metadata_parse_generic_param): Take an additional
13427         `MonoGenericContainer *' argument and lookup the MonoGenericParam
13428         from that container.
13429         (mono_metadata_generic_param_equal): New static method to compare
13430         two type parameters.
13431         (_mono_metadata_type_equal): New static method; takes an
13432         additional `gboolean signature_only' argument - if true, we don't
13433         compare the owners of generic parameters.
13434         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
13435         with a TRUE argument - do a signature-only comparision.
13436
13437         * loader.c: Use the new _full() methods and pass the
13438         MonoGenericContainer to them.
13439
13440         * object-internals.h (MonoReflectionTypeBuilder): Added
13441         `MonoGenericContainer *generic_container' field.
13442         (MonoReflectionMethodBuilder): Likewise.
13443
13444 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
13445
13446         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
13447         case initial images of dynamic assemblies.
13448
13449         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
13450
13451         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
13452
13453         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
13454         length of event->other array.
13455         (typebuilder_setup_events): Ditto.
13456
13457         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
13458         'assembly_by_name' and add an 'assemblies' list.
13459
13460         * assembly.h assembly.c: Add a new search hook for determining whenever
13461         an assembly is already loaded. Use this instead of searching in the
13462         loaded_assemblies list.
13463
13464         * domain.c appdomain.c: Implement the new search hook so loaded 
13465         assemblies are now scoped by appdomain. Fixes #67727.
13466
13467 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
13468
13469         * threads.c (mono_thread_attach): Initialize synch_lock field so
13470         mono_thread_detach works again.
13471
13472         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
13473         'lib' too. Fixes #63130.
13474
13475 2004-10-06  Jackson Harper  <jackson@ximian.com>
13476
13477         * culture-info-tables.h: regenerated.
13478
13479 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
13480
13481         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
13482         implemented by other interfaces in the result. Fixes #65764.
13483         
13484         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13485         Handle unloadable modules without crashing.
13486
13487         * image.c (load_modules): Revert the previous patch since modules must
13488         have a fixed index inside the array.
13489         
13490         * image.c (load_modules): Don't include native modules in the modules
13491         array.
13492
13493 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
13494
13495         * reflection.h: Add param_defaults field.
13496
13497         * reflection.c: Add support for parameter defaults in dynamic methods.
13498         Fixes #64595.
13499
13500         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
13501         an empty string when a type has no namespace. Fixes #64230.
13502
13503 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
13504
13505         * tabledefs.h: Added "internal" security actions to support non-CAS
13506         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
13507         Note: they do not seems to be used anymore in 2.0 (new metadata format)
13508
13509 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
13510
13511         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
13512         constructor of abstract class. Fixes #61689.
13513
13514 2004-10-04  Martin Baulig  <martin@ximian.com>
13515
13516         * class-internals.h (MonoGenericContainer): New type.
13517         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
13518         `MonoGenericContainer *generic_container'.
13519         (MonoClass): Replaced `gen_params' and `num_gen_params' with
13520         `MonoGenericContainer *generic_container'.
13521
13522         * metadata.c (mono_metadata_load_generic_params): Return a
13523         `MonoGenericContainer *' instead of a `MonoGenericParam *';
13524         removed the `num' argument.
13525
13526 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
13527
13528         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
13529         for dynamic images.
13530
13531         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
13532         machine fields.
13533
13534         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
13535
13536         * reflection.c: Save pe_kind and machine values into the generated
13537         image file.
13538
13539         * appdomain.c: Bump corlib version number.
13540
13541         * object-internals.h: Reorganize layout of LocalBuilder.
13542
13543         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
13544         New helper function.
13545
13546         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
13547         created MonoType for dynamic types. Fixes #66180.
13548
13549 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
13550
13551         * threadpool.c: the ares hashtable needs a critical section around it.
13552         this prevents some nasty segfaults
13553
13554 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
13555
13556         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
13557         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
13558         bug 67324).
13559         
13560 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
13561
13562         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
13563         
13564 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
13565
13566         * image.c: Always canonicalize image file names, to avoid loading
13567         the same assembly twice when referenced using a relative path.
13568
13569 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
13570
13571         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
13572
13573         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
13574
13575         * marshal.c: Fix warnings.
13576
13577 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
13578
13579         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
13580         attempting to marshal the delegate_trampoline as the method_addr.
13581         This patch has a static hashtable of marshalled delegates so that 
13582         we can map delegate_trampoline addresses back to delegates.  This
13583         allows a delegate passed to managed code to be passed back into native
13584         code.  Fixes #67039
13585
13586 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
13587
13588         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
13589
13590         * reflection.c (method_encode_code): Align method headers properly.
13591         Fixes #66025.
13592
13593 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
13594
13595         * marshal.c: In the runtime invoke wrapper, reset the abort
13596         exception if it is cached. This avoids the automatic rethrowal of 
13597         the exception after the catch of the wrapper. Also check for pending
13598         interruptions before calling the managed method. This is done using
13599         the new method emit_thread_force_interrupt_checkpoint, since the
13600         normal checkpoint method is ignored when running the invoke wrapper.
13601         * object.c: If the abort exception is rethrown, set the abort_exc
13602         field of the thread, so it will be rethrown aftere every catch.
13603         * threadpool.c: Only run an interruption checkpoint if what has been
13604         requested is a stop of the thread (aborts will be ignored).
13605         * threads.c: By default, a thread will now never be interrumped while
13606         running the runtime invoke wrapper (this ensures that runtime_invoke
13607         will always return to the caller if an exception pointer is provided).
13608         There is a new special method mono_thread_force_interruption_checkpoint()
13609         to force an interruption checkpoint even if running a protected
13610         wrapper, which is used by the same runtime invoke wrapper to do a check
13611         at a safe point.
13612
13613 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
13614
13615         * object.c, object-internals.h: Implemented mono_release_type_locks,
13616         which releases the cctor locks held by a thread.
13617         * threads.c, threads.h: In thread_cleanup, release cctor locks held
13618         by a thread. Added mono_thread_exit() method to be used to safely stop
13619         a thread.
13620
13621 2004-09-28  Raja R Harinath  <rharinath@novell.com>
13622
13623         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13624         Move null check before dereference.  Avoid indexing beyond the end
13625         of the 'modules' array.
13626
13627 2004-09-28  Raja R Harinath  <rharinath@novell.com>
13628
13629         * metadata-internals.h (MonoImage): Add module_count field.
13630         * image.c (load_modules): Set image->module_count.
13631         (mono_image_load_file_for_image): Use image->module_count.
13632         * reflection.c (mono_image_load_module): Append to image->modules array 
13633         of dynamic assembly.
13634         (mono_module_get_object): Fix loop to actually increment index.
13635         Use image->module_count.
13636         * assembly.c (mono_assembly_load_references): Use image->module_count.
13637         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
13638         Likewise.
13639
13640 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
13641
13642         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
13643         Avoid assert on generic types.
13644
13645 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
13646
13647         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
13648
13649         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
13650
13651         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
13652         function to convert a MarshalSpec structure to its managed counterpart.
13653
13654         * reflection.c: Fix warnings.
13655         
13656         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
13657         field.
13658
13659         * icall.c (mono_create_icall_signature): Fix build.
13660
13661 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
13662
13663         * icall.c: Add MakePointType icall.
13664
13665         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
13666         warnings.
13667
13668 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13669
13670         * threadpool.c: reuse allocated slots in the queue.
13671
13672 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
13673
13674         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
13675
13676         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
13677
13678         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
13679         previous change.
13680
13681         * tabledefs.h: Add constants for pinvoke attributes BestFit and
13682         ThrowOnUnmappableChar.
13683
13684         * icall.c (ves_icall_Type_GetPacking): New icall.
13685
13686 2004-09-24  Martin Baulig  <martin@ximian.com>
13687
13688         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
13689
13690 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13691
13692         * appdomain.c:
13693         (mono_domain_set): allow setting a domain that is being unloaded.
13694         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
13695         being unloaded.
13696
13697 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
13698
13699         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
13700         the GetCustomAttributes icall.
13701
13702 2004-09-23  Martin Baulig  <martin@ximian.com>
13703
13704         * object-internals.h (MonoReflectionGenericParam): Replaced
13705         'has_ctor_constraint', `has_reference_type' and `has_value_type'
13706         with `guint32 attrs'.
13707
13708 2004-09-23  Martin Baulig  <martin@ximian.com>
13709
13710         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
13711
13712 2004-09-23  Martin Baulig  <martin@ximian.com>
13713
13714         * object-internals.h (GenericParameterAttributes): New enum.
13715
13716 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
13717
13718         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
13719         
13720         * class.c (init_events): Fill out event->other field.
13721
13722         * class.c: Fix warnings.
13723
13724         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
13725
13726 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
13727
13728         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
13729         walk which doesn't supply the IL offset.
13730
13731 2004-09-22  Martin Baulig  <martin@ximian.com>
13732
13733         * reflection.c (mono_reflection_setup_internal_class): If we're
13734         System.ValueType, System.Object or System.Enum, set
13735         `klass->instance_size' and create the vtable.
13736         (mono_reflection_create_internal_class): If we're an enum type,
13737         get the base class from our current corlib.
13738
13739 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
13740
13741         * reflection.h (MonoResolveTokenError): New type.
13742
13743         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
13744         icall.
13745
13746         * icall.c: Add an 'error' argument to the ResolveToken icalls.
13747
13748 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
13749
13750         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
13751         Support also calling constructors, but only for already allocated objects.
13752
13753 2004-09-17  Geoff Norton <gnorton@customerdna.com>
13754
13755         * reflection.c (type_get_qualified_name): If the klass is null
13756         return the typename to avoid a NullRefEx.
13757         (encode_cattr_value): Get the qualified name of the boxed type,
13758         not the underlying enumtype.  Fixes #62984.
13759
13760 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
13761
13762         * marshal.c: Fix problems with previous checkin.
13763
13764 2004-09-21    <vargaz@freemail.hu>
13765
13766         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
13767         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
13768
13769         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
13770
13771 2004-09-21  Geoff Norton <gnorton@customerdna.com>
13772
13773         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
13774         should only return a type for pointers, arrays, and passbyref types.
13775         Fixes bug #63841.
13776
13777 2004-09-21  Martin Baulig  <martin@ximian.com>
13778
13779         * domain.c (mono_debugger_check_runtime_version): New public
13780         function.
13781
13782         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
13783
13784 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
13785
13786         * reflection.c: Added missing sort to the declarative security 
13787         attributes table. MS implementation stops seeing the attributes if the
13788         token number regress in the table (as shown by ildasm and permview).
13789
13790 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
13791
13792         * object-internals.h (MonoReflectionModule): Add 'token' field.
13793         
13794         * reflection.c (mono_reflection_get_token): Add support for Module
13795         and Assembly.
13796         (mono_module_get_object): Set 'token' field.
13797         (mono_module_file_get_object): Set 'token' field.
13798
13799         * icall.c: Add new Assembly and Module icalls.
13800
13801         * appdomain.c: Bump corlib version.
13802
13803 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
13804
13805         * loader.h loader.c class.h class.c: Add helper functions for obtaining
13806         tokens of metadata objects.
13807
13808         * reflection.h reflection.c (mono_reflection_get_token): New function
13809         to obtain the token of a metadata object.
13810
13811         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
13812
13813 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
13814
13815         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
13816         
13817         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
13818
13819 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
13820
13821         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
13822         * object-internals.h: Added 3 MonoArray* members to MonoReflection
13823         AssemblyBuilder to access the permissions set in the class lib.
13824         * reflection.c: Added security attributes encoding step in 
13825         mono_image_build_metadata.
13826         * tabledefs.h: Added new security actions defined in 2.0:
13827         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
13828
13829 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
13830
13831         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
13832         macro parameter.
13833
13834 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
13835  
13836         * locales.c: nullify the ICU_collator member of CompareInfo when it is
13837           finalized. There where random SIGSEVs at program termination, when
13838           an object being finalized was trying to do a string comparison and
13839           the current culture was already finalized.
13840  
13841 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13842
13843         * threads.c: call thread_cleanup before finishing the thread if we get
13844         there.
13845
13846 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
13847
13848         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
13849         assemblies from the parent. Fixes #65665.
13850
13851 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
13852
13853         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
13854         modifiers.
13855
13856 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
13857
13858         * reflection.h: add prototype for mono_get_dbnull_object
13859         * reflection.c: add prototypes for get_default_param_value_blobs 
13860         and mono_get_object_from_blob for fussier compilers
13861
13862 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
13863  
13864         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
13865         false deadlock checks in class initialization.
13866  
13867 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
13868
13869         * image.c (mono_image_addref): Fix comment.
13870
13871         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
13872         possible.
13873
13874 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
13875
13876         * reflection.c (mono_param_get_objects): Modified to return
13877         ParameterInfo.DefaultValue object.
13878
13879         (get_default_param_value_blobs):
13880         (mono_get_object_from_blob):
13881         (mono_get_dbnull_object): New helper routines. 
13882
13883         * object.c (mono_get_constant_value_from_blob): New helper routine
13884         carved out from get_default_field_value ()
13885
13886         * object-internals.h (mono_get_constant_value_from_blob): Added
13887         function declaration.
13888
13889 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
13890
13891         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
13892         referenced assemblies. Fixes #62135.
13893
13894         * exception.h exception.c (mono_get_exception_file_not_found2): New
13895         helper function.
13896
13897 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
13898
13899         * class.h class.c: Add mono_type_get_underlying_type ().
13900
13901 2004-09-09  Geoff Norton <gnorton@customerndna.com>
13902
13903         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
13904         Fix GetTypes() to support dynamically created assemblies.
13905
13906 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
13907
13908         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
13909         
13910         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
13911         previous patch.
13912
13913         * reflection.h reflection.c loader.c: Allow dynamic construction of
13914         pinvoke methods. Fixes #65571.
13915         
13916         * reflection.c (mono_reflection_get_type): Revert previous change since
13917         it causes regressions.
13918
13919 2004-09-08  Martin Baulig  <martin@ximian.com>
13920
13921         * class.c (class_compute_field_layout): Don't call
13922         mono_class_layout_fields() for open generic instances.
13923
13924 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
13925         * threads.c appdomain.c: fix typo in GC macro
13926
13927 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13928
13929         * threads.c: don't call mono_thread_detach() in start_wrapper(),
13930         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
13931
13932 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
13933
13934         * image.c (mono_image_close): Applied patch from 
13935         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
13936         assembly is loaded multiple times from data.
13937         
13938         * image.c (mono_image_open): Fix warning.
13939
13940 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13941
13942         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
13943         once. Fixes #58334.
13944         
13945         * reflection.c (mono_reflection_create_runtime_class): Initialize
13946         klass->nested_classes. Fixes #61224.
13947
13948 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
13949
13950         * threads.c: sched_yield() on exit, to allow threads to quit.
13951
13952 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13953
13954         * object.c (mono_unhandled_exception): Remove leftover debug code.
13955
13956 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
13957
13958         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
13959
13960 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
13961
13962         * marshal.c (emit_marshal_array): Really null terminate string arrays.
13963         
13964         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
13965
13966 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13967
13968         * marshal.c (emit_marshal_array): Null terminate string arrays.
13969         
13970         * marshal.c (raise_auto_layout_exception): Fix warning.
13971
13972         * reflection.c (mono_param_get_objects): Initialize the default value
13973         with DBNull.Value, not null. Fixes #62123.
13974
13975 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
13976
13977         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
13978         throw an exception with a cute explanation.
13979
13980 2004-09-06  Dick Porter  <dick@ximian.com>
13981
13982         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
13983         Close the new process's thread handle, as we don't use it.  The
13984         handle stays around forever otherwise.
13985
13986 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
13987
13988         * object.c (arith_overflow): Fix warning.
13989
13990         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
13991         calling conventions in method refs. Fixes #65352.
13992
13993         * reflection.c: Fix warnings.
13994
13995 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
13996
13997         * icall.c: Add a new icall for Array.Clear
13998
13999 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
14000
14001         * object.c: When allocating an array, we have to throw
14002         an overflow exception if any of the lengths are < 0.
14003
14004 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
14005
14006         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
14007         properly. Also move implementation of string array marshalling to 
14008         managed code. Fixes #42316.
14009
14010 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14011
14012         * assembly.c: provide more information when loading an assembly fails.
14013
14014 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14015
14016         * filewatcher.c: don't expect the development fam package to be
14017         installed.
14018
14019 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
14020
14021         * marshal.c: Make a copy of the signature cookie since it will be
14022         freed by the caller.
14023         
14024         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
14025
14026         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
14027
14028         * metadata.c (mono_metadata_free_marshal_spec): New function to free
14029         marshal specs.
14030
14031         * marshal.c: More refactoring.
14032         
14033         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
14034         smaller functions.
14035
14036 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
14037
14038         * object.c: In mono_message_invoke, fill the output parameter array after
14039           calling the managed method (it was done before the call). This fixes
14040           bug #59299.
14041
14042 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
14043
14044         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
14045         as well.
14046
14047 2004-09-02  Martin Baulig  <martin@ximian.com>
14048
14049         * class.c (mono_class_instance_size): Don't allow generic type
14050         definitions or open generic instances.
14051         (mono_class_array_element_size): If we're a value type, call
14052         mono_class_instance_size() on the original class.
14053
14054         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
14055         handle generic instances.
14056
14057         * mono-debug-debugger.c (write_type): Handle generic instances
14058         like classes.
14059
14060 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
14061
14062         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
14063         the allocation request fails. Fixes #65089.
14064
14065         * object.c (mono_runtime_free_method): Do not call mono_free_method.
14066         
14067         * object.c (mono_runtime_free_method): New function to free a dynamic
14068         method.
14069
14070         * marshal.c (mono_delegate_free_ftnptr): New function to free the
14071         delegate trampoline.
14072
14073         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
14074         with hasthis as dynamic,
14075
14076         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
14077
14078         * domain.c (mono_jit_info_table_remove): New function to remove an
14079         entry from the jit info table.
14080
14081         * class-internals.h (MonoMethod): Add 'dynamic' field.
14082
14083         * loader.c: Fix warnings.
14084
14085 2004-09-01  Martin Baulig  <martin@ximian.com>
14086
14087         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
14088         instead of mono_debugger_lock() because the latter one is a no-op
14089         unless running in the debugger.
14090
14091 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
14092
14093         * class.c (class_compute_field_layout): Classes with auto-layout or
14094         reference fields are not blittable.
14095         
14096 2004-09-01  Dick Porter  <dick@ximian.com>
14097
14098         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
14099         mono_image_get_filename() to get the assembly location.
14100
14101         * icall.c:
14102         * metadata.h: Fix compile warnings
14103
14104 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
14105
14106         * class.c (class_compute_field_layout): System.Object is blittable.
14107
14108         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
14109         as in/out. Fixes #59909.
14110
14111 2004-09-01  Martin Baulig  <martin@ximian.com>
14112
14113         * metadata.h (MONO_TYPE_ISREFERENCE): Call
14114         mono_metadata_generic_inst_is_valuetype() if we're a generic
14115         instance to check whether our underlying type is a reference type.
14116
14117 2004-09-01  Martin Baulig  <martin@ximian.com>
14118
14119         * metadata.c (mono_type_size): If we're a generic instance, call
14120         mono_class_value_size() for value types.
14121
14122 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
14123
14124         * marshal.c: Implement more custom marshalling functionality. Fixes
14125         #64915.
14126
14127 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
14128
14129         * mono-debug.c, debug-mono-symfile.c: add some locking love.
14130
14131 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
14132
14133         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
14134
14135         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
14136
14137         * icall.c: Fix some warnings.
14138
14139         * threads.c (abort_appdomain_thread): Fix unref errors.
14140         (mono_thread_current): Fix THREAD_DEBUG define.
14141
14142 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
14143
14144         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
14145
14146         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
14147
14148 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
14149
14150         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
14151         string arrays.
14152
14153 2004-08-28  Martin Baulig  <martin@ximian.com>
14154
14155         * metadata.c
14156         (mono_metadata_generic_inst_is_valuetype): New public function.
14157
14158         * metadata.h (MONO_TYPE_ISSTRUCT): Call
14159         mono_metadata_generic_inst_is_valuetype() if we're a generic
14160         instance to check whether our underlying type is a valuetype.
14161
14162 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
14163
14164         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
14165         #63768.
14166
14167 2004-08-25  Martin Baulig  <martin@ximian.com>
14168
14169         * loader.c (mono_get_method_from_token): Abstract methods can also
14170         be generic and thus have type parameters.
14171
14172         * metadata-internals.h
14173         (MonoDynamicImage): Added `GPtrArray *gen_params'.
14174
14175         * reflection.c (mono_image_get_generic_param_info): Don't create a
14176         metadata row, just add an entry to the `gen_params' array.
14177         (build_compressed_metadata): Sort the `gen_params' array and then
14178         actually create the metadata.
14179
14180 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14181
14182         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
14183
14184 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
14185
14186         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
14187
14188 2004-08-24  Martin Baulig  <martin@ximian.com>
14189
14190         * class.cs (mono_class_is_subclass_of): Like an interface, a
14191         generic instance also derives from System.Object.
14192
14193 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
14194
14195         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
14196         custom modifiers to be in any order. Fixes #61990.
14197
14198 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
14199
14200         * object.c: Register mono_object_new_fast icall.
14201         
14202         * object.c (mono_class_get_allocation_ftn): Return to calling
14203         mono_object_new_fast, since it seems faster to compute the object 
14204         size in unmanaged code than passing it as a parameter.
14205
14206         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
14207
14208         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
14209         this function with Boehm as the oom handler, so we don't have to check
14210         the result of GC_malloc.
14211
14212         * object.c: Remove checks for oom.
14213
14214         * object.h object.c (mono_class_get_allocation_ftn): New function to
14215         return the icall which can be used to allocate an instance of a given
14216         class. 
14217
14218         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
14219
14220         * class-internals.h: Add 'enabled' field.
14221
14222 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
14223
14224         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
14225
14226 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
14227         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
14228         value 0x0010.
14229
14230 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
14231
14232         * appdomain.c: use the Tls function for appdomain too,
14233         at Zoltan's request. Actually return in mono_context_get
14234
14235         * appdomain.c, profiler.c, threads.c: use __thread
14236
14237 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
14238
14239         * appdomain.c threads.c: Call GC_CreateThread on windows.
14240
14241         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
14242         multiple libraries since this don't work on windows.
14243
14244 2004-08-18  Martin Baulig  <martin@ximian.com>
14245
14246         * class-internals.h
14247         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
14248         MonoMethodHeader.
14249
14250         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
14251         MonoMethodNormal since we also need it for abstract and interface
14252         methods.
14253
14254         * reflection.c
14255         (build_compressed_metadata): Sort the GenericParam table.
14256         (mono_image_create_token): Added `gboolean create_methodspec'
14257         argument; this is false when generating a MethodImpl token.
14258         (reflection_methodbuilder_to_mono_method): Abstract and interface
14259         methods may also have generic parameters.
14260
14261 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
14262
14263         * appdomain.c: thread local alloc
14264
14265 2004-08-17  Martin Baulig  <martin@ximian.com>
14266
14267         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
14268
14269         * icall.c
14270         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
14271         argument.
14272
14273         * class.c (mono_type_get_full_name): New public function.
14274         (mono_type_get_name): Don't include the type arguments.
14275
14276 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
14277
14278         * Makefile.am: Build static versions of libmetadata and libmonoruntime
14279         for inclusion into the mono executable.
14280
14281 2004-08-16  Martin Baulig  <martin@ximian.com>
14282
14283         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
14284         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
14285
14286 2004-08-14  Martin Baulig  <martin@ximian.com>
14287
14288         * class.c (dup_type): Also copy the `byref' field.
14289
14290 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
14291
14292         * reflection.c (create_dynamic_mono_image): Revert the last change 
14293         since it breaks bootstrap.
14294
14295 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
14296
14297         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
14298
14299         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
14300         not free them with g_free.
14301
14302 2004-08-11  Martin Baulig  <martin@ximian.com>
14303
14304         * reflection.c (mono_reflection_setup_internal_class): Also call
14305         mono_class_setup_mono_type() if we already have a `tb->type.type'.
14306
14307 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
14308
14309         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
14310         called during default (first) AppDomain creation. Keep track of
14311         Evidence when loading assemblies.
14312
14313 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
14314
14315         * opcodes.c, opcodes.h: reduce runtime relocations.
14316
14317 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
14318
14319         * culture-info.h, locales.c: fixes and chages to sue the new
14320         optimized format of the locale data.
14321         * culture-info-tables.h: regenerated.
14322
14323 2004-08-06  Geoff Norton <gnorton@customerdna.com>
14324         
14325         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
14326
14327 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
14328
14329         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
14330         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
14331         * domain-internals.h: icall declaration.
14332         * icall.c: icall registration.
14333         * object-internals.h: New fields in MonoAssembly for CAS.
14334
14335 2004-08-05  Duncan Mak  <duncan@ximian.com>
14336
14337         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
14338         CEE_LDELEM_ANY.
14339
14340 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
14341
14342         * reflection.c: fix to deal with object[] arrays in custom ctors
14343         (bug #62550).
14344
14345 2004-08-05  Martin Baulig  <martin@ximian.com>
14346
14347         * class.c (mono_class_array_element_size): Added support for
14348         generic instances and correctly handle "recursive" types.
14349
14350 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
14351
14352         * assembly.c: Fix warnings.
14353
14354 2004-08-04  Martin Baulig  <martin@ximian.com>
14355
14356         * class.c
14357         (mono_type_get_name_recurse): Added `gboolean include_arity'
14358         argument specifying whether or not we should include the generic
14359         arity in the type name.
14360         (_mono_type_get_name): New static function.
14361         (mono_class_setup_vtable): If we're a generic instance, don't
14362         include the generic arity in the names of explicit method
14363         implementations.        
14364
14365 2004-08-03  Martin Baulig  <martin@ximian.com>
14366
14367         * class.c (mono_type_get_name_recurse): Enclose the generic type
14368         arguments in `<', '>'.
14369
14370 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
14371
14372         * gc.c: make GC warning messages use the trace API, they are just
14373         noise to most of the users.
14374
14375 2004-08-03  Martin Baulig  <martin@ximian.com>
14376
14377         * debug-mono-symfile.c (read_string): Correctly read the string.
14378
14379 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
14380
14381         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
14382         
14383         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
14384         icalls.
14385         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
14386
14387 2004-07-30  Martin Baulig  <martin@ximian.com>
14388
14389         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
14390         Reflect latest symbol writer changes.   
14391
14392 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
14393
14394         * object.c: always create an object if null is passed
14395         to Invoke() where a valuetype is expected.
14396
14397 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
14398
14399         * marshal.c (mono_marshal_init): make managed
14400         signatures match native ones better for 64bits.
14401
14402 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14403
14404         * appdomain.c: hack to build correctly the private bin path on windows.
14405         Fixes bug #61991.
14406
14407 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
14408
14409         * assembly.c: Load mscorlib from the correct framework directory
14410           (mono/<version>/mscorlib.dll).
14411         * appdomain.h: Added prototypes for new functions.
14412         * internals.h: Added some prototypes.
14413         * domain.c: When initializing the runtime, get from the executable and
14414           the configuration files the runtime version that the app supports.
14415           Added support methods for reading app.exe.config. Added list of versions
14416           supported by the JIT. Added two new methods: mono_init_from_assembly,
14417           which initializes the runtime and determines the required version from
14418           the provided exe file, and mono_init_version, which initializes
14419           the runtime using the provided version.
14420         * icall.c: Get machine.config from version-specific directory.
14421         * reflection.c: When generating an image, embed the version number
14422           of the current runtime.
14423
14424 2004-07-28  Dick Porter  <dick@ximian.com>
14425
14426         * socket-io.c
14427         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
14428         returned sockaddr size before creating the remote address object.
14429         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
14430         61608.
14431
14432 2004-07-28  Dick Porter  <dick@ximian.com>
14433
14434         * locales.c (string_invariant_compare_char): Fix invariant char
14435         compares between upper and lower cases.  Fixes bug 61458.
14436
14437 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
14438         
14439         * marshal.c: actually cache stelem.ref wrappers.
14440         
14441 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
14442
14443         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
14444         sections and remove the mono_cli_rva_map () function.
14445
14446 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
14447
14448         * debug-mono-symfile.c: fix one more endianess issue, from a patch
14449         by Geoff Norton (<gnorton@customerdna.com>).
14450
14451 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
14452
14453         * class.c: fix class loads for pointer types (typeof(int) !=
14454         typeof(int*)).
14455
14456 2004-07-27  Martin Baulig  <martin@ximian.com>
14457
14458         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
14459         reading the debugging information from an external ".mdb" file.
14460
14461 2004-07-24  Martin Baulig  <martin@ximian.com>
14462
14463         * reflection.c (mono_image_get_type_info): Only write a class
14464         layout entry if we actually have a size or a packing size.
14465
14466 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
14467
14468         * reflection.c (type_get_fully_qualified_name): 
14469         insert cast to get type checking of ?: with non-gcc compilers
14470
14471 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
14472
14473         * rand.c: use g_getenv for both lookups of
14474         MONO_EGD_SOCKET
14475
14476 2004-07-17  Martin Baulig  <martin@ximian.com>
14477
14478         * reflection.c (mono_reflection_bind_generic_method_parameters):
14479         Set `gmethod->reflection_info'.
14480
14481 2004-07-17  Martin Baulig  <martin@ximian.com>
14482
14483         * class.c (mono_class_create_from_typedef): Insert the newly
14484         created class into the hash table before computing the interfaces
14485         since we could be called recursively.
14486
14487 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
14488
14489         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
14490         function to implement stelem.ref in managed code
14491         * class-internals.h, debug-helpers.c: a new wrapper type
14492         for the above.
14493
14494 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
14495
14496         * gc.c: allow GC handles to work even when no GC is compiled in.
14497         Fix part of bug #61134 (GetAddrOfPinnedObject).
14498
14499 2004-07-13  Peter Williams  <peter@newton.cx>
14500  
14501         * process.c (complete_path): Make sure we don't attempt to execute
14502         directories.
14503  
14504 2004-07-12  Geoff Norton <gnorton@customerdna.com>
14505
14506         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
14507           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
14508           and will add/subtract the hour if needed
14509
14510 2004-07-12  Martin Baulig  <martin@ximian.com>
14511
14512         * reflection.c (mono_field_get_object): If we have
14513         `field->generic_info', take the attributes from
14514         `field->generic_info->generic_type'.    
14515
14516 2004-07-12  Martin Baulig  <martin@ximian.com>
14517
14518         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
14519         This function must be called before initializing the runtime.
14520         (mono_debug_init_1): New function; call this after initializing
14521         the runtime, but before loading the assembly.  It tells the
14522         debugger to load corlib and the builtin types.
14523
14524         * mono-debug-debugger.c: Did some larger changes in the debugging
14525         code; support recursive class declarations, make sure we actually
14526         add all classes.
14527
14528 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14529
14530         * debug-helpers.c: undo my previous patch and fixed the real issue in
14531         ../mini/exceptions-x86.c
14532
14533 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14534
14535         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
14536         when no HOME env. variable was set and a NullRef was thrown in a .cctor
14537         called from other .cctors.
14538
14539 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
14540
14541         * loader.c: Removed the mono_loader_wine_init hack now that we are
14542         doing a managed version of Windows.Forms.
14543
14544 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
14545
14546         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
14547         threadpool.c, threads.c: remove static data from rootset.
14548
14549 2004-07-09  Dick Porter  <dick@ximian.com>
14550
14551         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
14552         Don't do any more processing if the matched length was 0.  It was
14553         increasing the size of the string before.  Fixes bug 61167.
14554
14555 2004-07-09  Dick Porter  <dick@ximian.com>
14556
14557         * socket-io.h:
14558         * socket-io.c
14559         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
14560         Add support for SO_PEERCRED if its available.
14561
14562 2004-07-09  Peter Bartok <pbartok@novell.com>
14563         * loader.c: winelib.exe.so error message is now only displayed if
14564         MONO_DEBUG is set. To help us avoid questions when people are trying
14565         out the new Managed.Windows.Forms.
14566
14567 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
14568
14569         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
14570         for isinst and castclass wrappers.
14571
14572         * class-internals.h icall.c: Move registration and lookup of JIT icalls
14573         to libmetadata from the JIT, so they could be used by the marshalling
14574         code and the interpreter.
14575
14576         * marshal.c: Register marshalling related JIT icalls here instead of
14577         in mini.c. Use CEE_MONO_ICALL instead of the family of 
14578         CEE_MONO_PROC<x> opcodes to call marshalling functions.
14579
14580         * metadata.h: Remove unneeded marshalling conversions.
14581
14582         * opcodes.c: Update for new opcodes.
14583         
14584 2004-07-08  Martin Baulig  <martin@ximian.com>
14585
14586         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
14587         (mono_debug_get_domain_data): Make this function static.
14588
14589 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14590
14591         * gc.c, object.h: add nice GC handle API for embedders.
14592
14593 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
14594
14595         * reflection.c: more changes for the new api
14596
14597         * object.c: When we reflect on a field w/ a constant value, it
14598         will not have a memory location, so we must access metadata. Also,
14599         allow easier reading of strings so that we can read them from
14600         the constant data.
14601
14602         * class.c (mono_class_layout_fields): no need for literal fields here.
14603
14604         * class-internals.h: api changes for const fields
14605
14606         * icall.c (ves_icall_get_enum_info): use new apis for const fields
14607
14608 2004-07-06  Martin Baulig  <martin@ximian.com>
14609
14610         * mono-debug.h: Increment version number to 44.
14611
14612         * mono-debug.c (mono_debug_add_wrapper): The second argument is
14613         now a gpointer, rewrote this whole method.
14614
14615         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
14616         function.  Add information about the wrapper in a new "misc table".
14617
14618         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
14619         for the new misc table.
14620
14621 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
14622
14623         * metadata-internals.h image.c: Add a cache for helper signatures.
14624
14625         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
14626
14627 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
14628
14629         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
14630         delegates from a delegate. Fixes #61033.
14631         
14632         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
14633         marshalling of stringbuilder arrays. Fixes #59900.
14634
14635 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
14636
14637         * icall.c: Add EnumBuilder:setup_enum_type icall.
14638
14639 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
14640
14641         * icall.c: Added a new icall for the property version of
14642         OffsetOfStringData.
14643
14644 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
14645
14646         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
14647         it has a constant size across platforms.
14648
14649         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
14650         stack trace.
14651
14652 2004-06-29  Martin Baulig  <martin@ximian.com>
14653
14654         * mono-debug.c (mono_debug_add_method): Protect the whole function
14655         in mono_debugger_lock(), not just parts of it.
14656
14657 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
14658
14659         * reflection.c: make sure padding bytes in heaps are zeroed.
14660
14661 2004-06-24  David Waite  <mass@akuma.org>
14662
14663         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
14664         image.c, loader.c, locales.c, marshal.c, metadata.c,
14665         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
14666         string-icalls.c, threads.c: change to C90-style comments from C99 /
14667         C++ -style
14668
14669 2004-06-24  Dick Porter  <dick@ximian.com>
14670
14671         * threads.c
14672         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
14673         return createdNew.  Fixes bug 60412.
14674
14675         * threads-types.h: 
14676         * icall.c: Add createdNew parameter to CreateMutex icall
14677
14678 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14679
14680         * reflection.c, object-internals.h: save default value in params.
14681
14682 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14683
14684         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
14685         no need to build a new path combining that with the application base.
14686         Fixes bug #60442.
14687
14688 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
14689
14690         * reflection.c: fixed minor standard compliance issues.
14691
14692 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
14693
14694         * reflection.c: fixed issue with encoding some custom attributes
14695         (arrays in properties and fields, bug #60411).
14696
14697 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14698
14699         * reflection.c: fix start address when copying the public key token.
14700
14701 2004-06-23  Martin Baulig  <martin@ximian.com>
14702
14703         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
14704         the `exc' object in a static object to put it into the GC's root set.
14705
14706 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
14707
14708         * reflection.c: make mono_reflection_setup_internal_class ()
14709         callable a second time to setup a new parent class.
14710
14711 2004-06-23  Dick Porter  <dick@ximian.com>
14712
14713         * threads.c: Check for WAIT_IO_COMPLETION return values.
14714
14715 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
14716
14717         * appdomain.c: Removed the g_free on the public key token. Now copy 
14718         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
14719         * assembly.c: Added public key token string value when loading 
14720         assemblies. Fix bug #60439.
14721         * icall.c: Added missing informations (like public key) in 
14722         GetReferencedAssemblies. Fix #60519.
14723         * image.h: Changed definition for public key token from const char*
14724         public_tok_value to guchar public_key_token [17];
14725         * reflection.c: Updated for changes to public key token.
14726
14727 2004-06-22  Lluis Sanchez Gual
14728
14729         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
14730         for the field in base classes.
14731
14732 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14733
14734         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
14735         mark headers as not supported, they are installed only for use by the
14736         debugger.
14737
14738 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
14739
14740         * *.c, *.h: avoid namespace pollution in public headers.
14741
14742 2004-06-21  Martin Baulig  <martin@ximian.com>
14743
14744         * exception.c (mono_get_exception_security): It's in
14745         "System.Security", not in "System".
14746
14747         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
14748         the exception classes.
14749
14750 2004-06-21  Martin Baulig  <martin@ximian.com>
14751
14752         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
14753         Protect the exception object from being finalized.
14754
14755 2004-06-21  Martin Baulig  <martin@ximian.com>
14756
14757         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
14758         public function.
14759
14760 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
14761
14762         * reflection.c: Load the assembly in mono_reflection_type_from_name,
14763         if it was not loaded before. Fix parts of #60439.
14764
14765 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
14766
14767         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
14768         code that was broken since Ben's change: wrappers are now
14769         dependent on the method signature only again.
14770
14771 2004-06-21  Martin Baulig  <martin@ximian.com>
14772
14773         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
14774         added interface support.
14775
14776 2004-06-21  Martin Baulig  <martin@ximian.com>
14777
14778         * class.c (mono_vtable_get_static_field_data): New public method.
14779
14780 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
14781
14782         * filewatcher.c : Windows build fix to be compliant with API changes.
14783
14784 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
14785
14786         * class.h, class.c: more accessors.
14787         * metadata.h, metadata.c: prepare for hiding MonoType and
14788         MonoMethodSignature: people should use the accessors from now on
14789         outside of the tree.
14790
14791 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
14792
14793         * *.c, *.h: more API cleanups.
14794
14795 2004-06-18  Jackson Harper  <jackson@ximian.com>
14796
14797         * assembly.c: Trace loading assemblies.
14798         * loader.c: Trace loading native libraries.
14799         * mono-config.c: Trace loading config files.
14800         
14801 2004-06-18  Dick Porter  <dick@ximian.com>
14802
14803         * locales.c: Tell ICU the lengths of strings, it can cope with
14804         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
14805
14806 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
14807
14808         * image.c: swapped name/filename;
14809
14810 2004-06-18  Martin Baulig  <martin@ximian.com>
14811
14812         * mono-debug-debugger.c (write_class): Write the parent class at
14813         the end of the header.
14814
14815 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
14816
14817         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
14818
14819 2004-06-17  Raja R Harinath  <rharinath@novell.com>
14820
14821         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
14822         (bundle_obj): New conditional define.
14823         (BUILT_SOURCES): Remove.
14824         ($(bundle_srcs)): Make parallel-make safe.
14825         (libmonoruntime_la_LIBADD): Make unconditional.
14826         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
14827         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
14828
14829 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
14830
14831         * culture-info-tables.h: It was inconsistent with the latest
14832           supp info files.
14833
14834 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
14835
14836         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
14837         be loaded.
14838
14839         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
14840         with gcc 2.95.
14841
14842 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
14843
14844         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
14845         cleaned up public header threads.h.
14846
14847 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
14848
14849         * Makefile.am, *.c, *.h: more API cleanups.
14850
14851 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
14852
14853         * Makefile.am: removed monosn from compilation.
14854         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
14855         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
14856         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
14857         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
14858         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
14859         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
14860
14861 2004-06-15  Jackson Harper  <jackson@ximian.com>
14862
14863         * assembly.c: Make locales lower case when searching the GAC for
14864         assemblies. gacutil will always make locales lowercase when
14865         installing so this effectively makes them case insensitive.
14866         
14867 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
14868
14869         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
14870         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
14871           parameter which allows to choose whether the wait can be interrupted or 
14872           not. Also added the method mono_monitor_enter(), which locks the monitor
14873           using an infinite wait and without allowing interruption.
14874           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
14875           interrupted.
14876         * object.h: Added new fields in MonoThread. suspend_event holds the event
14877           used to susped/resume the thread. synch_lock is the lock object to use for
14878           modifying the thread state.
14879         * threads.c: Use the new synch_lock object for locking, instead of "this",
14880           which can generate deadlocks.
14881           Moved thread state change in Thread.Sleep and Thread.Join from managed
14882           to unmanaged code. This avoids a deadlock when the thread was suspended
14883           just after acquiring the thread lock.
14884           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
14885           Implemented Thread.Suspend using an event instead of ThreadSuspend,
14886           which is not fully implemented in the io-layer.
14887         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
14888
14889 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
14890
14891         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
14892         threads-types.h: more API cleanups.
14893
14894 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
14895
14896         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
14897         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
14898         threadpool.c, threads.c: first pass at the exported API cleanup.
14899
14900 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
14901
14902         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
14903
14904 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14905
14906         * icall.c: added internalGetHome.
14907
14908 2004-06-14  Dick Porter  <dick@ximian.com>
14909
14910         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
14911         possible to return successfully when '.' or '..' were the only
14912         entries in a directory, but were skipped.  The MonoIOStat was not
14913         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
14914         Fixes bug 59574.
14915
14916 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
14917
14918         * reflection.c: make binaries run on .Net 1.1 by default.
14919
14920 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
14921
14922         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
14923
14924 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
14925
14926         * marshal.c: keep track of struct size with explicit layout
14927         (bug #59979).
14928
14929 2004-06-12  Martin Baulig  <martin@ximian.com>
14930
14931         * mono-debug-debugger.c: Comment out a debugging g_message().
14932
14933 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
14934
14935         * reflection.c, reflection.h: do not free custom attrs that are cached.
14936         * icall.c: use braces to make code clearer.
14937
14938 2004-06-11  Martin Baulig  <martin@ximian.com>
14939
14940         * class.h (MonoInflatedField): New type.
14941         (MonoClassField): Replaced `MonoType *generic_type' with
14942         `MonoInflatedField *generic_info'.
14943
14944         * icall.c
14945         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
14946
14947 2004-06-11  Martin Baulig  <martin@ximian.com>
14948
14949         * reflection.c (mono_image_create_method_token): Correctly encode
14950         varargs methods.
14951
14952 2004-06-11  Martin Baulig  <martin@ximian.com>
14953
14954         * metadata.c (mono_metadata_parse_method_signature): When parsing
14955         a MethodDef which has VarArgs, also set sentinelpos if we don't
14956         have any parameters.
14957
14958 2004-06-11  Martin Baulig  <martin@ximian.com>
14959
14960         * verify.c (mono_method_verify): In CEE_CALL, use
14961         mono_method_get_signature() to get the method's signature, unless
14962         we're a PInvoke method.
14963
14964 2004-06-10  Jackson Harper  <jackson@ximian.com>
14965
14966         * assembly.c: Use <path>/lib/mono/gac for the extra paths
14967         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
14968         logical name as the supplied path is just a prefix to the gac not
14969         the direct path to it.
14970         
14971 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
14972
14973         * reflection.c: make the token for a created method match
14974         the token of the MethodBuilder it was created from
14975         (IKVM requires this behaviour now).
14976
14977 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
14978
14979         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
14980         reflection.c, socket-io.c: leak fixes.
14981
14982 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
14983
14984         * icall.c: handle sentinel pos in vararg methods in position different
14985         from 0.
14986
14987 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14988
14989         * culture-info-tables.h: freshly generated.
14990
14991 2004-06-09  Martin Baulig  <martin@ximian.com>
14992
14993         * loader.c (mono_get_method_constrained): Call `mono_class_init
14994         (constrained_class)'.   
14995
14996 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
14997
14998         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
14999         any methods. Fixes #59629.
15000
15001 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
15002
15003         * culture-info-tables.h: reflecting locale-builder updates.
15004
15005 2004-06-08  Dick Porter  <dick@ximian.com>
15006
15007         * object.h:
15008         * locales.c: Fixed compile warnings, including a real bug in
15009         CompareInfo_internal_compare.
15010         
15011 2004-06-08  Dick Porter  <dick@ximian.com>
15012
15013         * locales.c
15014         (ves_icall_System_Globalization_CompareInfo_internal_index):
15015         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
15016         Double-check the resuls of usearches, because ICU currently
15017         ignores most of the collator settings here.  Fixes bug 59720.
15018         
15019 2004-06-08  Dick Porter  <dick@ximian.com>
15020
15021         * locales.c
15022         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
15023         Fix memory leak and segfault-causing typo.  No idea how this one
15024         lasted so long without being noticed.
15025
15026 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
15027
15028         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
15029         any methods. Fixes #59629.
15030
15031 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15032
15033         * assembly.c:
15034         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
15035         own the critical section before). Removed dead code (that's done
15036         in the preload hook).
15037
15038         (mono_assembly_load_with_partial_name): call the preload hook.
15039
15040 2004-06-08  Martin Baulig  <martin@ximian.com>
15041
15042         * metadata.c (mono_metadata_signature_alloc): Default
15043         `sentinelpos' to -1.
15044
15045         * reflection.c (mono_image_get_array_token): Likewise.
15046
15047 2004-06-08  Martin Baulig  <martin@ximian.com>
15048
15049         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
15050
15051         * metadata.c (mono_metadata_parse_method_signature): When parsing
15052         a MethodDef which has VarArgs, set sentinelpos.
15053
15054         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
15055         `gint16' since we're using -1 for non-varargs methods.
15056
15057         * reflection.c
15058         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
15059         (method_encode_signature): Added varargs support.
15060         (method_builder_encode_signature): Likewise.
15061         (mono_image_get_varargs_method_token): New static method.
15062         (mono_image_create_method_token): New public method; this is
15063         called via an icall instead of mono_image_create_token() when
15064         calling a varargs method.       
15065
15066 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
15067
15068         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
15069
15070 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
15071
15072         * culture-info-tables.h : Reflecting the latest locale-builder that
15073           fixed empty array representation ({} to {0}).
15074
15075 2004-06-07  Jackson Harper  <jackson@ximian.com>
15076
15077         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
15078         looking up extra gac paths. This allows MONO_GAC_PATH to act
15079         exactly like a prefix.
15080         
15081 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
15082
15083         * reflection.c (mono_reflection_type_from_name): Make a copy of the
15084         type name before modifying it. Fixes #59405.
15085
15086 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
15087
15088         * culture-info.h: added fields for "all datetime patterns".
15089         * locales.c: (  ves_icall_System_Globalization_CultureInfo
15090           _construct_datetime_format ()): fill xxx_patterns fields.
15091         * object.h: added fields for "all datetime patterns" to
15092           MonoDateTimeFormatInfo.
15093         * culture-info-tables.h: reflecting locale-builder updates.
15094
15095 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
15096
15097         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
15098         the event has no add and remove methods. Fixes #59629.
15099
15100 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
15101
15102         * object.c: Fixed possible integer overflow when allocating large
15103         strings.
15104
15105 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
15106
15107         * culture-info-tables.h: reflecting locale-builder updates.
15108
15109 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
15110
15111         * culture-info-tables.h: reflecting locale-builder updates.
15112
15113 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
15114
15115         * culture-info-tables.h: reflecting locale-builder updates.
15116
15117 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
15118
15119         * threads.c: Made Thread.Sleep abortable.
15120
15121 2004-06-02  Martin Baulig  <martin@ximian.com>
15122
15123         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
15124
15125         * debug-mono-symfile.h: Bumped symbol file version number to 37.
15126
15127 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
15128
15129         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
15130
15131 2004-05-30  Jackson Harper  <jackson@ximian.com>
15132
15133         * reflection.c: Do not hardcode assembly versions or public key
15134         tokens anymore. All of this except the corlib section was dead
15135         code anyways.
15136         
15137 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
15138
15139         * object.c (mono_runtime_invoke_array): Automatically create boxed
15140         objects for byref valuetypes if needed. Fixes #59300.
15141         
15142         * object.c (mono_method_return_message_restore): Handle 
15143         MONO_TYPE_OBJECT as well.
15144
15145 2004-05-28  Jackson Harper  <jackson@ximian.com>
15146
15147         * reflection.c: The modified type encoding was causing build
15148         problems. Reverted for now.
15149         
15150 2004-05-28  Jackson Harper  <jackson@ximian.com>
15151
15152         * reflection.c/h: Take an assembly ref so that we dont create
15153         fully qualified names when encoding types in the same assembly as
15154         the custom attribute being emitted.
15155         * appdomain.c: Increment version number.
15156         
15157 2004-05-26  Duncan Mak  <duncan@ximian.com>
15158
15159         * icall.c
15160         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15161         Set the full version number (major, minor, build, revision).
15162
15163 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
15164
15165         * marshal.c (emit_struct_conv): increment src/dst after blit
15166         (mono_marshal_get_managed_wrapper,
15167         mono_marshal_get_native_wrapper): make sure we have marshalling
15168         info before marshalling params (info computation affects
15169         blittable)
15170
15171         * class.c (class_compute_field_layout): correctly deal with
15172         blittable
15173         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
15174         value types (as per what windows dows by default)
15175         (mono_class_setup_mono_type): System.ValueType is blittable
15176         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
15177         blittable
15178
15179         * marshal.c (mono_marshal_load_type_info): flag types  as
15180         non-blittable if the native layout doesn't match the managed
15181         layout
15182
15183 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15184
15185         * appdomain.c: don't add stuff in the private search path that is
15186         above the application base. If application base is not set, there's
15187         no private search path.
15188
15189 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
15190
15191         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
15192         byref struct arguments in native->managed marshalling.
15193
15194 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
15195
15196         * marshal.c (mono_marshal_get_runtime_invoke): correctly
15197         cache methods using signature (special case for methods
15198         that are value type or string class)
15199         
15200         * image.c (mono_image_close): clean up allocated GSList's
15201         in runtime_invoke_cache.
15202
15203 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15204
15205         * mono-config.c: set the correct path for mono_cfg_dir on windows when
15206         there's no MONO_CFG_DIR environment variable defined.
15207
15208 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15209
15210         * threads.c: windows version must be >= 0x0500 to include OpenThread.
15211
15212 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
15213
15214         * threadpool.c: Really wait for 500ms after the async call, even if the wait
15215           is interrumped.
15216         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
15217           before waiting for it, and call CloseHandle after the wait to unref it.
15218           This will make sure that handles are not disposed too early.
15219
15220 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15221
15222         * appdomain.c:
15223         * appdomain.h:
15224         * icall.c: removed
15225         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
15226         needed now.
15227
15228         * object.c: se the application_base only for the domain that runs
15229         Main. Fixes bug #59216,
15230
15231 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15232
15233         * appdomain.c:
15234         * object.c: only the domain in which Main is run have
15235         SetupInformation.ConfigurationFile set, so moved a few lines from
15236         appdomain.c to object.c.
15237
15238 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15239
15240         * appdomain.c: we tried to load [name].(dll|exe), but according
15241         to bug #57710, we must also try [culture]/[name].(dll|exe) and
15242         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
15243         There's a test case attached to bug #58922.
15244
15245 2004-05-27  Dick Porter  <dick@ximian.com>
15246
15247         * icall.c:
15248         * file-io.c: Implemented icalls for locking and unlocking regions
15249         in a file.
15250         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
15251         FALSE on error (fixes both compiler warning and real bug.)
15252
15253 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
15254
15255         * culture-info-tables.h: reflecting locale-builder updates.
15256
15257           (Added missing ChangeLog entry for 05/26)
15258
15259 2004-05-27  Jackson Harper  <jackson@ximian.com>
15260
15261         * locales.c: Fix some cut and paste errors.
15262         
15263 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15264
15265         * mono-config.c: set the correct path for config. directory on windows.
15266
15267 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
15268
15269         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
15270           on win32.
15271
15272 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
15273
15274         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
15275         from pinvoke functions.
15276         
15277         * marshal.c (mono_ftnptr_to_delegate): Implement this.
15278
15279 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
15280
15281         * culture-info-tables.h: reflecting locale-builder updates.
15282
15283 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
15284
15285         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
15286         #59086.
15287
15288 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
15289
15290         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
15291         * icall.c: Modified icalls for RNG.
15292         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
15293         Windows (CryptoAPI).
15294
15295 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
15296
15297         * locales.c: Fix build.
15298
15299 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
15300
15301         * culture-info-tables.h: reflecting locale-builder updates.
15302
15303 2004-05-25  Jackson Harper  <jackson@ximian.com>
15304
15305         * locales.c: When creating the current culture use the $LANGs
15306         specific culture. So DateTimeFormat and NumberFormat entries are created.
15307         
15308 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
15309
15310         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
15311         a char array as parameter.
15312
15313 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
15314
15315         * image.c: In mono_image_open(), always use an absolute path name to
15316           look for already loaded images.
15317
15318 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
15319
15320         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
15321         missing in the windows build (like older cygwin include files).
15322
15323 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
15324
15325         * icall.c: Fixed check for possible integer overflow in Buffer_
15326         BlockCopy icall. Replaced comments style // by /* */.
15327
15328 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
15329
15330         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
15331         
15332         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
15333         check after MONO_VTADDR. Fixes pinvoke2.exe.
15334
15335         * marshal.h marshal.c metadata.h: Add beginnings of support for
15336         ftnptr -> delegate marshalling.
15337
15338 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
15339
15340         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
15341         * threads.c: Fix warnings.
15342
15343 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
15344
15345         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
15346         * icall.c: Registered icalls for Suspend and Resume.
15347         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
15348           Thread.Abort.
15349         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
15350         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
15351         * process.c: Use WaitForSingleObjectEx.
15352         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
15353           checkpoints.
15354         * threads.c, threads.h: Make use of new Ex wait methods. Improved
15355           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
15356           for Suspend and Resume. Added new mono_thread_stop, used for stoping
15357           background threads. Added basic support for Abort in Windows.
15358           Start new threads using a managed delegate invoke wrapper. This wrapper
15359           has an interruption checkpoint that is needed since an interruption
15360           can be requested before the thread leaves the unmanaged code that starts 
15361           the thread.
15362         * marshal.c: Added interruption checkpoint after every native call, and
15363           also before managed calls for wrappers called from unmanaged code to
15364           go into managed code.
15365         * object.h: Added new field in MonoThread to keep track of interruption
15366           requests.
15367
15368 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
15369
15370         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
15371         calls.
15372
15373 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15374
15375         * appdomain.c:
15376         * assembly.c:
15377         * gc.c:
15378         * locales.c:
15379         * mono-config.c:
15380         * rand.c: getenv -> g_getenv (windows!)
15381
15382         * process.c: complete_path is also used on non-windows platforms.
15383
15384 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15385
15386         * icall.c: new signature for Process_Start.
15387
15388         * process.[ch]: new signature for Process_Start. If we're on windows
15389         and UseShellExecute is false, we have to search for the program by
15390         ourselves if we don't get a full path.
15391
15392 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
15393
15394         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
15395         marshalling and call CleanUpNativeData if needed. Fixes #58646.
15396
15397 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15398
15399         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
15400         Fixes bug #58373.
15401
15402 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15403
15404         * process.c: use double quotes to quote program name and arguments on
15405         windows. Fixes bug #58575.
15406
15407 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15408
15409         * file-io.c: don't return "." and ".." when using windows Find*File.
15410
15411 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
15412
15413         * marshal.c: Don't pass wrappers to message init because method 
15414         addressed used to lookup metadata. part of remoting[2|3] fix.
15415
15416 2004-05-15  Jackson Harper  <jackson@ximian.com>
15417
15418         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
15419         path is essentially the same as MONO_PATH except that it points to
15420         GACs instead of lib directories.
15421         * loader.h: The user gac is gone so we dont need function to
15422         enable/disable it.
15423         * mono-config.c: user gac option is now gone.
15424         
15425 2004-05-15  Jackson Harper  <jackson@ximian.com>
15426
15427         * culture-info.h: Make defines more consistent, add calendar data
15428         to the culture info table.
15429         * culture-info-tables.h: Add basic calendar data. Basically
15430         everyone gets default gregorian until all the data is
15431         updated.
15432         * locales.c: Use the new consistent defines. Set calendar data for
15433         culture info objects.
15434         * object.h: add a field for calendar data to CultureInfo
15435         
15436 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
15437
15438         * image.c: image->runtime_invoke_cache is keyed on signatures now.
15439         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
15440         a signature.
15441         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
15442         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
15443         an extra param that is the pointer of the method to invoke. The IL for
15444         the invoke method is no longer specific to the method, but to the
15445         signature of the method. Thus, we can share the same code for multiple
15446         methods. This reduces the number of methods that have to be compiled.
15447
15448 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
15449
15450         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
15451
15452         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15453
15454         * icall.c: Optimize Buffer.BlockCopy.
15455
15456 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15457
15458         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
15459         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
15460         quote). Changed them to "MMMM yyyy".
15461
15462 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
15463
15464         * rand.c
15465         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
15466
15467 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
15468
15469         * reflection.h: Updated after changes to managed structures.
15470
15471         * appdomain.c: Bump corlib version.
15472
15473 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15474
15475         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
15476         windows.
15477
15478 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15479
15480         * Makefile.am: link to ../os/libmonoos.la on windows.
15481
15482         * assembly.c:
15483                 -If MONO_DEBUG, warn about non-existing directories in
15484                 MONO_PATH.
15485                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
15486                 compile time variable.
15487                 -Removed init_default_path and call mono_set_rootdir from
15488                 libmonoos.a instead (windows only).
15489
15490         * assembly.h: declare mono_assembly_getrootdir().
15491
15492         * domain.c:
15493         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
15494
15495         * loader.c: s/getenv/g_getenv/
15496
15497 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
15498
15499         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
15500
15501         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
15502
15503         * metadata.h: Add new marshalling conversions.
15504
15505         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
15506         function.
15507
15508         * reflection.c (mono_reflection_get_type): Lookup the type in all
15509         modules of a multi-module assembly. Fixes #58291.
15510
15511 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
15512
15513         * threads.c: Before aborting a background, set the StopRequested
15514         state.  This avoids throwing the Abort exception.
15515         In mono_thread_manage, don't continue with the shutdown until all
15516         aborted threads have actually stopped.
15517
15518 2004-05-10  Jackson Harper  <jackson@ximian.com>
15519
15520         * locales.c: Remove the modifier from culture names.
15521         
15522 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15523
15524         * Makefile.am: monosn is not installed any more. It has been deprecated
15525         in favor of sn.
15526
15527 2004-05-07  Jackson Harper  <jackson@ximian.com>
15528
15529         * locales.c
15530         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
15531         Fix array construction, add bailout if the length is 0.
15532
15533 2004-05-07  Dick Porter  <dick@ximian.com>
15534
15535         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
15536         machine doesn't have a DNS entry.  Patch by Urs Muff
15537         (umuff@quark.com), fixes bug 57928.
15538
15539 2004-05-06  Jackson Harper  <jackson@ximian.com>
15540
15541         * reflection.c: Handle null PublicTokens properly. alloc mem for
15542         assembly names culture so we dont crash when freeing it.
15543         
15544 2004-05-06  Jackson Harper  <jackson@ximian.com>
15545
15546         * assembly.c: Check the usergac when loading with partial names.
15547         
15548 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
15549
15550         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
15551         does nothing for now (not required for Linux/Windows) but the class
15552         library can call it (and a newer or modified runtime could need it).
15553         * icall.c: Registred icall.
15554
15555 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15556
15557         * loader.c: prints a message on module loading error we set MONO_DEBUG
15558         environment variable.
15559
15560 2004-05-05  Jackson Harper  <jackson@ximian.com>
15561
15562         * appdomain.c: Handle PublicKeyToken=null properly.
15563         
15564 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
15565
15566         * environment.c|h: Added icall ves_icall_System_Environment_
15567         GetOSVersionString to get the current OS version as a string.
15568         * icall.c: Registred icall.
15569
15570 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
15571
15572         * object.c: in mono_object_get_virtual_method(), take into account that
15573         non-virtual methods don't have a slot in the vtable. Check needed when
15574         the object is a proxy.
15575
15576 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
15577
15578         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
15579         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
15580
15581         * object.c (mono_class_compute_gc_descriptor): Fix warning.
15582
15583         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
15584         passed when a valuetype is expected.
15585
15586         * object.c (mono_unhandled_exception): Only set the exit code if the
15587         exception happens in the main thread. Fixes thread5.exe.
15588
15589         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
15590         invalid names. Fixes #58047.
15591
15592 2004-05-03  Jackson Harper  <jackson@ximian.com>
15593
15594         * assembly.c: This line was committed accidently and is unneeded.
15595         
15596 2004-05-03  Jackson Harper  <jackson@ximian.com>
15597
15598         * icall.c: Add new icall for Assembly::LoadWithPartialName
15599         * assembly.c/.h: new function that probes the GAC to load partial
15600         assembly names by Paolo Molaro.
15601         
15602 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15603
15604         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
15605         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
15606         (type_get_fully_qualified_name): Added PublicKeyToken when building a
15607         full type name.
15608
15609 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15610
15611         * appdomain.c: fixed check for 'neutral' culture and removed warning.
15612         * reflection.c: fix bug when parsing a full type name and Version is not
15613         the last thing in the string.
15614
15615 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
15616
15617         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
15618         crashes when it is freed.
15619
15620 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15621
15622         * assembly.c: print the compat warning to stderr.
15623
15624 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
15625
15626         * assembly.c (mono_assembly_load_references): Add a compatibility
15627         hack to run old applications that might be still referencing the
15628         3300-based assemblies, only do this for System.xxx.
15629
15630 2004-05-01  Jackson Harper  <jackson@ximian.com>
15631
15632         * appdomain.c: If the culture is neutral we set it to "".
15633         
15634 2004-04-29  Jackson Harper  <jackson@ximian.com>
15635
15636         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
15637
15638 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
15639  
15640         * string-icalls.c: added low overhead function for copying chars
15641         * icall.c: added needed icall for the above function
15642  
15643 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15644
15645         * icall.c: fix return value of get_global_assembly_cache.  Implemented
15646         Environment.GetLogicalDrives.
15647
15648 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
15649
15650         * rand.c: try and talk to egd or prngd
15651         for random bytes if opening devices fail.
15652
15653 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
15654
15655         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
15656         alignment for the type using the native alignment of its members 
15657         instead of using klass->min_align.
15658
15659         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
15660
15661 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15662
15663         * file-io.c:
15664         * socket-io.c: added check for sys/aio.h.
15665
15666 2004-04-28  Dick Porter  <dick@ximian.com>
15667
15668         * threads.c: Don't abort a thread thats already aborting, when
15669         terminating everything.
15670
15671 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15672
15673         * icall.c: added 2 new async calls for Socket.
15674
15675         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
15676         IO on *nix systems.
15677
15678         * threadpool.c: removed unused variable.
15679
15680 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
15681
15682         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
15683
15684 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15685
15686         * locales.c: put back string_invariant_tolower () and
15687         string_invariant_toupper ().
15688
15689 2004-04-26 David Waite <mass@akuma.org>
15690
15691         * file-io.h:
15692         * socket-io.h:
15693         * threads.h:
15694         * unicode.h: remove comma from end of enumeration declarations
15695
15696 2004-04-26 David Waite <mass@akuma.org>
15697
15698         * debug-mono-symfile.h:
15699         * decimal.c:
15700         * mono_debug.h:
15701         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
15702
15703
15704 2004-04-26  Jackson Harper  <jackson@ximian.com>
15705
15706         * appdomain.c: Increment version number.
15707         
15708 2004-04-26  Jackson Harper  <jackson@ximian.com>
15709
15710         * appdomain.c: Set assembly references public token value when
15711         PublicKeyToken is specified, not the hash_value. Free public token
15712         values when free assembly name data. Previously the public key
15713         token was hex decoded, however we are using hex encoded public key
15714         tokens, so this is not neccasary.
15715         * assembly.c: Lookup assemblies in the gac if their public token
15716         value is set. Add function to allow enabling user gac
15717         lookups. Specify whether or not the assembly was loaded from the
15718         GAC. Compare full assembly names when checking the cache for
15719         assemblies (Temporarily disabled see comment in code). Remove
15720         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
15721         specifies trace-loader they get extra info to stdout on the
15722         loading of assemblies.
15723         * image.h: Add a field for an assembly references public token
15724         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
15725         whether an assembly has been loaded from the GAC.
15726         * image.c: Remove a corlib -> mscorlib name mapping.
15727         * loader.h: Add function to enable/disable the user gac.
15728         * mono-config.c: Check if the usergac is enabled in the config
15729         file.
15730         * icall.c: New icall to determine whether or not an assembly has
15731         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
15732         * tabldefs.h: Add constant for assemblyref flag that specifies a
15733         full public key is used instead of a public token.
15734         * reflection.c: Remove mscorlib -> corlib mappings. Set
15735         PublicTokenValue instead of hash value. This value is a hex
15736         string so it does not need to be expanded.
15737
15738 2004-04-26  Martin Baulig  <martin@ximian.com>
15739
15740         * mono-debug-debugger.c (mono_debugger_initialize): Set
15741         `mono_debugger_initialized' before calling mono_debug_lock().
15742
15743 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
15744
15745         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
15746           InternalToUpper/InternalToLower.
15747         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
15748           removed invariant culture shortcut.  This is now done in managed code.
15749         * locales.c: (string_invariant_toupper/tolower) removed.
15750
15751 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15752
15753         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
15754         Added Poll internal call.
15755
15756         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
15757         call for Poll. Select was too heavy for polling a single socket.
15758
15759         * threadpool.[ch]: added mono_threadpool_cleanup.
15760         * threads.c: use it. Don't use Thread_Abort on windows.
15761
15762 2004-04-23  Martin Baulig  <martin@ximian.com>
15763
15764         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
15765
15766 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
15767
15768         * icall.c: Registred new icalls for key pair protection and added an
15769         icall for Environment.GetFolderPath on Windows.
15770         * security.c|h: Added new icalls for key pair protection.
15771
15772 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15773
15774         * socket-io.c: don't display the non-supported family warning for known
15775         families. Now this is not displayed on windows when checking support
15776         for IPv4/IPv6.
15777
15778 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15779
15780         * class.c: don't display the layout warning for static fields.
15781
15782 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
15783
15784         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
15785         * locales.c, locales.h: Added new icalls for culture-specific
15786         Char.ToLower and Char.ToUpper.
15787
15788 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15789
15790         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
15791         by David Waite.
15792
15793 2004-04-20  Martin Baulig  <martin@ximian.com>
15794
15795         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
15796         of the type name before passing it to mono_reflection_type_from_name().
15797
15798 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
15799
15800         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
15801         encodings here. Fixes #56965.
15802
15803 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
15804
15805         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15806         fix test on strstr result not that I can see anything that
15807         relies on the result.
15808
15809 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
15810
15811         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
15812         Fixes #57081.
15813
15814         * marshal.c (mono_marshal_get_string_encoding): New helper function.
15815
15816         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
15817         function to determine which marshalling to use for strings. Fixes
15818         #56965.
15819
15820         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
15821
15822         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
15823
15824 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
15825
15826         * icall.c: #include mono-config.h
15827
15828 2004-04-15  Jackson Harper  <jackson@ximian.com>
15829
15830         * culture-info-tables.h: Fix date formats for en-US culture.
15831         
15832 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
15833
15834         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
15835         ThreadPool.SetMinThreads.
15836         * threadpool.c: Implemented ThreadPool.GetMinThreads and
15837         ThreadPool.SetMinThreads.
15838
15839 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
15840
15841         * mono-config.c: also load the .config file in the directory
15842         where the assembly was found.
15843
15844 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
15845
15846         * assembly.c: load per-assembly config files.
15847         * icall.c: decrapified code to get the config dir and moved to
15848         mono-config.c.
15849         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
15850         per-assembly config files. When doing a dll map lookup give precedence
15851         to the per-assembly data.
15852
15853 2004-04-14  Martin Baulig  <martin@ximian.com>
15854
15855         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
15856         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
15857         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
15858
15859         * mono-debugger-debugger.c: While the debugger is locked, remember
15860         whether the symbol tables have changes and send one single
15861         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
15862
15863 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
15864
15865         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
15866
15867         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
15868         function.
15869
15870         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
15871         account when marshalling string arrays. Fixes #56965.
15872
15873 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
15874
15875         * icall.c: Add new icalls mapping for security.
15876         * security.c|h: Add internal calls for WindowsIdentity,
15877         WindowsImpersonationContext and WindowsPrincipal.
15878
15879 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
15880
15881         * class.c: Added comment to ensure the System.MonoDummy class
15882         is removed when no longer necessary
15883
15884 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
15885
15886         * appdomain.c: Pass arguments to the bootstraping exceptions to
15887         minimize JITed methods at boot
15888
15889         * metadata.c (mono_exception_from_name_two_strings): Allow for the
15890         second string to be null.
15891
15892         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
15893         Change the protocol to minimize the JIT methods at startup.  Now
15894         it Returns the internal codepage, if the value of "int_code_page"
15895         is 1 at entry, and we can not compute a suitable code page
15896         number, returns the code page as a string.
15897
15898 2004-04-13  Jackson Harper  <jackson@ximian.com>
15899
15900         * culture-info-tables.h: Fix number of decimal digits for all
15901         english locales.
15902
15903 2004-04-13  Jackson Harper  <jackson@ximian.com>
15904
15905         * icall.c: Clairfy out of sync error message. It is not always
15906         your corlib that is out of sync.
15907
15908 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
15909
15910         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
15911         properties when only the set accessor is overriden. Fixes #55874.
15912
15913 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
15914
15915         * assembly.c (mono_assembly_load_references): Make this thread safe.
15916         Fixes #56327.
15917
15918 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
15919
15920         * monosn.c: Add missing initialization calls.
15921
15922 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
15923
15924         * locales.c:
15925         ves_icall_System_Globalization_CultureInfo_construct_number_format
15926         Fix g_assert so it compiles on fussier compilers re int/ptr
15927         mismatch
15928
15929 2004-04-08  Dick Porter  <dick@ximian.com>
15930
15931         * socket-io.h:
15932         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
15933         53992.  Also rearrange the code so that the internal calls return
15934         an error value and exceptions are thrown from managed code.
15935
15936         * icall.c: Add type info to the socket icalls.
15937
15938 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15939
15940         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
15941         owes me a beer.
15942
15943 2004-04-07  Martin Baulig  <martin@ximian.com>
15944
15945         * class.c (mono_class_from_generic_parameter): Don't default
15946         `klass->parent' to `mono_defaults.object_type'.
15947
15948 2004-04-07  Martin Baulig  <martin@ximian.com>
15949
15950         * reflection.c (mono_reflection_initialize_generic_parameter): Set
15951         `param->pklass->reflection_info'.       
15952
15953 2004-04-07  Jackson Harper  <jackson@ximian.com>
15954
15955         * culture-info-tables.h: Fix date separator symbol.
15956         
15957 2004-04-07  Martin Baulig  <martin@ximian.com>
15958
15959         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
15960         from System.Type to System.MonoType.
15961
15962 2004-04-07  Martin Baulig  <martin@ximian.com>
15963
15964         * reflection.h
15965         (MonoReflectionGenericParam): Added `has_reference_type' and
15966         `has_value_type' fields.
15967
15968         * reflection.c (mono_image_get_generic_param_info): Encode the
15969         correct flags if we have the `class' or `struct' constraint.
15970
15971 2004-04-07  Martin Baulig  <martin@ximian.com>
15972
15973         * reflection.h
15974         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
15975
15976 2004-04-07  Jackson Harper  <jackson@ximian.com>
15977
15978         * appdomain.c: Revert extra patches, just wanted to bump the
15979         version number.
15980         
15981 2004-04-07  Jackson Harper  <jackson@ximian.com>
15982
15983         * Makefile.am: Add culture-info private headers.
15984         * icall.c: Add new icalls for contructing locales.
15985         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
15986         * locales.h: Declare new culture info construction methods.
15987         * object.h: Add new fields used to avoid the CultureMap to
15988         MonoCultureInfo.
15989         * culture-info.h: Definition of structs used in the culture info
15990         tables.
15991         * culture-info-tables.h: Autogenerated tables that contain culture
15992         info data. This file was generated with the locale-builder tool.
15993         * appdomain.c: Incement corlib version number.
15994         
15995 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
15996
15997         * appdomain.c: (mono_runtime_init) move mono_thread_init
15998         to before mono_object_new calls so critical sections
15999         are initialized before use.
16000
16001 2004-04-07  Martin Baulig  <martin@ximian.com>
16002
16003         * icall.c
16004         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
16005         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
16006         (ves_icall_MonoGenericParam_initialize): Removed.
16007         (monogenericparam_icalls): Removed.
16008         (generictypeparambuilder_icalls): Added new table for
16009         System.Reflection.Emit.GenericTypeParameterBuilder.
16010
16011         * reflection.c
16012         (mono_reflection_define_generic_parameter): Removed.
16013         (mono_reflection_initialize_generic_parameter): This is now called
16014         from GenericTypeParameterBuilder's .ctor.
16015
16016 2004-04-06  Martin Baulig  <martin@ximian.com>
16017
16018         * class.c (mono_class_init): Don't inflate nested classes in a
16019         generic instance.
16020         (mono_type_get_name_recurse): Include the generic arguments for
16021         generic instances and generic type declarations.
16022         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
16023         (_mono_class_get_instantiation_name): Removed.
16024         (mono_class_create_generic): Always use `gklass->name' as our name.
16025
16026         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
16027
16028         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
16029         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
16030         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
16031         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
16032         closed generic methods here.
16033
16034         * reflection.c
16035         (mono_reflection_generic_inst_get_nested_types): Removed.
16036         (inflate_mono_method): Copy the generic parameters from the
16037         MonoMethodHeader into out MonoGenericMethod.
16038
16039 2004-04-06  Martin Baulig  <martin@ximian.com>
16040
16041         * row-indexes.h
16042         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
16043
16044         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
16045
16046         * reflection.c (build_compressed_metadata): If we have any entries
16047         in the GenericParam, MethodSpec or GenericParamConstraint tables,
16048         set the header version to 1.1.
16049
16050 2004-04-06  Martin Baulig  <martin@ximian.com>
16051
16052         * class.c (mono_class_init): If we're a generic instance,
16053         initialize our nested classes, too.
16054         (_mono_class_get_instantiation_name): Deal with the new `!%d'
16055         suffix. 
16056
16057 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16058
16059         * process.c: quote the argument passed to the shell on windows.
16060
16061 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
16062
16063         * threads.c (mono_alloc_special_static_data): Allow this to be
16064         called during startup.
16065
16066 2004-04-02  Martin Baulig  <martin@ximian.com>
16067
16068         * icall.c
16069         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
16070
16071 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
16072
16073         * icall.c: Fix build.
16074
16075 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
16076
16077         * Makefile.am: Added security.c|h.
16078         * icall.c: Added icall for get_UserName;
16079         * security.c: New file for security related icalls. Added function
16080         get_UserName for System.Environment (fix #56144).
16081         * security.h: New. Header file for security.c
16082
16083 2004-04-02  Dick Porter  <dick@ximian.com>
16084
16085         * icall.c: Deleted the icalls that were obsoleted some time ago
16086         by the ICU string code, and which were mixed into the icall
16087         rearranging.  Fixes bug 55969.
16088
16089         * string-icalls.h: 
16090         * string-icalls.c: Deleted the code that those icalls reference.
16091
16092 2004-04-01  Martin Baulig  <martin@ximian.com>
16093
16094         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
16095
16096         * class.c (mono_class_from_generic_parameter): Don't set 
16097         TYPE_ATTRIBUTE_INTERFACE.
16098         (my_mono_class_from_generic_parameter): Likewise.
16099
16100 2004-04-01  Martin Baulig  <martin@ximian.com>
16101
16102         * loader.c (find_method): Added an optional `MonoClass *ic'
16103         argument to search in a specific interface.
16104         (mono_get_method_constrained): New public function.
16105
16106 2004-04-01  Martin Baulig  <martin@ximian.com>
16107
16108         * reflection.c (mono_image_get_generic_field_token): Use the
16109         `handleref' cache here.
16110
16111 2004-04-01  Martin Baulig  <martin@ximian.com>
16112
16113         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
16114
16115         * reflection.c (create_generic_typespec): Use the `typespec' hash
16116         here, not the `typeref' one.    
16117
16118 2004-04-01  Martin Baulig  <martin@ximian.com>
16119
16120         * class.c (mono_class_inflate_generic_type): Moved the
16121         functionality into a new static inflate_generic_type() which
16122         returns NULL if it didn't do anything.  Only increment the
16123         `mono_stats.inflated_type_count' if we actually inflated
16124         something.
16125         (mono_class_get_full): Check the classes type to see whether we
16126         need to inflate it; also inflate MONO_TYPE_(M)VAR.
16127
16128 2004-04-01  Jackson Harper  <jackson@ximian.com>
16129
16130         * reflection.c: Set culture for assembly references.
16131         
16132 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
16133
16134         * reflection.[ch], icall.[ch], Fix support for pinning variables.
16135
16136 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16137
16138         * assembly.c:
16139         (do_mono_assembly_open): the critical section also covers
16140         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
16141
16142 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16143
16144         * threads.c:
16145         (mono_manage_threads): abort the background threads when finishing.
16146         Fixes bug #47232.
16147
16148 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16149
16150         * gc.c: only close the done_event handle if there was no timeout.
16151         C-ified comments.
16152
16153 2004-03-30  Martin Baulig  <martin@ximian.com>
16154
16155         * icall.c (icall_entries): It's called "System.Activator", not
16156         "System.Activation".    
16157
16158 2004-03-30  Martin Baulig  <martin@ximian.com>
16159
16160         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
16161         (mono_class_create_from_typespec): Likewise.
16162
16163 2004-03-30  Martin Baulig  <martin@ximian.com>
16164
16165         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
16166         `has_ctor_constraint' and `initialized'.
16167
16168 2004-03-30  Martin Baulig  <martin@ximian.com>
16169
16170         * reflection.c (encode_new_constraint): New static function to add
16171         the constructor constraint attribute to a type parameter.
16172         (encode_constraints): Call encode_new_constraint() if necessary.
16173
16174         * reflection.h
16175         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
16176
16177         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
16178         
16179 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
16180
16181         * reflection.c, icall.c: add support for pinning variables. 
16182
16183 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
16184
16185         * marshal.c (mono_marshal_get_managed_wrapper):
16186         init bool local with zero rather than null.
16187
16188 2004-03-29  Martin Baulig  <martin@ximian.com>
16189
16190         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
16191         the "official" behavior here.
16192         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
16193
16194 2004-03-29  Martin Baulig  <martin@ximian.com>
16195
16196         * icall.c: Reflect latest API changes.
16197
16198 2004-03-29  Martin Baulig  <martin@ximian.com>
16199
16200         * loader.c (mono_get_method_from_token): Also call
16201         mono_metadata_load_generic_params () for abstract and interface
16202         methods; replace the type arguments in the method signature with
16203         the ones which are loaded from the metadata.
16204
16205 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
16206
16207         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
16208         of the lock is not the current thread. MS.NET don't do it, in spite of
16209         what the documentation says. See bug #56157.
16210
16211 2004-03-28  Martin Baulig  <martin@ximian.com>
16212
16213         * class.c (mono_class_init): Don't call init_properties() and
16214         init_events() for generic instances; set `prop->parent' when
16215         inflating properties.
16216
16217         * reflection.c (mono_generic_inst_get_object): Call
16218         `mono_class_init (ginst->klass)'.
16219         (mono_type_get_object): Only create a MonoGenericInst if your
16220         generic type is a TypeBuilder.
16221         (do_mono_reflection_bind_generic_parameters): Only set
16222         `ginst->is_dynamic' if our generic type is a TypeBuilder.
16223
16224 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
16225
16226         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
16227         Fixes #56091.
16228
16229 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16230
16231         * icall.c: added Kill_internal icall.
16232         * process.[ch]: added Kill_internal icall.
16233
16234 2004-03-25  Martin Baulig  <martin@ximian.com>
16235
16236         * class.h (MonoStats): Added `generic_instance_count',
16237         `inflated_method_count', `inflated_type_count' and
16238         `generics_metadata_size'.       
16239
16240 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16241
16242         * reflection.c: no warnings now.
16243
16244 2004-03-25  Martin Baulig  <martin@ximian.com>
16245
16246         * class.c (mono_class_get_full): New public function; does a
16247         mono_class_get(), but also takes a `MonoGenericContext *'.
16248
16249         * loader.c (mono_field_from_memberref): Renamed to
16250         `field_from_memberref', made static and added `MonoGenericContext *'
16251         argument.
16252         (mono_field_from_token): Added `MonoGenericInst *' argument.
16253         (method_from_memberef): Likewise.
16254         (mono_get_method_from_token): Likewise.
16255         (mono_get_method_full): New public function; does a
16256         mono_get_method(), but also takes a `MonoGenericContext *'.
16257
16258         * verify.c (mono_method_verify): Get the method's generic context
16259         and pass it to mono_field_from_token(), mono_get_method_full() and
16260         mono_class_get_full().
16261
16262 2004-03-25  Martin Baulig  <martin@ximian.com>
16263
16264         * class.c (mono_class_inflate_generic_type): Take a
16265         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
16266         `MonoGenericMethod *'.
16267
16268 2004-03-25  Martin Baulig  <martin@ximian.com>
16269
16270         * loader.h (MonoMethodInflated): Store the MonoGenericContext
16271         instead of the MonoGenericMethod here.
16272
16273 2004-03-25  Martin Baulig  <martin@ximian.com>
16274
16275         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
16276         each time we create a new MonoGenericInst, we also create a new
16277         context which points back to us.
16278
16279         * class.c (inflate_method): Use `ginst->context' instead of
16280         creating a new context.
16281
16282         * loader.c (method_from_memberref): Use
16283         `klass->generic_inst->context' instead of creating a new context.
16284
16285 2004-03-25  Martin Baulig  <martin@ximian.com>
16286
16287         * class.h (MonoGenericContext): New struct.
16288         (MonoGenericMethod): Removed `generic_inst'.
16289
16290         * class.c (mono_class_inflate_generic_method): Take a
16291         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
16292
16293 2004-03-25  Martin Baulig  <martin@ximian.com>
16294
16295         * loader.h (MonoMethodInflated): New typedef.
16296
16297         * metadata.h (MonoMethodSignature): Removed `gen_method', make
16298         `generic_param_count' consume just 30 bits, added `is_inflated'
16299         and `has_type_parameters' flags (one bit each).
16300
16301         * class.c (mono_class_inflate_generic_method): Create a
16302         MonoMethodInflated instead of a MonoMethodNormal and set
16303         `is_inflated' in the method signature.
16304
16305         * class.h (MonoGenericMethod): Removed `generic_method'.
16306
16307 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
16308
16309         * image.c: Make sure the name of a MonoImage is always an absolute path.
16310           This fixes bug #54415.
16311
16312 2004-03-24  Martin Baulig  <martin@ximian.com>
16313
16314         * class.c (mono_class_setup_vtable): If we're a generic instance,
16315         use our generic type's vtable size.
16316
16317 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
16318
16319         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
16320         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
16321         problems.
16322
16323 2004-03-23  Martin Baulig  <martin@ximian.com>
16324
16325         * class.h (MonoDynamicGenericInst): Added `int count_events' and
16326         `MonoEvent *events'.
16327
16328         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
16329         (typebuilder_icalls): Added "get_event_info"; calls
16330         mono_reflection_event_builder_get_event_info(). 
16331
16332         * reflection.c (mono_reflection_generic_inst_initialize): Added
16333         `MonoArray *events'.
16334         (mono_reflection_event_builder_get_event_info): New function.
16335
16336 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
16337
16338         * object.h: add mono_type_initialization_init
16339
16340         * object.c (mono_runtime_class_init): 
16341         implement class constructor synchronization rules
16342         to cope with threading issues.  
16343         add mono_type_initialization_init
16344
16345         * appdomain.c (mono_runtime_init): call 
16346         mono_type_initialization_init
16347
16348         * class.h: removing initializing field from MonoVTable
16349
16350 2004-03-23  Martin Baulig  <martin@ximian.com>
16351
16352         * class.c (my_mono_class_from_generic_parameter): Use
16353         `param->name' if it's not NULL. 
16354
16355 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
16356
16357         * class.c: do not insert non-virtual methods in the vtable.
16358         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
16359         that means the method is non-virtual. This never would have
16360         happened before.
16361
16362 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
16363
16364         * profiler.c: Added lock for accessing coverage_hash.
16365
16366 2004-03-22  Martin Baulig  <martin@ximian.com>
16367
16368         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
16369         `method->method->signature->generic_param_count != 0' to make it
16370         work for interface methods.
16371
16372 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16373
16374         * process.c: quote the string passed to the shell using g_shell_quote.
16375
16376 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16377
16378         * threads.c:
16379         (mono_threads_manage): don't remove the finalizer thread and self
16380         from the threads hash table so that mono_thread_manage can be called
16381         more than once.
16382
16383 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16384
16385         * process.c: quote the arguments when UseShellExecute is true. Fixes
16386         bug #55790.
16387
16388 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16389
16390         * threads.c: set mono_thread_detach as a cleanup routine for every
16391         thread. This way it's always executed upon thread termination, either
16392         aborted or finished normally. No more xsp hangs!
16393
16394 2004-03-17  Martin Baulig  <martin@ximian.com>
16395
16396         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
16397         `int count_nested' and a `MonoType **nested'.
16398
16399         * reflection.c (mono_reflection_bind_generic_parameters): Moved
16400         most of the functionality into a new static
16401         do_mono_reflection_bind_generic_parameters() and don't take a
16402         `MonoType *nested_in' argument any more.  Don't compute nested
16403         types here.
16404         (mono_reflection_generic_inst_get_nested_types): New public method
16405         to get nested types.
16406
16407         * class.c (mono_class_create_generic): Set `klass->nested_in' if
16408         we're a nested class.
16409
16410         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
16411         mono_reflection_generic_inst_get_nested_types() to compute the
16412         nested types.
16413
16414 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
16415
16416         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
16417         descriptive error message under windows.
16418         
16419 2004-03-17  Martin Baulig  <martin@ximian.com>
16420
16421         * class.c (dup_type): Added `const MonoType *original' argument;
16422         copy the attrs from the original type.
16423
16424 2004-03-17  Martin Baulig  <martin@ximian.com>
16425
16426         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
16427         `m->generic_inst_cache' here.
16428
16429 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
16430
16431         * exception.h exception.c: Add stack_overflow_exception.
16432
16433 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16434
16435         * threadpool.c:
16436         (overlapped_callback): call SetEvent *after* invoking the callback.
16437         No need to call CloseHandle.
16438
16439 2004-03-16  Martin Baulig  <martin@ximian.com>
16440
16441         * reflection.c (mono_image_get_fieldref_token): Take a
16442         `MonoReflectionField *' instead of a `MonoClassField *' and a
16443         `MonoClass *'; store the `MonoReflectionField *' in the hash.
16444
16445 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16446
16447         * appdomain.c: don't add the culture to the filename we're looking for
16448         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
16449
16450 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16451
16452         * locales.c: don't ignore symbols when doing case insensitive compares.
16453         Thanks Dick! Fixes bug #54046.
16454
16455         * threads.c: surround 'threads' usage with enter/leave in
16456         mono_thread_manage.
16457
16458 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
16459
16460         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
16461         implicitly marshalled as [Out]. Fixes #55450.
16462
16463         (mono_marshal_get_runtime_invoke): Zero out the result if there is
16464         an exception.
16465
16466 2004-03-16  Martin Baulig  <martin@ximian.com>
16467
16468         * class.c (mono_class_from_generic_parameter): Use the actual
16469         parameter name. 
16470
16471 2004-03-16  Martin Baulig  <martin@ximian.com>
16472
16473         * reflection.c (type_get_signature_size): New static function.
16474         Compues the size of the type in a method signature.
16475         (method_get_signature_size): New static function; calls
16476         type_get_signature_size() to compute the actual size of the
16477         method's signature.
16478         (method_encode_signature): Use method_get_signature_size() to get
16479         the signature's size rather than using `nparams * 10'.
16480
16481 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16482
16483         * file-io.h: define here WapiOverlapped on windows. I don't want the
16484         regular OVERLAPPED one.
16485
16486         * file-io.c:
16487         * threadpool.c: somehow, BindIoCompletionCallback is not found.
16488         Disabling AIO on windows.
16489
16490 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16491
16492         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
16493         bug #55385.
16494
16495 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16496
16497         * appdomain.c: upgraded corlib version.
16498
16499         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
16500         and BeginWrite. Allow opening files for asynchrnous operations.
16501
16502         * file-io.h: new struct that maps FileStreamAsyncResult.
16503         * icall.c: added new icalls.
16504         * process.[ch]: support setting child process environment variables
16505         and use the SHELL or COMSPEC when UseShellExecute is true.
16506
16507         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
16508         callback for async. IO is here and also BindHandle.
16509
16510         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
16511         from here.
16512
16513 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
16514
16515         * reflection.c (create_custom_attr): Allow len == 0.
16516
16517         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
16518         computation on big-endian machines.
16519
16520 2004-03-13  Martin Baulig  <martin@ximian.com>
16521
16522         * class.h (MonoGenericInst): Added `int count_ifaces'.
16523
16524         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
16525         `ginst->count_ifaces' instead `klass->interface_count' since we
16526         may get called before the vtable is created.
16527
16528         * loader.c (mono_method_get_param_names): If we're a generic
16529         instance, return and don't initialize the class.
16530
16531         * reflection.c (mono_reflection_setup_generic_class): Don't call
16532         ensure_runtime_vtable().
16533         (mono_reflection_bind_generic_parameters): Set
16534         `ginst->count_ifaces'.
16535
16536 2004-03-11  Jackson Harper <jackson@ximian.com>
16537
16538         * icall.c:
16539         * unicode.c:
16540         * unicode.h: Remove unused System.Char icalls.
16541         
16542 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
16543
16544         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
16545         code when we P/Invoke the first library in Windows.Forms, instead
16546         of when we first open the assembly.
16547
16548         * assembly.c: Drop the lookup from here.
16549
16550 2004-03-10  Martin Baulig  <martin@ximian.com>
16551
16552         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
16553         class for properties, fields and events.  Finally fixes #54945.
16554
16555 2004-03-10  Martin Baulig  <martin@ximian.com>
16556
16557         * metadata.c (mono_metadata_class_equal): New static function;
16558         checks whether two generic instances or two generic parameters are
16559         equal.
16560         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
16561         compare classes.        
16562
16563 2004-03-10  Martin Baulig  <martin@ximian.com>
16564
16565         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
16566
16567         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
16568         argument and write it into the `reflection_info' field.
16569
16570         * icall.c
16571         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
16572         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
16573
16574 2004-03-09  Jackson Harper  <jackson@ximian.com>
16575
16576         * char-conversions.h: use 8 bits for numeric data its all we need
16577         * icall.c: numeric data is only 8 bits now.
16578
16579 2004-03-09  Martin Baulig  <martin@ximian.com>
16580
16581         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
16582
16583         * class.c (init_properties, init_events): Initialize the new
16584         `parent' field.
16585
16586         * reflection.c (typebuilder_setup_properties): Likewise.
16587         (typebuilder_setup_events): Likewise.
16588
16589         * reflection.h (MonoEventInfo): Replaced `parent with
16590         `declaring_type' and `reflected_type'.
16591
16592         * icall.c (ves_icall_get_property_info): Distinguish between
16593         declaring and reflected type.
16594         (ves_icall_get_event_info): Likewise.
16595
16596 2004-03-09  Martin Baulig  <martin@ximian.com>
16597
16598         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
16599         (ves_icall_Type_GetField): Correctly set field->klass.
16600
16601 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
16602
16603         * loader.h: Fix warning.
16604
16605 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
16606
16607         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
16608         library routine if present.  Notice that it will still continue
16609         executing even if its missing, for those working on the Gtk#
16610         edition of Windows.Forms.
16611
16612         * assembly.c (do_mono_assembly_open): If loading the
16613         System.Windows.Forms call mono_loader_wini_init.
16614
16615 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
16616
16617         * class.h: Added MonoRemoteClass struct.
16618         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
16619         function for MonoStrings.
16620         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
16621         Added internal call for getting the proxy type.
16622         * marshal.c: Get the type of transparent proxies from its remote_class.
16623         Added methods that generate the IL for type checks and casts:
16624         mono_marshal_get_isinst, mono_marshal_get_castclass, 
16625         mono_marshal_get_proxy_cancast.
16626         * marshal.h: Declaration of the previous new methods.
16627         * object.c: Added new moethods for creating and updating MonoRemoteClass
16628         instances: mono_remote_class, mono_upgrade_remote_class, 
16629         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
16630         * verify.c: FIx transparent_proxy_fields layout.
16631         * appdomain.c: Bump corlib version.
16632
16633 2004-03-04  Jackson Harper  <jackson@ximian.com>
16634
16635         * icall.c: Add icall to access char conversion tables.
16636         * char-conversions.h: Character conversion tables.
16637         * Makefile.am: Add char-conversions.h private header file.
16638         
16639 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
16640
16641         * appdomain.c (unload_thread_main): Increase unloading timeout to
16642         10 sec as a temporary workaround for Nant problems.
16643
16644 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
16645
16646         * gc.c: Add checks for GC_enable and GC_disable.
16647
16648         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
16649         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
16650         (bug #54988).
16651         
16652 2004-02-27  Martin Baulig  <martin@ximian.com>
16653
16654         * reflection.c (mono_reflection_bind_generic_parameters): Take a
16655         `MonoReflectionType *' instead of a `MonoType *'.
16656
16657 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
16658
16659         * gc.c (run_finalize): Avoid finalizing the object representing the
16660         finalizer thread.
16661         (finalizer_thread): Fix warning.
16662
16663 2004-02-25  Martin Baulig  <martin@ximian.com>
16664
16665         * class.c (_mono_class_get_instantiation_name): Added `int offset'
16666         argument for nested types.
16667         (mono_class_create_generic): Added support for nested generictypes.
16668
16669         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
16670         `GList *nested'.
16671
16672         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
16673
16674         * reflection.c (method_encode_signature): Increase the minimum
16675         value of `size' from 10 to 11.
16676         (mono_reflection_bind_generic_parameters): Take `int type_argc'
16677         and `MonoType **types' arguments instead of the `MonoArray
16678         *types'; added `MonoType *nested_in'.  Recursively instantiate
16679         nested classes. 
16680
16681 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
16682
16683         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
16684         stack_overflow_ex members which are used by exception handling.
16685
16686         * appdomain.c (mono_runtime_init): Initialize the new members.
16687
16688         * gc.c (mono_gc_enable): New helper function.
16689         * gc.c (mono_gc_disable): New helper function.
16690
16691 2004-02-23  Martin Baulig  <martin@ximian.com>
16692
16693         * icall.c: I must have been really stupid - make it actually work
16694         this time ;-)
16695
16696 2004-02-23  Martin Baulig  <martin@ximian.com>
16697
16698         * loader.c (method_from_memberref): Only inflate the method if
16699         it's in another klass.
16700
16701 2004-02-23  Martin Baulig  <martin@ximian.com>
16702
16703         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
16704         (mono_class_init): If we're a generic instance and an interface,
16705         compute `class->interface_id'; also create `class->interfaces'
16706         here and inflate them.
16707
16708         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
16709         `ginst->is_open'.
16710         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
16711
16712         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
16713
16714 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
16715
16716         * reflection.c (method_encode_code): Improved the error message
16717         generated by the exception.
16718
16719 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16720
16721         * icall.c: Martin did not do what he said in the ChangeLog for
16722         2004-02-18, but put back the changes for properties and events.
16723         Commenting those changes out again and adding comment to bug #54518.
16724         
16725         * process.c: removed warning.
16726
16727 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
16728
16729         * marshal.c (emit_struct_conv): Print an error message instead of
16730         asserting when a type does not have the StructLayout attribute.
16731
16732 2004-02-20  Martin Baulig  <martin@ximian.com>
16733
16734         * reflection.c (mono_type_get_object): Also use the cache for
16735         generic instances.
16736         (mono_reflection_bind_generic_parameters): Always compute
16737         `ginst->ifaces'.        
16738
16739 2004-02-20  Martin Baulig  <martin@ximian.com>
16740
16741         * class.h (MonoGenericMethod): Removed `klass'.
16742
16743         * class.c (mono_class_inflate_generic_method): Added `MonoClass
16744         *klass' argument.
16745
16746 2004-02-20  Martin Baulig  <martin@ximian.com>
16747
16748         * reflection.c (method_encode_methodspec): Actually use the
16749         uninflated signature for the memberref.
16750
16751 2004-02-20  Martin Baulig  <martin@ximian.com>
16752
16753         * class.h (MonoGenericMethod): Removed `declaring'.
16754
16755         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
16756         is NULL, compute it here.
16757
16758 2004-02-20  Martin Baulig  <martin@ximian.com>
16759
16760         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
16761
16762         * metadata.c (mono_metadata_generic_inst_hash): New method.
16763         (mono_metadata_generic_inst_equal): New method.
16764
16765         * reflection.c (mono_reflection_bind_generic_parameters): Use the
16766         `klass->image->generic_inst_cache' cache to avoid creating
16767         duplicate MonoGenericInst's.
16768
16769         * class.c (mono_class_inflate_generic_type): Use the cache.
16770
16771 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
16772
16773         * object.c: fixed gc descriptor calculation for embedded valuetypes.
16774
16775 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16776
16777         * icall.c: added Socket.WSAIoctl icall.
16778
16779         * socket-io.[ch]: implemented
16780         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
16781
16782 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
16783
16784         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
16785
16786 2004-02-18  Urs C Muff  <umuff@quark.com>
16787
16788         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
16789         this work on PPC and other big-endian architectures.
16790
16791         * debug-mono-symfile.h: Prepended the names of all the `guint32'
16792         fields with an underscore to make sure they're only accessed by
16793         the read32() macro.
16794
16795 2004-02-18  Martin Baulig  <martin@ximian.com>
16796
16797         * icall.c: Put the klass->refclass changes back for methods and
16798         fields, but not for properties and events.  We're currently not
16799         distinguishing between DeclaringType and ReflectedType for
16800         properties and events, that's what caused the regressions.
16801
16802 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16803
16804         * object.c:
16805         (mono_async_result_new): the handle can be NULL.
16806
16807         * threadpool.c: Use an event instead of a semaphore, don't initialize
16808         it until needed. This saves quite a few semaphores from being created
16809         when using the threadpool.
16810
16811 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
16812
16813         * object.c (mono_string_is_interned_lookup): Fix interning of long
16814         strings. Fixes #54473.
16815
16816         * domain.c (ldstr_equal): Optimize if the two strings are equal.
16817
16818         * icall.c: Revert the klass->refclass changes since they introduce
16819         regressions (bug #54518).
16820
16821 2004-02-18  Martin Baulig  <martin@ximian.com>
16822
16823         * class.c (mono_class_init): If we're a generic instance and don't
16824         come from a TypeBuilder, inflate our members here.
16825         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
16826         (mono_class_create_generic): New public method.
16827         (mono_class_initialize_generic): Removed.
16828         (get_instantiation_name): Renamed to
16829         _mono_class_get_instantiation_name() and made it public.
16830
16831 2004-02-18  Martin Baulig  <martin@ximian.com>
16832
16833         * class.c (mono_class_inflate_generic_type): Clear the new
16834         instance's `nginst->klass' when inflating a generic instance.
16835         (mono_class_is_subclass_of): Added (basic) support for generic
16836         instances.
16837
16838 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
16839
16840         * appdomain.h, domain.c: use a MonoCodeManager instead of a
16841         MonoMempool to hold compiled native code.
16842
16843 2004-02-17  Martin Baulig  <martin@ximian.com>
16844
16845         * class.h (MonoDynamicGenericInst): Added `count_properties' and
16846         `properties'.
16847
16848         * reflection.c (mono_reflection_generic_inst_initialize): Added
16849         `MonoArray *properties' argument.
16850
16851         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
16852
16853 2004-02-17  Martin Baulig  <martin@ximian.com>
16854
16855         * icall.c (ves_icall_Type_GetFields): Renamed to
16856         ves_icall_Type_GetFields_internal() and added a
16857         `MonoReflectionType *rtype' argument; pass it to
16858         mono_field_get_object() to set the field's "reflected" type.
16859         (ves_icall_Type_GetConstructors): Likewise.
16860         (ves_icall_Type_GetEvents): Likewise.
16861         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
16862         argument; pass it to mono_method_get_object() to set the method's
16863         "reflected" type.       
16864
16865 2004-02-17  Martin Baulig  <martin@ximian.com>
16866
16867         * class.h (MonoDynamicGenericInst): New type.
16868         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
16869
16870         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
16871         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
16872         (ves_icall_MonoGenericInst_GetFields): New interncall.
16873
16874         * class.c (mono_class_from_generic): Don't call
16875         mono_class_initialize_generic() if this is a dynamic instance;
16876         ie. it's being created from a TypeBuilder.
16877         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
16878         `class->byval_arg.type'.
16879
16880         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
16881         to `inflate_method' and made static.
16882         (mono_reflection_inflate_field): Removed.
16883         (mono_reflection_generic_inst_initialize): New public method.
16884
16885         * reflection.h (MonoReflectionGenericInst): Removed `methods',
16886         `ctors' and `fields'; added `initialized'.
16887
16888 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
16889
16890         * debug-helpers.c (mono_method_full_name): Fix output for empty
16891         namespaces.
16892
16893 2004-02-12  Martin Baulig  <martin@ximian.com>
16894
16895         * class.h (MonoClassField): Added `MonoType *generic_type'.
16896
16897         * reflection.c (mono_image_get_fieldref_token): Added support for
16898         instantiated generic types.
16899         (field_encode_inflated_field): Removed.
16900         (mono_image_get_inflated_field_token): Removed.
16901         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
16902
16903         * reflection.h (MonoReflectionInflatedField): Removed.
16904
16905 2004-02-12  Martin Baulig  <martin@ximian.com>
16906
16907         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
16908         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
16909
16910         * reflection.c (mono_image_get_methodspec_token): Take a
16911         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
16912         (mono_image_create_token): Check whether we have a
16913         `method->signature->gen_method' and call
16914         mono_image_get_methodspec_token() if appropriate.
16915         (inflated_method_get_object): Removed.
16916         (mono_reflection_bind_generic_method_parameters): Return a
16917         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
16918         (mono_reflection_inflate_method_or_ctor): Likewise.
16919
16920         * reflection.h (MonoReflectionInflatedMethod): Removed.
16921
16922 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
16923
16924         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
16925         for custom valuetype marshalling.
16926
16927         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
16928
16929 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16930
16931         * icall.c: fixed WSAGetLastError_internal name.
16932
16933 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
16934
16935         * threads.c (mono_thread_attach): Allow this to be called multiple
16936         times for a thread.
16937         
16938         * threads.c (build_wait_tids): Do not wait for ourselves.
16939
16940         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
16941         appdomain list is empty.
16942
16943         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
16944         memory returned by mono_string_builder_to_utf16, since it points into
16945         managed memory. Thanks to Bernie Solomon for noticing this.
16946
16947         * icall.c: Add AppDomainSetup icalls.
16948
16949         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
16950
16951         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
16952         types.
16953
16954         * reflection.c (reflection_methodbuilder_to_mono_method): Save
16955         custom attributes to the method_aux struct. Also fix array indexes etc.
16956
16957         * loader.c (mono_method_get_param_names): Make dynamic case work again.
16958         
16959 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
16960
16961         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
16962         (both static and runtime) and reduce startup time.
16963
16964 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
16965
16966         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
16967         AsAny marshalling conversion instead of crashing.
16968
16969         * marshal.c: Fix warnings.
16970
16971 2004-02-09  Martin Baulig  <martin@ximian.com>
16972
16973         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
16974
16975         * reflection.h (MonoReflectionInflatedMethod): Removed the
16976         `declaring' field, it's now in the unmanaged MonoGenericMethod.
16977
16978         * reflection.c (method_encode_methodspec): Removed the `method'
16979         argument; we get it from `gmethod->declaring'.
16980         (inflated_method_get_object): Removed the `declaring' argument.
16981
16982 2004-02-09  Martin Baulig  <martin@ximian.com>
16983
16984         * class.h (MonoGenericMethod): New type.
16985         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
16986         `generic_method'.
16987
16988         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
16989         a `MonoGenericMethod *gen_method' one.
16990
16991         * class.c (mono_class_inflate_generic_type): Take an additional
16992         `MonoGenericMethod * argument.  This is only non-NULL if we're
16993         inflating types for a generic method.   
16994         (mono_class_inflate_generic_signature): Renamed to
16995         inflate_generic_signature() and made static; take a
16996         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
16997         (inflate_generic_header): Take a `MonoGenericMethod *' argument
16998         instead of a `MonoGenericInst *' one.
16999         (mono_class_inflate_generic_method): Likewise.
17000
17001         * reflection.c (encode_generic_method_sig): Take a
17002         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
17003         (method_encode_methodspec): Likewise.
17004         (inflated_method_get_object): Likewise. 
17005
17006         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
17007         field with a `MonoGenericMethod *gmethod' one.  
17008
17009 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
17010
17011         * class.h (mono_class_has_parent): add parens to expansion
17012         so you can ! this.
17013
17014 2004-02-08  Martin Baulig  <martin@ximian.com>
17015
17016         * image.h (MonoImage): Removed `generics_cache'.
17017
17018         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
17019         instead of a `MonoType *' argument; removed the `inflate_methods'
17020         argument.  Don't inflate methods here.
17021
17022         * loader.c (find_method): If it's a generic instance, call
17023         mono_class_init() on the `sclass->generic_inst->generic_type'.
17024
17025         * metadata.c (mono_type_size): Make this work on uninitialized
17026         generic instances; call it on the `ginst->generic_type's class.
17027
17028         * reflection.c (mono_reflection_bind_generic_parameters): Call
17029         mono_class_from_generic() to create the `ginst->klass'.
17030
17031 2004-02-08  Martin Baulig  <martin@ximian.com>
17032
17033         * class.h (MonoClass): Changed type of `generic_inst' from
17034         `MonoType *' to `MonoGenericInst *'.
17035
17036 2004-02-08  Martin Baulig  <martin@ximian.com>
17037
17038         * icall.c (ves_icall_Type_BindGenericParameters): Just call
17039         mono_type_get_object(), this is now creating a `MonoGenericInst'
17040         for MONO_TYPE_GENERICINST.
17041         (ves_icall_MonoGenericInst_GetParentType): Likewise.
17042         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
17043
17044         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
17045         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
17046         (inflated_method_get_object): Added `MonoClass *refclass' argument.
17047         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
17048         and reflected type.
17049
17050         * reflection.h (MonoReflectionInflatedMethod): Removed
17051         `declaring_type' and `reflected_type'.
17052
17053 2004-02-08  Martin Baulig  <martin@ximian.com>
17054
17055         * class.h (MonoGenericInst): Added `MonoType *parent' and
17056         `MonoType **ifaces'.
17057
17058         * reflection.h (MonoReflectionGenericInst): Removed `klass',
17059         `parent' and `interfaces'.
17060
17061         * reflection.c (mono_reflection_bind_generic_parameters): Take a
17062         `MonoType *' argument and return a `MonoType *'.
17063
17064         * icall.c
17065         (ves_icall_MonoGenericInst_GetParentType): New interncall.
17066         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
17067
17068 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
17069
17070         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
17071         valuetype marshalling.
17072
17073 2004-02-06  Martin Baulig  <martin@ximian.com>
17074
17075         * class.c
17076         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
17077         (my_mono_class_from_generic_parameter): Likewise.
17078
17079 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
17080
17081         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
17082         contents of the symbol files lazily.
17083
17084         * object.h (MonoThread): Add 'name' and 'name_len' fields.
17085
17086         * threads.h threads.c icall.c: New icalls for getting and setting the
17087         threads name.
17088
17089 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
17090
17091         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
17092         Raise an exception when the domain is not found.
17093
17094 2004-02-03  Martin Baulig  <martin@ximian.com>
17095
17096         * reflection.c (mono_image_get_methodspec_token): Use the
17097         uninflated signature; fixes gen-33.
17098
17099 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
17100
17101         * gc.c threads.c: Make the finalizer thread a normal managed thread so
17102         the finalizer code can use thread functionality.
17103
17104         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
17105         the finalizer thread.
17106
17107         * threads.c: Make some functions more robust.
17108
17109         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
17110
17111         * metadata.h: Add new marshalling conventions.
17112
17113         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
17114         stringbuilder marshalling. Fixes #53700.
17115
17116         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
17117
17118         * reflection.c (mono_image_get_type_info): Save declarative security
17119         info.
17120
17121         * reflection.c (mono_image_get_field_info): Handle uninitialized 
17122         unmanaged fields as well.
17123
17124         * appdomain.c: Bump corlib version.
17125
17126 2004-02-01  Martin Baulig  <martin@ximian.com>
17127
17128         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
17129         method type arguments.  
17130
17131 2004-01-30  Duncan Mak  <duncan@ximian.com>
17132
17133         * marshal.h: Add prototype for
17134         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
17135         and
17136         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
17137         fix the build.
17138
17139 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
17140
17141         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
17142         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
17143
17144 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
17145
17146         * marshal.c (mono_marshal_get_native_wrapper): Add support for
17147         custom marshalling of valuetypes.
17148
17149         * marshal.c: Fix some warnings.
17150
17151 2004-01-29  Martin Baulig  <martin@ximian.com>
17152
17153         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
17154         for generic method parameters.
17155
17156         * reflection.c (method_encode_methodspec): Write the uninflated
17157         signature into the methodspec table.
17158         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
17159         is always the uninflated method.
17160         (reflection_methodbuilder_to_mono_method): Copy the generic
17161         parameters from the MethodBuilder into `header->gen_params'.
17162
17163 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
17164
17165         * class.c (mono_class_from_generic_parameter): Fix warning.
17166
17167 2004-01-27  Martin Baulig  <martin@ximian.com>
17168
17169         * class.c (mono_class_from_generic_parameter): Don't create
17170         `klass->methods' here.  
17171
17172 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
17173
17174         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
17175         extension since it does not work with libraries named lib<FOO>.dll.so.
17176
17177 2004-01-25  Martin Baulig  <martin@ximian.com>
17178
17179         * class.c (mono_class_inflate_generic_type): Added support for
17180         MONO_TYPE_GENERICINST.
17181
17182         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
17183         inflate methods on open constructed types.      
17184
17185 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17186
17187         * object.c: fire ProcessExit event in the root AppDomain after running
17188         Main. Fixes bug #53299.
17189
17190 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
17191
17192         * socket-io.c: include the new socket-wrappers.h header.
17193         Use the wrappers instead of the unix socket functions to make the code
17194         more clear.
17195
17196 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
17197
17198         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
17199
17200         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
17201         Fixes #22532.
17202
17203 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
17204
17205         * reflection.c (mono_image_create_pefile): Handle the case when the
17206         entry point is not a MethodBuilder.
17207
17208         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
17209         field to ReflectionMethod since it is not allways a builder.
17210
17211         * reflection.c (type_get_fully_qualified_name): New helper function to
17212         return the fully qualified name of a type.
17213
17214         * reflection.c (encode_marshal_blob): Always emit the fully qualified
17215         type name for custom marshallers.
17216
17217         * reflection.c (mono_marshal_spec_from_builder): Ditto.
17218
17219         * class.c (mono_class_setup_vtable): If a parent class already 
17220         implements an interface, use the implementing methods from that class.
17221         Fixes #53148.
17222
17223 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17224
17225         * threadpool.c: just return instead of ExitThread to allow for thread
17226         clean up earlier.
17227
17228 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
17229
17230         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
17231         when closing resource modules.
17232
17233         * reflection.c (mono_image_create_pefile): Handle the case when the
17234         entry point is not a MethodBuilder.
17235
17236         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
17237         field to ReflectionMethod since it is not allways a builder.
17238
17239 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
17240
17241         * marshal.c (mono_marshal_get_managed_wrapper): 
17242         mono_marshal_alloc takes native int so CONV_I
17243         the arg for 64bits.
17244
17245 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
17246
17247         * reflection.c (fixup_cattrs): New function to fixup the methoddef
17248         tokens in the cattr table. Fixes #53108.
17249
17250 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17251
17252         * loader.c: don't trim ".dll" before looking up in the config file.
17253         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
17254
17255 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
17256
17257         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
17258         Return the module which contains the resource as well.
17259         (ves_icall_System_Reflection_Module_Close): New icall.
17260
17261         * appdomain.c: Bump corlib version number.
17262
17263         * image.c (mono_image_addref): New public function.
17264
17265         * assembly.c: Call mono_image_addref.
17266
17267         * reflection.c (mono_module_get_object): Increase reference count of 
17268         the image.
17269
17270         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
17271         Fixes #22532.
17272
17273         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
17274         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
17275         proper exceptions on DllImport problems.
17276
17277 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
17278
17279         * class.c, metadata.c: eliminate CSIZE macro.
17280
17281 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
17282
17283         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
17284         * object.h: Added async_callback field in MonoAsyncResult.
17285         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
17286         * verify.c: Added async_callback in MonoAsyncResult layout.
17287
17288 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
17289
17290         * reflection.c (mono_reflection_get_custom_attrs): Add support
17291         for Modules.
17292
17293 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
17294
17295         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
17296         marshalling.
17297         (mono_marshal_method_from_wrapper): Add null pointer check.
17298
17299 2004-01-16  Martin Baulig  <martin@ximian.com>
17300
17301         * debug-mono-symfile.h: Set version number to 36 and reflect
17302         latest symbol writer changes.
17303
17304 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
17305
17306         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
17307         multi-dimensional arrays.
17308         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
17309         (mono_class_from_mono_type): Use bounded_array_class_get.
17310         
17311         * class.c (mono_bounded_array_class_get): New function which takes
17312         a 'bounded' bool argument to distinguish vectors from one dimensional
17313         arrays.
17314
17315         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
17316         bounded_array_class_get if the array has bounds.
17317
17318         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
17319         Search modules loaded using AssemblyBuilder:AddModule as well.
17320
17321 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17322
17323         * appdomain.c: increased corlib version.
17324         * filewatcher.c: removed g_print.
17325         * icall.c:
17326         (get_property_info): only allocate what is actually requested.
17327         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
17328
17329 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17330
17331         * Makefile.am: added filewatcher.[ch]
17332         * filewatcher.[ch]: FileSystemWatcher runtime support.
17333         * icall.c: added new FSW icalls.
17334
17335 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
17336
17337         * string-icalls.c: fix stringbuilder regression as suggested by
17338         Iain McCoy <iain@mccoy.id.au>.
17339
17340 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
17341
17342         * process.c (process_read_stringtable_block): Recognize '007f' as
17343         a language neutral stringtable block.
17344
17345 2004-01-12  Patrik Torstensson
17346
17347         * object.h (MonoStringBuilder) : Changed layout to support our
17348         new stringbuilder class.
17349         * marshal.c: Change marshalling to support the new layout of 
17350         string builder.
17351         * appdomain.c: increased version number because new layout of
17352         string builder.
17353
17354 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
17355
17356         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
17357         assembly name as an string instead of an AssemblyName, since it is
17358         easier to extract info from it.
17359
17360         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
17361         the culture subdirectories too. Fixes #52231.
17362
17363 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17364
17365         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
17366         It takes 2 new parameters with an optional name for the method to look
17367         for and case ignoring info.
17368
17369         * threadpool.c: removed unused variable.
17370
17371 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17372
17373         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
17374         It takes 2 new parameters with an optional name for the property to look
17375         for and case ignoring info.
17376         Fixes bug #52753.
17377
17378 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
17379
17380         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
17381         Fix #52451.
17382
17383 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17384
17385         * appdomain.c:
17386         * assembly.c: escape the uri before passing it to g_filename_from_uri.
17387         Fixes bug #52630.
17388
17389 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
17390
17391         * reflection.c: Add support for more than one unmanaged resource.
17392
17393         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
17394         in field->def_value, as done in all other cases.
17395
17396         * reflection.c (mono_reflection_get_custom_attrs): Add support for
17397         TypeBuilders.
17398
17399         * reflection.c (mono_reflection_create_runtime_class): Remove 
17400         errorneous assignment to klass->element_class, since it is already
17401         done in mono_reflection_setup_internal_class.
17402
17403 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17404
17405         * gc.c: added missing LeaveCriticalSection.
17406         * icall.c: indented a couple of lines.
17407         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
17408         if we call EndInvoke inside a callback. Fixes bug #52601.
17409
17410 2004-01-07  Martin Baulig  <martin@ximian.com>
17411
17412         * mono-debug-debugger.h
17413         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
17414
17415 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
17416
17417         * appdomain.c: Use messages in NotImplementedException.
17418
17419         * exception.c (mono_get_exception_not_implemented): Now this takes
17420         a message argument.
17421
17422         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
17423         exception instead of g_asserting an aborting when something is not
17424         implemented.
17425
17426         Add some inline docs.
17427
17428 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
17429
17430         * reflection.h: Update after changes to object layout.
17431
17432         * reflection.c: Implement saving of unmanaged aka win32 resources.
17433
17434         * appdomain.c: Bump version number.
17435
17436         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
17437         Handle missing domains gracefully.
17438
17439 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
17440
17441         * file-io.c : On Windows, there are much more invalid_path_chars.
17442
17443 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
17444
17445         * class.h, object.c: prepare for GetType () speedup.
17446
17447 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
17448
17449         * profiler.c: workaround for --profile null reference exception on
17450           cygwin. Patch by Patrik Torstensson.
17451
17452 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
17453
17454         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
17455         make work for unaligned access.
17456
17457 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
17458
17459         * class.c: small cleanup (class->fields [i] -> field).
17460         * image.c: check address of metadata is valid.
17461
17462 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
17463
17464         * assembly.h assembly.c (mono_assembly_loaded): New public function to
17465         search the list of loaded assemblies.
17466
17467         * reflection.c (mono_reflection_type_from_name): Use 
17468         mono_assembly_loaded instead of mono_image_loaded.
17469
17470         * reflection.c: Fix warnings.
17471
17472 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
17473
17474         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
17475         is dynamic. This is needed since an assembly can contain both dynamic and
17476         non-dynamic images.
17477
17478         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
17479         assembly->dynamic.
17480
17481         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
17482
17483         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
17484         to store modules loaded using AddModule.
17485
17486         * reflection.c (mono_image_fill_file_table): Generalize this so it works
17487         on Modules.
17488
17489         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
17490
17491         * reflection.c (mono_image_fill_export_table_from_module): New function to
17492         fill out the EXPORTEDTYPES table from a module.
17493
17494         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
17495         into a separate function. Also handle loaded non-dynamic modules.
17496
17497         * reflection.c (mono_image_basic_init): Fix memory allocation.
17498
17499         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17500
17501         * assembly.c (mono_assembly_load_references): Make this public.
17502
17503 2003-12-19  Martin Baulig  <martin@ximian.com>
17504
17505         * class.c (mono_class_initialize_generic): Made this static, take
17506         a `MonoGenericInst *' instead of a `MonoClass *'.
17507         (mono_class_from_generic): Call mono_class_initialize_generic()
17508         unless we're already initialized or being called from
17509         do_mono_metadata_parse_generic_inst().
17510
17511         * class.h (MonoGenericInst): Added `initialized' and
17512         `init_pending' flags.
17513
17514         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
17515         `mono_class_init (gklass)' or mono_class_initialize_generic()
17516         here; set `generic_inst->init_pending' while parsing the
17517         `type_argv'.
17518
17519 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
17520
17521         * locales.c: include string.h for memxxx prototypes
17522
17523 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
17524
17525         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
17526         constructor when accessing literal fields.
17527
17528 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
17529
17530         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17531
17532         * reflection.c (assembly_add_resource_manifest): New function to fill
17533         the MANIFESTRESOURCE table.
17534
17535         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
17536
17537         * reflection.h: Update to changes in class layout.
17538
17539         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
17540         Reenable call to mono_runtime_is_shutting_down ().
17541
17542         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
17543         determine if the runtime is shutting down.
17544
17545 2003-12-16  Jackson Harper <jackson@ximian.com>
17546
17547         * icall.c: comment out call to mono_runtime_is_shutting_down to
17548         fix build.
17549         
17550 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
17551
17552         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
17553         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
17554
17555 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
17556
17557         * reflection.c: move definition of swap_with_size
17558         to before its first call
17559
17560 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
17561
17562         * appdomain.c (mono_runtime_is_shutting_down): New public function.
17563
17564         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
17565         icall.
17566
17567         * object.c: Fix warnings.
17568
17569         * icall.c (ves_icall_Type_Get...): Only consider inherited static
17570         members if FlattenHierarchy is set.
17571
17572         * reflection.c (mono_image_add_decl_security): New function to emit
17573         declarative security.
17574
17575         * reflection.h reflection.c: Add support for declarative security.
17576
17577         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17578         
17579 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
17580
17581         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
17582         
17583         * appdomain.c verify.c: Moved corlib version checking into its own
17584         function in appdomain.c since it needs to create vtables etc.
17585
17586 2003-12-13  Patrik Torstensson <p@rxc.se>
17587
17588         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
17589         instead of unwrapped server.
17590
17591 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
17592
17593         * verify.c (check_corlib): Fix field index.
17594
17595 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
17596
17597         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
17598         GetGacPath icall.
17599
17600 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
17601
17602         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
17603         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
17604         cope with sizeof(size_t) != sizeof(guint32).
17605
17606 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17607
17608         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
17609         in case of failure.
17610
17611 2003-12-10  Mark Crichton <crichton@gimp.org>
17612
17613         * icall.c: removed the GetNonZeroBytes.  We now handle this case
17614         in managed code.
17615
17616         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
17617
17618 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
17619
17620         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
17621         marked as deleted.
17622
17623 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
17624
17625         * verify.c (check_corlib): Handle the case when the version field is 
17626         initialized by a static constructor.
17627
17628 2003-12-08  Patrik Torstensson  <p@rxc.se>
17629
17630     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
17631
17632 2003-12-08  Martin Baulig  <martin@ximian.com>
17633
17634         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
17635         a MonoReflectionGenericParameter, also take the parameter index
17636         and name as arguments.
17637         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
17638         (ves_icall_MonoGenericParam_initialize): New interncall.
17639         (ves_icall_Type_make_byref_type): New interncall.
17640
17641         * reflection.h (MonoReflectionGenericParam): Derive from
17642         MonoReflectionType, not just from MonoObject.  Added `refobj' and
17643         `index' fields.
17644
17645         * reflection.c (mono_reflection_define_generic_parameter): Create
17646         and return a new MonoReflectionGenericParam; don't initialize the
17647         constraints here.
17648         (mono_reflection_initialize_generic_parameter): New public method;
17649         initializes the constraints and creates the `param->pklass'.
17650
17651 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
17652
17653         * reflection.h reflection.c: Use the new fields 'num_types', 
17654         'num_fields' and 'num_methods' to track the number of types etc.
17655
17656         * verify.c (check_corlib): Check corlib version number.
17657
17658 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
17659
17660         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
17661         function works on all methods.
17662
17663 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
17664
17665         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
17666         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
17667         the custom_type_info flag of the transparent proxy.
17668         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
17669         objects that supports IRemotingTypeInfo.
17670         * object.h: Added custom_type_info field in transparent proxy.
17671
17672 2003-12-06  Martin Baulig  <martin@ximian.com>
17673
17674         * class.c (mono_class_create_from_generic): Removed.
17675         (mono_class_from_generic): Check `ginst->klass' before doing
17676         anything else.  This is important to fully support "recursive"
17677         generic types.
17678
17679         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
17680         empty `generic_inst->klass' before doing anything else.
17681
17682 2003-12-06  Dick Porter  <dick@ximian.com>
17683
17684         * verify.c: 
17685         * object.h:
17686         * icall.c:
17687         * locales.c: Use C structs to access class fields.  Don't do a
17688         conversion between MonoString and UChar because both are
17689         platform-endian UTF-16.  Compare now takes startindex and count
17690         parameters.  Add a char overload for IndexOf.  Speed up the
17691         invariant string IndexOf.
17692
17693 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
17694
17695         * Makefile.am (monosn_LDADD): Fix parallel build.
17696
17697 2003-12-04  Martin Baulig  <martin@ximian.com>
17698
17699         * icall.c
17700         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17701         (ves_icall_Type_make_array_type): New interncall.       
17702
17703 2003-12-04  Martin Baulig  <martin@ximian.com>
17704
17705         * locales.c: also change it in the !HAVE_ICU case.
17706
17707 2003-12-04  Dick Porter  <dick@ximian.com>
17708
17709         * icall.c:
17710         * locales.c: construct_compareinfo is now in CompareInfo, not
17711         CultureInfo.
17712
17713 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
17714
17715         * image.c (mono_image_load_file_for_image): Cache loaded images in the
17716         image->files array.
17717
17718         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
17719         table as well.
17720
17721         * assembly.c (mono_assembly_load_references): Only load references
17722         once.
17723
17724         * class.c (mono_class_from_name): Avoid linear search of the 
17725         EXPORTEDTYPE table.
17726
17727         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
17728
17729 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
17730
17731         * image.h (MonoImage): Add 'field_cache' field.
17732
17733         * loader.c (mono_field_from_token): Cache field lookups.
17734         
17735         * reflection.c (mono_module_get_object): Fix name property.
17736
17737         * icall.c (ves_icall_get_enum_info): Update after changes to 
17738         mono_metadata_get_constant_index ().
17739
17740         * icall.c: Get rid of get_type_info icall, use a separate icall for
17741         each type property to avoid needless memory allocations. Fixes #51514.
17742
17743         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
17744         to avoid needless binary searches.
17745
17746         * class.c (class_compute_field_layout): Move the initialization of
17747         field->def_value to mono_class_vtable ().
17748
17749         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
17750         non-corlib types.
17751
17752         * object.c (mono_object_allocate): Make it inline.
17753
17754         * object.c (mono_object_allocate_spec): Make it inline.
17755         
17756 2003-12-02  Dick Porter  <dick@ximian.com>
17757
17758         * locales.c (create_NumberFormat): NumberFormatInfo construction.
17759         Patch by Mohammad DAMT (mdamt@cdl2000.com).
17760
17761 2003-12-01  Dick Porter  <dick@ximian.com>
17762
17763         * threads.c: Fix signature and call in CreateMutex and
17764         CreateEvent.
17765
17766 2003-12-01  Dick Porter  <dick@ximian.com>
17767
17768         * icall.c: 
17769         * locales.c: Implement string compares and searching
17770
17771         * object.h: Add extra Thread field
17772
17773 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
17774
17775         * reflection.c (fixup_method): Add support for MonoCMethod.
17776
17777 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
17778
17779         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
17780
17781         * reflection.c (assembly_name_to_aname): Allow extra characters in
17782         assembly names. Fixes #51468.
17783
17784 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
17785
17786         * exception.c (mono_exception_from_name_domain): New helper function.
17787
17788         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
17789         exception object in the correct domain.
17790
17791         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
17792         formatting + make a copy a the input data.
17793
17794         * loader.c (mono_get_method_from_token): Methods which contain
17795         native code do not have entries in the ImplMap.
17796
17797         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
17798         Thanks to Gonzalo for spotting this.
17799         
17800         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
17801         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
17802
17803         * assembly.h (mono_assembly_load_from): Split the second part of 
17804         assembly loading into a new public function.
17805
17806         * exception.h (mono_get_exception_bad_image_format): New function.
17807
17808 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
17809
17810         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
17811         Enumerate all modules inside a dynamic assembly. Fixes #51293.
17812         
17813         * icall.c: Add new icall for creating dynamic methods.
17814
17815         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
17816
17817         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
17818
17819         * reflection.c (mono_reflection_create_dynamic_method): New icall to
17820         create a dynamic method.
17821
17822         * reflection.c (resolve_object): New helper function.
17823
17824         * reflection.c: Generalize ReflectionMethodBuilder and the functions
17825         which manipulate it so they can also work on dynamic methods.
17826
17827         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
17828         creating the MonoReflectionMethodAux structure if it is not needed.
17829         
17830         * reflection.h verify.c: Update after changes to object layout.
17831
17832         * reflection.c (method_builder_encode_signature): Fix compilation on
17833         gcc 2.95.x.
17834
17835 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
17836
17837         * appdomain.h: Added support for context static fields. Added static_data
17838           field to MonoAppContext and renamed thread_static_fields to a more
17839           generic special_static_fields in MonoAppDomain, since it can now contain
17840           context static fields.
17841         * domain.c: Updated hashtable name.
17842         * object.c: Replaced field_is_thread_static() for a more generic
17843           field_is_special_static() which also checks for context static attribute.
17844           In mono_class_vtable(), added support for static context fields.
17845         * threads.c: Changed methods that manage thread static fields to more
17846           generic methods so they can be reused both for thread and context static
17847           data.
17848         * threads.h: Declared some new methods.
17849
17850 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
17851
17852         * reflection.h: Update after changes to the managed types.
17853
17854         * reflection.c (encode_custom_modifiers): New helper function.
17855
17856         * reflection.c (method_encode_signature): Emit custom modifiers.
17857
17858         * reflection.c (field_encode_signature): Emit custom modifiers.
17859
17860 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
17861
17862         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
17863
17864         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
17865         implementation.
17866
17867         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
17868         icall.
17869
17870         * object.c (mono_field_get_value_object): New function.
17871
17872         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
17873         specific.
17874
17875 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
17876
17877         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
17878         return a preallocated out-of-memory exception instance.
17879
17880         * object.c (out_of_memory): Use the new function.
17881
17882         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
17883         flag is before the custom modifiers. Fixes #49802.
17884
17885 2003-11-16  Martin Baulig  <martin@ximian.com>
17886
17887         * class.c (mono_class_is_open_constructed_type): Implemented the
17888         MONO_TYPE_GENERICINST case.
17889
17890 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
17891
17892         * assembly.c (mono_assembly_fill_assembly_name): New function to
17893         fill out the MonoAssemblyName structure.
17894         (mono_assembly_open): Use the new function.
17895
17896         * icall.c (fill_reflection_assembly_name): New helper function.
17897
17898         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
17899         new function.
17900
17901         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
17902
17903 2003-11-15  Martin Baulig  <martin@ximian.com>
17904
17905         * class.c (mono_class_is_open_constructed_type): New public
17906         function; checks whether a type is an open constructed type,
17907         ie. whether it still contains type parameters.
17908         (mono_class_inflate_generic_type): If we're a type parameter and
17909         the inflated type is also a MONO_TYPE_(M)VAR, return the original
17910         type.
17911
17912         * class.h (MonoGenericInst): Added `guint32 is_open'.
17913
17914         * loader.c (method_from_methodspec): Check whether we're an open
17915         or closed constructed type and set `ginst->is_open'.
17916
17917         * reflection.c (mono_reflection_bind_generic_parameters): Check
17918         whether we're an open or closed constructed type and set
17919         `ginst->is_open'.
17920         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
17921         from open constructed types.
17922
17923 2003-11-15  Martin Baulig  <martin@ximian.com>
17924
17925         * reflection.c (mono_reflection_bind_generic_parameters): If we're
17926         a generic instance (instead of a generic type declaration) with
17927         unbound generic parameters, bind them to our actual types.
17928
17929 2003-11-14  Martin Baulig  <martin@ximian.com>
17930
17931         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
17932
17933         * reflection.c (mono_reflection_bind_generic_parameters): If we're
17934         an interface type, populate `res->interfaces' with instantiated
17935         versions of all the interfaces we inherit.
17936
17937 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
17938
17939         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
17940         when MONO_PATH is set but doesn't contain the install dir.
17941
17942 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17943
17944         * icall.c:
17945         (ves_icall_Type_GetInterfaces): don't return an interface twice when
17946         it's also implemented in base classes. Fixes bug #50927.
17947
17948 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
17949
17950         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
17951         if this method is called from a finalizer. Fixes #50913.
17952
17953 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
17954
17955         * threads.c: Implement VolatileRead/VolatileWrite
17956
17957         * icall.c: Add new icalls for VolatileRead/VolatileWrite
17958
17959 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17960
17961         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
17962         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
17963         2.95.3.
17964
17965         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
17966         from Peter Ross (pro@missioncriticalit.com).
17967         
17968 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
17969
17970         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
17971
17972 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17973
17974         * assembly.c (mono_assembly_load_references): Disable check because it
17975         triggers on older corlibs which lots of people have.
17976
17977 2003-11-12  Jackson Harper  <jackson@ximian.com>
17978
17979         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
17980         load corlib.dll if mscorlib.dll is not found.
17981         * assembly.h: Remove corlib name define.
17982         * class.c:
17983         * domain.c:
17984         * image.c: Change corlib name to mscorlib.
17985         
17986 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
17987
17988         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
17989
17990 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
17991
17992         * appdomain.h: Added loader_optimization here to sync with the C#
17993         code, and add disallow_binding_redirects field.
17994
17995 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
17996
17997         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
17998
17999         * reflection.c (mono_image_build_metadata): Fix crash on modules
18000         with no types.
18001
18002         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
18003
18004         * icall.c (ves_icall_get_method_info): Return callingConvention as
18005         well.
18006
18007         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
18008         namespaces from the EXPORTEDTYPE table as well.
18009
18010         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
18011         from all modules inside the assembly.
18012         
18013 2003-11-11  Martin Baulig  <martin@ximian.com>
18014
18015         * reflection.c (mono_reflection_bind_generic_parameters): Make
18016         this work for interfaces.
18017
18018 2003-11-11  Martin Baulig  <martin@ximian.com>
18019
18020         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
18021
18022 2003-11-11  Martin Baulig  <martin@ximian.com>
18023
18024         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
18025         "MonoInflatedMethod" and "MonoInflatedCtor".
18026
18027 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
18028
18029         * reflection.c (resolution_scope_from_image): Use the assembly table
18030         from the manifest module, since other modules don't have it.
18031
18032         * debug-helpers.c (mono_type_full_name): New helper function.
18033
18034         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
18035
18036         * image.c (mono_image_load_file_for_image): New public function which
18037         is a replacement for the load_file_for_image in class.c.
18038
18039         * assembly.c (mono_assembly_load_module): A wrapper for the function
18040         above which does assembly association and reference loading too.
18041
18042         * class.c (mono_class_from_name): Call mono_assembly_load_module.
18043
18044 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18045
18046         * appdomain.c: not all of the attributes for the full assembly name
18047         are required and the order doesn't matter. Fixes bug #50787.
18048
18049 2003-11-10  Dick Porter  <dick@ximian.com>
18050
18051         * locales.c: Use platform-endian UTF16
18052
18053 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
18054
18055         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
18056         
18057 2003-11-10  Martin Baulig  <martin@ximian.com>
18058
18059         * metadata.c
18060         (mono_metadata_load_generic_params): Make this actually work.
18061
18062         * reflection.c (mono_reflection_bind_generic_parameters): If our
18063         parent is a generic instance, pass all the `types' to it, no
18064         matter whether it has the same number of type parameters or not.
18065
18066 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
18067
18068         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
18069
18070         * assembly.c (mono_assembly_load_references): Move the image<->assembly
18071         assignment code to this function so it gets called recursively for all
18072         modules.
18073
18074         * image.c (load_modules): Remove the assembly assignment since it is
18075         now done by mono_assembly_load_references.
18076         
18077         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
18078         Add 'module' argument.
18079         (mono_module_get_types): New helper function.
18080         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
18081
18082 2003-11-08  Martin Baulig  <martin@ximian.com>
18083
18084         * class.c (mono_class_inflate_generic_method): Interface method
18085         don't have a header.
18086
18087         * reflection.c (mono_image_get_methodspec_token): Take an
18088         additional `MonoGenericInst *' argument instead of reading it from
18089         the header; this is necessary to support interfaces.
18090         (mono_image_create_token): Pass the `MonoGenericInst *' from the
18091         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
18092         (inflated_method_get_object): Take an additional `MonoGenericInst *'
18093         argument.
18094
18095         * reflection.h (MonoReflectionInflatedMethod): Added
18096         `MonoGenericInst *ginst'.
18097
18098 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
18099
18100         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
18101
18102 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
18103
18104         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
18105
18106 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
18107
18108         * reflection.c 
18109         (reflection_methodbuilder_from_method_builder):
18110         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
18111         initialize a ReflectionMethodBuilder structure.
18112         (mono_image_get_methodbuilder_token):
18113         (mono_image_get_ctorbuilder_token): New functions to emit memberref
18114         tokens which point to types in another module inside the same assembly.
18115
18116         * reflection.c: Use the new helper functions.
18117         
18118         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
18119
18120         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
18121         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
18122
18123         * reflection.c (resolution_scope_from_image): Emit a moduleref if
18124         neccesary.
18125
18126         * reflection.c (mono_image_build_metadata): Emit metadata only for the
18127         current module. Emit the manifest only for the main module.
18128
18129         * reflection.c (mono_image_create_token): Add assertion when a 
18130         memberref needs to be created.
18131
18132         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
18133
18134         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
18135         larger buffer for the custom attribute blob. Fixes #50637.
18136         
18137 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18138
18139         * threadpool.c: notify listener on async processing handles after
18140         invoking the async callback. Thanks to Zoltan.
18141
18142 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
18143
18144         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
18145         avoid code duplication.
18146
18147         * reflection.h (MonoDynamicImage): New type which is currently unused,
18148         but will be used through the ref.emit code in place of 
18149         MonoDynamicAssembly.
18150
18151         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
18152         object layout.
18153
18154         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
18155         a MonoDynamicImage instead of just a MonoImage.
18156         
18157         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
18158         icalls to ModuleBuilder but keep their semantics, so they will work
18159         with moduleb->assemblyb. This will change later.
18160         
18161 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
18162
18163         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
18164         object layout.
18165
18166         * reflection.c (mono_image_build_metadata): Avoid creation of a default
18167         main module, since it is now done by the managed code.
18168
18169 2003-11-03  Martin Baulig  <martin@ximian.com>
18170
18171         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
18172         `ginst->klass' here.
18173         (method_encode_methodspec): Don't use the `ginst->generic_method's
18174         klass if it's a generic instance, use `ginst->klass' in this case.
18175
18176 2003-11-03  Martin Baulig  <martin@ximian.com>
18177
18178         * reflection.c (mono_image_get_generic_method_param_info):
18179         Removed, use mono_image_get_generic_param_info() instead.
18180         (mono_image_get_type_info): Write the GenericParam table before
18181         the Method table.  This is neccessary because in the GenericParam
18182         table, type parameters of the class (ie. '!0' etc.) must come
18183         before the ones from its generic methods (ie. '!!0' etc).
18184
18185 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
18186
18187         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
18188
18189 2003-11-02  Martin Baulig  <martin@ximian.com>
18190
18191         * reflection.c (create_generic_typespec): Take a
18192         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
18193         the generic parameters from it.
18194
18195 2003-11-02  Martin Baulig  <martin@ximian.com>
18196
18197         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
18198         instead of a `MonoClassField *' since we just need the type.
18199         (create_generic_typespec): New static function.  Creates a
18200         TypeSpec token for a generic type declaration.
18201         (mono_image_get_generic_field_token): New static function.
18202         (mono_image_create_token): If we're a FieldBuilder in a generic
18203         type declaration, call mono_image_get_generic_field_token() to get
18204         the token.
18205
18206 2003-11-02  Martin Baulig  <martin@ximian.com>
18207
18208         * reflection.h
18209         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
18210         `MonoReflectionGenericInst *declaring_type' and
18211         `MonoReflectionGenericInst *reflected_type' fields.
18212
18213         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
18214         `MonoReflectionGenericInst *declaring_type' and a
18215         `MonoReflectionGenericInst *reflected_type' argument instead of a
18216         single `MonoReflectionGenericInst *type' one.  Set
18217         `res->declaring_type' and `res->reflected_type' from them.
18218         (mono_reflection_inflate_field): Likewise.      
18219
18220 2003-11-02  Martin Baulig  <martin@ximian.com>
18221
18222         * class.c (mono_class_setup_vtable): Don't store generic methods
18223         in the vtable.  
18224
18225 2003-11-02  Martin Baulig  <martin@ximian.com>
18226
18227         * reflection.h (MonoReflectionGenericInst): Added
18228         `MonoReflectionType *declaring_type'.
18229
18230         * reflection.c (mono_reflection_bind_generic_parameters): Use
18231         `if (tb->parent)' instead of `klass->parent'.
18232
18233 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
18234
18235         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
18236         with an empty ASSEMBLY table.
18237
18238         * reflection.c (mono_image_build_metadata): Avoid using the same loop
18239         variable in the inner and outer loops.
18240
18241 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
18242
18243         * metadata.h (mono_metadata_make_token): Put parentheses around macro
18244         argument.
18245
18246         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
18247         
18248         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
18249         icalls. Instead, do everything in managed code. This is needed since
18250         it is hard to restore the original domain etc. in unmanaged code in the
18251         presence of undeniable exceptions.
18252
18253         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
18254         New icalls to push and pop appdomain refs.
18255
18256 2003-10-31  Martin Baulig  <martin@ximian.com>
18257
18258         * class.c (inflate_generic_type): Renamed to
18259         mono_class_inflate_generic_type() and made it public.
18260
18261         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
18262         New interncall.
18263
18264         * loader.c (mono_field_from_memberref): Also set the retklass for
18265         typespecs.
18266
18267         * fielder.c (mono_image_get_inflated_field_token): New static
18268         method; creates a metadata token for an inflated field.
18269         (mono_image_create_token, fixup_method): Added support for
18270         "MonoInflatedField".
18271         (fieldbuilder_to_mono_class_field): New static function.
18272         (mono_reflection_inflate_field): New public function.
18273
18274         * reflection.h
18275         (MonoReflectionGenericInst): Added `MonoArray *fields'.
18276         (MonoReflectionInflatedField): New typedef.     
18277
18278 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
18279
18280         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
18281         for Solaris and other platforms without s6_addr16
18282
18283 2003-10-30  Martin Baulig  <martin@ximian.com>
18284
18285         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
18286         argument instead of two.
18287         (mono_class_inflate_generic_signature): Likewise.
18288         (inflate_generic_header): Likewise.
18289         (mono_class_inflate_generic_method): Likewise.  In addition, if
18290         `ginst->klass' is set, it becomes the new `method->klass'.
18291
18292         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
18293         field.
18294
18295         * reflection.c (encode_generic_method_sig): Write a 0xa as the
18296         first byte. [FIXME]
18297         (method_encode_methodspec): If we have generic parameters, create
18298         a MethodSpec instead of a MethodRef.
18299         (fixup_method): Added support for "MonoInflatedMethod" and
18300         "MonoInflatedCtor".
18301         (mono_image_create_token): Added support for "MonoInflatedMethod"
18302         and "MonoInflatedCtor".
18303         (inflated_method_get_object): New static function; returns a
18304         managed "System.Reflection.MonoInflatedMethod" object.
18305         (mono_reflection_bind_generic_method_parameters): Return a
18306         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
18307         (mono_reflection_inflate_method_or_ctor): Likewise.
18308         (mono_image_get_generic_method_param_info): Initialize unused
18309         fields to zero.
18310         (mono_image_get_generic_param_info): Likewise.
18311
18312         * reflection.h (MonoReflectionInflatedMethod): New public
18313         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
18314         "S.R.MonoInflatedCtor" classes.
18315
18316         * loader.c (method_from_memberref): If we're a TypeSpec and it
18317         resolves to a generic instance, inflate the method.
18318
18319 2003-10-28  Dick Porter  <dick@ximian.com>
18320
18321         * object.c (mono_runtime_run_main): Convert command-line arguments
18322         into utf8, falling back to the user's locale encoding to do so.
18323
18324 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
18325
18326         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
18327         at this time.
18328
18329         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
18330
18331         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
18332         up icalls at method definition time. Partially fixes #33569.
18333
18334 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
18335
18336         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
18337         marshalling of arrays. Fixes #50116.
18338
18339         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
18340
18341         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
18342         points to a vtable in the dying appdomain.
18343
18344         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
18345         listeners into unmanaged code inside the lock.
18346
18347         * object.c (mono_class_vtable): Turn off typed allocation in non-root
18348         domains and add some comments.
18349
18350 2003-10-25  Martin Baulig  <martin@ximian.com>
18351
18352         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
18353
18354         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
18355
18356         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
18357         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
18358         currently parsing.  Create the generic class and store it in
18359         `generic_inst->klass' before parsing the type arguments.  This is
18360         required to support "recursive" definitions; see mcs/tests/gen-23.cs
18361         for an example.
18362         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
18363         to support recursive typespec entries.
18364
18365         * class.c (mono_class_setup_parent): If our parent is a generic
18366         instance, we may get called before it has its name set.
18367         (mono_class_from_generic): Splitted into
18368         mono_class_create_from_generic() and mono_class_initialize_generic().
18369
18370 2003-10-25  Martin Baulig  <martin@ximian.com>
18371
18372         * icall.c (ves_icall_Type_BindGenericParameters): Return a
18373         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
18374         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
18375         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
18376
18377         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
18378         (create_typespec): Likewise.
18379         (mono_reflection_bind_generic_parameters): Return a
18380         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
18381         (mono_reflection_inflate_method_or_ctor): New public function.
18382
18383         * reflection.h (MonoReflectionGenericInst): New typedef.        
18384
18385 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
18386
18387         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
18388         inside the domain lock. Fixes #49993.
18389         
18390         * object.c (mono_class_vtable): When typed allocation is used, 
18391         allocate vtables in the GC heap instead of in the mempool, since the
18392         vtables contain GC descriptors which are used by the collector even
18393         after the domain owning the mempool is unloaded.
18394
18395         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
18396
18397         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
18398         reflect what it does. Also invalidate mempools instead of freeing
18399         them if a define is set.
18400
18401         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
18402         of the appdomain.
18403         
18404         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
18405         hold the finalizable objects in this domain.
18406
18407         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
18408         appdomain.
18409
18410         * appdomain.c (mono_domain_set): New function to set the current
18411         appdomain, but only if it is not being unloaded.
18412
18413         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
18414         appdomain which is being unloaded.
18415         
18416         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
18417         unloading of the root appdomain.
18418
18419         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
18420         icall to execute a method in another appdomain. Intended as a 
18421         replacement for InternalSetDomain, which can confuse the code 
18422         generation in the JIT.
18423
18424         * appdomain.c (mono_domain_is_unloading): New function to determine
18425         whenever an appdomain is unloading.
18426
18427         * appdomain.c (mono_domain_unload): New function to correctly unload
18428         an appdomain.
18429
18430         * assembly.c (mono_assembly_load_references): Check that an assembly
18431         does not references itself.
18432
18433         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
18434         domain manually, it asks the finalizer thread to do it, then waits for
18435         the result. Also added a timeout.
18436
18437         * icall.c: Register the new icalls.
18438
18439         * threads.h threads.c: Export the mono_gc_stop_world and 
18440         mono_gc_start_world functions.
18441         
18442         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
18443         function to fill out the mempool with 0x2a.
18444
18445 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
18446
18447         * reflection.h (MonoReflectionMethodAux): New structure to store
18448         information which is rarely used, thus is not in the MonoMethod
18449         structure.
18450
18451         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
18452         store the aux info.
18453
18454         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
18455         and marshalling info into the aux structure.
18456
18457         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
18458         from the aux structure.
18459
18460         * loader.c (mono_method_get_param_names): Retrieve the param names from
18461         the aux structure.
18462         
18463 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
18464
18465         * exception.h exception.c: Add AppDomainUnloadedException && fix 
18466         warning.
18467
18468 2003-10-21  Dick Porter  <dick@ximian.com>
18469
18470         * socket-io.c
18471         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
18472         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
18473
18474 2003-10-21  Martin Baulig  <martin@ximian.com>
18475
18476         * reflection.c (mono_reflection_bind_generic_parameters):
18477         `klass->parent' is NULL for interfaces.
18478
18479 2003-10-21  Martin Baulig  <martin@ximian.com>
18480
18481         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18482
18483 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
18484
18485         * exception.c (mono_exception_from_name_msg): New helper function for
18486         creating exceptions and initializing their message field.
18487
18488         * exception.c: Simplify functions using the new helper.
18489
18490         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
18491         New function.
18492
18493         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
18494         mono_raise_exception, since otherwise gcc doesn't generate the function
18495         epilog for raise_exception, confusing the stack unwinding in the JIT.
18496         Fixes #45043.
18497
18498         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
18499         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
18500         Fixes #49499.
18501
18502 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18503
18504         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
18505         utf8.
18506
18507 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
18508
18509         * icall.c: Removed GetUninitializedObject method because
18510           AllocateUninitializedClassInstance does the same.
18511
18512 2003-10-18  Martin Baulig  <martin@ximian.com>
18513
18514         * class.c (inflate_generic_signature): Renamed to
18515         mono_class_inflate_generic_signature() and made it public.
18516         (my_mono_class_from_generic_parameter): New static function; if we
18517         don't already have the generic parameter's MonoClass, create a
18518         very simple one which is just used internally in the runtime and
18519         not passed back to managed code.
18520
18521         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
18522
18523         * metadata.h (MonoMethodSignature): Moved the
18524         `MonoGenericParam *gen_params' to the MonoMethodHeader.
18525         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
18526
18527         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
18528         ves_icall_MonoMethod_GetGenericArguments(); this is now an
18529         interncall on the MonoMethod class, not on MethodInfo.
18530         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
18531         calling mono_reflection_bind_generic_method_parameters() directly.
18532
18533         * loader.c (mono_method_get_signature): If this is a MethodSpec;
18534         return the already computed `method->signature'.
18535         (method_from_methodspec): New static function to load a method
18536         from a MethodSpec entry.
18537         (mono_get_method_from_token): Call the new method_from_methodspec()
18538         for MethodSpec tokens.  
18539         (mono_get_method_from_token): If we're a generic method, load the
18540         type parameters.
18541
18542         * reflection.c (mono_image_get_memberref_token): Allow
18543         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
18544         table.
18545         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
18546         (mono_image_create_token): First check whether it's a generic
18547         method (so we'd need to create a MethodSpec), then do the other
18548         two alternatives.
18549         (mono_reflection_bind_generic_method_parameters): Return a
18550         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
18551         called directly from the interncall.
18552
18553 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
18554
18555         * reflection.c (load_public_key): Move loading of the public key
18556         into managed code.
18557
18558         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
18559
18560         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
18561         fields.
18562
18563         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
18564         culture, hash_alg and public_key. Fixes #49555.
18565
18566 2003-10-17  Martin Baulig  <martin@ximian.com>
18567
18568         * class.h (MonoGenericInst): Moved this declaration here and added
18569         `MonoMethod *generic_method'.
18570
18571         * icall.c
18572         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
18573         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
18574
18575         * metadata.c (mono_metadata_type_equal): Two types of
18576         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
18577         index; ie. don't compare the address of the `MonoGenericParam'
18578         structure.
18579         (mono_metadata_load_generic_params): Removed the `MonoMethod
18580         *method' argument.
18581
18582         * metadata.h (MonoGenericInst): Moved declaration to class.h.
18583         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
18584
18585         * reflection.c (method_encode_signature): Encode the number of
18586         generic parameters.
18587         (encode_generic_method_sig): New static function.
18588         (method_encode_methodspec): New static function; creates an entry
18589         in the MethodSpec table for a generic method.
18590         (mono_image_get_methodspec_token): New static function.
18591         (mono_image_create_token): Call mono_image_get_methodspec_token()
18592         for generic methods.
18593         (mono_reflection_bind_generic_method_parameters): New public
18594         function.  Instantiates a generic method.
18595
18596 2003-10-16  Martin Baulig  <martin@ximian.com>
18597
18598         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
18599         *gen_params' here from MonoMethodHeader.
18600
18601         * metadata.c (mono_metadata_parse_method_signature): If we have
18602         generic parameters, initialize `method->gen_params' and then set
18603         the correct `type->data.generic_param' in all the parameters.
18604
18605 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
18606
18607         * threads.c (mono_threads_get_default_stacksize): New function to 
18608         return the default stacksize.
18609
18610         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
18611         termination of the finalizer thread, since the previous method had
18612         race conditions. Fixes #49628.
18613
18614         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
18615         as for the other managed threads.
18616
18617 2003-10-16  Martin Baulig  <martin@ximian.com>
18618
18619         * class.c (inflate_generic_signature): Copy `generic_param_count'
18620         and `gen_params'.
18621
18622         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
18623         New interncall.
18624
18625         * metadata.c (mono_metadata_parse_method_signature): Actually set
18626         the `method->generic_param_count' here.
18627         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
18628
18629 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
18630
18631         * object.h: Add a new field to TypedRef to simplify the implementation
18632         of the REFANY opcodes in the JIT.
18633
18634         * icall.c: Make use of the new field.
18635
18636         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
18637         dynamically.
18638
18639 2003-10-15  Martin Baulig  <martin@ximian.com>
18640
18641         * class.c (mono_class_from_gen_param): Renamed to
18642         mono_class_from_generic_parameter() and moved most of the
18643         functionality from mono_reflection_define_generic_parameter()
18644         here; ie. we create a "real" class here.
18645         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
18646         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
18647         previously been called.
18648
18649         * class.h (MonoGenericParam): Moved the declaration of this struct
18650         here from metadata.h and added `MonoMethod *method'.
18651
18652         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
18653         interncall.
18654
18655         * loader.c (mono_get_method_from_token): If we have any generic
18656         parameters, call mono_metadata_load_generic_params() to read them
18657         from the MONO_TABLE_GENERICPAR.
18658
18659         * metadata.c (mono_metadata_load_generic_params): Added
18660         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
18661
18662         * metadata.h (MonoMethodSignature): Replaced
18663         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
18664         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
18665
18666         * reflection.c (mono_reflection_define_generic_parameter): Moved
18667         most of the functionality into the new
18668         mono_class_from_generic_parameter(); set the `method' field if
18669         we're a method parameter.       
18670
18671 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
18672
18673         * marshal.c (emit_struct_conv): if native size is 0
18674         emit no code.
18675
18676 2003-10-14  Martin Baulig  <martin@ximian.com>
18677
18678         * icall.c: The generics API has changed in the spec since it was
18679         added to System.Type; these modifications make it match the spec
18680         again.
18681         (ves_icall_Type_GetGenericParameters): Renamed to
18682         `ves_icall_Type_GetGenericArguments'.
18683         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
18684         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
18685         `ves_icall_MonoType_get_HasGenericArguments'.
18686         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
18687         `ves_icall_MonoType_get_IsGenericParameter'.
18688         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
18689         this is no interncall anymore.
18690         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
18691         `ves_icall_TypeBuilder_get_IsGenericParameter'.
18692
18693 2003-10-14  Martin Baulig  <martin@ximian.com>
18694
18695         * reflection.c (mono_reflection_bind_generic_parameters): Also
18696         inflate generic methods if we're reading the class from IL.
18697
18698 2003-10-13  Martin Baulig  <martin@ximian.com>
18699
18700         * reflection.c (mono_reflection_define_generic_parameter): This
18701         method isn't called directly from the icall anymore; take a
18702         `MonoReflectionAssemblyBuilder *' so we can use this for type and
18703         method generic parameters.
18704         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
18705         (method_builder_encode_signature): Encode generic parameters.
18706         (mono_image_get_method_info): Write generic params to the
18707         MONO_TABLE_GENERICPARAM table.
18708
18709         * reflection.h (MonoReflectionMethodBuilder): Added
18710         `MonoArray *generic_params'.
18711
18712         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
18713
18714         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
18715         wrapper for mono_reflection_define_generic_parameter().
18716         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
18717
18718 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
18719
18720         * marshal.h: Add missing function to fix build.
18721
18722         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
18723         the SetLastError pinvoke attribute.
18724
18725         * marshal.c (mono_marshal_set_last_error): New helper function called
18726         by the generated code.
18727         
18728         * marshal.c (mono_mb_emit_branch): New helper function.
18729
18730         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
18731
18732         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
18733         classes as parameters and return values of delegates. Fixes #29256. 
18734
18735 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
18736
18737         * locales.c: use gint32 in non HAVE_ICU case
18738
18739 2003-10-11  Martin Baulig  <martin@ximian.com>
18740
18741         * mono-debug.c (mono_debug_add_method): Added a workaround for
18742         bug #48591.
18743
18744 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
18745
18746         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
18747         delegates passed to native code must use the STDCALL calling 
18748         convention. Fixes #35987.
18749
18750 2003-10-10  Martin Baulig  <martin@ximian.com>
18751
18752         * class.c (inflate_generic_type): If we're inflating for a generic
18753         type instance (and not for a generic method), return
18754         MONO_TYPE_MVAR unchanged.
18755
18756 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18757
18758         * string-icalls.c: Join ignores null strings in the source array.
18759         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
18760         * threads.c: GetAvailableTheads is slightly more accurate.
18761
18762 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
18763
18764         * threads.h threads.c : add mono_threads_set_default_stacksize
18765         and pass default to CreateThread calls.
18766
18767 2003-10-09  Dick Porter  <dick@ximian.com>
18768
18769         * icall.c:
18770         * locales.h:
18771         * locales.c: Internal calls for constructing CultureInfo and
18772         related objects from libicu (if its available.)
18773
18774 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
18775
18776         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
18777
18778 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18779
18780         * threadpool.c: added an argument to async_invoke_thread that is the
18781         item to process, pass the MonoAsyncResult to the thread start function
18782         when creating a new thread. This way we don't need to acquire any lock
18783         when we're creating a new thread. Readded a semaphore for faster
18784         response times (instead of that Sleep i added).
18785
18786 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
18787
18788         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
18789         get daylight change dates better on Windows, fix handling
18790         of platforms without tm_gmtoff.
18791
18792 2003-10-06  Martin Baulig  <martin@ximian.com>
18793
18794         * class.c (inflate_generic_method): Renamed to
18795         mono_class_inflate_generic_method() and made public.
18796         (mono_class_init): Don't inflate the generic methods here.
18797         (mono_class_from_generic): Added `gboolean inflate_methods'
18798         argument.  Inflate the methods here.
18799
18800         * loader.c (mono_method_get_param_names): Ignore instances of
18801         generic types for the moment.
18802
18803         * reflection.c (fixup_method): Added support for inflated methods.
18804         (mono_image_create_token): Use mono_image_get_methodref_token()
18805         for inflated methods.
18806         (mono_custom_attrs_from_param): Ignore instances of generic types
18807         for the moment.
18808         (mono_reflection_bind_generic_parameters): New public function.
18809         Moved all the functionality from
18810         ves_icall_Type_BindGenericParameters() here and added support for
18811         dynamic types.
18812         (mono_reflection_define_generic_parameter): Initialize
18813         `klass->methods' here.
18814
18815         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
18816         functionality into mono_reflection_define_generic_parameter().
18817         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
18818         TypeBuilder, return that TypeBuilder.
18819
18820 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18821
18822         * appdomain.c: removed mono_delegate_semaphore.
18823
18824         * threadpool.c:
18825         (mono_thread_pool_add): moved hash table creation inside and the thread 
18826         creation outside of the critical region.
18827         (mono_thread_pool_finish): removed obsolete code.
18828         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
18829         continue or exit the thread depending on the queue.
18830
18831 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
18832
18833         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
18834         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
18835         handle more bool marshalling options
18836
18837 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
18838
18839         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
18840         arrays of structs. Also add a more descriptive error message when
18841         a structure member is marshalled as LPArray.
18842
18843 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
18844
18845         * marshal.c (mono_marshal_get_native_wrapper): Add support for
18846         marshalling arrays of complex types. Fixes #29098. Also remove an
18847         usused and incomplete function.
18848
18849 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
18850
18851         * gc.c: report heap_size - free_bytes as total memory allocated
18852         (bug#49362).
18853
18854 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
18855
18856         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
18857         fix timezone handling problems on Windows.
18858         
18859         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
18860         asserts when the year is outside the range handled by ms the functions.
18861
18862         * class.c (setup_interface_offsets): If the class is an interface,
18863         fill out its interface_offsets slot.
18864
18865 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18866
18867         * threadpool.c: mark threadpool threads as background.
18868
18869 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
18870
18871         * decimal.c - define DECINLINE to nothing if not using GCC
18872
18873 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
18874
18875         * assembly.c: More refcount fixes.
18876
18877 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18878
18879         * string-icalls.c: if we're not trimming, return the same string.
18880         When not splitting, don't create a new string.
18881
18882 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18883
18884         * image.c:
18885         (mono_image_open): increment the ref_count inside the critical section.
18886
18887 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
18888
18889         * image.c (mono_image_open): Fix reference counting bug.
18890
18891 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
18892
18893         * marshal.c (mono_marshal_type_size) struct alignment changed for 
18894         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
18895         64bits. Avoid leak in mono_marshal_get_native_wrapper when
18896         mono_lookup_pinvoke_call throws.        
18897
18898 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
18899
18900         * reflection.c (mono_reflection_parse_type): Fix #49114.
18901
18902         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
18903         temporary workaround for cygwin header problem.
18904
18905         * object.c (mono_object_isinst): Synchronize this with the code
18906         generated by the JIT for casts.
18907
18908 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
18909
18910         * reflection.c (encode_type): Fix #38332.
18911
18912 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
18913
18914         * marshal.c (mono_marshal_method_from_wrapper): New function to return
18915         the original method from the wrapper method.
18916
18917 2003-09-25  Martin Baulig  <martin@ximian.com>
18918
18919         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
18920         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
18921         (ves_icall_Type_get_IsGenericInstance): New interncall.
18922
18923 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
18924
18925         * object.c: fix cast warning in big endian code.
18926
18927 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
18928
18929         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
18930         
18931 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18932
18933         * assembly.c: don't call check_env from mono_assembly_load. It's
18934         already done once in mono_assemblies_init and may cause headaches when
18935         multiple threads are loading assemblies.
18936
18937 2003-09-19  Martin Baulig  <martin@ximian.com>
18938
18939         * reflection.c (mono_reflection_define_generic_parameter): Don't
18940         allocate `klass->methods', set `klass->flags' to
18941         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
18942
18943 2003-09-18  Martin Baulig  <martin@ximian.com>
18944
18945         * class.c (mono_class_init): Don't create `class->methods' if it's
18946         already initialized.
18947
18948         * metadata.c (mono_metadata_load_generic_params): Make this
18949         actually work.
18950
18951         * reflection.c (mono_reflection_define_generic_parameter): Set
18952         parent class and interfaces from the constraints.
18953
18954         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
18955         to keep this struct in sync with the declaration in TypeBuilder.cs.
18956
18957 2003-09-17  Martin Baulig  <martin@ximian.com>
18958
18959         * metadata.h (MonoType): Replaced the data's `int type_param'
18960         field with `MonoGenericParam *generic_param'.
18961         (MonoGenericParam): Added `MonoClass *klass'.
18962
18963         * class.c (mono_class_from_gen_param): Removed the
18964         `MonoImage *image' and `int type_num' arguments.
18965
18966         * metadata.c (mono_metadata_parse_generic_param): New static
18967         method; creates a MonoGenericParam which just contains the index.
18968         (do_mono_metadata_parse_type): Call
18969         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
18970         MONO_TYPE_MVAR.
18971
18972         * reflection.c (mono_image_typedef_or_ref): Generic type
18973         parameters may be in the same assembly, but never use a typedef
18974         for them.
18975         (mono_reflection_define_generic_parameter): We're now creating a
18976         "real" class for the type parameter; it's now safe to call
18977         mono_class_from_mono_type() on the class'es type, it'll do the
18978         right thing.
18979
18980 2003-09-16  Martin Baulig  <martin@ximian.com>
18981
18982         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
18983         `symfile->range_entry_size' and `symfile->class_entry_size' here;
18984         the `symfile' data structure must be fully initialized before it
18985         gets added to the table.
18986
18987 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
18988
18989         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
18990
18991         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
18992         class init trampolines.
18993
18994 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
18995
18996         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
18997         to the built-in profiler to turn off time and allocation profiling
18998         respectively.
18999
19000 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
19001
19002         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
19003         g_direct_equal.
19004
19005         * debug-helpers.c (mono_method_full_name): Print the wrapper type
19006         in human readable form.
19007
19008 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
19009
19010         * reflection.c icall.c: Fixed warnings.
19011
19012         * image.c (load_class_names): Use a temporary hash table to hold the
19013         namespaces in order to avoid doing many string comparisons.
19014
19015         * image.h: Fix typo.
19016
19017         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
19018         Pass NULL instead of g_direct_equal to the GHashTable constructor 
19019         since the NULL case is short-circuited inside g_hash_table_lookup, 
19020         leading to better performance.  
19021
19022         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
19023         obtain the first custom attribute for a given index. Depends on the
19024         CustomAttribute table being sorted by the parent field.
19025
19026         * reflection.c (mono_custom_attrs_from_index): Use the new function 
19027         for better performance.
19028
19029 2003-09-07  Martin Baulig  <martin@ximian.com>
19030
19031         * class.c (mono_class_init): If we're a generic instance, inflate
19032         all our methods instead of loading them from the image.
19033         (mono_class_from_generic): Set `class->methods = gklass->methods'.
19034
19035 2003-09-07  Martin Baulig  <martin@ximian.com>
19036
19037         * mono-debug-debugger.c: Added support for constructors.
19038
19039 2003-09-06  Martin Baulig  <martin@ximian.com>
19040
19041         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
19042         New interncall.
19043
19044         * reflection.c (mono_reflection_setup_generic_class): Call
19045         ensure_runtime_vtable() to create the vtable.
19046
19047 2003-09-05  Martin Baulig  <martin@ximian.com>
19048
19049         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
19050         MONO_TYPE_MVAR.
19051
19052 2003-09-04  Martin Baulig  <martin@ximian.com>
19053
19054         * reflection.c (mono_reflection_define_generic_parameter): Generic
19055         parameters start with zero.
19056
19057 2003-09-04  Martin Baulig  <martin@ximian.com>
19058
19059         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
19060
19061         * reflection.h (MonoReflectionGenericParam): New typedef.
19062         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
19063         the generic parameters from the managed TypeBuilder.
19064
19065         * reflection.c (mono_reflection_define_generic_parameter): New function.
19066         (mono_reflection_create_runtime_class): Encode generic parameters.
19067         (mono_reflection_setup_generic_class): New function; this is
19068         called after adding adding all generic params to the TypeBuilder.
19069         (encode_type): Added MONO_TYPE_VAR.
19070
19071 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
19072
19073         * class.h class.c (mono_class_needs_cctor_run): Moved this method
19074         here from the JIT.
19075
19076         * assembly.h assembly.c: Moved the AOT loading code into an assembly
19077         load hook.
19078
19079 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
19080
19081         * reflection.h reflection.c class.h class.c: Delete duplicate 
19082         definition of mono_type_get_name () from reflection.c and export the
19083         one in class.c.
19084
19085         * class.c: Class loading fixes from Bernie Solomon 
19086         (bernard@ugsolutions.com).
19087
19088         * reflection.c: Endianness fixes from Bernie Solomon 
19089         (bernard@ugsolutions.com).
19090         
19091 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
19092
19093         * assembly.h assembly.c: Define a file format version for AOT
19094         libraries.
19095         
19096         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
19097
19098         * appdomain.h (MonoJitInfo): New field to determine whenever the
19099         code is domain neutral.
19100         
19101 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
19102
19103         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
19104
19105 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
19106
19107         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
19108         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
19109         Avoid caching the result since strings must be domain specific. Fixes
19110         #48050.
19111
19112 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
19113
19114         * marshal.c (mono_marshal_init): Make this callable multiple times
19115         since it is hard to find a correct place to call it.
19116
19117         * object.c (mono_runtime_class_init): Execute static constructors in
19118         the correct appdomain.
19119
19120         * image.c (build_guid_table): Handle the case when multiple images have
19121         the same GUID.
19122
19123 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19124
19125         * icall.c: added a couple of icalls for System.Web.
19126
19127 2003-08-28  Martin Baulig  <martin@ximian.com>
19128
19129         * icall.c (ves_icall_Type_BindGenericParameters): Use
19130         `klass->generic_inst' instead of `&klass->byval_arg' in the
19131         mono_type_get_object() call.  The returned type must be
19132         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
19133
19134 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
19135
19136         * NOTES: New file.
19137
19138         * object.c (mono_class_proxy_vtable): Make it thread safe.
19139
19140         * pedump.c: Fix warning.
19141
19142         * object.c appdomain.h: Get rid of metadata_section. 
19143         It is no longer needed and it was causing deadlocks with domain->lock.
19144
19145         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
19146
19147 2003-08-26  Martin Baulig  <martin@ximian.com>
19148
19149         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
19150
19151 2003-08-26  Martin Baulig  <martin@ximian.com>
19152
19153         * pedump.c (main): Call mono_metadata_init(),
19154         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
19155         and mono_loader_init().
19156
19157 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
19158
19159         * loader.h: Add missing include to fix build.
19160
19161         * image.h: mono_image_load_references is no more.
19162
19163         * assembly.c: Reworked assembly loading to make it really thread safe.
19164         After these changes, the assembly returned by mono_assembly_open is
19165         fully initialized, i.e. all its references assemblies are loaded.
19166
19167         * assembly.c (mono_image_load_references): Renamed to 
19168         mono_assembly_load_references, and made private, since clients no
19169         longer need to call it.
19170
19171         * class.c: Removed calls to mono_assembly_load_references, since it was
19172         a source of deadlocks.
19173
19174         * loader.h loader.c class.h class.c: Protect data structures using a 
19175         new lock, the loader lock.
19176
19177         * class.c (mono_class_setup_vtable): Create temporary hash tables and
19178         GPtrArrays only when needed.
19179
19180         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
19181         into empty structures by mcs. Fixes pinvoke7.cs.
19182         
19183         * domain.c (mono_init): Call a new initialization function.
19184
19185         * appdomain.c (mono_runtime_init): Call the new initializer function
19186         of the marshal module.
19187
19188         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
19189         inserted into empty structures by mcs. Fixes pinvoke7.cs.
19190
19191         * marshal.h marshal.c: Added locks around the wrapper caches to make
19192         this module thread safe.
19193
19194         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
19195         this argument. Fixes pinvoke1.exe.
19196
19197 2003-08-25  Lluis Sanchez <lluis@ximian.com>
19198
19199         * object.h: Added call_type field to MonoMethodMessage and the corresponding
19200         enumeration of values. Removed fields to store remote call output values in
19201         MonoAsyncResult. Not needed any more.
19202         * object.c: Initialize call_type and async_result fields in mono_message_init.
19203         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
19204         dispatching the message.
19205         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
19206         async call to finish. To do it use a message with EndInvoke call type.
19207
19208 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
19209
19210         * loader.h loader.c (mono_method_hash_marhal_info): New function which
19211         determines whenever a method has marshalling info.
19212
19213 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19214
19215         * assembly.c: fix the build on windows.
19216
19217 2003-08-22 Lluis Sanchez <lluis@ximian.com>
19218
19219         * object.cs: Fixed bug #47785.
19220
19221 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
19222
19223         * string-icalls.c (StringReplace): If their are no occurances of
19224         the old string found return a reference to the supplied
19225         string. This saves some memory and matches MS behavoir.
19226         
19227 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19228
19229         * socket-io.c: fixed compilation for systems that define AF_INET6
19230         and don't define SOL_IP/SOL_IPV6.
19231
19232 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
19233
19234         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
19235         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
19236
19237         * rawbuffer.c rawbuffer.h: Make this module thread safe.
19238
19239         * domain.c: Make this module thread safe.
19240
19241         * domain.c (mono_init): Call new initialization function.
19242
19243         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
19244         reference types too. Fixes #38812.
19245
19246         * image.c (mono_image_init): Fixed warnings.
19247
19248         * class.c (mono_class_from_typeref): Handle assembly load failure
19249         correctly.
19250
19251         * appdomain.c (add_assemblies_to_domain): Handle the case when
19252         the references of an assembly are not yet loaded.
19253
19254         * metadata.c image.c assembly.c: Moved initialization of global
19255         variables to a separate function called at startup since lazy 
19256         initialization of these variables is not thread safe.
19257         
19258         * image.c assembly.c: Made this module thread safe by adding locks in 
19259         the appropriate places.
19260
19261         * domain.c (mono_init): Call the new initialization functions of the
19262         three modules.
19263
19264 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
19265
19266         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
19267           make a direct call. It is proxy's work to make the call asynchronous.
19268           mono_delegate_end_invoke(): If the targe is a proxy, just collect
19269           the return values.
19270         * object.cs: mono_method_call_message_new(): read AsyncResult and
19271           state object from parameters list, if this info is requested.
19272         * object.h: Added fields to store remote call output values in
19273           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
19274
19275 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19276
19277         * object.h: add needed fields to MonoThread.
19278         * threads.c, threads.h: allow registering a function to cleanup data
19279         allocated per thread by the JIT.
19280
19281 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19282
19283         * loader.h: portability fix by Bernie Solomon
19284         * <bernard@ugsolutions.com>.
19285
19286 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
19287
19288         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
19289         return a MonoArray. This simplifies the code and also ensures that
19290         the cache allways contains an object reference as a value.
19291
19292         * icall.c (ves_icall_get_parameter_info): Simplified using the new
19293         function.
19294
19295 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19296
19297         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
19298         fixes a problem with byte ordering when getting the address family for
19299         a socket.
19300
19301 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
19302
19303         * .cvsignore: Added monosn.
19304
19305         * reflection.h reflection.c loader.c: Added support for parameter
19306         marshalling to dynamically created types. Fixes #47295.
19307
19308 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
19309
19310         * rand.c: remove useless warnings.
19311
19312 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
19313
19314         * class.c: implemented ldtoken for methods and fieldrefs.
19315
19316 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19317
19318         * threadpool.c: when mono_async_invoke was called, no one took care of
19319         monitoring the queue. So if the method invoked took some time and we
19320         got new async invoke requests after 500 ms (the thread created waited
19321         that long in WaitForSingleObject), the new async invoke was not called
19322         until the previous one finished.
19323
19324         This is fixed now. Thanks to Totte for helping with it.
19325
19326 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19327
19328         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
19329
19330 2003-08-11  Martin Baulig  <martin@ximian.com>
19331
19332         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
19333
19334 2003-08-06  Martin Baulig  <martin@ximian.com>
19335
19336         * mono-debug-debugger.c: Added support for static fields,
19337         properties and methods.
19338
19339 2003-08-06  Martin Baulig  <martin@ximian.com>
19340
19341         * mono-debug-debugger.c: Don't store the MonoString's vtable to
19342         make this work for applications with multiple application domains.
19343
19344 2003-08-04  Martin Baulig  <martin@ximian.com>
19345
19346         * mono-debug-debugger.c: Completely reworked the type support; the
19347         most important thing is that we're now just using one single
19348         `MonoType' instance per type.
19349
19350 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
19351
19352         * mono-endian.h, mono-endian.c, icall.c: Added icall
19353         ves_icall_System_Double_AssertEndianity to assert double word endianity
19354         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
19355
19356 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19357
19358         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
19359         support, icalls and fixes.
19360
19361 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
19362
19363         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
19364         classes that are a punctuation character in .NET is not the same a
19365         g_unichar_ispunct.
19366
19367 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19368
19369         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
19370
19371 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
19372
19373         * icall.c: Add new MemCopy internalcall.
19374         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
19375         Simplified code; It is not necessary to handle all the cases here,
19376         as the C# code takes care of it.  Only handle the case of the name
19377         resource embedded into the assembly.
19378
19379         Changed signature to return the data pointer and the size of the
19380         data. 
19381
19382 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
19383
19384         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
19385         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
19386
19387 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
19388
19389         * socket-io.c: ignore EINTR error in select.
19390
19391 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
19392
19393         * class.h, class.c: removed unused subclasses field in MonoClass.
19394
19395 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
19396
19397         * icall.c: improve fix of get_base_definition(). If the parent class
19398           doesn't have the mehod, look at the parent of the parent.
19399         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
19400           to check if a parameter is an in or out parameter
19401           (PARAM_ATTRIBUTE_IN is not set by default).
19402           mono_method_return_message_restore(): Use mono_class_value_size to
19403           get the size of a value type. mono_type_stack_size (parameterType)
19404           does not return the correct value if parameterType is byRef.
19405           mono_load_remote_field(), mono_load_remote_field_new(),
19406           mono_store_remote_field(), mono_store_remote_field_new():
19407           raise exception if the remote call returns an exception.
19408
19409 2003-07-28  Martin Baulig  <martin@ximian.com>
19410
19411         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
19412         method.  This is a wrapper around mono_runtime_invoke() which
19413         boxes the instance object if neccessary.
19414
19415 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19416
19417         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
19418         metadata.h, row-indexes.h, verify.c: first cut of generics support.
19419
19420 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19421
19422         * icall.c: disable mcs bug workaround.
19423
19424 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
19425
19426         * object.c (mono_runtime_class_init): Take the metadata_section
19427         mutex before obtaining the domain mutex.
19428
19429         * appdomain.h: Added definition of metadata_section mutex here. 
19430
19431         * object.c: define metadata_mutex here.
19432
19433 2003-07-24  Ravi Pratap  <ravi@ximian.com>
19434
19435         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
19436         fixed.
19437
19438 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
19439
19440         * reflection.c: Fix bug #46669
19441
19442 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19443
19444         * exception.c:
19445         * exception.h:
19446         * icall.c:
19447         * object.h: fill in the type name for TypeLoadException.
19448
19449 2003-07-23  Ravi Pratap  <ravi@ximian.com>
19450
19451         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
19452         relationship between TypeBuilders while compiling corlib) and bug
19453         45993 (Array types returned from the runtime while compiling
19454         corlib were from the loaded corlib).
19455
19456 2003-07-22  Martin Baulig  <martin@ximian.com>
19457
19458         * mono-debug-debugger.c: Reworked the type support a bit more;
19459         distinguish between types and classes.
19460
19461 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
19462
19463         * icall.c: add IsArrayImpl icall.
19464
19465 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
19466
19467         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
19468         initializing real_size only once. Also fix bug #46602.
19469
19470 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
19471
19472         * object.c: Renamed mono_metadata_section to metadata_section.
19473
19474 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
19475
19476         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
19477           empty array if the type is an array. Fixed.
19478           ves_icall_MonoMethod_get_base_definition: if the base method
19479           is abstract, get the MethodInfo from the list of methods of
19480           the class.
19481         * reflection.c: ParameterInfo.PositionImpl should be zero-based
19482           and it was 1-based. Fixed in mono_param_get_objects.
19483
19484 2003-07-20  Martin Baulig  <martin@ximian.com>
19485
19486         * mono-debug.h: Set version number to 31.
19487         (mono_debug_init): Added `MonoDomain *' argument.
19488
19489         * mono-debug-debugger.c: Reworked the type support; explicitly
19490         tell the debugger about builtin types; pass the `klass' address to
19491         the debugger.
19492
19493 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
19494
19495         * image.c: Allow new metadata tables to be loaded without a
19496         warning. Also update the warning message to give the new constant value.
19497                 
19498 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
19499
19500         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
19501         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
19502         array type representation changes.
19503
19504 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19505
19506         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
19507         on Environment.Exit () call.
19508
19509 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
19510
19511         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
19512         requires a matching corlib.
19513
19514 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
19515
19516         * Changelog: My editor decided to add a CR to each line. Sorry about that.
19517           Committed again without the CRs.
19518         
19519 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
19520
19521         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
19522           getting it from the "this" socket instance. Did not work
19523           if the socket is a subclass of Socket.
19524           Also fixed bug #35371.
19525
19526 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19527
19528         * metadata.c: fixed size for TypedByRef.
19529         * loader.c: when searching for a method, consider the vararg amrker.
19530         * unicode.c, decimal.c: constify some arrays.
19531
19532 2003-07-15  Dick Porter  <dick@ximian.com>
19533
19534         * socket-io.c: Fixed compilation for gcc < 3.2.
19535
19536         Fixed compilation for machines that don't have AF_INET6 (thanks to
19537         Bernie Solomon <bernard@ugsolutions.com> for that part.)
19538
19539         Fixed compile warnings.
19540         
19541         Fixed formatting and line endings.
19542
19543 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
19544
19545         * socket-io.h:
19546         * socket-io.c: Added IPv6 support.
19547
19548 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
19549
19550         * class.c (mono_class_is_assignable_from): New function to implement
19551         the is_assignable_from logic. Used by mono_object_isinst, 
19552         Type::IsAssignableFrom () and the interpreter.
19553
19554         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
19555         Object, even interfaces.
19556         
19557         * object.c (mono_object_isinst): Implement in terms of 
19558         is_assignable_from.
19559
19560         * icall.c (ves_icall_type_is_assignable_from): New icall.
19561
19562 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
19563
19564         * domain.c (foreach_domain): fix compiler warning.
19565
19566 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
19567
19568         * image.c (load_metadata_ptrs): use g_strndup because strndup is
19569         not available on all plattforms
19570
19571 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
19572
19573         * image.h image.c: Store the metadata version string in MonoImage.
19574         * icall.c: New icall to retrieve the image version.
19575         * reflection.c (create_dynamic_image): Fill in the image version field
19576         * reflection.c (build_compressed_metadata): Use the image version
19577         from the image structure.
19578
19579 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19580
19581         * appdomain.c: modified comment.
19582         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
19583         That will be its last iteration when mono_gc_cleanup is called from
19584         mono_runtime_cleanup and before the domain is unloaded.
19585
19586         Fixes bug #45962.
19587
19588 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
19589
19590         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
19591         attributes.
19592
19593 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19594
19595         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
19596         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
19597         Bernie Solomon <bernard@ugsolutions.com>.
19598
19599 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19600
19601         * object.c, object.h: provide mono_object_new_fast() for faster
19602         allocation in some special cases.
19603
19604 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
19605
19606         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
19607         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
19608
19609 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
19610
19611         * threadpool.c: fix leaks.
19612
19613 2003-07-01  Dick Porter  <dick@ximian.com>
19614
19615         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
19616         using MonoGHashTables.  Fixes threadpool bug posted to list.
19617
19618 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
19619
19620         * image.h, image.c: added support to load an assembly from a byte array.
19621         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
19622         assembly bundle support.
19623
19624 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
19625
19626         * threadpool.c (mono_thread_pool_add): keep a reference to the
19627         AsyncResult to prevent GC
19628
19629 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
19630
19631         * class.c: leak fix.
19632
19633 2003-06-25  Dick Porter  <dick@ximian.com>
19634
19635         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
19636         for the async object, the WaitHandle object will close the handle.
19637         Fixes bug 45321.
19638
19639 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19640
19641         * class.c: in mono_array_class_get (), lookup from the hash with the
19642         same type we insert: this works around a bug in
19643         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
19644         lluis. The real fix will have to wait for after the release.
19645
19646 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
19647
19648         * icall.c: fix memory leak when getting type members.
19649
19650 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19651
19652         * reflection.c: added more pubtoken special cases.
19653
19654 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
19655
19656         * class.c: handle field offset correctly when class size
19657         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
19658
19659 2003-06-20  Martin Baulig  <martin@ximian.com>
19660
19661         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
19662         *image' field.
19663
19664 2003-06-20  Martin Baulig  <martin@ximian.com>
19665
19666         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
19667
19668 2003-06-20  Martin Baulig  <martin@ximian.com>
19669
19670         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
19671         just distinguish between variables in registers and variables at
19672         an offset relative to a register.
19673
19674 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19675
19676         * icall.c: #ifdef out latest changes until mcs is fixed.
19677
19678 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19679
19680         * icall.c: return members in metadata order.
19681
19682 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
19683
19684         * icall.c: avoid infinite loop in GetTimeZoneData.
19685
19686 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
19687
19688         * icall.c: added Marshal.Prelink/All icalls.
19689
19690 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
19691
19692         * object.c, object.h: fix warnings and do some overflow checking
19693         when creating arrays.
19694
19695 2003-06-17  Dick Porter  <dick@ximian.com>
19696
19697         * file-io.h:
19698         * file-io.c: File attributes need to be tweaked slightly when
19699         passed from the managed to the w32 world.
19700
19701 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
19702         * profiler.h profiler-private.h profiler.c: Rework last patch
19703         based on suggestion by Paolo.
19704         
19705 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
19706
19707         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
19708         instruction level coverage data collection.
19709         * profiler.h profiler.c (: Added new callback function which can be
19710         used by the profiler to limit which functions should have coverage
19711         instrumentation.
19712         * profiler.c (mono_profiler_load): Call g_module_build_path to
19713         generate the file name of the profiler library.
19714
19715 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
19716
19717         * profiler.c, profiler.h, profiler-private.h: added basic block 
19718         coverage profiling API.
19719
19720 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
19721
19722         * reflection.c (mono_reflection_create_runtime_class): Add support
19723         for events in dynamically generated code.
19724
19725         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
19726         not allocated.
19727
19728 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
19729
19730         * icall.c: when getting timezone info, return reasonable values if we
19731         can't get the actual data.
19732
19733 2003-06-14  Dick Porter  <dick@ximian.com>
19734
19735         * threads.c (start_wrapper): Remove the reference to the thread
19736         object in the TLS data, so the thread object can be finalized.
19737         This won't be reached if the thread threw an uncaught exception,
19738         so those thread handles will stay referenced :-( (This is due to
19739         missing support for scanning thread-specific data in the Boehm GC
19740         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
19741
19742 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
19743
19744         * reflection.c: ensure streams and tables are first allocated with
19745         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
19746
19747 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
19748
19749         * icall.c: fixed GetElementType for byrefs (bug# 44792).
19750
19751 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
19752
19753         * reflection.c (mono_reflection_create_runtime_class): Add support for
19754         properties to dynamically created classes.
19755         * reflection.c: Fix a few places where non-MonoObjects were inserted
19756         into the tokens hashtable.
19757
19758 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19759
19760         * object.c: some support to handle out of memory exceptions.
19761
19762 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
19763
19764         * marshal.c (mono_marshal_get_native_wrapper): support reference
19765         return types
19766
19767 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19768
19769         * object.h, object.c: more portability stuff from Bernie Solomon.
19770         Unexport mono_object_allocate(). Added mono_object_unbox ().
19771         Set exitcode when an unhandled exception is thrown.
19772
19773 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
19774
19775         * marshal.c (mono_marshal_get_native_wrapper): use custom
19776         marshaler for return types.
19777
19778 2003-06-10  Dick Porter  <dick@ximian.com>
19779
19780         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
19781         ip_mreq is available
19782
19783 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
19784
19785         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
19786         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
19787         by Bernie Solomon <bernard@ugsolutions.com>.
19788
19789 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
19790
19791         * gc.c (mono_gc_init): Avoid error message on shutdown when
19792         GC_DONT_GC=1 is used.
19793
19794         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
19795         New icall to return the GUID of a module.
19796
19797 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
19798
19799         * class.c: ensure instance size always includes the parent's size
19800         even whem class size is set explicitly (fixes bug#44294).
19801
19802 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19803
19804         * profiler.h, profiler.c: made the simple profiler thread-safe,
19805         get more accurate timing info. Allow the loading of an
19806         externally-developed profiler module.
19807
19808 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
19809
19810         * marshal.c (mono_marshal_get_native_wrapper): improved
19811         class/byref arguments.
19812         (mono_marshal_get_native_wrapper): better string marshaling support.
19813
19814 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
19815
19816         * class.c: ensure .pack and .size are handled correctly and
19817         simplified layout of static fields.
19818
19819 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
19820
19821         * appdomain.c
19822         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
19823
19824         * loader.c (mono_lookup_pinvoke_call): look for modules in the
19825         current directory (fix bug 44008)
19826
19827 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
19828
19829         * marshal.c (mono_marshal_get_native_wrapper): started support for
19830         custom marshalers.
19831         (mono_delegate_to_ftnptr): consider marshalling specifications
19832
19833 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
19834
19835         * reflection.c, reflection.h: emit custom marshal info.
19836
19837 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19838
19839         * object.c: free the GError.
19840         * icall.c: added CloseEvent_internal.
19841         * threads.[ch]:
19842         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
19843         call.
19844
19845 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
19846
19847         * loader.c (mono_method_get_signature): Add support for dynamic
19848         assemblies.
19849
19850 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
19851
19852         * reflection.c: fixed bug #43905.
19853
19854 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
19855
19856         * class.c, domain.c, icall.c, metadata.h, object.h: support for
19857         handling TypedReference and ArgIterator.
19858         * loader.c, loader.h: added function to get signature at call site.
19859
19860 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
19861
19862         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
19863         data readonly. Buglets and warning fixes. Some MethodSpec support.
19864
19865 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
19866
19867         * class.h, class.c, object.c: remove relative numbering support.
19868
19869 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
19870
19871         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
19872         free the string, until we get a chance to fix Gtk#
19873
19874 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19875
19876         * marshal.c: revert last patch.
19877
19878 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
19879
19880         * icall.c: updates for new mono_class_vtable() not calling
19881         the type constructor anymore.
19882
19883 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19884
19885         * object.h, object.c: separate vtable creation from type
19886         initialization. Make running the .cctor thread safe.
19887
19888 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
19889
19890         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
19891
19892 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
19893
19894         * loader.c (mono_get_method): consider calling convention
19895
19896 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
19897
19898         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
19899         to return the invisible global type for a module.
19900
19901         * reflection.c (mono_image_build_metadata): Emit global fields too.
19902
19903 2003-05-20  Peter Williams  <peterw@ximian.com>
19904
19905         * loader.c (mono_lookup_internal_call): Add a few newlines.
19906
19907 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
19908
19909         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
19910         literal strings.
19911
19912         * appdomain.c (set_domain_search_path): Recalculate search path when
19913         AppDomainSetup.PrivateBinPath changes.
19914
19915         * object.c (mono_class_compute_gc_descriptor): It turns out some
19916         parts of the class libs (like System.Thread) holds pointers to
19917         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
19918         to treat native int a pointer type here.
19919         
19920 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
19921
19922         * appdomain.h, domain.c: add hashtable for jump target resolution.
19923
19924 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
19925
19926         * reflection.h reflection.c icall.c: Added new icalls 
19927         GetManifestResourceInfoInternal, GetModulesInternal and support
19928         infrastructure.
19929
19930 2003-05-16  Dick Porter  <dick@ximian.com>
19931
19932         * icall.c:
19933         * file-io.h:
19934         * file-io.c: Implement System.IO.MonoIO::GetTempPath
19935
19936 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
19937
19938         * object.c: mono_store_remote_field: little fix to previous patch.
19939
19940 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
19941
19942         * class.c: add constructors to array classes.
19943         * icall.c: special case array construction for InternalInvoke (),
19944
19945 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
19946
19947         * class.h class.c reflection.c object.c: Added support for field
19948         defaults in dynamically generated classes.
19949
19950 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
19951
19952         * reflection.c: properly encode charset for ddlimport.
19953
19954 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
19955
19956         * threads.c: allow compiling without GC.
19957
19958 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
19959
19960         * appdomain.h, object.c, object.h, threads.c, threads.h: added
19961         handling of thread static data.
19962
19963 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
19964
19965         * reflection.h, reflection.c: added mono_custom_attrs_free ().
19966
19967 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
19968
19969         * class.c (mono_array_class_get): always set the serializable flags
19970         (mono_array_class_get): always set the SEALED attribute for array types
19971
19972 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
19973
19974         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
19975         attributes (fix for bug 42021).
19976
19977 2003-05-12  Dick Porter  <dick@ximian.com>
19978
19979         * gc.c: Don't run finalizers when the finalizer thread is
19980         finishing up, because the default domain has already been
19981         destroyed.
19982
19983 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
19984
19985         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
19986         value is null, we should throw an exception.   This is slightly
19987         different than the other conventions used for the constructor.
19988
19989 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19990
19991         * socket-io.c: fixed windows build.
19992
19993 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19994
19995         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
19996
19997 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
19998
19999         * object.c (mono_string_new_wrapper): Compatibility fix for MS
20000         compilers.
20001
20002 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
20003
20004         * class.c (mono_class_layout_fields): Add experimental GC aware
20005         auto layout facility. Requires class library changes to work correctly.
20006
20007         (mono_class_setup_vtable): Avoid overriding explicit interface
20008         method implementations. Fixes iface3.exe test.
20009
20010         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
20011         object reference.
20012         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
20013         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
20014
20015         * metadata.h: Add new type classification macro which determines
20016         whenever the type holds an object reference.
20017
20018 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
20019
20020         * marshal.c (mono_marshal_get_native_wrapper): cleanups
20021
20022 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
20023
20024         * gc.c (finalizer_thread): Work around a GC bug.
20025
20026 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
20027
20028         * marshal.c (emit_struct_conv): allow unions
20029
20030         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
20031
20032 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
20033
20034         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
20035
20036 2003-05-06  Martin Baulig  <martin@ximian.com>
20037
20038         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
20039
20040 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20041
20042         * socket-io.c:
20043         (Select_internal): allow NULLs, don't create arrays if not needed.
20044         Coupled with Socket.cs changes.
20045
20046         * threadpool.c:
20047         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
20048         register a finalizer for it that will close the semaphore handle. This
20049         fixes the leak and make Lupus' test run with > 4080 loops.
20050
20051 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
20052
20053         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
20054         Jerome Laban (bug #42287)
20055
20056 2003-05-02  Martin Baulig  <martin@ximian.com>
20057
20058         * debug-mono-symfile.h
20059         (MonoSymbolFile): Moved declaration into mono-debug.h.
20060         (MonoDebugMethodJitInfo): Likewise.
20061         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
20062         argument.
20063         (_mono_debug_address_from_il_offset): Take a
20064         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
20065
20066         * mono-debug.h
20067         (MonoDebugDomainData): New struct.
20068         (mono_debug_get_domain_data): New function.
20069         (mono_debug_add_method): Take an additional `MonoDomain *'
20070         argument.
20071         (mono_debug_source_location_from_address): Likewise.
20072         (mono_debug_il_offset_from_address): Likewise.
20073         (mono_debug_address_from_il_offset): Likewise.
20074
20075 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
20076
20077         * reflection.c: one more check for null type in custom attrs.
20078
20079 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20080
20081         * reflection.c: avoid warning (comparison is always false due to limited
20082         range of data type).
20083
20084 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20085
20086         * icall.c: throw an exception in Type.GetField if the argument 'name'
20087         is NULL.
20088
20089 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
20090
20091         * reflection.c: fixed handling of enums in named arguments to custom
20092         attributes (bug #42123).
20093
20094 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
20095
20096         * reflection.c: use the right array element type and handle
20097         a null for a Type argument, too.
20098
20099 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
20100
20101         * reflection.c: handle arrays as arguments to custom attributes.
20102
20103 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
20104
20105         * reflection.c: handle a string value in a custom attr
20106         ctor that takes an object.
20107
20108 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
20109
20110         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
20111         (fix bug #42063)
20112
20113 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
20114
20115         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
20116
20117 2003-04-27  Martin Baulig  <martin@ximian.com>
20118
20119         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
20120         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
20121         MONO_DEBUGGER_EVENT_BREAKPOINT.
20122         (mono_breakpoint_trampoline_code): Removed.
20123         (mono_debugger_event_handler): The last argument is now a
20124         `guint32'.
20125         (mono_debugger_insert_breakpoint_full): Removed the
20126         `use_trampoline' argument.
20127         (mono_debugger_method_has_breakpoint): Likewise.
20128         (mono_debugger_trampoline_breakpoint_callback): Renamed to
20129         mono_debugger_breakpoint_callback(); take the method and
20130         breakpoint number as arguments.
20131
20132 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
20133
20134         * metadata.c: fix off by one when loading parameters attributes.
20135
20136 2003-04-24  Martin Baulig  <martin@ximian.com>
20137
20138         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
20139
20140 2003-04-24  Martin Baulig  <martin@ximian.com>
20141
20142         * mono-debug-debugger.c: Moved all code which interacts with the
20143         Mono Debugger here.
20144
20145         * debug-mono-symfile.c: This code now just deals with the symbol
20146         file itself, the debugger code is now in mono-debug-debugger.c.
20147
20148 2003-04-23  Martin Baulig  <martin@ximian.com>
20149
20150         * mono-debug.c (mono_debug_source_location_from_il_offset):
20151         New method; like mono_debug_source_location_from_address(), but
20152         takes an IL offset instead of a machine address.
20153
20154 2003-04-23  Martin Baulig  <martin@ximian.com>
20155
20156         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
20157         `line' field; this is now computed by the debugger.
20158
20159 2003-04-23  Martin Baulig  <martin@ximian.com>
20160
20161         * mono-debug.[ch]: New files.  This is the new debugging interface.
20162
20163         * mono-debug-debugger.[ch]: New files.  Moved all code which
20164         interacts with the Mono Debugger here.
20165
20166 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
20167
20168         * domain.c (mono_init): initialize mono_defaults.monitor_class
20169
20170 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
20171
20172         * reflection.c (method_encode_code): Add a spicy exception to help
20173         future compiler authors.
20174
20175 2003-04-21  Martin Baulig  <martin@ximian.com>
20176
20177         * icall.c
20178         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
20179         Make this work with relative pathnames; g_filename_to_uri() needs
20180         an absolute filename.
20181
20182 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
20183
20184         * icall.c: Track name changes in Object and ValueType.
20185
20186 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
20187
20188         * metadata.c (mono_type_stack_size): size should be a multiple of
20189         sizeof (gpointer)
20190
20191 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20192
20193         * gc.c:
20194         (internal_domain_finalize): moved into mono_domain_finalize. No need
20195         to create another thread because the finalizers will be run in the
20196         finalizer thread.
20197         
20198         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
20199         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
20200         to be run (MS does this too).
20201
20202 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
20203
20204         * object.c (mono_class_compute_gc_descriptor): Update comment.
20205
20206         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
20207
20208         * image.h: Add synchronized wrapper cache.
20209
20210         * image.c (do_mono_image_open): Initialize cache.
20211
20212         * reflection.c (create_dynamic_mono_image): Initialize cache.
20213
20214 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20215
20216         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
20217         ves_icall_System_Buffer_ByteLengthInternal.
20218
20219 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
20220
20221         * reflection.c: setup klass->nested_in earlier. Allow
20222         a dash in the assembly name.
20223
20224 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
20225
20226         * metadata.c (mono_type_to_unmanaged): dont access
20227         type->data.klass for MONO_TYPE_OBJECT
20228         (mono_type_to_unmanaged): consider System.Delegate class
20229
20230 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
20231
20232         * class.c: just setup supertypes in the proper place instead of
20233         initializing the full element class for arrays.
20234
20235 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
20236
20237         * class.c: ensure the element class of arrays is initialized.
20238         Setup the supertype info for array classes, too.
20239
20240 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
20241
20242         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
20243
20244 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20245
20246         * Makefile.am: re-added -m option when running cygpath. This way,
20247         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
20248         separator.
20249         * mono-config.c: same codepath for locating mono config file for WIN32
20250         and the rest.
20251         * assembly.c: if mono_assembly_setrootdir is called, don't override
20252         the value set.
20253
20254 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20255
20256         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
20257         MONO_ASSEMBLIES variable.
20258
20259 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
20260
20261         * icall.c: added Assembly::GetNamespaces() icall.
20262
20263 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20264
20265         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
20266
20267 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
20268
20269         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
20270         * object.c: fixed bug in the construction of vtable for proxies
20271
20272 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
20273
20274         * object.c (mono_array_new): Mark mono_array_new as an icall.
20275
20276 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20277
20278         * class.c: fixed test for public method when overriding interfaces.
20279         Closes bug #40970.
20280
20281 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
20282
20283         * appdomain.h, domain.c: added mono_domain_foreach() to
20284         be able to access the currently loaded appdomains.
20285         * object.c: make string interning work across sppdomains.
20286         Mark some functions for use as icalls.
20287
20288 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
20289
20290         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
20291
20292         * reflection.h reflection.c: Allocate long living data using 
20293         GC_MALLOC_ATOMIC so the collector does not need to scan it.
20294
20295         * reflection.c: Double the allocation size in streams instead of
20296         increasing it, to prevent unneccesary copying on large assemblies.
20297         
20298         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
20299         creation if the assembly does not have the Run flag set.
20300
20301 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
20302
20303         * class.h: avoid the C++ keywords in header files (Jerome Laban
20304         spotted and fixed this).
20305
20306 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20307
20308         * object.c:
20309         (mono_unhandled_exception): fill in the arguments for the
20310         UnhandledException event. Only trigger that event for the default
20311         domain (as MS does).
20312
20313 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
20314
20315         * object.c: Improve typed allocation stuff based on suggestions from
20316         Paolo. Also turn it on if the GC library supports it.
20317
20318 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
20319
20320         * object.c object.h class.h: Added experimental typed allocation
20321         facility using the interfaces in gc_gcj.h.
20322
20323         * os/gc_wrapper.h: Added new include files.
20324         
20325 2003-04-03  Martin Baulig  <martin@ximian.com>
20326
20327         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
20328         which is not yet enabled by default.
20329
20330         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
20331         functions.
20332         (mono_gc_lock, mono_gc_unlock): New static functions.
20333
20334         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
20335         functions; stop/start the world for the garbage collector.  This
20336         is using the windows API; we need to complete the SuspendThread()/
20337         ResumeThread() implementation in the io-layer to make this work on Unix.
20338         (mono_gc_push_all_stacks): New public function; tells the garbage
20339         collector about the stack pointers from all managed threads.
20340
20341 2003-04-03  Martin Baulig  <martin@ximian.com>
20342
20343         * object.h (MonoThread): Added `gpointer stack_ptr'.
20344
20345         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
20346
20347 2003-04-03  Martin Baulig  <martin@ximian.com>
20348
20349         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
20350
20351 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
20352
20353         * reflection.c (typebuilder_setup_fields): Initialize field.first and
20354         field.last.
20355
20356 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
20357
20358         * loader.c (mono_lookup_internal_call): Report the corlib that is
20359         out of sync.
20360
20361 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
20362
20363         * icall.c (ves_icall_type_GetTypeCode): fixed check for
20364         System.DBNull (it's class not valuetype).
20365
20366 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
20367
20368         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
20369         if the array method was already assigned a token (fixes bug#40646).
20370
20371 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
20372
20373         * reflection.c (mono_reflection_get_type): Attempt type resolve even
20374         if no assembly is given.
20375
20376 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
20377
20378         * metadata.h: Added the new tables.
20379
20380         * row-indexes.h: Added definitions for new tables.
20381
20382         * metadata.c: Add schemas for new tables, and add support for
20383         computing the sizes of them.
20384
20385         * class.c: Update for handling the new type cases.
20386
20387 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
20388
20389         * metadata.h (MONO_TYPE_IS_VOID): new macro
20390
20391 2003-03-31  Martin Baulig  <martin@ximian.com>
20392
20393         * threads.h (MonoThreadCallbacks): Added `thread_created'.
20394
20395         * threads.c (mono_thread_new_init): Call `thread_created' in the
20396         mono_thread_callbacks.
20397
20398 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
20399
20400         * loader.h: added marshalbyrefobject_class to mono_defaults
20401         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
20402         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
20403           generation of output parameters.
20404           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
20405         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
20406           contextbound and the target object belongs to the context of the caller.
20407         * object.h: added context and unwrapped_server variables in MonoRealProxy.
20408         * object.c: Implemented support for interfaces and abstract classes
20409           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
20410           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
20411
20412 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
20413
20414         * class.h class.c (mono_class_is_subclass_of): New function.
20415         
20416         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
20417         routines for most common case (calls from ArrayList::ToArray).
20418
20419         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
20420         routine so programs which call Environment::Exit() can be profiled.
20421
20422         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
20423         Added MONO_ARCH_SAVE_REGS.
20424
20425         * icall.c (ves_icall_type_is_subtype_of): Use new function.
20426
20427 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
20428
20429         * blob.h: Add a couple of new MonoType types definitions.
20430
20431         * tabledefs.h: Add a couple of new call convs.
20432
20433 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
20434
20435         * reflection.h (MonoReflectionDynamicAssembly): track changes in
20436         the layout of the class.
20437
20438         * reflection.c (alloc_table): double the size on overflow to avoid
20439         unnecessary copying.
20440
20441         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
20442         avoid filling out metadata tables and blobs. Also set mb->ilgen to
20443         null so it can be garbage collected.
20444         
20445 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
20446
20447         * reflection.c (mono_reflection_get_type): Return the resolved type
20448         only if it is in the assembly we searched.
20449
20450         * reflection.c (ensure_runtime_vtable): Initialize method slots.
20451
20452         * class.c (mono_class_setup_vtable): Set the slot of the overriding
20453         method.
20454
20455 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20456
20457         * appdomain.c:
20458         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
20459         the right one is 'file:///blah', but MS allows it.
20460         * assembly.c:
20461         (mono_assembly_open): allow 'file://blah'
20462
20463         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
20464
20465 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
20466
20467         * socket-io.c: fixes bug #40310.
20468
20469 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
20470
20471         * reflection.c (mono_reflection_parse_type): handle deeply nested
20472         types correctly.
20473
20474         * reflection.c (mono_image_create_token): Use unique token values
20475         since they will be put into a hash table.
20476
20477         * class.c (mono_class_setup_vtable): If a method occurs in more than
20478         one place in the vtable, and it gets overriden, then change the
20479         other occurances too.
20480
20481         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
20482         object as return type.
20483
20484 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20485
20486         * icall.c: Deleted "ToString" implementation for double and float
20487         because they are full implemented in managed code.
20488
20489 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20490
20491         * reflection.c, reflection.h: implemented and exported functions
20492         to retrieve info about custom attributes.
20493
20494 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20495
20496         * appdomain.c: moved Uri handling to assembly.c
20497         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
20498         work when using a file Uri in *nix and windows.
20499
20500         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
20501         GetReferencedAssemblies.
20502
20503 2003-03-18  Dick Porter  <dick@ximian.com>
20504
20505         * icall.c: Rename a couple of internal calls
20506
20507         * threads.c: Set the thread state to Stopped when a thread exits.
20508         Fixes bug 39377.
20509
20510 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
20511
20512         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
20513         New icall.
20514
20515         * object.c (mono_class_vtable): fix warning.
20516
20517 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
20518
20519         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
20520
20521         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
20522         memory.
20523         (method_encode_clauses): Create exception info structures in the right
20524         order.
20525         (mono_reflection_setup_internal_class): Initialize supertypes field.
20526
20527         * class.c object.c: Handle interfaces which implement other interfaces 
20528         correctly.
20529
20530         * class.h class.c: Move the supertypes array initialization code into 
20531         a separate function so it can be used for dynamic types too. Also call
20532         it earlier, in mono_class_init(), since it can be used before the
20533         type is initialized.
20534
20535 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20536
20537         * Makefile.am:
20538         * assembly.c:
20539         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
20540
20541         * appdomain.c:
20542         * appdomain.h:
20543         * marshal.c:
20544         * object.c: remove warnings.
20545
20546 2003-03-13  Martin Baulig  <martin@ximian.com>
20547
20548         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
20549         (MonoDebugLexicalBlockEntry): New types.
20550
20551         * debug-mono-symfile.c
20552         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
20553
20554 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20555
20556         * process.c: ret can be any non-zero value accroding to MS doc.
20557
20558 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
20559
20560         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
20561         fixing a warning for a miss-used prototype, would have cause
20562         random memory corruption.
20563
20564 2003-03-07  Martin Baulig  <martin@ximian.com>
20565
20566         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
20567         getting really annoying ....
20568
20569 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
20570
20571         * reflection.c (fixup_method): added support for array methods.
20572
20573 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
20574
20575         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
20576         (pointed out by Michael Adams).
20577
20578 2003-03-04  Dick Porter  <dick@ximian.com>
20579
20580         * icall.c: Temporarily reverted the Double and Single ToString()
20581         change, because it broke nunit.
20582
20583 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
20584
20585         * object.h, threads.h: make include files compatible with C++
20586         (patch by Jerome Laban <jlaban@wanadoo.fr>).
20587
20588 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20589
20590         * icall.c: Erased ToString helper functions for Double and Single.
20591         Now, that implementations ar all in managed code (Double and Single
20592         Formatters).
20593
20594 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
20595
20596         * appdomain.c: Added method for initializing the default context of
20597         a domain. Added internal call for getting the default context.
20598         * appdomain.h: Added context variable in MonoDomain struct.
20599         * domain.c: mono_domain_set also sets the default context of the domain
20600         * icall.c: Mapped internal method InternalGetDefaultContext.
20601         * object.c: mono_object_get_virtual_method returns always a remoting
20602         wrapper if the object is a transparent proxy.
20603         mono_runtime_invoke_array: when creating an object by calling the
20604         constructor, if the created object is a proxy, then the constructor should
20605         be called using the a remoting wrapper.
20606
20607 2003-03-03  Dick Porter  <dick@ximian.com>
20608
20609         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
20610         variable so it compiles on solaris.  Problem spotted by
20611         Christopher Taylor <ct@cs.clemson.edu>
20612
20613 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20614
20615         * appdomain.c:
20616         (get_info_from_assembly_name): don't leak value.
20617
20618         * icall.c:
20619         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
20620         result.
20621
20622 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
20623
20624         * assembly.c: export mono_image_load_references ().
20625         * class.c: handle function pointers. mono_class_from_name() now
20626         supports nested type names directly.
20627
20628 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
20629
20630         * reflection.h reflection.c: Encode already created dynamic methods 
20631         and fields correctly as a DEF instead of a REF.
20632
20633         * reflection.c: Get rid of the force_ref argument to 
20634         mono_image_typedef_or_ref since it was wrong in the first place.
20635
20636         * string-icalls.c: add error checking to string constructors according
20637         to the MSDN docs.
20638
20639         * reflection.c: Emit types in the order their TypeBuilders were 
20640         created. Previously, a new table index was assigned to each type before
20641         the tables were emitted. This was wrong because the signature blob
20642         might already refer to a type by its original table index.
20643
20644 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
20645
20646         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
20647         change.
20648         
20649 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20650
20651         * Makefile.am: make assemblies dir have \ instead of / on windows.
20652
20653 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
20654
20655         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
20656         iterate over the NESTEDCLASS table using a linear search since the
20657         table is not guaranteed to be sorted by the secondary key.
20658
20659         * class.c (mono_class_create_from_typedef): fixed up call to
20660         mono_metadata_nesting_typedef.
20661         
20662 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
20663
20664         * marshal.c (mono_string_to_byvalstr): clear the memory as
20665         suggested by Jerome Laban <jlaban@wanadoo.fr>
20666
20667 2003-02-26  Dick Porter  <dick@ximian.com>
20668
20669         * process.c: Cope with padding in .rsrc blocks
20670
20671 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
20672
20673         * metadata.h: reverted the filter_len change, it breaks reflection
20674         
20675 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
20676
20677         * metadata.h: added a new field to store the filter_len
20678         
20679
20680 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
20681
20682         * reflection.c: handle custom attributes for types and members
20683         created with Reflection.Emit (bug#38422).
20684
20685 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
20686
20687         * reflection.c: define RTSpecialName automatically for constructors for
20688         compatibility with MS.NET.
20689
20690         * reflection.c (mono_reflection_create_runtime_class): initialize
20691         nested_in field of dynamically created classes.
20692
20693 2003-02-22  Martin Baulig  <martin@ximian.com>
20694
20695         * debug-mono-symfile.h: Incremented version number.
20696
20697 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
20698
20699         * object.h icall.c process.c: fix warnings.
20700
20701 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
20702
20703         * appdomain.h appdomain.c:
20704         (mono_domain_try_type_resolve): split the 
20705         name_or_tb argument into a name and a tb argument.
20706         (mono_domain_has_type_resolve): new function to check whenever the
20707         application has registered a TypeResolve event handler.
20708         
20709         * icall.c reflection.h reflection.c: move the type resolve logic into
20710         mono_reflection_get_type () so it will be invoked when 
20711         Assembly::GetType () is called.
20712
20713         * reflection.c:
20714         (mono_reflection_get_type): renamed to get_type_internal.
20715         (mono_reflection_get_type): fixed type name generation so it works 
20716         for nested types too.
20717         (mono_reflection_get_type): call has_type_resolve () to avoid the 
20718         costly type name generation if there is no resolve event handler.
20719
20720 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
20721
20722         * class.c, image.c: load exported types from file references.
20723
20724 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
20725
20726         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
20727           used to cache the managed methods used to create proxies and make 
20728           remote invocation of methods.
20729         * class.h: Added in MonoVTable a flag to indicate that a class needs 
20730           to be remotely created.
20731         * object.c: Modified the method mono_class_vtable(). It now initializes 
20732           the remote flag of the vtable. Modified mono_object_new_specific(), 
20733           so now it checks the remote flag.
20734         * icall.c: Added a couple of internal methods, one for enabling instance 
20735           creation interception for a type, and one for creating objects bypassing
20736           the remote check.
20737
20738 2003-02-18  Martin Baulig  <martin@ximian.com>
20739
20740         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
20741         New interncall to get a method's metadata token.
20742
20743         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
20744         New interncall for the debugger.
20745
20746 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
20747
20748         * class.c (mono_class_setup_vtable): allocate supertype array
20749
20750 2003-02-18  Martin Baulig  <martin@ximian.com>
20751
20752         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
20753
20754 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20755
20756         * reflection.c:
20757         (assembly_name_to_aname): jump over unknown properties (i've found
20758         something like: 'type, assembly, version=xxx, custom=null, public...',
20759         so now will ignore custom=null and still get the rest of the values).
20760
20761 2003-02-17  Dick Porter  <dick@ximian.com>
20762
20763         * threads.c: Have Thread.Start() wait for a semaphore to signal
20764         that the thread has set up all its local data.  This fixes bug
20765         34323, where Abort() raced the new thread's TLS data.
20766
20767         Also removes the handle_store() call from start_wrapper, because
20768         threads are now always created suspended and there is no longer a
20769         race between the parent and child threads to store the info.
20770
20771 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
20772
20773         * image.c: explain the #- heap issue in a message, hopefully
20774         avoiding FAQs on mono-list.
20775
20776 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20777
20778         * icall.c:
20779         (GetEntryAssembly): if the domain has not invoked
20780         AppDomain.ExecuteAssembly yet, return the assembly of the default
20781         AppDomain.
20782
20783 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
20784
20785         * class.c (mono_ldtoken): make it work in dynamic assemblies.
20786
20787 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
20788
20789         * metadata.c, reflection.c: simple speedup to type hash
20790         and equals code.
20791
20792 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
20793
20794         * image.c, image.h, class.c, assembly.c: move module loading
20795         to MonoImage. When loading metadata, consider alignemnet from
20796         the start of metadata, not from the metadata address in memory.
20797
20798 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
20799
20800         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
20801         AssemblyBuilder objects. Factored out custom attribute creation into
20802         a separate function.
20803         (create_custom_attr): new function to create custom attributes.
20804
20805 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
20806
20807         * Makefile.am: Got tired of typing the full pathname to pedump.
20808         Until there is another option, am installing this.
20809
20810 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
20811
20812         * class.c (class_compute_field_layout): always set field->parent 
20813         (mono_ldtoken): use mono_defaults.fieldhandle_class;
20814
20815 2003-02-11  Dick Porter  <dick@ximian.com>
20816
20817         * threads-types.h:
20818         * monitor.c: Rewrote Monitor, making lock much faster and
20819         Pulse/Wait work as specified.  Also uses much fewer handles, and only
20820         creates them as needed.
20821
20822         * exception.c: Added SynchronizationLockException
20823
20824         * threads.c: Deleted old Monitor implementation.  The new one is
20825         in a new file.
20826
20827 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
20828
20829         * class.c: handled TypedReference type code. Set the correct size for
20830         class data. Setup interface_offsets for interface classes, too.
20831
20832 2003-02-09  Martin Baulig  <martin@ximian.com>
20833
20834         * debug-mono-symfile.h: Reflect latest symbol writer changes.
20835
20836 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
20837
20838         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
20839         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
20840         * object.c: fixed mono_object_get_virtual_method () for interfaces.
20841         * verify.c: check for code that runs after the end of the method.
20842
20843 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
20844
20845         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
20846         "System.Math::Round2".
20847         * sysmath.h: Added Floor, Round and Round2 definitions.
20848         * sysmath.c: Modified certain functions that were not 100% compliant
20849         with MS.NET (math precision) and added the implementation of Floor,
20850         Round and Round2.
20851
20852 2003-02-07  Martin Baulig  <martin@ximian.com>
20853
20854         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
20855
20856 2003-02-07  Martin Baulig  <martin@ximian.com>
20857
20858         * debug-mono-symfile.c: Reflected latest symwriter changes.
20859         (mono_debug_create_mono_symbol_file): Removed.
20860         (mono_debug_open_mono_symbol_file): Take an argument which
20861         specifies whether to create a dynamic symbol file.
20862
20863 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
20864
20865         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
20866
20867 2003-02-05  Martin Baulig  <martin@ximian.com>
20868
20869         * reflection.c (mono_image_build_metadata): Make this public,
20870         protect it against being called multiple times, don't create
20871         resources and don't build the compressed metadata here.
20872         (mono_image_create_pefile): Do this here.
20873
20874         * icall.c
20875         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
20876
20877 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20878
20879         * socket-io.c: fixed bug #36322.
20880
20881 2003-02-06  Piers Haken <piersh@friskit.com>
20882
20883         * appdomain.[ch]:
20884         * class.h:
20885         * debug-mono-symfile.c:
20886         * icall.c:
20887         * loader.c:
20888         * mono-config.c:
20889         * monosn.c:
20890         * reflection.c:
20891         * socket-io.c: warning cleanups
20892
20893 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
20894
20895         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
20896         function. works like remoting invoke, but does a check for the Proxy first.
20897
20898 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
20899
20900         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
20901
20902 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
20903
20904         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
20905         array of pointers.
20906         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
20907         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
20908
20909         * object.c (mono_store_remote_field_new): used by the new jit
20910         instead of mono_store_remote_field
20911         (mono_load_remote_field_new): used by the new jit
20912         instead of mono_load_remote_field
20913
20914 2003-02-05  Patrik Torstensson
20915
20916         * appdomain.c: changed unload to take the domain id instead
20917         of domain
20918         
20919         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
20920
20921
20922 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20923
20924         * appdomain.c: don't look for assemblies in ApplicationBase if
20925         PrivateBinPathProbe is set.
20926
20927 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20928
20929         * object.c: make the first argument in main_args contain the absolute
20930         path to the assembly. Fixes bug #37511.
20931
20932 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20933
20934         * icall.c: get correct UTC offset for countries not using daylight
20935         time saving. Fixes bug #30030.
20936
20937 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20938
20939         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
20940         and 1 are the family).
20941
20942 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
20943
20944         * icall.c (ves_icall_InternalExecute): removed wrong assertion
20945
20946         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
20947
20948 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
20949
20950         * reflection.c: added support for SignatureHelper tokens, which is
20951         needed by the Calli opcode.
20952
20953         * reflection.h: track changes to SignatureHelper class.
20954
20955         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
20956
20957 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20958
20959         * appdomain.c: fixed loading assemblies from PrivateBinPath.
20960
20961 2003-02-03  Patrik Torstensson
20962         * appdomain.[c|h], domain.c : 
20963          - Added support for getting a domain via domain id
20964          - Support for setting and getting domain from System.AppDomain 
20965            (used in cross appdomain channel)
20966          - Added support for get/set for a MonoAppContext on a thread 
20967            (Context class in System.Runtime.Remoting.Contexts),
20968          - Removed hack in Get/SetData and ExecuteAssembly.
20969         
20970         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
20971         the managed world to get control when a proxy is created.
20972
20973         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
20974         
20975 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
20976
20977         * icall.c
20978         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
20979         Populate the codebase field as well.
20980
20981 2003-02-02  Martin Baulig  <martin@ximian.com>
20982
20983         * debug-mono-symfile.c
20984         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
20985         (mono_debug_symfile_add_method): Allow interncalls.
20986
20987 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20988
20989         * icall.c: throw parse exception if strtod fails or the string is empty.
20990
20991 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
20992
20993         * marshal.c: handle object type separately from defined
20994         class types.
20995
20996 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
20997
20998         * marshal.c: handle NATIVE_LPSTR for strings when it's
20999         explicitly specified.
21000
21001 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
21002
21003         * reflection.c, reflection.h, icall.c: setup the reflection
21004         handle cache for ModuleBuilders and AssemblyBuilders.
21005
21006 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
21007
21008         * reflection.c (reflection_methodbuilder_to_mono_method): set
21009         pinvoke flag
21010
21011 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21012
21013         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
21014
21015 2003-01-29  Dick Porter  <dick@ximian.com>
21016
21017         * threads.c: No need for the fake_thread kludge now that Thread
21018         doesn't run a class constructor
21019         
21020 2003-01-29  Dick Porter  <dick@ximian.com>
21021
21022         * threads.c: Use g_direct_hash instead of the rather bogus
21023         g_int_hash
21024
21025 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
21026
21027         * marshal.c (mono_marshal_get_native_wrapper): add check for null
21028         (fix pinvoke12.exe)
21029         (mono_marshal_get_struct_to_ptr): generate valid IL code
21030         (mono_marshal_get_ptr_to_struct): generate valid IL code
21031         (*): correctly set sig->pinvoke, we need to memdup the signature
21032         to do that
21033
21034 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
21035
21036         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
21037         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
21038
21039 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
21040
21041         * profiler.c: provide more callers information.
21042
21043 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
21044
21045         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
21046
21047         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
21048
21049         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
21050
21051 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21052
21053         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
21054         exception instead of going into an infinite loop on dates which it 
21055         can't yet handle.
21056
21057         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
21058         out-of-range exception if needed.
21059
21060         * class.c (mono_class_setup_vtable): allow a virtual method to provide
21061         an implementation for an interface method and to override an inherited
21062         method at the same time. 
21063         Imagine a scenario when a virtual method is used to override a
21064         virtual abstract method in a parent class, and this same method 
21065         provides an implementation for an method inherited from an interface. 
21066         In this case, the interface resolution code will set im->slot, which 
21067         means that the virtual method override pass will skip this method 
21068         which means a pointer to the abstract method inherited from the parent
21069         will remain in the vtable of this non-abstract class.
21070
21071         * class.c: (mono_class_setup_vtable): continue search for a real 
21072         method if only an abstract method is found.     
21073
21074 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
21075
21076         * reflection.c: add size to encoding for ByValStr and ByValArray
21077         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
21078
21079 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21080
21081         * class.c (mono_class_setup_vtable): pass the override info as an
21082         argument.
21083
21084         * class.c (mono_class_setup_vtable): set the slot of overriding methods
21085         correctly.
21086         
21087         * reflection.c (ensure_runtime_vtable); add support for method 
21088         overrides.
21089         
21090 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21091
21092         * reflection.c (resolution_scope_from_image): Hack to work to work with
21093         dynamic assemblies.
21094
21095         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
21096         added a 'force_ref' argument to force this function to allways return 
21097         a TypeRef. This is needed by mono_image_get_memberref_token ().
21098         
21099 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21100
21101         * reflection.c (mono_image_get_type_info): interfaces really don't have
21102         a parent.
21103
21104         * reflection.c (mono_image_basic_init): fill out missing fields of
21105         image structure.
21106
21107         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
21108         dynamic assemblies. This is required so dynamic assemblies show up in
21109         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
21110         Type::GetType() etc. This is consistent with MS behaviour.
21111
21112         * image.c image.h reflection.c: add newly created classes to the name 
21113         cache so mono_class_get () will find them.      
21114
21115 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21116
21117         First part of changes to get IKVM.NET running under mono.
21118         
21119         * appdomain.h, appdomain.c: added new function 
21120         mono_domain_try_type_resolve() which will emit TypeResolve events. 
21121         This function will call AppDomain::DoTypeResolve to do the actual work.
21122
21123         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
21124         moved existing code dealing with dynamic tokens to a new function 
21125         called mono_reflection_lookup_dynamic_token (). This function will 
21126         raise TypeResolve events when appropriate. Since reflection.c is not 
21127         part of libmetadata, a new hook function called 
21128         mono_lookup_dynamic_token() is added to class.c which will call this.
21129
21130         * assembly.h assembly.c: make the invoke_load_hook function public,
21131         so it can be called for dynamic assemblies.
21132
21133         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
21134
21135         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
21136         type isn't found.
21137
21138         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
21139         MonoGHashTable, since it contains pointers to objects which the GC 
21140         needs to track.
21141
21142         * assembly.c (search_loaded): remove unused variable.
21143         
21144 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
21145
21146         * object.c: fixed issue exposed by gcc-generated IL programs
21147         that use RVA data for pointers.
21148
21149 2003-01-25  Martin Baulig  <martin@ximian.com>
21150
21151         * threads.c (start_wrapper): Moved the initialization of
21152         `start_func' above the mono_new_thread_init() call to which we
21153         pass it as argument.
21154
21155 2003-01-24  Martin Baulig  <martin@ximian.com>
21156
21157         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
21158         the MonoThread pointer.
21159
21160 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
21161
21162         * icall.c: Rename `PowImpl' to Pow.
21163
21164 2003-01-23  Dick Porter  <dick@ximian.com>
21165
21166         * threads.c (start_wrapper): Create a Thread object if needed, so
21167         the Main() thread can do the class initialisation in a subthread
21168         that has been set up to allow managed code execution.
21169
21170         Pass the thread ID instead of the MonoThread pointer to the thread
21171         start and attach callbacks.  This change is required, because the
21172         jit thread start callback must be called _before_ the Thread
21173         object can be created.
21174         
21175         (mono_thread_init): Removed much object creation code that is no
21176         longer needed.  No managed code is called from here now.
21177
21178         * object.c (mono_runtime_exec_managed_code): Create a subthread
21179         for Main, and call back to the runtime to use it.
21180         Set the exit code when Main exits.
21181
21182         * gc.c: Make sure domain finalisation happens in a subthread.
21183         Re-enable threaded GC, fixing bug 31333 (again).
21184
21185         * environment.c: System.Environment internall calls (so far just
21186         ExitCode is here, the others are still in icall.c)
21187
21188         * appdomain.c (mono_runtime_cleanup): All threads running managed
21189         code should have finished before mono_runtime_cleanup() is
21190         reached, so no need to clean up threads.
21191
21192 2003-01-22  Martin Baulig  <martin@ximian.com>
21193
21194         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
21195         `gpointer func' arguments.      
21196         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
21197         but added `MonoThread *thread' argument.
21198         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
21199
21200         * threads.c (mono_new_thread_init): Added `gpointer func' argument
21201         and pass it to the mono_thread_start_cb callback.
21202         (mono_install_thread_callbacks): New public function to install a
21203         set of callbacks which are set by the debugger.
21204         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
21205
21206 2003-01-22  Martin Baulig  <martin@ximian.com>
21207
21208         * Makefile.am: Install debug-mono-symfile.h.
21209
21210 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
21211
21212         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
21213
21214 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
21215
21216         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
21217         * class.c (mono_ptr_class_get): correctly set access levels of pointers
21218         (mono_array_class_get): correctly set access levels of arrays
21219
21220 2003-01-20      Patrik Torstensson
21221         * image.h (MonoAssemblyName): changed major, minor, build, revision
21222         from signed to unsigned.
21223
21224 2003-01-20  sean kasun <skasun@azstarnet.com>
21225
21226         * reflection.c (load_cattr_value): Now this handles
21227         MONO_TYPE_SZARRAY.  Fixes bug #35629
21228
21229 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
21230
21231         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
21232         integer value
21233
21234 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21235
21236         * decimal.c: fixed bug #26056.
21237
21238 2003-01-17  Martin Baulig  <martin@ximian.com>
21239
21240         * gc.c: Raise an ExecutionEngineException instead of using g_error().
21241
21242 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21243
21244         * exception.[ch]:
21245         (mono_get_exception_type_initialization): new function.
21246
21247         * object.c: throw a TypeInitializationException when an exception is
21248         thrown invoking the class constructor.
21249
21250 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21251
21252         * reflection.c: fixed attribute reading.
21253
21254 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21255
21256         * icall.c:
21257         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
21258         provided, look for the type in the calling assembly and then in
21259         mscorlib; if the assembly name is provided, only try that one.
21260
21261 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
21262
21263         * object.c: register the vtable before there is a chance it's
21264         queried again recursively.
21265
21266 2003-01-13  Duncan Mak  <duncan@ximian.com>
21267
21268         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
21269         gc-internal.h. 
21270         
21271 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
21272
21273         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
21274
21275 2003-01-11  Martin Baulig  <martin@ximian.com>
21276
21277         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
21278         this to 20 for the release.
21279
21280 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
21281
21282         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
21283
21284         * loader.c (mono_method_get_marshal_info): bug fix
21285
21286         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
21287         structures with explicit layout
21288
21289 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
21290
21291         * profiler.c: made the output more readable (and sorted). 
21292         Added caller information for the allocation profiler.
21293
21294 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
21295
21296         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
21297
21298 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21299
21300         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
21301         to get value types.
21302         
21303 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
21304
21305         * object.c, profiler.h, profiler.c, profiler-private.h:
21306         Added object allocation profiler.
21307
21308 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
21309
21310         * reflection.h, reflection.c: handle global methods.
21311         Compress blob entries.
21312
21313 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
21314
21315         * marshal.c: fix compilation.
21316
21317 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
21318
21319         * loader.c (mono_method_get_marshal_info): impl.
21320
21321         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
21322
21323 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21324
21325         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
21326         for reference types.
21327
21328 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
21329
21330         * loader.c: fixed off by one error in loaded parameter names.
21331
21332 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
21333
21334         * marshal.c (mono_marshal_get_icall_wrapper): like
21335         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
21336         instead of a MonoMethod.
21337
21338 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21339
21340         * decimal.c: fixed bug #36537.
21341
21342 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
21343
21344         * marshal.c: throw a missing method exception if a
21345         P/Invoke method is not found.
21346
21347 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
21348
21349         * icall.c: allow a null this for constructors.
21350
21351 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
21352
21353         * icall.c: raise the proper exceptions if the arguments to the
21354         internal Invoke are incorrect.
21355
21356 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
21357
21358         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
21359
21360 2003-01-03  Martin Baulig  <martin@ximian.com>
21361
21362         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
21363
21364 2002-12-31  Martin Baulig  <martin@ximian.com>
21365
21366         * debug-mono-symfile.c: Completely rewrote the type section.
21367         Instead of using individual malloc()ed fields, we use one big
21368         continuous memory area and offsets into this area.
21369         See the comments in the source code for details.
21370
21371 2002-12-30  Martin Baulig  <martin@ximian.com>
21372
21373         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
21374
21375 2002-12-30  Martin Baulig  <martin@ximian.com>
21376
21377         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
21378         line number table in this data blob instead of using an external
21379         pointer.
21380
21381 2002-12-28  Martin Baulig  <martin@ximian.com>
21382
21383         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
21384
21385 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
21386
21387         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
21388         as a boxed return type.
21389
21390 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
21391
21392         * appdomain.c
21393         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
21394         g_build_filename to properly get separators on the filename created.
21395
21396         * object.h: Small change, introduce MonoMarshalByRefObject to
21397         track the layout of that structure in the C# universe as we make
21398         changes there.
21399
21400 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
21401
21402         * object.c: removed assert to allow static fields on interfaces.
21403         * loader.c: a TypeSpec may be used for any type, not just arrays.
21404
21405 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21406
21407         * class.c, class.h: added mono_class_array_element_size ().
21408         Ignore static methods in interfaces.
21409
21410 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21411
21412         * threads.c: fixed the build under cygwin.
21413
21414 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21415
21416         * reflection.c: handle nullref constants. Allocate keys for
21417         reflection handles with the GC.
21418
21419 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21420
21421         * threads.c, threads.h: added mono_thread_get_abort_signal()
21422         to get a suitable signal for thread abort.
21423
21424 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21425
21426         * metadata.c: fix handling of ExportedType table.
21427
21428 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21429
21430         * icall.c: added WriteWindowsDebugString internal call.
21431
21432 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21433
21434         * reflection.h: added fields to match C# implementation.
21435
21436 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21437
21438         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
21439
21440 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
21441
21442         * gc.h, gc-internal.h: Rename header for GC internal calls to
21443         gc-internal.h from gc.h as to not clash with Boehm GC having its
21444         header installed as <gc.h> in outside include paths.
21445         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
21446         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
21447
21448 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21449
21450         * icall.c: assign minor, build and revision in FillName.
21451
21452 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
21453
21454         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
21455         Added support for running code generated by Reflection.Emit.
21456
21457 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21458
21459         * appdomain.c: check for NULL argument in LoadFrom.
21460
21461 2002-12-10  Dick Porter  <dick@ximian.com>
21462
21463         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
21464
21465 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21466
21467         * appdomain.c: fix buglet when building exe file name.  Handle full
21468         assembly name (needed after latest changes to AssemblyName).
21469         * image.c:
21470         (mono_image_close): free some hashtables.
21471
21472 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
21473
21474         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
21475         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
21476         on some systems (redhat 7.3) 
21477
21478 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
21479
21480         * threads.c: delete the critical section of a sync block,
21481         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
21482
21483 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
21484
21485         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
21486
21487 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21488
21489         * appdomain.[ch]: handle the assembly preload event to try loading the
21490         assemblies using the paths we have in the current domain.
21491
21492         * assembly.[ch]: created an assembly preload hook that is called to try
21493         loading the assembly by other means that the ones provided here.
21494
21495         * domain.c: initialize the domain search path.
21496
21497         From now on, assemblies (TODO: except corlib and System) are loaded
21498         according to these rules when using mono_assembly_load ():
21499
21500                 1. It tries to load the assembly from the ApplicationBase
21501                 of the current domain appending .dll and .exe (TODO: have to
21502                 try loading from name/name.dll and name/name.exe).
21503
21504                 2. It tries the search path specified in PrivateBinPath for the
21505                 current domain (if any).
21506
21507                 3. Previous behavior.
21508
21509 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
21510
21511         * icall.c: implemented GetInterfaceMap() related icall.
21512         * domain.c, loader.h: load MethodInfo in mono_defaults.
21513
21514 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21515
21516         * gc.c: disable the finalizer thread for now, untill all the issues
21517         with it are resolved.
21518
21519 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21520
21521         * string-icalls.c: handle embedded nulls in string ctor when the
21522         length is specified.
21523
21524 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21525
21526         * class.c: look for explicit interface implementation in parent
21527         classes, too.
21528
21529 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
21530
21531         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
21532
21533 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21534
21535         * gc.c: protect handles with a critical section.
21536
21537 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21538
21539         * icall.c:
21540         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
21541         parameters. If no assembly specified, try getting the type from all
21542         the assemblies in the current domain, else, load the assembly and get
21543         the type from it.
21544
21545 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21546
21547         * marshal.c: applied patch from Aleksey Demakov that fixes
21548         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
21549
21550 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21551
21552         * icall.c: fixed get_location.
21553
21554 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
21555
21556         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
21557         declarations to make it work with older gcc. 
21558
21559         * loader.c (mono_get_method): set signature->pinvoke for native calls
21560
21561 2002-11-20  Dick Porter  <dick@ximian.com>
21562
21563         * threads.c (mono_thread_init): Set the main thread's handle
21564
21565 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21566
21567         * gc.c: allow compilation without GC support. Changed to match the
21568         mono coding style.
21569
21570 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21571
21572         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
21573
21574 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
21575
21576         * reflection.c: set a public key token on the core assemblies.
21577
21578 2002-11-18  Dick Porter  <dick@ximian.com>
21579
21580         * threads.c: Split out some thread initialisation so that other
21581         files can set the start callback function.
21582
21583         * gc.c: Run finalisers in a separate thread, to avoid stack
21584         overflow.  Fixes bug 31333.
21585
21586         * appdomain.c: Set up GC finalisation thread.
21587
21588         * reflection.c: 
21589         * object.c: 
21590         * domain.c: Use gc.h macros for GC_malloc
21591         
21592 2002-11-15  Dick Porter  <dick@ximian.com>
21593
21594         * threadpool.c: 
21595         * threads.c:
21596         * appdomain.c: Removed mono_runtime_init_with_attach(),
21597         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
21598         merging the extra parameter with the existing function.  Removed
21599         unneeded code in mono_thread_attach().
21600
21601 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
21602
21603         * image.c (mono_image_loaded_by_guid): a method to get loaded
21604         images by guid. 
21605         (load_metadata_ptrs): we store the guid as string.
21606
21607 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
21608
21609         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
21610
21611         * metadata.c (mono_guid_to_string): imported method form Zoltan
21612         Varga (slightly modified)
21613
21614         * assembly.c (mono_assembly_open): load precompiled code
21615
21616         * loader.h (MonoMethod): we store the method token for use in the
21617         aot compiler. 
21618
21619 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21620
21621         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
21622         the hook function called when an assembly is loaded.
21623         
21624         * domain.c: Modified file.
21625         (mono_domain_assembly_load): removed hash table insertion of assemblies.
21626
21627         Fixes bug #33196.
21628
21629 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
21630
21631         * reflection.c: Map PEFileKind to the value expected by the WinNT
21632         image loader. 
21633
21634 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21635
21636         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
21637         Read until the buffer is filled completely.
21638
21639 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21640
21641         * icall.c: implemented MonoType.InternalGetEvent ().
21642
21643 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21644
21645         * appdomain.c: implemented InitAppDomainSetup. Delayed
21646         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
21647         the entry_assembly.
21648
21649         * assembly.c: base_dir is now an absolute path ending with
21650         G_DIR_SEPARATOR.
21651
21652         * icall.c: modified get_location according to the above changes.
21653
21654         * object.c: init AppDomain.SetupInformation for the default domain after
21655         we have the entry assembly.
21656
21657         * domain.c: when unloading a domain, setup = NULL.
21658
21659 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
21660
21661         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
21662
21663 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
21664
21665         * object.h, object.c: introduced mono_object_get_virtual_method ()
21666         to lookup the method invoked on an object when a callvirt is done on
21667         a method.
21668         * icall.c: make MethodInfo::Invoke() always do a virtual call.
21669
21670 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21671
21672         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
21673         current domain when loaded an assembly and failed to load it.
21674
21675         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
21676
21677 2002-10-31  Dick Porter  <dick@ximian.com>
21678
21679         * icall.c: 
21680         * file-io.h: 
21681         * file-io.c: Return the error status in a parameter, as the
21682         GetLastError() value has long since been blown away if we try and
21683         look it up in a subsequent internal call invocation.  Delete the
21684         GetLastError() internal call, because it's useless.
21685
21686 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
21687
21688         * class.[ch]: added cast_class to fix bug 29517
21689
21690 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
21691
21692         * marshal.c: create valid IL code in the filter clause:
21693         the new JIT is less forgiving:-)
21694
21695 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21696
21697         * icall.c: removed get_property internal call.
21698
21699 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
21700
21701         * appdomain.h domain.c: Added an ID to appdomains.
21702         
21703         * threads.c threads.h icall.c: Implement icall
21704         Thread:GetDomainID(), and remove unused icall 
21705         CurrentThreadDomain_internal.
21706
21707 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21708
21709         * icall.c: Don't recurse through the base types in GetConstructor.
21710         Fixes bug #32063. 
21711
21712 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
21713
21714         * mempool.h, mempool.c: added mono_mempool_empty() and
21715         mono_mempool_stats().
21716
21717 2002-10-23  Dick Porter  <dick@ximian.com>
21718
21719         * file-io.c: 
21720         * file-io.h: 
21721         * icall.c: Added MonoIO.GetFileType internal call
21722
21723 2002-10-17  Dick Porter  <dick@ximian.com>
21724
21725         * appdomain.c (mono_runtime_cleanup): Don't signal the async
21726         delegate semaphore before waiting for all threads to finish,
21727         because new threads can also call async delegates.  Fixes bug
21728         32004.
21729
21730         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
21731         of 3 seconds, in case another async job is queued.  (This part is
21732         needed because the bug fix reintroduced the 3s exit lag.)  This
21733         makes the mono_runtime_shutdown flag superfluous.
21734
21735 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
21736
21737         * reflection.c: include ehader size in method section headers.
21738         Really check for suplicated modules entries.
21739
21740 2002-10-17  Martin Baulig  <martin@gnome.org>
21741
21742         * debug-mono-symfile.c: Added back support for locals.
21743
21744 2002-10-14  Martin Baulig  <martin@gnome.org>
21745
21746         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
21747         MONO_TYPE_VOID.
21748
21749 2002-10-14  Martin Baulig  <martin@gnome.org>
21750
21751         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
21752         mono_class_get() instead of looking in the class cache. 
21753
21754 2002-10-13  Martin Baulig  <martin@gnome.org>
21755
21756         * debug-mono-symfile.c: Set version number to 28, include the
21757         signature in method names.
21758
21759 2002-10-13  Martin Baulig  <martin@gnome.org>
21760
21761         * debug-mono-symfile.h: Set version number to 27.
21762
21763 2002-10-11  Martin Baulig  <martin@gnome.org>
21764
21765         * gc.c: Don't register/unregister NULL pointers as disappearing links.
21766
21767 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21768
21769         * metadata.c, metadata.h: added helper function to allocate signatures.
21770
21771 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21772
21773         * icall.c: added internal call to get the location of machine.config.
21774
21775 2002-10-08  Martin Baulig  <martin@gnome.org>
21776
21777         * debug-mono-symfile.c: Ignore classes with a pending init for the
21778         moment.
21779
21780 2002-10-03  Dick Porter  <dick@ximian.com>
21781
21782         * threads.c: Freebsd pthread_t is a pointer
21783
21784 2002-10-03  Dick Porter  <dick@ximian.com>
21785
21786         * socket-io.c: Implemented GetHostName_internal
21787
21788 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21789
21790         * mono-config.c:
21791         (mono_config_parse_file): don't leak the text.
21792
21793 2002-10-02  Martin Baulig  <martin@gnome.org>
21794
21795         * debug-mono-symfile.c: Added support for methods.
21796
21797 2002-10-01  Martin Baulig  <martin@gnome.org>
21798
21799         * debug-mono-symfile.c: Don't emit methods and line numbers for
21800         the dynamic symbol file, just write the type table.  We can easily
21801         have an external helper program which creates a symbol file for an
21802         IL file.        
21803
21804 2002-10-01  Dick Porter  <dick@ximian.com>
21805
21806         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
21807         Only add the handle to the cleanup array when we're about to
21808         launch the thread.  Bug 31425 deadlocked when the test was run on
21809         mono under w32.
21810
21811 2002-10-01  Martin Baulig  <martin@gnome.org>
21812
21813         * debug-mono-symfile.c: Added support for properties.
21814
21815 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21816
21817         * reflection.c: unaligned store fix from Mark Crichton
21818         <crichton@gimp.org>.
21819
21820 2002-09-27  Martin Baulig  <martin@gnome.org>
21821
21822         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
21823         New interncall.
21824
21825 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21826
21827         * assembly.h, assembly.c: use a sane API to hook into the assembly
21828         loading process instead of a useless special-purpouse hack
21829         (ngen needs a hook, too, for example).
21830
21831 2002-09-27  Dick Porter  <dick@ximian.com>
21832
21833         * threads.c (mono_thread_init): Call GetCurrentProcess() so
21834         io-layer can set up some process handle info.  Not needed on w32,
21835         but doesn't hurt either.
21836
21837         * process.c: Pass the program name in the second parameter to
21838         CreateProcess, so the path is searched.  Include the working
21839         directory. Implemented process name, process enumeration, and some
21840         process detail internal calls.
21841         
21842         * icall.c: Added internal calls for process lookup, and some
21843         process details
21844
21845 2002-09-26  Martin Baulig  <martin@gnome.org>
21846
21847         * assembly.c (mono_install_open_assembly_hook): New global
21848         function to install a function to be invoked each time a new
21849         assembly is loaded.
21850         (mono_assembly_open): Run this callback function if set.
21851
21852         * debug-mono-symfile.c: Put back line numbers for the dynamic
21853         symbol file and also record the .il file as source file.  This
21854         allows us to install the temporary symbol file as `file.dbg' just
21855         like a compiler-generated one.
21856
21857 2002-09-26  Nick Zigarovich <nick@chemlab.org>
21858
21859         * Corrected typo in gc.c (BOHEM vs BOEHM).
21860
21861 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21862
21863         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
21864         GetProperties. Also avoid calling g_slist_length in GetProperties and
21865         GetMethods.
21866
21867 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21868
21869         * reflection.c: avoid unaligned stores (bug spotted by
21870         Mark Crichton  <crichton@gimp.org>).
21871
21872 2002-09-25  Martin Baulig  <martin@gnome.org>
21873
21874         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
21875         instead of guint64 for addresses and added prologue/epilogue info.
21876
21877 2002-09-25  Martin Baulig  <martin@gnome.org>
21878
21879         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
21880         store line number info.  For the dynamic symbol file, we only need
21881         to provide the JIT generated dynamic line number info for the dynamic
21882         symbol file.
21883
21884 2002-09-25  Martin Baulig  <martin@gnome.org>
21885
21886         * debug-mono-symfile.h: Incremented version number.
21887
21888 2002-09-24  Martin Baulig  <martin@gnome.org>
21889
21890         * class.c (mono_debugger_class_init_func): New global function
21891         pointer variable.
21892         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
21893         call it.
21894
21895         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
21896         function.  This is called via the mono_debugger_class_init_func
21897         hook to add all types to the dynamic type table.
21898         (ves_icall_MonoDebugger_GetType): New interncall to get a class
21899         from its metadata token.
21900
21901         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
21902         New interncall for the debugger.
21903
21904 2002-09-24  Nick Drochak <ndrochak@gol.com>
21905
21906         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
21907         before using it in case it is null.
21908         
21909 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21910
21911         * metadata.c: allow custom modifiers in local var signatures
21912         (bug spotted by Zoltan Varga).
21913
21914 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21915
21916         * class.c: deal with the <Module> class that may have a NULL vtable.
21917         Eliminate warnings.
21918
21919 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21920
21921         * image.c, image.h: more strong name helpers.
21922         * monosn.c: more work: convert pem keys to cryptoapi format.
21923
21924 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
21925
21926         * string-icalls.c: speedup IndexOf.
21927
21928 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21929
21930         * icall.c: updates from Zoltan.2.Varga@nokia.com.
21931
21932 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21933
21934         * icall.c: cleanup: use mono_object_domain ().
21935
21936 2002-09-23  Martin Baulig  <martin@gnome.org>
21937
21938         * debug-mono-symfile.c: Improved type support.
21939
21940 2002-09-22  Martin Baulig  <martin@gnome.org>
21941
21942         * debug-mono-symfile.c: Added support for reference types and strings.
21943
21944 2002-09-22  Martin Baulig  <martin@gnome.org>
21945
21946         * debug-mono-symfile.c: Started to work on the type table.
21947
21948 2002-09-21  Martin Baulig  <martin@gnome.org>
21949
21950         * debug-mono-symfile.c: Largely reworked the symbol table format.
21951         The symbol table is now incrementally updated each time a new
21952         method is added.  We're now also using our own magic and version
21953         so that you don't need to recompile all your classes if the
21954         dynamic table changes.
21955         (mono_debug_update_mono_symbol_file): Removed.
21956         (mono_debug_symfile_add_method): New function to add a method.
21957
21958 2002-09-21  Martin Baulig  <martin@gnome.org>
21959
21960         * icall.c
21961         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
21962         New interncall.
21963
21964         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
21965         New interncall to get a method from its metadata token.
21966
21967 2002-09-21  Martin Baulig  <martin@gnome.org>
21968
21969         * debug-mono-symfile.c: Create type table.
21970
21971 2002-09-20  Martin Baulig  <martin@gnome.org>
21972
21973         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
21974
21975 2002-09-20  Martin Baulig  <martin@gnome.org>
21976
21977         * debug-mono-symfile.c: Provide information about params and locals.
21978
21979 2002-09-20  Martin Baulig  <martin@gnome.org>
21980
21981         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
21982         New interncall.
21983
21984         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
21985         interncall to get a method from its metadata token.
21986
21987 2002-09-20  Martin Baulig  <martin@gnome.org>
21988
21989         * debug-mono-symfile.c: Added a few checks for method->header
21990         being non-NULL.  This should never happen, but for the moment
21991         let's use a g_warning() rather than a g_assert().
21992
21993 2002-09-19  Mark Crichton  <crichton@gimp.org>
21994
21995         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
21996         even if support for it isn't present.  Added an #ifdef to fix this.
21997
21998         * socket-io.c: Added checks back for Solaris support.
21999
22000 2002-09-19  Martin Baulig  <martin@gnome.org>
22001
22002         * debug-mono-symfile.c (read_string, write_string): Reflect latest
22003         changes in the symbol file format.
22004
22005 2002-09-18  Martin Baulig  <martin@gnome.org>
22006
22007         * debug-mono-symfile.c: Set version number to 21.
22008
22009 2002-09-18  Dick Porter  <dick@ximian.com>
22010
22011         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
22012         on netbsd.  Fixes bug 30051.
22013
22014 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22015
22016         * reflection.c:
22017         (set_version_from_string): little fix.
22018
22019 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22020
22021         * monosn.c, Makefile.am: added strong name utility.
22022         * reflection.h, reflection.c: implemented delayed signing,
22023         locale, version and hash id assembly attributes.
22024
22025 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22026
22027         * loader.c, metadata.c: load param attributes in signatures.
22028
22029 2002-09-16  Martin Baulig  <martin@gnome.org>
22030
22031         * debug-mono-symfile.c: Added string table with all method names.
22032
22033 2002-09-14  Martin Baulig  <martin@gnome.org>
22034
22035         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
22036         fast method lookup.
22037
22038 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22039
22040         * reflection.c: record the public key token of referenced assemblies.
22041
22042 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22043
22044         * image.c, image.h: added functions to get the strong name and the
22045         public key of an assembly.
22046         * pedump.c: use them.
22047
22048 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
22049
22050         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
22051
22052 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
22053
22054         * marshal.c (mono_marshal_get_managed_wrapper): Added
22055         MONO_TYPE_BOOLEAN 
22056
22057 2002-09-11  Martin Baulig  <martin@gnome.org>
22058
22059         * gc.c: Call GC_unregister_disappearing_link() on all links when
22060         finalizing them, this is necessary to aviod a crash in boehm's
22061         finalize handler.
22062
22063 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22064
22065         * gc.c: handle GetTarget for finalized objects spotted and fixed by
22066         nick@chemlab.org.
22067
22068 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
22069
22070         * icall.c: implemented MonoType::Module.
22071         * reflection.c, reflection.h: mono_module_get_object () from
22072         Tomi Pakarinen <tomi.pakarinen@welho.com>.
22073
22074 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22075
22076         * icall.c: ignore overridden methods in GetMethods ().
22077         Fix for FieldInfo::SetValue().
22078         * object.c: handle float/double in runtime invoke.
22079
22080 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22081
22082         * object.c: allow a constructor to be called again on an object.
22083
22084 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22085
22086         * class.h, class.c: move field layout code to it's own function and
22087         export it. Get an interface id earlier. Move fields in MonoClass
22088         so they are more cache friendly and align the bitfields.
22089         * loader.c: temporary handle get_param_names() for a runtime method.
22090         * reflection.c, reflection.h: more code to handle runtime creation of
22091         types.
22092
22093 2002-09-09  Martin Baulig  <martin@gnome.org>
22094
22095         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
22096         signature with the pinvoke field being set for the actual call.
22097
22098 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22099
22100         * icall.c: removed some unused icalls. Start of map of glib charsets
22101         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
22102
22103 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22104
22105         * debug-helpers.c: break infinite loop (found and fixed by
22106         Holger Arnold <harnold@gmx.de>).
22107
22108 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22109
22110         * icall.c: target may be null in create_delegate.
22111
22112 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22113
22114         * marshal.c: handle a boolean return type.
22115
22116 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22117
22118         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
22119
22120 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
22121
22122         * gc.c: fix weakreferences.
22123
22124 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
22125
22126         * icall.c: added icall to get default codepage.
22127
22128 2002-09-03  Dick Porter  <dick@ximian.com>
22129
22130         * threads.h: 
22131         * threads.c: Use MonoThread instead of MonoObject where
22132         apropriate.
22133
22134         Store running thread objects in a hash table, so that we have all
22135         the info to hand when waiting for them to finish
22136         (means we don't need OpenThread() any more, so mingw builds should
22137         be fully functional again.)
22138
22139         * verify.c:
22140         * object.h: Added thread ID to MonoThread
22141
22142 2002-09-03  Martin Baulig  <martin@gnome.org>
22143
22144         * icall.c (System.Reflection.Assembly::get_location): New interncall.
22145
22146 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22147
22148         * icall.c: fixed leak in get_temp_path. Thanks lupus.
22149
22150 2002-09-03  Martin Baulig  <martin@gnome.org>
22151
22152         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
22153         argument to store the end address of the disassembled instruction.
22154
22155         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
22156         here from debug-symfile.h.
22157         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
22158         JIT into this struct.
22159         (MonoSymbolFile): Added `char *image_file' field.
22160         (MonoDebugGetMethodFunc): Removed.
22161         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
22162         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
22163         (mono_debug_find_method): New method.
22164
22165         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
22166         create a full symbol file.
22167         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
22168         and static symbol files.
22169         (mono_debug_find_method): The symbol file keeps an internal method hash,
22170         call this to get a MonoDebugMethodInfo from a MonoMethod.
22171
22172         * debug-symfile.[ch]: Removed.
22173
22174 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
22175
22176         * image.c (do_mono_image_open): Remove linker version check.
22177
22178 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
22179
22180         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
22181         wrappers for instance methods.
22182         
22183 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22184
22185         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
22186
22187 2002-08-28  Dick Porter  <dick@ximian.com>
22188
22189         * Makefile.am: Export HOST_CC for w32 builds
22190
22191 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22192
22193         * file-io.c process.c: MonoString are null terminated, no
22194         need for mono_string_to_utf16() anymore.
22195
22196 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22197
22198         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
22199
22200 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
22201
22202         * icall.c, reflection.h: speedup System.MonoType.
22203
22204 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22205
22206         * reflection.c: allow null as the value of a string argument in
22207         custom attributes constructors.
22208
22209 2002-08-27  Martin Baulig  <martin@gnome.org>
22210
22211         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
22212         `trampoline_address' field.
22213
22214 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
22215
22216         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
22217         check (fixes bug #29486) 
22218
22219 2002-08-27  Martin Baulig  <martin@gnome.org>
22220
22221         * debug-mono-symfile.c: Changed the file format in a way that allows us
22222         open it read-only and to use a specially malloced area for all the
22223         dynamic data.  We can now also generate a symbol file on-the-fly if we're
22224         debugging IL code and there is no MCS generated symbol file for it.
22225
22226 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22227
22228         * object.c: added a define for a good string and array
22229         creation speedup (not enabled by default because we need to deal with
22230         the synch stuff).
22231
22232 2002-08-26  Martin Baulig  <martin@gnome.org>
22233
22234         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
22235         function to create a dynamic symbol file.  This is used by the
22236         debugger to create a symbol file for IL code on-the-fly.
22237
22238 2002-08-26  Martin Baulig  <martin@gnome.org>
22239
22240         * loader.c (mono_lookup_pinvoke_call): Include the error message
22241         from g_module_error() in the error message.
22242
22243 2002-08-24  Martin Baulig  <martin@gnome.org>
22244
22245         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
22246         function to update the symbol file.  The symbol file is mmap()ed
22247         writable, but private.  This allows us to install the symbol file
22248         together with the assembly.
22249
22250 2002-08-24  Martin Baulig  <martin@gnome.org>
22251
22252         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
22253         but they can read the new symbol file format which mcs is now creating.
22254
22255         * debug-symfile.c (mono_debug_find_source_location): Moved to
22256         debug-mono-symfile.c; this is now operating on the new symbol file.
22257
22258 2002-08-23  Martin Baulig  <martin@gnome.org>
22259
22260         * debug-helpers.c (mono_method_desc_from_method): New function to get
22261         a MonoMethodDesc from a MonoMethod.
22262
22263 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
22264
22265         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
22266         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
22267
22268 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
22269
22270         * string-icalls.[ch]: make helper methods static.
22271
22272 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22273
22274         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
22275         types to it and to SetValueInternal.
22276
22277         * object.c: Moved handle_enum label to its proper place. This was the
22278         f... bug! ;-)
22279
22280         This time i compiled mcs and gtk-sharp and they both work.
22281
22282 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22283
22284         * icall.c: reverted partially my previous patch until 
22285         object.c:set_value handles enums correcly.
22286
22287 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22288
22289         * icall.c:
22290         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
22291         (ves_icall_System_Environment_get_MachineName): removed warning when
22292         compiling under cygwin.
22293
22294 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22295
22296         * object.c: fixed field_get_value() for reference types.
22297
22298 2002-08-22  Dick Porter  <dick@ximian.com>
22299
22300         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
22301         Don't free a buffer while it's still needed.  Patch from Jonathan
22302         Liger <Jonathan.liger@wanadoo.fr>
22303
22304 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
22305
22306         * icall.c (ves_icall_System_Environment_get_Platform): Add new
22307         internal call.
22308
22309 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
22310
22311         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
22312         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
22313
22314         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
22315         we call unmanaged code which throws exceptions.
22316
22317 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22318
22319         * appdomain.h: added per-domain entry_assembly.
22320         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
22321         arguments.
22322         * icall.c: Assembly::GetEntryAssembly icall.
22323         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
22324         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
22325
22326 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
22327
22328         * appdomain.h, gc.c: added mono_domain_finalize ().
22329
22330 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22331
22332         * object.c:
22333         (mono_print_unhandled_exception): changed g_warning by g_printerr
22334         because g_log has a 1024 characters limit (yeah, i got a big stack
22335         trace). Don't print exception name, that should be in ToString 
22336         returned string.
22337
22338 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22339
22340         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
22341         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
22342
22343 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22344
22345         * object.c:
22346         (mono_print_unhandled_exception): after previous commit, i realized
22347         that MS calls ToString on the exception. I changed this function to
22348         do that. This way we get stack_trace for free.
22349
22350 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22351
22352         * object.c:
22353         (mono_print_unhandled_exception): invoke Message property instead of
22354         getting 'message' field from Exception. Don't allocate memory for
22355         'trace' and 'message' if not needed.
22356
22357 2002-08-18  Dick Porter  <dick@ximian.com>
22358
22359         * unicode.c: Fix asserts to match Encoder.cs checks
22360
22361 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22362
22363         * marshal.c: fix unaligned store issue and a few wrong
22364         opcode argument types.
22365
22366 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22367
22368         * icall.c: added GetUninitializedObjectInternal internal call.
22369
22370 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
22371
22372         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
22373         to the right domain.
22374
22375 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
22376
22377         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
22378
22379         * class.c (class_compute_field_layout): set blittable to false for Strings
22380
22381         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
22382
22383 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22384
22385         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
22386         first chunk of code to create types at runtime. Code to
22387         handle ReflectedType/DeclaringType. Make reflection handles
22388         domain specific.
22389
22390 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
22391
22392         * class.c: set correct name in arrays.
22393
22394 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
22395
22396         * appdomain.c (mono_domain_transfer_object): make it work with
22397         valuetypes. bug fixes.
22398
22399 2002-08-12  Dick Porter  <dick@ximian.com>
22400
22401         * object.h: Rename some parameters to avoid c++ keywords (Patch
22402         from Joseph Wenninger <kde@jowenn.at>)
22403
22404 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
22405
22406         * icall.c: added icall to implement Assembly.GetFile*.
22407
22408 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
22409
22410         * reflection.h, reflection.c: code to embed managed resources.
22411
22412 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22413
22414         * class.c: move all the type size stuff into
22415         class_compute_field_layout().
22416
22417 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22418
22419         * class.c: ensure enums have always the correct instance size.
22420         * unicode.c: remove wrong assert.
22421
22422 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22423
22424         * assembly.c: fix mem corruption issue.
22425         * image.h, image.c: added mono_image_get_resource () to access
22426         managed resources.
22427         * icall.c: implemented Assembly.EntryPoint property and some
22428         Managed Resources related internalcalls.
22429
22430
22431 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22432
22433         * image.c, image.h: impemented mono_image_get_entry_point ().
22434         * appdomain.c: use mono_image_get_entry_point.
22435
22436 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
22437
22438         * reflection.c: support the object type argument when loading
22439         custom attributes.
22440
22441 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
22442
22443         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
22444         String as return type.
22445
22446 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
22447
22448         * reflection.c: fix encoding of named args for custom attrs to match
22449         the ms implementation. Read them back when instantiating custom
22450         attributes.
22451
22452 2002-08-02  Radek Doulik  <rodo@ximian.com>
22453
22454         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
22455         by Dietmar as quick fix
22456         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
22457         16 as stack size, used on more places as quick fix before Dietmar
22458         will fix it properly
22459
22460 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
22461
22462         * object.h, object.c: added accessors for fields and properties.
22463
22464 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
22465
22466         * class.c, class.h: made mono_class_get_field_from_name ()
22467         loop on parent types.
22468         Added mono_class_get_property_from_name ().
22469
22470 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22471
22472         * class.c, class.h: move the code to setup the type vtable in its own
22473         function so that it can be reused also for types created at runtime.
22474         Eliminate the "class" identifier from the header file.
22475         * reflection.c: setup the vtable for enums so that we can create
22476         objects for use in SetConstant ().
22477
22478 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
22479
22480         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
22481         instead of the delegate itself as this pointer (bug #28383)
22482
22483 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
22484
22485         * marshal.c (mono_marshal_get_managed_wrapper): added return type
22486         conversions.
22487
22488 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22489
22490         * loader.c: don't set the pinvoke bit on icalls.
22491
22492 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
22493
22494         * debug-helpers.c (mono_method_full_name): only print a number to
22495         indicate wrapper type (so that the output is more readable in traces).
22496
22497 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
22498
22499         * class.c (mono_class_init): include method override patch from Paolo
22500
22501 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
22502
22503         * icall.c: fixed GetTypeCode().
22504
22505 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
22506
22507         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
22508         use real delegate invoke function to make it work with multicast
22509         delegates (fix bug# 28291).
22510
22511 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22512
22513         * object.c: load constant strings.
22514
22515 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22516
22517         * reflection.c: no magic numbers.
22518         * tabledefs.h: security action enum.
22519
22520 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22521
22522         * assembly.c: fix possible memory corruption.
22523
22524 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22525
22526         * reflection.h, reflection.c: added support for linking resources.
22527         * verify.c: check we have an updated corlib.
22528
22529 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
22530
22531         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
22532         string arrays.
22533         (mono_marshal_string_array): null terminate unmanaged string arrays.
22534         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
22535
22536 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22537
22538         * icall.c: Type.GetType () can now return also types from the
22539         calling assembly.
22540
22541 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22542
22543         * loader.h, loader.c: stack walking support.
22544         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
22545         GetCallingAssembly.
22546
22547 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
22548
22549         * marshal.c: added optimisations for blittable types 
22550
22551         * class.c (mono_array_class_get): do not set blittable attribute on arrays
22552         (mono_class_setup_mono_type): set blittable attribute for single
22553         and double.
22554
22555         * marshal.c (mono_string_utf8_to_builder): impl.
22556         (mono_string_builder_to_utf8): impl.
22557         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
22558
22559 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
22560
22561         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
22562         (mono_marshal_get_managed_wrapper): impl. byref types
22563
22564 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22565
22566         * icall.c:
22567         (search_method): don't display debug message. 
22568
22569 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
22570
22571         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
22572
22573 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
22574
22575         * appdomain.c: set the missing filename when throwing exception.
22576
22577 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
22578
22579         * metadata.c (mono_type_size): code cleanup
22580         (mono_type_stack_size): removed some test code
22581
22582 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
22583
22584         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
22585         mono_get_exception_file_not_found now.
22586
22587         * exception.c (mono_exception_from_name_two_strings): New version
22588         that will call a constructor with two string arguments. 
22589         (mono_get_exception_file_not_found): New helper routine, used to
22590         report file-not-found errors.
22591
22592 2002-07-20  Dick Porter  <dick@ximian.com>
22593
22594         * process.h:
22595         * process.c: Pass file handles to CreateProcess
22596         
22597         * icall.c:
22598         * file-io.h:
22599         * file-io.c: Implemented CreatePipe
22600
22601 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
22602
22603         * metadata.c (mono_get_param_info): set alignment for value types
22604
22605 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22606
22607         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
22608         Constify mono_domain_assembly_open().
22609         * loader.c: handle null namespace in icalls.
22610
22611 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
22612
22613         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
22614         (emit_str_to_ptr_conv): marshal object as structs
22615
22616         * metadata.c (mono_type_to_unmanaged): marshal object as structs
22617
22618         * marshal.c (mono_marshal_get_runtime_invoke): support value types
22619
22620 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
22621
22622         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
22623         (mono_marshal_get_native_wrapper): we an now return value types
22624
22625 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22626
22627         * verify.c: more checks implemented.
22628
22629 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
22630
22631         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
22632         (fix bug #27695)
22633         (mono_marshal_get_native_wrapper): allow byref arguments
22634         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
22635         impl. PtrToStringXXX methods
22636         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
22637         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
22638         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
22639         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
22640         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
22641
22642 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22643
22644         * reflection.c: fix buglet in parsing an assembly name.
22645
22646 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
22647
22648         * marshal.c (emit_ptr_to_str_conv): first impl.
22649
22650 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22651
22652         * object.c, class.h: cache the vtable in the class as suggested by
22653         vargaz@freemail.hu (Zoltan Varga).
22654
22655 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22656
22657         * class.h, loader.c: added mono_field_from_token().
22658         * verify.c: first cut of type checking code.
22659
22660 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
22661
22662         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
22663
22664 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
22665
22666         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
22667         (fix bug #27782)
22668         (mono_marshal_get_remoting_invoke): impl.
22669         (mono_delegate_begin_invoke): impl.
22670         (mono_mb_emit_save_args): impl.
22671         (mono_delegate_end_invoke): impl.
22672         (mono_marshal_get_delegate_begin_invoke):
22673         (mono_marshal_get_delegate_end_invoke):
22674         (mono_marshal_get_delegate_invoke): generate a special name for
22675         those methods (including the signature) and associate them whith
22676         the delegate class. 
22677
22678 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
22679
22680         * reflection.[ch]: 
22681         (mono_reflection_type_from_name): now it has a MonoImage parameter
22682         which is used as the default image to search the type in. If the image
22683         is NULL or getting the type from it fails, it defaults to corlib.
22684
22685         * icall.c: changed 1 call to mono_reflection_type_from_name to match
22686         new parameter.
22687
22688 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22689
22690         * reflection.c: update the parameter table index.
22691
22692 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22693
22694         * domain.c: don't include the mark byte in the string hash.
22695
22696 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22697
22698         * icall.cs: icall for Type.GetTypeCode ().
22699         * verify: a couple of fixes and disabled local initialization checks.
22700
22701 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
22702
22703         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
22704
22705         * debug-helpers.c (mono_method_full_name): print the type of the
22706         runtime wrapper
22707
22708         * metadata.c (mono_signature_hash): a hash function for signatures
22709         (mono_signature_hash): better hash algorithm
22710
22711         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
22712
22713         * debug-helpers.c (mono_method_full_name): this can now generate
22714         method names with signatures
22715
22716         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
22717         method dont have this pointers.
22718
22719 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22720
22721         * reflection.c: fixup typebuilder tokens.
22722         * image.c: fix buglet.
22723         * marshal.h: remove whitespace.
22724         * metadata.h, metadata.c: reinstate code that was removed.
22725         * verify.c: handle catch directives and fix another couple of bugs.
22726
22727 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
22728
22729         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
22730         (mono_marshal_get_native_wrapper): make it comp. with the old code
22731         (mono_marshal_get_native_wrapper): support boolean
22732         (mono_marshal_get_managed_wrapper): support more types
22733
22734 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
22735
22736         * class.c (class_compute_field_layout): compute class->blittable attribute.
22737
22738 2002-07-09  Dick Porter  <dick@ximian.com>
22739
22740         * threads.c: Make the thread cleaning up cope with threads that
22741         call ExitThread()
22742
22743 2002-07-08  Radek Doulik  <rodo@ximian.com>
22744
22745         * reflection.c (method_encode_code): use non-translated values to
22746         compute finally_start, this fixes exception handling on ppc, yay!
22747
22748         * decimal.h (struct signscale): fix endianess
22749
22750 2002-07-07  Radek Doulik  <rodo@ximian.com>
22751
22752         * reflection.c: swap box_val and not val
22753
22754 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
22755
22756         * reflection.c, reflection.h: handle full assembly info in type name.
22757         Handle Type arguments when loading custom attributes.
22758         * icall.c: updated to use new mono_reflection_type_from_name () method.
22759
22760 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22761
22762         * loader.c:
22763         (method_from_memberref): also print assembly name when method not found.
22764
22765 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22766
22767         * icall.c:
22768         (ves_icall_TypeGetProperties): fixed bug #27473. 
22769
22770 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22771
22772         * reflection.c: display image name and token when cannot find the
22773         .ctor for an attribute.
22774
22775 2002-07-05  Martin Baulig  <martin@gnome.org>
22776
22777         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
22778
22779 2002-07-04  Dick Porter  <dick@ximian.com>
22780
22781         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
22782         compile on mingw.  This will cause mingw builds to not wait for
22783         subthreads to terminate after the main thread does.  I've lodged a
22784         bug with the mingw developers for them to wrap OpenThread().
22785
22786 2002-07-03  Dick Porter  <dick@ximian.com>
22787
22788         * threads.c: Store thread IDs instead of handles, because
22789         GetCurrentThread() returns a pseudohandle and therefore stores
22790         useless values.  mono_thread_cleanup() continues checking the
22791         array of threads until it is empty, to cope with subthreads
22792         spawning new threads after the main thread has finished.
22793
22794         * profiler.h:
22795         * profiler.c:
22796         * profiler-private.h: Pass the thread ID to thread profiler
22797         functions, instead of a handle
22798
22799 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22800
22801         * verify.c: fixes to make it more usable.
22802         * pedump.c: added --verify code to verify IL code in an assembly.
22803
22804 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22805
22806         * reflection.c: turn errors into warnings to allow compiling corlib.
22807
22808 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
22809
22810         * reflection.c: add special cases to compile corlib.
22811
22812 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22813
22814         * reflection.c: handle properties with only a set method.
22815
22816 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
22817
22818         * opcodes.h: add enum with opcodes in opval order.
22819
22820 2002-07-01  Dick Porter  <dick@ximian.com>
22821         
22822         * object.h:
22823         * object.c (mono_runtime_run_main): Removed unneeded argument
22824
22825 2002-06-28  Martin Baulig  <martin@gnome.org>
22826
22827         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
22828
22829 2002-06-27  Dick Porter  <dick@ximian.com>
22830
22831         * threads.c: Store the handle in both the parent thread and in the
22832         subthread, to minimise the time between starting a new thread and
22833         storing its ID.
22834
22835 2002-06-26  Dick Porter  <dick@ximian.com>
22836
22837         * appdomain.c (mono_runtime_cleanup): Close the socket library
22838         after all the threads have finished, not before
22839
22840 2002-06-26  Martin Baulig  <martin@gnome.org>
22841
22842         * debug-symfile.c (mono_debug_find_source_location): Added
22843         `guint32 *line_number' argument.  If it's not NULL, store the line number
22844         there and return the file name without the line number.
22845
22846 2002-06-25  Dick Porter  <dick@ximian.com>
22847
22848         * icall.c:
22849         * process.h:
22850         * process.c: Process forking and other support functions
22851
22852 2002-06-25  Dick Porter  <dick@ximian.com>
22853
22854         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
22855         things dont happen when the image is closed.
22856         (mono_image_lookup_resource): Walk the resource section looking
22857         for a particular entry
22858
22859         * cil-coff.h: PE resource section decoding
22860
22861 2002-06-25  Dick Porter  <dick@ximian.com>
22862         
22863         * assembly.h:
22864         * assembly.c: 
22865         (mono_assembly_foreach): Accessor functions to walk the list of
22866         loaded assemblies
22867         (mono_assembly_set_main):
22868         (mono_assembly_get_main): Process methods need to know which
22869         assembly is the "main" one
22870
22871         * object.c (mono_runtime_run_main): Record the main assembly
22872
22873         * debug-helpers.c: Fix typo
22874
22875 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
22876
22877         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
22878         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
22879
22880 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22881
22882         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
22883
22884 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
22885
22886         * image.c (do_mono_image_open): Initialize reference count,
22887         otherwise we leak the MonoImage.
22888
22889 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22890
22891         * reflection.c: small tweak to handle self-hosting.
22892
22893 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22894
22895         * reflection.c: fix type name parse code.
22896
22897 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22898
22899         * reflection.c: break out of the loop.
22900         * image.c: special case corlib.
22901
22902 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22903
22904         * reflection.c: add all the custom attrs at the end to ensure the
22905         ctors have been properly initialized when the attributes are defined
22906         in the current assembly.
22907
22908 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22909
22910         * reflection.c: handle correctly multiple-nested types.
22911
22912 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
22913
22914         * row-indexes.h: fix typos.
22915         * reflection.c: adjust for typos and fix method_def_or_ref
22916         encoding in MethodImpl table.
22917
22918 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22919
22920         * reflection.c: fix entry point patching (thanks Serge!).
22921
22922 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
22923
22924         * verify.c: add check for System.Exception
22925
22926 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
22927
22928         * image.c, class.c: minifix for code just c&p'ed.
22929         * reflection.c: warning fix.
22930         * object.h, loader.h, domain.c: load also StringBuilder.
22931
22932 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22933
22934         * marshal.h, marshal.c: some support code to handle complex marshaling.
22935
22936 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22937
22938         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
22939         Better signatures with vtable error dump.
22940
22941 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
22942
22943         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
22944
22945 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
22946
22947         * icall.c (ves_icall_Type_GetField): impl.
22948
22949 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22950
22951         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
22952         to retrieve a marshal description blob for a field or param.
22953
22954 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22955
22956         * reflection.h, reflection.c: change order of nested type emission
22957         to avoid table corruption. The NestedTypes table is sorted.
22958         * icall.c: change order of GetConstructor results to workaround mcs bug.
22959
22960 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22961
22962         * reflection.h, reflection.c: handle field and param marshal
22963         information.
22964
22965 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
22966
22967         * icall.c, marshal.c marshal.h: more Marshal class implementation.
22968
22969 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22970
22971         * reflection.c: fix call convention.
22972
22973 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22974
22975         * reflection.h, reflection.c: mono_image_get_memberref_token()
22976         takes a type instead of a class, now. Added
22977         mono_image_get_array_token() to create tokens for the special
22978         multi-dim array methods.
22979
22980 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22981
22982         * assembly.c: handle modules (no assembly table). Split
22983         loading references in its own function.
22984         * class.c: handle moduleref resolution scope.
22985         * image.c, image.h: cache module name in image.
22986
22987 2002-06-07  Martin Baulig  <martin@gnome.org>
22988
22989         * reflection.c (mono_image_get_type_info): Only add a class layout entry
22990         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
22991
22992 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
22993
22994         * icall.c: more signature fixes that used uint instead of int.
22995
22996 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22997
22998         * reflection.c: fixed signature of field refs.
22999
23000 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23001
23002         * class.c, reflection.c: handle typerefs of nested types
23003         (both on read and when writing files).
23004
23005 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
23006
23007         * icall.c: fix method signatures that tried to workaround the previous
23008         typo, d'oh!
23009
23010 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
23011
23012         * debug-helpers.c: fix typo.
23013
23014 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23015
23016         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
23017         rewrote the PE/COFF writing code (our programs are understood by the
23018         ms runtime, now).
23019
23020 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
23021
23022         * gc.c, gc.h, icall.c: weakreference support.
23023
23024 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
23025
23026         * Makefile.am, mono-config.c: use $(sysconfdir).
23027
23028 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23029
23030         * icall.c: changed default precision of Double.ToString() to 15.
23031         Fixed memory leak. Unified with Single.ToString.
23032
23033 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
23034
23035         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
23036
23037 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
23038
23039         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
23040         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
23041         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
23042         and myself.
23043
23044 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23045
23046         * debug-symfile.c, sysmath.c: yet more compilation fixes.
23047
23048 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23049
23050         * reflection.c, socket-io.c: more compilation fixes.
23051
23052 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23053
23054         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
23055         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
23056         unicode.c: warning and compiler compatibility fixes.
23057
23058 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23059
23060         * class.h, metadata.c: fixed warnings/compilation errors.
23061
23062 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
23063
23064         * Makefile.am, mono-config.c, mono-config.h: configuration file
23065         support routines.
23066         * loader.c, loader.h: make Dll mapping configurable at runtime in the
23067         config file. Export methods to insert and lookup mappings.
23068
23069 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
23070
23071         * reflection.c: handle types and boxed objects in custom attr
23072         constructors.
23073
23074 2002-05-30  Martin Baulig  <martin@gnome.org>
23075
23076         * debug-symfile.c
23077         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
23078
23079 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
23080
23081         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
23082         to lookup the implmap row for a P/Invoke method.
23083         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
23084         P/Invoke method from the runtime on an as needed basis.
23085
23086 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
23087
23088         * metadata.c (mono_metadata_parse_signature): impl.
23089
23090 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23091
23092         * class.c: handle .pack directive.
23093
23094 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
23095
23096         * object.c: initialize static fields with RVA data.
23097
23098 2002-05-25  Martin Baulig  <martin@gnome.org>
23099
23100         * debug-symfile.c
23101         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
23102
23103 2002-05-24  Martin Baulig  <martin@gnome.org>
23104
23105         * debug-symfile.c
23106         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
23107         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
23108         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
23109
23110 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23111
23112         * object.c: special case string ctros in invoke.
23113         * gc.c: silly whitespace changes.
23114
23115 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
23116
23117         * threadpool.[ch]: impl. a threadpool that can
23118         be used by mint and mono.
23119
23120 2002-05-22  Martin Baulig  <martin@gnome.org>
23121
23122         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
23123         The first argument is now a `MonoReflectionModuleBuilder *', the return
23124         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
23125         `methods' field to get the method builder.  The `token' argument is the
23126         unfixed token.
23127
23128         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
23129         invalid characters instead of g_assert_not_reached()ing.  This seems
23130         to be the behaviour of mscorlib.
23131
23132 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
23133
23134         * object.c (mono_runtime_invoke_array): applied patch from Rachel
23135         Hestilow to fix bug #25104
23136
23137 2002-05-21  Martin Baulig  <martin@gnome.org>
23138
23139         * debug-symfile.c (mono_debug_find_source_location): New function.
23140         Looks up an IL offset in the line number table and returns the source
23141         location as a string.
23142
23143 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23144
23145         * icall.c:
23146         (mono_double_ToStringImpl): changed %f by %g until we have something
23147         better.
23148
23149 2002-05-21  Nick Drochak  <ndrochak@gol.com>
23150
23151         * icall.c : Use different name for Math.Pow's icall.  Needed to check
23152         parameters first in C#.
23153
23154 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23155
23156         * icall.c, reflection.h: added icall to get info about an event.
23157
23158 2002-05-20  Radek Doulik  <rodo@ximian.com>
23159
23160         * object.c (mono_value_box): don't use memcpy for boxing on BIG
23161         endian
23162         (mono_value_box): don't use memcpy for small sizes on
23163         architectures with unaligned access
23164
23165 2002-05-20  Martin Baulig  <martin@gnome.org>
23166
23167         * reflection.c (mono_reflection_setup_internal_class): Don't crash
23168         if `tb->parent == NULL'.
23169         (mono_reflection_create_internal_class): New function.  This is
23170         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
23171         for enum types.
23172
23173         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
23174         New interncall.
23175
23176 2002-05-19  Martin Baulig  <martin@gnome.org>
23177
23178         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
23179         argument to get the length, don't default to the array length.
23180
23181 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
23182
23183         * assembly.c (mono_assembly_setrootdir): New function used to
23184         override the MONO_ASSEMBLIES directory.
23185
23186 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23187
23188         * icall.c: ValueType_GetHashCode() initialize local var.
23189
23190 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23191
23192         * reflection.c: sort custom attributes table.
23193
23194 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
23195
23196         * reflection.c: support named args in custom attributes (write support).
23197
23198 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
23199
23200         * reflection.c: fix finally position calculation.
23201
23202 2002-05-15  Radek Doulik  <rodo@ximian.com>
23203
23204         * reflection.c: fixed endianess at many places
23205
23206         * icall.c (ves_icall_InitializeArray): comment out debug msg
23207
23208 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
23209
23210         * object.c (mono_unhandled_exception): new function to handle
23211         unhandled exceptions.
23212         (mono_unhandled_exception): call the UnhandledException event.
23213         (mono_runtime_delegate_invoke): impl.
23214
23215 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
23216
23217         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
23218         returns the RVA, not the direct pointer to the data. Handle the case
23219         when the class size is fixed.
23220
23221 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
23222
23223         * reflection.c: fix some endianess issues.
23224
23225 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
23226
23227         * object.c (mono_runtime_invoke): is now able to catch exceptions.
23228
23229         * threads.c (mono_thread_init): added a callback which is invoked
23230         at thread start.
23231
23232 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
23233         
23234         * icall.c: make GetHashCode return non-negative values.
23235
23236 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
23237
23238         * object.c, icall.c, gc.c: revert to address-based hashcode.
23239
23240 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
23241
23242         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
23243
23244 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23245
23246         * icall.c, class.c: special case <Module>.
23247
23248 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
23249
23250         * icall.c: fix bug in GetNow().
23251
23252 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
23253
23254         * object.c (mono_runtime_class_init): make sure that we call all
23255         static class constructors.
23256
23257 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
23258
23259         * reflection.c: sort methodsemantics table.
23260
23261 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23262
23263         * reflection.h, reflection.c: honour init locals setting.
23264
23265 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
23266
23267         * icall.c: copied Double ToStringImpl for Single ToStringImpl
23268
23269 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23270
23271         * reflection.c: support ContructorBuilders in attribute blob creation.
23272
23273 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23274
23275         * reflection.c: some changes to build a binary that can be run
23276         directly in windows.
23277
23278 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
23279
23280         * loader.c: print a big message when an icall can't be found.
23281
23282 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23283
23284         * string-icalls.c: fix bug 24248.
23285
23286 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
23287
23288         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
23289         icall.c, reflection.h: separate assembly loading by pathname and by
23290         assembly name. Use the MONO_PATH env var to search for assemblies.
23291
23292 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23293
23294         * assembly.c, image.h: add some support for assemblies
23295         with multiple modules.
23296         * class.c, class.h: export mono_class_from_typeref().
23297         * loader.c: remove duplicated code and use mono_class_from_typeref(),
23298         instead.
23299
23300 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23301
23302         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
23303         documentation says (the ECMA one is correct).
23304
23305 2002-05-02  Dick Porter  <dick@ximian.com>
23306
23307         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
23308         Don't name the synchronisation mutex.
23309
23310 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
23311
23312         * rand.c
23313         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
23314         Make the prototypes match.
23315         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
23316         Same.
23317
23318         * icall.c
23319         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
23320         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
23321         all systems have tm.tm_zone, so use strftime() with %Z to print
23322         the timezone abreviation into a temp string.
23323
23324         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
23325         rather than mono_array_addr() on a MonoString on Big Endian
23326         machines.
23327
23328 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
23329
23330         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
23331         fix bug 24041
23332
23333 2002-04-30  Dick Porter  <dick@ximian.com>
23334
23335         * socket-io.c: Cope with SOCKET being an integer rather than a
23336         pointer now.
23337
23338         * threads.c: Added Thread_free_internal, to deal with thread
23339         handle cleanup.  Moved calls to handle_store() and handle_remove()
23340         to start_wrapper(), so each can only be called once.  Allocate
23341         synchronisation blocks with GC_malloc(), and use GC finalisation
23342         to close the handles.
23343
23344         * icall.c: added System.Threading.Thread::Thread_free_internal
23345
23346 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23347
23348         * icall.c: support Environment.Exit, CommandLineArgs().
23349
23350 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
23351
23352         * object.c, object.h: added mono_runtime_run_main () and
23353         mono_runtime_get_main_args () for use in System.Environment.
23354
23355 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23356
23357         * gc.c: fix thinko, enable actual finalization since the jit is now
23358         fixed.
23359
23360 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23361
23362         * gc.c, object.c: take into account that an object may be offset wrt the address
23363         returned by GC_malloc().
23364
23365 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
23366
23367         * image.c: handle files without entries in the assembly table (modules).
23368
23369 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
23370
23371         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
23372         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
23373         allowed to be null when it's System.Object class setup.
23374
23375 2002-04-27  Martin Baulig  <martin@gnome.org>
23376
23377         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
23378         if `tb->parent == NULL' rather than crashing.
23379
23380 2002-04-28  Nick Drochak  <ndrochak@gol.com>
23381
23382         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
23383         calling acos() where asin() should have been called.
23384
23385 2002-04-26  Martin Baulig  <martin@gnome.org>
23386
23387         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
23388         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
23389         there's a subdirectory called `System', but we don't want to read that
23390         subdirectory as an assembly.
23391
23392 2002-04-25  Martin Baulig  <martin@gnome.org>
23393
23394         * debug-symfile.c: Reflect latest MonoString changes.
23395
23396 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
23397
23398         * rand.c, rand.h: instance method icalls need to have an explicit
23399         this pointer as first argument in the C implementation.
23400
23401 2002-04-25  Nick Drochak <ndrochak@gol.com>
23402
23403         * icall.c: Fix typo in map for GetNonZeroBytes
23404
23405 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
23406
23407         * string-icalls.c : String does now passes unit tests without any 
23408         errors, the following changes has been made:
23409         
23410         Implemented replace methods.
23411         Renaming of methods to (try) follow the standard.
23412         Fixed compare ordinal
23413         Made all memory allocated directly to function instead of via icall function.
23414         Small performance fix in is_in_array function
23415                         
23416  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
23417
23418         c (mono_string_Internal_ctor_charp_int_int):
23419         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
23420         sindex < 0, throw ArgumentOutOfRangeException instead of
23421         ArgumentNullException.
23422
23423         Added new check for length == 0, however
23424         I need to make it return String.Empty from the C code.
23425         
23426         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
23427         that calculate the length for us here.
23428         
23429         (mono_string_Internal_ctor_sbytep_int_int): Replaced
23430         mono_string_new_utf16 with mono_string_new, since value is utf8.
23431
23432 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23433
23434         * object.c: register the object for finalization if needed.
23435         Allocate one more char in the string for the terminating 0 char.
23436
23437 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23438
23439         * class.c, class.h, image.c: check if a type implemenst a destructor.
23440         Use the proper key for array class lookups.
23441         * icall.c: register the icalls in the System.GC class.
23442         * gc.c, gc.h: GC-related functions and icalls.
23443
23444 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23445
23446         * icall.c:
23447         * socket-io.c:
23448         * unicode.c: free some strings gotten from mono_string_to_utf8 and
23449         changed a couple of free () by g_free ().
23450
23451         * decimal.c: one-liner in the comments for decimal2string ().
23452
23453 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
23454
23455         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
23456
23457 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
23458
23459         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
23460         * object.c (mono_runtime_invoke_array) : handle null in params
23461
23462 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
23463
23464         * string-icalls.c: fixed bug in split (one off bug)
23465
23466 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
23467
23468         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
23469         * icalls.c: added String::Equals as internal method
23470
23471 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
23472
23473         * threads.c: fixed bug in the double interlocked functions
23474
23475 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
23476
23477         * threads.c: implemented all of the new interlocked icalls.
23478         * string-icalls.c: fix a bug in insert.
23479         * icalls.c: added the icalls for interlocked, removed old string functions.
23480         
23481 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23482
23483         * loader.c: fix off-by-one error when reading argument names.
23484
23485 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23486
23487         * profiler.c: win32 counter implementation (untested).
23488         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
23489         (the latter needs testing and more complete impl. from win32 folks).
23490
23491 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
23492
23493         * object.c: mono_array_new_full workaround mono_array_class_get
23494         problem.
23495
23496 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23497
23498         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
23499         * object.h (mono_string_chars): Changed casting type.
23500
23501 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23502
23503         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
23504                            method signatures to use gunichar2 instead of gint16.
23505
23506 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
23507
23508         * object.h, object.c: domain-specific versions of mono_object_new and
23509         mono_array_new.
23510
23511 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
23512
23513         * object.c: changed String layout
23514
23515         * string-icalls.c (mono_string_Internal_ctor_chara): added
23516         internal string constructors.
23517
23518 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
23519
23520         * threads.c: pass 'this' to the thread start routine.
23521
23522 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23523
23524         * string-icalls.c: fix IndexOf and LastIndexOf. Now
23525         InternalCompareStr don't call twice mono_string_cmp_char for the last
23526         character. Improved performance in mono_string_cmp_char.
23527
23528 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23529
23530         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
23531         code into its own library: libmonoruntime.
23532
23533 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
23534
23535         * object.h, object.c: changed array format so that szarrays do not
23536         require a bounds structure.
23537         * icall.c, appdomain.c: support for new szarray format.
23538
23539 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
23540
23541         * metadata.c: compare also the retuns type when comparing signatures:
23542         we didn't do this as an optimization since really overloaded methods
23543         must differ also in the arguments, but this doesn't work with
23544         low-level IL code (or when using explicit conversion operators: see
23545         bug#23498 for an example).
23546
23547 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23548
23549         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
23550
23551 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23552
23553         * icall.c: make MonoType::GetElementType its own icall.
23554
23555 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23556
23557         * icall.c: remove MonoMethod_get_Name().
23558         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
23559         object.
23560
23561 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23562
23563         * string-icalls.c: optimized a few methods.
23564
23565 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
23566
23567         * icall.c: added all new string internal calls
23568         * string-icalls.c: added, new string internal call implementation.
23569         * object.c: added mono_string_new_size for allocating a string a size
23570
23571 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
23572
23573         * object.c (mono_object_isinst): use the same code as in the
23574         optimized x86 version.
23575
23576 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23577
23578         * profiler.c: TSC-based timer code (faster and more accurate).
23579         Not hooked up in configure, yet (set USE_X86TSC to 1).
23580
23581 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
23582
23583         * profiler.c, profiler.h: track time spent compiling methods.
23584         * threads.c: track thread creation/destruction.
23585
23586 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
23587
23588         * profiler.c, profiler.h, profiler-private.h: profiling interface
23589         and sample implementation. Moved here so that it can be used also by
23590         the jit.
23591
23592 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
23593
23594         * reflection.c, reflection.h: keep types and other handles separate in
23595         the hash tables for referred tokens. Add guid for modules.
23596
23597 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
23598
23599         * assembly.c: fix bugs found with valgrind.
23600         * metadata.h, metadata.c: added mono_metadata_guid_heap().
23601
23602 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
23603
23604         * threads: added icall support for getting current domain for
23605                    the thread.
23606  
23607 2002-04-13  Martin Baulig  <martin@gnome.org>
23608
23609         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
23610         (MonoDebugVarInfo): Added `index' field for register based addresses.
23611         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
23612         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
23613         `MonoDebugVarInfo *params' and `guint32 this_offset' with
23614         `MonoDebugVarInfo *this_var'.
23615
23616         * debug-symfile.c (relocate_variable): New static function to write
23617         a location description for a local variable or method parameter.
23618
23619 2002-04-12  Martin Baulig  <martin@gnome.org>
23620
23621         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
23622         stack offset and begin/end scope address of a local variable.
23623         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
23624         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
23625         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
23626
23627         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
23628         Added new relocation types for start/end scope of a local variable.
23629
23630 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23631
23632         * object.h: add mono_object_domain() macro.
23633         * reflection.c: handle typespecs.
23634         * icall.c: MonoMethod::get_Name() implementation.
23635
23636 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23637
23638         * icall.c: String::GetHashCode() icall implementation.
23639
23640 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23641
23642         * icall.c: String::IndexOfAny icall.
23643         * object.c, object.h: make array->max_length more useful.
23644         Intrduced mono_object_class() and mono_string_length() macros.
23645
23646 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23647
23648         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
23649         instead of g_unichar_isdigit.
23650
23651 2002-04-11  Nick Drochak  <ndrochak@gol.com>
23652
23653         * icall.c: Implement a simple Double.ToString().
23654
23655 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23656
23657         * appdomain.h: only io-layer.h is supposed to be included.
23658         * icall.c: explicitly import environ. Fix warning.
23659
23660 2002-04-10  Nick Drochak  <ndrochak@gol.com>
23661
23662         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
23663                 return true even if it's not Daylight Savings time.
23664                 Only return false for the case where the function isn't
23665                 implemented for a plaform (read Windows).
23666
23667 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23668
23669         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
23670         data with a mutex.
23671
23672 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
23673
23674         * mempool.c (mono_mempool_alloc): only use g_malloc when
23675         absolutely necessary.
23676
23677 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
23678
23679         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
23680
23681         * class.c (mono_class_vtable): use domain mempool to allocate vtable
23682         (mono_class_proxy_vtable): use domain mempool
23683
23684 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23685
23686         * appdomain.h, appdomain.c: split initialization that requires the
23687         execution engine support into mono_runtime_init().
23688
23689 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
23690
23691         * class.c (mono_class_init): don't include vtable inside MonoClass
23692         to save some memory, gather some statistics.
23693         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
23694
23695 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23696
23697         * icall.c: internalcall implementation for ValueType.Equals().
23698
23699 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
23700
23701         * object.c (mono_message_init): moved 
23702         (mono_runtime_exec_main): new arch. independent impl.
23703         (mono_runtime_invoke_array): new method - like
23704         mono_runtime_invoke, but you can pass an array of objects.
23705         (mono_remoting_invoke): new arch. independent impl.
23706         (mono_message_invoke): new arch. independent impl.
23707         (mono_runtime_class_init): new arch. independent impl.
23708         (mono_runtime_object_init): new arch. independent impl.
23709
23710 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23711
23712         * metadata.c, object.c, reflection.c: documented the exported
23713         functions.
23714
23715 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
23716
23717         * icall.c: simpler code to pass the assembly builder data to corlib.
23718         Implement GetNestedTypes() internalcall.
23719
23720 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23721
23722         * class.c: warn if a type can't be loaded.
23723
23724 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
23725
23726         * image.h: typedef MonoImageOpenStatus
23727         * types.h: removed unused file
23728         
23729 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
23730
23731         * icall.c: Enum_ToObject accepts enum value arguments.
23732
23733 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23734
23735         * class.c: move initialization of properties, events and nested
23736         classes, so that they happen for interfaces, too.
23737
23738 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23739
23740         * icall.c: cleanup some ugly casts in Array_SetValue*.
23741
23742 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23743
23744         * icall.c: the values array fro enums is of the correct type, now.
23745         Implement (correctly) getFullName instead of assQualifiedName for
23746         MonoType.
23747         * reflection.h, reflection.c: added mono_type_get_name ().
23748
23749 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23750
23751         * assembly.c, image.h: for each MonoImage, record from wich assembly
23752         it was loaded.
23753         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
23754         Make Type.Assembly work.
23755
23756 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
23757
23758         * debug-symfile.h: use char* instead of gpointer to avoid
23759         unnecessary casts.
23760
23761         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
23762
23763         * icall.c (ves_icall_InternalExecute): impl. FielSetter
23764         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
23765
23766 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
23767
23768         * icall.c (mono_message_init): impl. (code cleanup)
23769         (ves_icall_InternalExecute): impl. FieldGetter
23770
23771         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
23772         defined we call all (non-static)methods through the vtable. 
23773
23774 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
23775
23776         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
23777         finalizer even though the memory is still referenced (and the chunk of
23778         memory is not freed).
23779
23780 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
23781
23782         * assembly.c: fix brokeness.
23783
23784 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
23785
23786         * class.c: kill some warnings. Check explicit interface method
23787         implementation also without considering the namespace.
23788         Load also literal strings in static class data.
23789
23790 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
23791
23792         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
23793         (default_assembly_name_resolver): Make the resolver take the
23794         "base" directory where the assembly was originally defined, so we
23795         can load DLLs that are in the same directory as the assembly that
23796         is being referenced.
23797
23798 2002-03-28  Dick Porter  <dick@ximian.com>
23799
23800         * file-io.h: 
23801         * file-io.c:
23802         * socket-io.c: 
23803         * unicode.h: 
23804         * unicode.c: Warning cleanups
23805
23806 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
23807
23808         * object.h, reflection.h: use the correct type instead of MonoObject.
23809
23810 2002-03-28  Martin Baulig  <martin@gnome.org>
23811
23812         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
23813         (mono_debug_update_symbol_file): Initialize classes if necessary.
23814
23815 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
23816
23817         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
23818         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
23819
23820 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
23821
23822         * assembly.h: fix function prototype.
23823         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
23824         * mono-endian.h: use const cast.
23825
23826 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
23827
23828         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
23829
23830 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
23831
23832         * loader.c: don't assert when a typeref can't be loaded, give
23833         a chance to the runtime to trow an exception instead.
23834         * loader.h: fix warning.
23835
23836 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
23837
23838         * class.c (mono_class_proxy_vtable): added proxy support
23839
23840 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
23841
23842         * icall.c: removed last of PAL calls, added System.Environment
23843         * file-io.h, file-io.c: MonoIO implementation
23844         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
23845
23846 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
23847
23848         * appdomain.c: do not use the byte marker in ldstr table lookup.
23849         * debug-helpers.c: allow two ':' to separate class and method name.
23850         * object.c: allocate arrays bounds with the GC, too.
23851         * verify: add a few more checks.
23852
23853 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
23854
23855         * reflection.c: output also literal strings. Allocate parameter data
23856         with GC_malloc() (thanks, Martin, for catching this!).
23857
23858 2002-03-26  Martin Baulig  <martin@gnome.org>
23859
23860         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
23861         include the `this' offset in the `param_offsets'.
23862
23863 2002-03-25  Martin Baulig  <martin@gnome.org>
23864
23865         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
23866         mono_debug_get_class() function to get the classes. Added new
23867         relocation types for arrays and strings.
23868         (mono_debug_get_class): New static function to search in all
23869         referenced assemblies for a metadata token.
23870
23871         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
23872
23873 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
23874
23875         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
23876         hold gc-allocated objects. Make the string heap a stream like the
23877         others. Removed duplicated code when writing stream info.
23878         Added asserts to catch possible buffer overflows. Set the sorted map
23879         for tables that need sorting. Added some documentation.
23880
23881 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
23882
23883         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
23884         for interned strings and vtables.
23885
23886 2002-03-24  Martin Baulig  <martin@gnome.org>
23887
23888         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
23889         it in the array since it was created with g_slist_prepend().
23890
23891 2002-03-24  Martin Baulig  <martin@gnome.org>
23892
23893         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
23894         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
23895         (mono_debug_method_from_token): Renamed to
23896         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
23897         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
23898
23899         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
23900         relocation types.
23901
23902         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
23903
23904 2002-03-24  Martin Baulig  <martin@gnome.org>
23905
23906         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
23907         (mono_debug_method_from_token): New func.
23908
23909         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
23910         New interncall, calls mono_debug_local_type_from_signature().
23911         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
23912         calls mono_debug_method_from_token().
23913
23914 2002-03-23  Martin Baulig  <martin@gnome.org>
23915
23916         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
23917         specifies the number of bytes to be converted, not the array size.
23918         Return the number of chars, not the number of bytes.
23919         (ves_icall_iconv_get_chars): The `byteCount' argument
23920         specifies the number of bytes to be converted, not the array size.
23921
23922 2002-03-23  Martin Baulig  <martin@gnome.org>
23923
23924         * reflection.h (MonoReflectionSigHelper): New type.
23925
23926         * reflection.c (mono_reflection_sighelper_get_signature_local),
23927         (mono_reflection_sighelper_get_signature_local): New functions.
23928
23929         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
23930         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
23931         interncalls.
23932
23933 2002-03-23  Martin Baulig  <martin@gnome.org>
23934
23935         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
23936         is_writeable is set.
23937         (mono_raw_buffer_update): New function to write the modified map
23938         back to disk.
23939
23940         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
23941
23942         * debug-symfile.c (mono_debug_update_symbol_file): Call
23943         mono_raw_buffer_update() when done writing.
23944
23945 2002-03-23  Martin Baulig  <martin@gnome.org>
23946
23947         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
23948
23949         * debug-symfile.c: Added support for arguments and local variables.
23950
23951 2002-03-23  Dick Porter  <dick@ximian.com>
23952
23953         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
23954         protected by ifdefs, hence breaking the w32 build.
23955
23956 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23957
23958         * object.c: implement is_interned() the right way.
23959
23960 2002-03-21  Martin Baulig  <martin@gnome.org>
23961
23962         * debug-symfile.[ch]: New files to handle debugging information
23963         files. There's also support to dynamically update these symbol
23964         files to include machine dependent information.
23965
23966 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
23967
23968         * threads.c (mono_thread_create): new function to create thread
23969         from C
23970
23971 2002-03-20  Martin Baulig  <martin@gnome.org>
23972
23973         * icall.c (ves_icall_InternalInvoke): Create a new object if the
23974         method is a constructor.
23975         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
23976         points to ves_icall_InternalInvoke().
23977
23978 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
23979
23980         * file-io.c: Flush shouldn't throw exceptions.
23981
23982 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
23983
23984         * file-io.c: FileStream flush support; FileSetLength now
23985         restores file pointer.
23986
23987 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23988
23989         * class.c: set image for pointer classes.
23990
23991 2002/03/19  Nick Drochak <ndrochak@gol.com>
23992
23993         * sysmath.c: Forgot one.
23994
23995 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
23996
23997         * sysmath.c: Avoid redefining existing names.
23998
23999 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
24000
24001         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
24002         handled by runtime as icall rather than dllimport from libm.so
24003         * file-io.c, file-io.h: fixed handle argument type.
24004
24005 2002-03-18  Dick Porter  <dick@ximian.com>
24006
24007         * reflection.c (mono_image_get_type_info): rename interface to
24008         iface, because of "#define interface struct" on windows.
24009
24010 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
24011
24012         * class.c, class.h: rename and export mono_ptr_class_get().
24013         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
24014         * reflection.c, reflection.h, icall.c: better/saner type name
24015         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
24016         method signatures.
24017
24018 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
24019
24020         * class.c (mono_class_init): removed hardcoded GHC_SLOT
24021
24022         * icall.c (ves_icall_InternalInvoke): impl.
24023
24024 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
24025
24026         * reflection.c: output the interface map table, too.
24027
24028 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
24029
24030         * class.c (class_compute_field_layout): separate computation of 
24031         static field layout
24032
24033 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
24034
24035         * icall.c: added System.Buffer support.
24036         * file-io.c: moved file icalls from PAL to FileStream.
24037
24038 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
24039
24040         * icall.c (ves_icall_System_Object_GetHashCode): impl.
24041
24042 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
24043
24044         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
24045
24046 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24047
24048         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
24049
24050 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
24051
24052         * debug-helpers.{c,h}: moved here from monograph some useful functions
24053         to locate a method by name/signature in a class or image. Included
24054         also a small and flexible IL disassembler.
24055
24056 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
24057
24058         * reflection.c: fixup tokens in methods with small header size, too.
24059
24060 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
24061
24062         * object.c (mono_string_to_utf8): remove assert(!error), instead
24063         print a warning. 
24064
24065 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
24066
24067         * icall.c: update to the new mono_Array_class_get interface.
24068
24069 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
24070
24071         * appdomain.c, object.c: Boehm-GC enable.
24072         * icall.c: make get_data_chunk() support split data requests.
24073         Ensure a class is initialized in more cases. Return only the first
24074         property found in GetProperties() or the compiler gets confused. 
24075         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
24076         * reflection.h, reflection.c: add fixup mechanism for field and method
24077         tokens. Initialize assembly->typeref in a single place. Output
24078         properties after events. Support custom attributes for events, too.
24079         Typo fix for paramter custom attrs.
24080
24081 2002-03-07  Martin Baulig  <martin@gnome.org>
24082
24083         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
24084
24085 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
24086
24087         * class.c (mono_array_class_get): fix. for multi. dim. arrays
24088
24089 2002-03-06  Martin Baulig  <martin@gnome.org>
24090
24091         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
24092         non-zero lower bounds. See testcases #F10-#F13.
24093
24094 2002-03-05  Martin Baulig  <martin@gnome.org>
24095
24096         * exception.c (mono_get_exception_argument_out_of_range): New exception.
24097
24098         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
24099         ves_icall_System_Array_GetValue(), only calculate the absolute array position
24100         here.
24101         (ves_icall_System_Array_SetValue): Likewise.
24102         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
24103         as argument and does the actual work. This function is used when copying a
24104         multi-dimensional array.
24105         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
24106         now do all the widening conversions of value types.
24107         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
24108
24109 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24110
24111         * class.c: remove some magic numbers and use the smbolic names,
24112         instead. Added init_events() to load event info at class init time.
24113         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
24114         and mono_metadata_methods_from_event().
24115         * reflection.h, reflection.c: added support for writing out the evnets
24116         related information.
24117
24118 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
24119
24120         * reflection.h, icall.c: use a different method (GetInterfaces)
24121         to gather interface info and add isbyref, isprimitive and
24122         ispointer to the ves_icall_get_type_info() return value.
24123
24124 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
24125
24126         * class.h: stared adding support for events.
24127         * icall.c: split find_members implementation. Added debug icall to get
24128         the address of an object.
24129         * reflection.c: handle TypeBuilders in mono_type_get_object().
24130
24131 2002-03-01  Martin Baulig  <martin@gnome.org>
24132
24133         * icall.c (ves_icall_System_Array_GetLength): This must throw an
24134         ArgumentOutOfRangeException(), not an ArgumentException().
24135         (ves_icall_System_Array_GetLowerBound): Likewise.
24136         (ves_icall_System_Array_GetValue): Improved argument checking.
24137         (ves_icall_System_Array_SetValue): Improved argument checking.
24138
24139 2002-03-01  Martin Baulig  <martin@gnome.org>
24140
24141         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
24142         called with invalid arguments rather than just dying with g_assert().
24143         (ves_icall_System_Array_SetValue): Likewise.
24144         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
24145         raise a NotImplementedException instead.
24146         (ves_icall_System_Array_GetLength): Added argument checking.
24147         (ves_icall_System_Array_GetLowerBound): Added argument checking.
24148
24149 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
24150
24151         * object.h (mono_assert): new macros mono_assert and
24152         mono_assert_not_reached
24153
24154 2002-02-28  Martin Baulig  <martin@gnome.org>
24155
24156         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
24157         and "System::String::IsInterned" to "System::String::_IsInterned".
24158
24159 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
24160
24161         * icall.c: remove hacks for typebuilder. Added icall to create a
24162         modified type from a tybebuilder.
24163         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
24164         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
24165         to create a backing MonoClass for a TypeBuilder.
24166
24167 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24168
24169         * class.c, class.h: more refactoring of class init.
24170         Export mono_class_setup_mono_type() and mono_class_setup_parent().
24171
24172 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
24173
24174         * marshal.c, marshal.h: start of marshaling interface.
24175
24176 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
24177
24178         * icall.c: fix order in assembly qualified name icall.
24179
24180 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
24181
24182         * class.c: do not free str, since we store it in the hash table.
24183         * reflection.h: add label field to MonoILExceptionInfo.
24184         * reflection.c: handle references to more than one assembly. Handle
24185         case when there isn't a module created in the assembly.
24186
24187 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
24188
24189         * class.c: Fix typo. Start refactoring of class init code.
24190
24191 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
24192
24193         * appdomain.c: exit with 1 on error.
24194         * class.c: we already have the name in MonoClassField.
24195         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
24196         MonoStreamHeader instead of an offset of image->raw_metadata.
24197
24198 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
24199
24200         * appdomain.c (mono_init): Be even more descriptive about the error.
24201
24202 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
24203
24204         * appdomain.c: give the user an informative message when corlib can't
24205         be loaded.
24206
24207 2002-02-26  Martin Baulig  <martin@gnome.org>
24208
24209         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
24210         New icall to get the time zone data.
24211
24212 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24213
24214         * reflection.c: set virtual and raw size of section correctly.
24215         * threads.c: transfer domain information to newly created threads.
24216
24217 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
24218
24219         * class.c: when instancing a class in a domain, load the default
24220         vaules for static fields from the constant table. Fix System.Enum to
24221         not be an enum.
24222         * icall.c: implement Object::GetType() internalcall. Implemented
24223         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
24224         Fixed checking of binding flags in find_members().
24225         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
24226         * reflection.c: handle enumerations when writing to the constant
24227         table. Use a different object cache for types.
24228
24229
24230 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
24231
24232         * object.c (mono_object_isinst): fix for arrays
24233
24234         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
24235
24236 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
24237
24238         * object.c: don't use mprotect ()  and fix intern pool hash table
24239         lookup for big endian systems.
24240
24241 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
24242
24243         * icall.c: change type_is_subtype_of () signature.
24244
24245 2002-02-21  Mark Crichton  <crichton@gimp.org>
24246
24247         * rand.c, rand.h: Added random number generator for
24248         System.Security.Cryptography classes.
24249
24250         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
24251
24252         * icall.c: Added System.Security.Cryptography calls.
24253
24254 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
24255
24256         * class.c, icall.c, metadata.c: better support for pointer types.
24257         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
24258         * reflection.c: Add support for getting custom attrs for properties
24259         and simplify some code.
24260
24261 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
24262
24263         * icall.c: change getToken () and add custom attribute GetBlob()helper
24264         method.
24265         * reflection.h: add custom attrs array to the reflection builder structures.
24266         * reflection.c: encode and emit custom attributes for all the relevant
24267         reflection objects. Cache fieldref and methodref tokens. Change
24268         mono_image_create_token() interface to take a MonoDynamicAssembly.
24269         More complete custom attributes decoder. Load custom attributes for
24270         Assembly, Field, Method and Constructor objects, too. Make the
24271         returned array an Attribute[] one, not object[]. Added
24272         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
24273         custom attribute constructor.
24274
24275 2002-02-20  Dick Porter  <dick@ximian.com>
24276
24277         * icall.c:
24278         * rawbuffer.c:
24279         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
24280         problem code out for now).
24281
24282 2002-02-19  Radek Doulik  <rodo@ximian.com>
24283
24284         * object.c (mono_ldstr): use hash table to avoid multiple swapping
24285
24286 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
24287
24288         * icall.c: register the GetCustomAttributes method.
24289         * object.c, object.h: add mono_string_new_len ().
24290         * reflection.h, reflection.c: added mono_runtime_invoke(),
24291         mono_install_runtime_invoke(). Added
24292         mono_reflection_get_custom_attrs () to load custom attributes and
24293         create the attribute objects.
24294
24295 2002-02-19  Dick Porter  <dick@ximian.com>
24296         * threads-dummy-types.c:
24297         * threads-dummy-types.h:
24298         * threads-dummy.c:
24299         * threads-dummy.h:
24300         * threads-pthread-types.c:
24301         * threads-pthread-types.h:
24302         * threads-pthread.c:
24303         * threads-pthread.h:  Deleted obsolete files
24304
24305 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
24306
24307         * class.c (mono_class_vtable): runtime init the class when we
24308         allocate static class data.
24309
24310         * icall.c (ves_icall_System_Array_SetValue): check for null values.
24311
24312         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
24313         and String - but we will need generic marshalling support in the
24314         future. 
24315         (mono_init): set the domain name in a ms compatible way
24316
24317         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
24318         String[].
24319
24320 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
24321
24322         * object.c (mono_array_clone): use alloca() instead of g_malloc  
24323         for sizes
24324
24325         * appdomain.c (mono_domain_unload): impl.
24326
24327 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24328
24329         * appdomain.c, object.c: fix intern pool implementation.
24330         * class.c: fix alignment code.
24331
24332 2002-02-16  Radek Doulik  <rodo@ximian.com>
24333
24334         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
24335         and s2 > s1, just copy lower bytes to be compatible with little
24336         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
24337         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
24338
24339         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
24340         force big_endian to be 1 for big endian machines 
24341         (ves_icall_iconv_new_decoder): ditto
24342
24343 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
24344
24345         * socket-io.c (convert_sockopt_level_and_name): If the system
24346         doesn't define SOL_IP or SOL_TCP, get them by hand using
24347         getprotobyname() and caching the values (because this could be a
24348         slow operation).
24349         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
24350         Use the appropriate struct when the system does support it. Ie,
24351         not all systems have struct ip_mreqn so use struct ip_mreq when
24352         appropriate.
24353
24354 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
24355
24356         * reflection.c: handle finally clauses.
24357
24358 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
24359
24360         * socket-io.c: use g_snprintf() instead of snprintf.
24361
24362 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
24363
24364         * reflection.c (mono_param_get_objects): Cast second argument to
24365         mono_method_get_param_names to a const char** to silence the
24366         compiler warning.
24367
24368         * appdomain.c (mono_domain_assembly_open): Put parens around the
24369         truth statement in the for-loop.
24370
24371         * unicode.c (iconv_convert): Got rid of a compiler warning about
24372         int i being unused when the system has a new iconv.
24373         (iconv_get_length): Same.
24374
24375         * image.c (load_class_names): Cast the second argument to
24376         g_hash_table_insert() to char* to hush compiler warnings about the
24377         arg being a const.
24378         (mono_image_open): Same here.
24379
24380         * socket-io.c: Don't conditionally include sys/filio.h or
24381         sys/sockio.h here anymore since we now get them from
24382         io-layer/io-layer.h
24383         (inet_pton): If the system doesn't support inet_aton, implement
24384         using inet_addr and also #define INADDR_NONE if it isn't defined
24385         by the system.
24386
24387 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
24388
24389         * metadata.c, metadata.h: added function to get packing and size info
24390         of a typedef.
24391         * reflection.h, reflection.c: handle field RVA data. Save info about
24392         the table layout if needed. Assign typedef indexes to all the types
24393         before dumping the info about them to avoid forward reference problems.
24394
24395 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
24396
24397         * socket-io.c (convert_sockopt_level_and_name): ifdef
24398         SO_ACCEPTCONN because it is not defined on my system (old debian)
24399
24400 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
24401
24402         * opcode.c: use stddef.h to get NULL.
24403
24404 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
24405
24406         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
24407         for FIONBIO, FIONREAD and SIOCATMARK.
24408         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
24409         define INADDR_NONE and besides, inet_addr() is deprecated and
24410         should not be used. Use inet_pton() instead - it also has the
24411         added bonus that it can easily handle IPv6 addresses as well.
24412         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
24413
24414 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
24415
24416         * decimal.c: remove _MSC_VER conditional.
24417
24418 2002-02-13  Dick Porter  <dick@ximian.com>
24419
24420         * socket-io.c: 
24421         * icall.c: Internal calls for Blocking, Select, Shutdown,
24422         GetSocketOption and SetSocketOption
24423
24424 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24425
24426         * assembly.cs: better resolver: use it instead of some kludgy
24427         code.
24428
24429 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
24430
24431         * reflection.c: the best way to speed-up the compiler is to avoid
24432         infinite loops.
24433
24434 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
24435
24436         * class.c (mono_class_vtable): changed the object layout
24437         (obj->vtable->class). 
24438         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
24439
24440 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24441
24442         * assembly.c: look for assemblies in the assembly dir, too.
24443
24444 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24445
24446         * class.c: fix thinko in mono_class_from_type().
24447
24448 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24449
24450         * exception.h, exception.c: added TypeLoadException.
24451         * object.h, object.c: added mono_array_clone ().
24452         * icall.c: handle throwOnError in AssemblyGetType().
24453         Added Array.Clone().
24454         * opcode.h, opcode.c: use a single value for the opcode val.
24455         Compile fix for non-gcc compilers.
24456
24457 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
24458
24459         * opcodes.c, opcodes.h: export interesting info about opcodes.
24460
24461 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
24462
24463         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
24464         icalls. 
24465
24466         * class.c (class_compute_field_layout): set element_class for enums
24467         (mono_class_create_from_typedef): set element_class for normal classes
24468
24469         * icall.c (ves_icall_System_Enum_get_value): impl.
24470
24471         * class.c (mono_class_create_from_typedef): do not set valuetype
24472         flag for System.ValueType and System.Enum
24473
24474 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
24475
24476         * unicode.c (iconv_convert): fix big endian problem.
24477
24478 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24479
24480         * class.c: add asserts if we are ever going to scribble over memory.
24481         * socket-io.c: not all systems have AF_IRDA defined.
24482
24483 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
24484
24485         * class.c (class_compute_field_layout): do not consider static
24486         fields to compute alignment
24487
24488 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
24489
24490         * appdomain.c (mono_appdomain_get): impl.
24491         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
24492
24493 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
24494
24495         * icall.c: ignore "file://" prefix when loading an assembly.
24496
24497 2002-01-23  Dick Porter  <dick@ximian.com>
24498
24499         * socket-io.c:
24500         * icall.c:
24501         * Makefile.am: Added socket support
24502
24503 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
24504
24505         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
24506         code back.  This should return the assemblies that are loaded by
24507         the runtime on behalf of an application domain. 
24508
24509         The current implementation is still broken, it just returns every
24510         assembly loaded, but until we get real applications domain this
24511         will do.
24512
24513 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
24514
24515         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
24516         AppDomain object.
24517
24518 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
24519
24520         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
24521         the mono_class_from_name lookup.
24522         (ves_icall_get_parameter_info): ditto.
24523         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
24524         method.
24525         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
24526
24527 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
24528
24529         * class.c: load also nested classes on class init.
24530         System.ValueType instance methods gets passed boxed
24531         values, unless methods in derived classed that get a pointer to the
24532         data.
24533         * icall.c: use better name parsing code in GetType().
24534         * image.c, image.h: add mono_image_loaded ().
24535         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
24536         * reflection.c, reflection.h: added mono_reflection_parse_type().
24537
24538 2002-01-22  Veronica De Santis <veron78@interfree.it>
24539
24540         * icall.c : Added mapping of internal calls for Manual and Auto reset events
24541         * threads.c : Added the implementation of internal calls for events
24542         * threads.h : Added prototypes of internal calls for events
24543         
24544 2002-01-21  Radek Doulik  <rodo@ximian.com>
24545
24546         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
24547
24548 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
24549
24550         * class.c (mono_class_init): set min_align to 1 (instead of 0)
24551         (mono_class_value_size): use min_align
24552
24553 2002-01-20  Dick Porter  <dick@ximian.com>
24554
24555         * threads.h:
24556         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
24557         so it compiles on w32.
24558
24559 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
24560
24561         * metadata.c (mono_type_stack_size): impl.
24562
24563         * class.c (mono_class_get_field): impl. memberref token
24564
24565 2002-01-16 Veronica De Santis <veron78@@interfree.it>
24566
24567         * icall.h : Added the internal calls mapping for CreateMutex_internal
24568                     and ReleaseMutex_internal.
24569         * threads.h : Added the prototype of mutexes internal calls.
24570         * threads.c : Added the implementations of mutexes internal calls.
24571
24572 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
24573
24574         * metaparse.h: removed unused file.
24575         * reflection.c, reflection.h: added stream_data_align () function 
24576         to align data in streams and keep stream aligned. Add support for
24577         exception support in method headers.
24578
24579 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
24580
24581         * unicode.c: make iconv_convert () return the number of bytess written
24582         in the output buffer.
24583
24584 2002-01-15  Dick Porter  <dick@ximian.com>
24585         * threads.c: Make the runtime's idea of infinite timeouts coincide
24586         with the class library's
24587
24588         Fix a particularly egregious bug in mono_thread_cleanup(). That
24589         code was so utterly bogus it must have been written on a Monday.
24590
24591 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
24592
24593         * reflection.h: add subtypes field to TypeBuilder.
24594         * reflection.c: encode constants for literal fields.
24595         Handle subtypes. Fix user string token (and add a zero byte)
24596         at the end.
24597         
24598 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
24599
24600         * class.c (mono_class_init): bug fix: assign slot numbers for
24601         abstract methods.
24602
24603 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24604
24605         * reflection.c: don't try to output a code RVA for abstract methods.
24606         Small fixes for method header format. Output parameter info to the
24607         ParamDef table. Save method overriding info to MethodImpl table.
24608         Fix property support. Allow typedef.extends to be a type in the
24609         building assembly.
24610         * verify.c: fix off-by-one error.
24611
24612 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
24613
24614         * class.c: fix mono_class_from_mono_type () for szarray types.
24615         Remove unused cache check in mono_class_from_type_spec().
24616         * icall.c: *type_from_name () functions handle simple arrays and byref.
24617         * reflection.c: handle byref and szarray types. Handle methods without
24618         body (gets P/Invoke compilation working). Handle types and fields in
24619         get_token ().
24620         * reflection.h: add rank to MonoTypeInfo.
24621
24622 2002-01-10  Dick Porter  <dick@ximian.com>
24623
24624         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
24625         internal calls
24626
24627 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
24628
24629         * icall.c: initialize class in type_from_handle ().
24630         Loop also in parent classes for get_method ().
24631         * reflection.c: properly encode class and valuetype types.
24632         Start on encoding TypeBuilder types. Handle fieldrefs.
24633         Use correct length when registering a user string.
24634         Handle ConstructorBuilder and MonoMethod in get_token ().
24635         Make mono_type_get_object () aware of cached types.
24636         * object.c: back out change to mono_string_new ().
24637
24638 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
24639         * object.c: mono_string_new should return a NULL when the string 
24640         passed in is NULL -- not try to deference it.
24641         
24642 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
24643
24644         * icall.c: hack to make IsSubType work for TypeBuilders.
24645         * reflection.c: emit constructors before methods.
24646         Retrieve param names in mono_param_get_objects().
24647
24648 2002/01/05  Nick Drochak  <ndrochak@gol.com>
24649
24650         * Makefile.am: fix list of headers and sources so automake 1.5
24651         doesn't complain. Removed \# at end of list.
24652
24653 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
24654
24655         * reflection.c: get token for a method ref. Set return type of
24656         constructor to void.
24657         * loader.c: debug message.
24658         * class.c: typo fix.
24659
24660 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
24661
24662         * icall.c: fix array init with rank > 1. FindMembers
24663         loops in parent class as well.
24664         * image.c: do not insert nested types in name cache.
24665         * reflection.c: warning fix.
24666         * reflection.h: add override method (for interface impl).
24667
24668 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
24669
24670         * metadata.c: fix customattr decoding.
24671
24672 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
24673
24674         * rawbuffer.cs: Added native Win32 implementation, avoids using
24675         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
24676
24677 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
24678
24679         * class.c: make the low-level routines handle the cache.
24680
24681 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
24682
24683         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
24684
24685 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
24686
24687         * class.c: fix mono_array_element_size() for objects.
24688         * class.h, class.c: add properties to MonoClass and load them
24689         at init time.
24690         * icall.c: check with isinst() when assigning a value to an array
24691         instead of requiring the classes to match exactly.
24692         Implemented icall for System.Type::GetType().
24693         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
24694         enums. Handle bindingflags when looking for methods and fields.
24695         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
24696         and mono_metadata_methods_from_property().
24697         * reflection.h, reflection.c: added structures for propreties,
24698         parameters and enums. Implemented mono_property_get_object() and
24699         mono_param_get_objects().
24700
24701 2001-12-18  Dick Porter  <dick@ximian.com>
24702
24703         * file-io.c: Use mono_string_to_utf16() instead of
24704         mono_string_chars()
24705
24706         * object.c: Added mono_string_to_utf16(), which copies the non
24707         NULL-terminated MonoString into a new double-null-terminated
24708         buffer.
24709
24710 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
24711
24712         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
24713
24714 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
24715
24716         * file-io.c: raise exceptions if handle is invalid.
24717
24718 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
24719
24720         * assembly.c: yet another check for mscorlib.
24721         * class.c, class.h: load nesting info for classes.
24722         * icall.c: many new functions to support the Reflection classes.
24723         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
24724         * reflection.h, reflection.c: mono_image_create_token(),
24725         mono_assembly_get_object(), mono_type_get_object(),
24726         mono_method_get_object(), mono_field_get_object(): methods to return
24727         objects that parallel the C representation of assemblies, types,
24728         methods, fields.
24729
24730 2001-12-11  Dick Porter  <dick@ximian.com>
24731
24732         * icall.c:
24733         * file-io.c: Internal calls for file IO.
24734
24735 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
24736
24737         * tabledefs.h: missing FileAttributes.
24738         * verify.h, verify.c: use is_valid_string () to simplify and check for
24739         valid strings more correctly. Fix warnings and speeling.
24740         Check more tables: Filed, File, ModuleRef, StandAloneSig.
24741         Check code: branches, maxstack, method calls.
24742
24743 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
24744
24745         * object.c (mono_object_allocate): removed static, so that the jit
24746         can allocate value types.
24747
24748         * icall.c (ves_icall_System_DateTime_GetNow): impl.
24749
24750 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24751
24752         * class.c: init enum types right away and register the
24753         token->MonoClass map in mono_class_create_from_typedef ().
24754         * verify.h, verify.c: first cut of the verifier.
24755         * pedump.c: add --verify switch to verify metadata tables.
24756         * tabledefs.h: add some missing enums.
24757
24758 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
24759
24760         * class.c (mono_install_runtime_class_init): impl.
24761         (mono_class_init): renamed mono_class_metadata_init to
24762         mono_class_init, also removed the metadata_inited flag
24763
24764         * object.c (mono_object_isinst): use faster algorithm
24765
24766 2001-11-30  Radek Doulik  <rodo@ximian.com>
24767
24768         * mono-endian.h: reverted last change
24769         added function prototypes
24770
24771         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
24772         add mono-endian.c back
24773
24774         * mono-endian.c: returned back, as Paolo pointed out, it's needed
24775         for unaligned access, I've mistaked it with endianess. I am
24776         sorry.
24777         (mono_read16): fix reverted endianess
24778         (mono_read64): ditto
24779         (mono_read32): ditto
24780
24781 2001-11-30  Dick Porter  <dick@ximian.com>
24782
24783         * exception.c: Implement mono_exception_from_name()
24784
24785 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24786
24787         * metadata.h, metadata.c: remove params_size and locals_size and their
24788         calculation from the metadata code: they are only usefult to the
24789         interp.
24790
24791 2001-11-29  Radek Doulik  <rodo@ximian.com>
24792
24793         * object.c (mono_ldstr): swap bytes here, it's probably not the
24794         best place, but works for me now, I'll redo it once I know mono
24795         better, also note that I add PROT_WRITE and don't reset back, also
24796         note that it's only affects big endians, so x86 should be OK
24797
24798         * mono-endian.h (read16): use just glib macros for both endians
24799
24800         * mono-endian.c: removed as glib macros are used in in
24801         mono-endian.h so we don't need to care about endianess for read
24802         macros as glib does that for us already
24803
24804 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
24805
24806         * class.h, class.h: take minimum alignment into consideration so
24807         that the fields of a class remain aligned also when in an array.
24808
24809 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24810
24811         * loader.h, loader.c: add mono_method_get_param_names().
24812         * class.c: 0-init class fields.
24813
24814 2001-11-26  Dick Porter  <dick@ximian.com>
24815
24816         * icall.c:
24817         * threads-types.h:
24818         * threads.c: New file that handles System.Threading on all platforms
24819
24820         * object.c: 
24821         * object.h: Remove the synchronisation struct from MonoObject,
24822         replace it with a pointer that gets initialised on demand
24823
24824         * Makefile.am: Replace all the system-specific threading code with
24825         a single file that uses the new wrapper library
24826
24827 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
24828
24829         * class.c, class.h: add mono_install_trampoline() so that the runtime
24830         can register a function to create a trampoline: removes the ugly
24831         requirement that a runtime needed to export arch_create_jit_trampoline.
24832         * object.h, object.c: added mono_install_handler() so that the runtime
24833         can install an handler for exceptions generated in C code (with
24834         mono_raise_exception()). Added C struct for System.Delegate.
24835         * pedump.c: removed arch_create_jit_trampoline.
24836         * reflection.c: some cleanups to allow registering user strings and
24837         later getting a token for methodrefs and fieldrefs before the assembly
24838         is built.
24839         * row-indexes.h: updates and fixes from the new ECMA specs.
24840
24841 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
24842
24843         * class.h, class.c: add enum_basetype field to MonoClass.
24844         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
24845         to get index in the constant table reated to a field, param or
24846         property.
24847         * reflection.h, reflection.c: handle constructors. Set public-key and
24848         version number of the built assembly to 0.
24849         * row-indexes.h: update from new ECMA spec.
24850
24851 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24852
24853         * class.h, class.c: add a max_interface_id to MonoClass.
24854         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
24855         since it's used to do that. Added mono_type_type_from_obj().
24856         Make GetType() return NULL instead of segfaulting if the type was not
24857         found. Handle simple arrays in assQualifiedName.
24858         * object.h: add a struct to represent an Exception.
24859         * reflection.c: output call convention in method signature.
24860         Add code to support P/Invoke methods and fixed offsets for fields.
24861
24862 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
24863
24864         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
24865         the value.
24866         * icall.c: use mono_array_addr instead of array->vector: fixes the
24867         reflection image writing.
24868         * reflection.c: init call convention byte to 0 in method signature.
24869         Encode the property signature. Don't output property-related methods
24870         twice. Really process the properties for a type (don't cast a field to
24871         a property, my mom always told me that).
24872         Fix 64 bit issues in pointer alignment in a different and more
24873         readable way.
24874
24875 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
24876
24877         * loader.h: Removed type class from MonoDefaults, added monotype
24878
24879         * loader.c: Loaded MonoType, removed loading of Type
24880
24881         * icall.c (my_mono_new_object): Now returns a System.MonoType,
24882         and fills in System.Type._impl with a RuntimeTypeHandle rather
24883         than the actual MonoClass *
24884
24885         (ves_icall_type_from_handle): change from type_class to
24886         monotype_class
24887
24888         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
24889         implemented
24890
24891         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
24892         implemented
24893
24894         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
24895
24896         (ves_icall_System_Reflection_Assembly_GetType): implemented
24897
24898         (ves_icall_System_MonoType_assQualifiedName): implemented
24899
24900         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
24901
24902 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
24903
24904         * assembly.c (mono_assembly_open): Implement a cache for the
24905         assemblies. 
24906
24907         (mono_assembly_close): only destroy the assembly when the last
24908         reference is gone.
24909         
24910 2001-11-09  Dick Porter  <dick@ximian.com>
24911
24912         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
24913
24914 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
24915
24916         * class.c (mono_class_metadata_init): bug fix: compute the right slot
24917
24918 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
24919
24920         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
24921         from Martin Weindel.
24922         * object.h: add mono_string_chars ().
24923
24924 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
24925
24926         * reflection.c (build_compressed_metadata): Eliminates warnings
24927         and uses 64-bit clean code.
24928
24929         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
24930         (mono_type_equal): Change signature to eliminate warnings.
24931
24932 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
24933
24934         * icall.c, loader.c: remove the internalcall array constructors.
24935         Changes to match the new MonoArray structure.
24936         * object.h, object.c: an array object doesn't allocate an extra
24937         vector. Add mono_array_new_full () to create jagged arrays easily.
24938
24939 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
24940
24941         * metadata.h, metadata.c: add mono_metadata_field_info () to
24942         retreive all the info about a field from vairous tables.
24943         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
24944         * class.h, class.c: augment MonoClassField with more info.
24945         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
24946         policy and load a field's RVA if needed.
24947
24948 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
24949
24950         * class.c (mono_class_metadata_init): create a trampoline for all
24951         virtual functions instead of actually compiling them.
24952
24953 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
24954
24955         * class.h, class.c: include name in MonoClassField.
24956         * class.c: fix fundamental type of System.Object and System.String.
24957         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
24958         tokens in ldtoken.
24959         * icall.c: remove internalcalls for the Reflection stuff that is now
24960         done in C# code.
24961         * loader.c: mono_field_from_memberref () implementation.
24962         * mono-endian.c: thinko (s/struct/union/g).
24963         * object.c, object.h: make the mono_string_* prototypes actually use
24964         MonoString instead of MonoObject.
24965         * reflection.c, reflection.h: updates for changes in the reflection
24966         code in corlib: we use C structures that map to the actual C# classes.
24967         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
24968         fat method header if needed and use the info from the ILGenerator for
24969         methods. Handle fields in types. Misc fixes.
24970
24971 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
24972
24973         * class.c (mono_class_metadata_init): bug fix: always allocate
24974         space for static class data
24975
24976 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
24977
24978         * class.c (mono_compute_relative_numbering): use relative
24979         numbering to support fast runtime type checks.
24980
24981 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
24982
24983         * class.c (mono_class_create_from_typeref): added debugging output
24984         to print class name when MonoDummy is returned instead of real class
24985
24986 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
24987
24988         * class.c (mono_class_metadata_init): interface offset table now
24989         contains pointers into the vtable - this is more efficient for the jit
24990
24991 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
24992
24993         * class.c (mono_class_metadata_init): use a temporary vtable (the
24994         old algorithm only worked for the interpreter, but not for the jit)
24995
24996 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
24997
24998         * loader.c (method_from_memberref): use mono_class_get to get the
24999         class of an array instead of using System.Array directly.
25000         (mono_get_method): also add MEMBERREF methods to the method cache
25001         which usefull for arrays.
25002
25003 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
25004
25005         * pedump.c (arch_compile_method): added to compute vtable entry
25006
25007         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
25008         number of interfaces.
25009         
25010         * class.h: merged MonoArrayClass into MonoClass
25011
25012         * class.c (mono_class_create_from_typedef): compute the vtable size and
25013         allocate space to include the vtable inside MonoClass
25014         (mono_class_metadata_init): initialize the vtable
25015
25016 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
25017
25018         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
25019         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
25020         * image.c: endian fixes by Laurent Rioux.
25021         * object.h, object.c: rename MonoStringObject to MonoString and
25022         MonoArrayObject to MonoArray. Change some function names to conform to
25023         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
25024         guint16* as first argument, so don't use char*.
25025         Provide macros to do the interesting things on arrays in a portable way.
25026         * threads-pthread.c: updates for the API changes and #include <sched.h>
25027         (required for sched_yield()).
25028         * icall.c: updates for the API changes above.
25029         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
25030         platforms that need them.
25031
25032 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
25033
25034         * class.c: set the correct type for all the fundamental
25035         type when loading the class.
25036
25037 2001-10-05  Dick Porter  <dick@ximian.com>
25038
25039         * threads-pthread.c (pthread_mutex_timedlock): Simple
25040         compatibility version for C libraries that lack this call.
25041
25042 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
25043
25044         * class.c: MonoTypes stored in MonoClass are stored as
25045         fundamental MonoTypes when the class represents a
25046         fundamental type (System.Int32, ...).
25047         The TypeHandle return by ldtoken is a MonoType*.
25048         * icall.c: ves_icall_get_data_chunk () write out all the
25049         PE/COFF stuff. Implement ves_icall_define_method (),
25050         ves_icall_set_method_body (), ves_icall_type_from_handle ().
25051         * image.c: properly skip unknown streams.
25052         * loader.h, loader.c: add type_class to mono_defaults.
25053         * metadata.c, metadata.h: export compute_size () as
25054         mono_metadata_compute_size () with a better interface.
25055         Typo and C&P fixes.
25056         * pedump.c: don't try to print the entry point RVA if there is no entry point.
25057         * reflection.c, reflection.h: many cleanups, fixes, output method
25058         signatures and headers, typedef and typeref info, compress the metadata
25059         tables, output all the heap streams, cli header etc.
25060         * row-indexes.h: typo fixes.
25061
25062 2001-10-04  Dick Porter  <dick@ximian.com>
25063
25064         * object.h: Add a synchronisation mutex struct to MonoObject
25065
25066         * object.c (mono_new_object): Initialise the object
25067         synchronisation mutexes
25068
25069         * icall.c: System.Threading.Monitor internal calls
25070         
25071         * threads-pthread.h:
25072         * threads-pthread.c: System.Threading.Monitor internal calls
25073
25074         * threads-types.h: New file, includes the system-specific thread
25075         structures
25076         
25077         * threads-pthread-types.h:
25078         * threads-pthread-types.c: New files, handle pthread-specific
25079         synchronisation types
25080
25081         * threads-dummy-types.h: 
25082         * threads-dummy-types.c: New files of dummy support for
25083         thread-specific types
25084
25085         * metadata.c:
25086         * image.c:
25087         * pedump.c: include mono-endian.h not endian.h
25088         
25089         * Makefile.am: More threads files.
25090         Name mono-endian.h not endian.h
25091
25092 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
25093
25094         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
25095         stuff and implement a few more bits.
25096         * icall.c: a field needs to be dereferenced twice. Do not use the same
25097         name for two variables in the same scope.
25098         * image.c, image.h: cleanups.
25099
25100 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
25101
25102         * class.c (mono_class_metadata_init): bug fix: compute the right size
25103
25104 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
25105
25106         * icall.c: implemented some of the Reflection internalcalls.
25107         * image.c, image.h: start writing out the PE/COFF image.
25108         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
25109         that does the reverse than decode_blob_size ().
25110         * object.c: use mono_metadata_encode_value (). Move here
25111         temporary implementation of mono_string_to_utf8 ().
25112         * rawbuffer.c: make malloc_map static.
25113
25114 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
25115
25116         * metadata.c: fix type comparison for arrays.
25117         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
25118         Added a couple of new classes to monodefaults.
25119         * icall.c: added a couple of Reflection-related internalcalls.
25120         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
25121         Added a byval_arg MonoType to MonoClass.
25122
25123 2001-09-28  Dick Porter  <dick@ximian.com>
25124
25125         * icall.c:
25126         * threads-pthread.h: 
25127         * threads-pthread.c: Implemented internal calls for
25128         LocalDataStoreSlot operations.  Applied mutexes around all shared
25129         data.  Reworked the thread creation and Start() operations to
25130         avoid a race condition.
25131         
25132         * threads-dummy.h:
25133         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
25134
25135 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
25136
25137         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
25138
25139 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
25140
25141         * class.c, loader.c: warn and return NULL instead of erroring out.
25142         * icall.c: added System.AppDomain::getCurDomain().
25143         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
25144
25145 2001-09-25  Dick Porter  <dick@ximian.com>
25146
25147         * threads-pthread.h:
25148         * threads-pthread.c: Implemented timed thread joining and added
25149         System.Threading.Thread::Join_internal internal call
25150
25151         * icall.c: Added System.Threading.Thread::Join_internal internal call
25152
25153         * threads-dummy.h:
25154         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
25155
25156 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
25157
25158         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
25159         mono_string_intern () to implement the semantics of the ldstr opcode
25160         and the interning of System.Strings.
25161         * icall.c: provide hooks to make String::IsIntern and String::Intern
25162         internalcalls.
25163
25164 2001-09-23  Dick Porter  <dick@ximian.com>
25165
25166         * threads-dummy.c: 
25167         * threads-dummy.h: New files of dummy threading routines
25168
25169         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
25170         support code based on system specifics
25171
25172         Rename PTHREAD_LIBS to THREAD_LIBS
25173         
25174 2001-09-23  Dick Porter  <dick@ximian.com>
25175
25176         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
25177         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
25178         internal calls.
25179         (mono_thread_init): Set up a Thread object instance to return when
25180         the main thread calls Thread.CurrentThread
25181         (mono_thread_cleanup): Wait for all subthreads to exit
25182
25183         * icall.c: New internal calls for System.Threading.Thread::Sleep
25184         (including Schedule) and CurrentThread
25185
25186         * threads.h: New file, to insulate thread-specific stuff from the
25187         rest of the code
25188
25189 2001-09-21  Dick Porter  <dick@ximian.com>
25190
25191         * threads-pthread.h: 
25192         * threads-pthread.c: New file, for handling pthreads-style
25193         threading support.  Start() now starts a new thread and executes
25194         the ThreadStart delegate instance.
25195
25196         * icall.c: Added the internalcall for
25197         System.Threading.Thread::Start_internal
25198
25199         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
25200
25201 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
25202
25203         * loader.c: work around the different signatures for delegates
25204         constructors csc generates in compiled code vs the ones compiled in mscorlib.
25205
25206 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
25207
25208         * class.h, class.c: add mono_class_get_field_from_name ().
25209         * *: Fix C comments and other ANSI C issues.
25210
25211 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
25212
25213         * endian.h, assembly.c: fix some endianness issues.
25214
25215 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
25216
25217         * loader.h, load.c: add delegate_class to mono_defaults.
25218         Handle runtime provided methods in mono_get_method ().
25219
25220 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
25221
25222         * loader.c (mono_get_method): use pinvoke for internal call
25223
25224         * icall.c: use pinvoke for internal call
25225
25226         * loader.c (method_from_memberref): set the method name
25227
25228 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
25229
25230         * metadata.c: help the compiler generate better code for
25231         mono_class_from_mono_type ().
25232
25233 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
25234
25235         * class.c (mono_class_metadata_init): delayed computing of the
25236         class size to mono_class_metadata_init ()
25237
25238 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
25239
25240         * class.c, class.h: add an interfaces member to MonoClass.
25241         * image.c, image.h: add assembly_name field to MonoImage
25242         from the assembly table.
25243         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
25244
25245 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
25246
25247         * class.c: Handle Array in mono_class_from_mono_type ().
25248         * metadata.c, pedump.c: some endian fixes.
25249
25250 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
25251
25252         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
25253         * metadata.c: fix small problem introduced with the latest commit.
25254
25255 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
25256
25257         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
25258         We don't need a MonoMetadata pointer anymore to compare signatures in
25259         mono_metadata_signature_equal (), update callers.
25260         Reduced memory usage an number of allocations for MonoMethodHeader and
25261         MonoMethodSignature.
25262
25263 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
25264
25265         * metadata.c: added compare for szarray.
25266
25267 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
25268
25269         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
25270         and add a couple more types to it and mono_defaults. Give an hint on
25271         classes that need implementing in our corlib and are referenced
25272         in mscorlib.
25273
25274 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
25275
25276         * class.h, class.c: keep track if a class is also an Enum.
25277         * loader.c: Implement a couple more types for use in libffi
25278         marshalling. Gives better diagnostics when failing to dlopen
25279         a library. Set method->klass for P/Invoke methods, too.
25280
25281 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
25282
25283         * class.c, class.h: add a MonoType this_arg to MonoClass that
25284         represents a pointer to an object of the class' type that
25285         can be used by the interpreter and later the type cache.
25286         Add best guess alignment info for valuetype objects.
25287
25288 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
25289
25290         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
25291         into MonoType: one less level of indirection and allocation and
25292         simplifies quite a bit of code. Added cache for MonoTypes that are
25293         used frequently, so that we don't need to allocate them all the time.
25294
25295 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
25296
25297         * class.c (mono_class_create_from_typedef): System.Enum is also a
25298         value type, although it does not derive from System.ValueType
25299         (maybe a bug in the ms compiler?)
25300
25301         * metadata.c (mono_type_size): return the right size for value types
25302
25303         * loader.c (mono_get_method): only initialize method header if not abstract
25304
25305         * class.c (mono_class_from_mono_type): use mono_default values. 
25306
25307 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
25308
25309         * *: use MonoClass pointers instead of <type_tokens>
25310         
25311         * class.h: new flag: metadata_inited.
25312
25313         * class.c (mono_class_metadata_init): impl.
25314         (mono_class_instance_size): impl.
25315         (mono_class_data_size): impl.
25316
25317 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
25318
25319         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
25320         MonoClass now has the name and name_space fields. 
25321         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
25322         mono_get_method () takes and optional MonoClass as argument.
25323         Removed mono_typedef_from_name() and added mono_class_token_from_name()
25324         instead that takes advantage of a map from class names to typedef
25325         tokens in MonoImage.
25326
25327 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
25328
25329         * metadata.c: zero is not a valid alignment boundary.
25330         Merge MONO_TYPE_VOID in default decoding code.
25331
25332 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
25333
25334         * image.h: merged MonoMetadata into MonoImage
25335
25336         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
25337         identify the type of elements.
25338
25339 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
25340
25341         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
25342         * cil-coff.h: split MonoMSDOSHeader and add size info.
25343         * image.c: add some consistency checks.
25344         * metadata.c: fix row size computation: one programmer
25345         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
25346         add explanation for the locator routine.
25347         Fix decoding of size in method header.
25348         
25349 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
25350
25351         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
25352         (g_concat_dir_and_file): Bring g_concat_dir_and_file
25353         function from gnome-libs.  This uses the right path separator
25354         based on the OS, and also works around a bug in some systems where
25355         a double slash is not allowed. 
25356         (default_assembly_name_resolver): Use g_concat_dir_and_file
25357         (mono_assembly_open): ditto.
25358
25359 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
25360
25361         * metadata.c (mono_metadata_signature_equal): impl.
25362
25363         * *: void is now a realy MonoType (instead of using NULL)
25364         
25365         * metadata.c (do_mono_metadata_parse_type): use
25366         mono_metadata_parse_type to parse void value.
25367
25368 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
25369
25370         * metadata.c, metadata.h: in the signature and method header store
25371         only the space required for holding the loca vars and incoming arguments.
25372
25373 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
25374
25375         * metadata.c (do_mono_metadata_parse_type): treat void like any
25376         other type (instead of assigning NULL);
25377
25378 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
25379
25380         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
25381
25382 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
25383
25384         * image.c (do_mono_image_open): added a cache for arrays.
25385
25386 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
25387
25388         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
25389         decode a single column from a row in a metadata table and changes
25390         to take advantage of it in the typedef locator (gives a nice speed up).
25391         Store offset info for function params.
25392
25393 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
25394
25395         * image.h (MONO_IMAGE_IS_CORLIB): removed 
25396
25397 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
25398
25399         * assembly.c: how could mono_assembly_close () had ever worked?
25400         * metadata.c, metadata.h: provide offset info for local vars.
25401         Implement mono_type_size () to take care of alignment as well
25402         as size (it was mono_field_type_size in cli/class.c before).
25403
25404 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
25405
25406         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
25407
25408         * assembly.h (CORLIB_NAME): set to corlib.dll
25409
25410         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
25411
25412 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
25413
25414         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
25415         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
25416         tokentype.h: massive namespace cleanup.
25417
25418 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
25419
25420         * metadata.h, metadata.c: decode exception clauses when parsing method header.
25421
25422 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
25423
25424         * metadata.c (mono_metadata_free_type): added check for type !=
25425         NULL (void) before calling mono_metadata_free_type()
25426
25427 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
25428
25429         * metadata.h, row_indexes.h: added header with enumerations to use
25430         to index in the columns from tables in metadata and to decode coded
25431         tokens: we should start using this instead of embedding magic numbers
25432         all over the code.
25433
25434 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
25435
25436         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
25437         Move metadata_t info from cli_image_info_t to MonoImage, where
25438         it's easily accessible. Changed all the uses accordingly.
25439         Added the method and class caches to MonoImage.
25440         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
25441         and mono_metadata_decode_value () signature to be more consistent
25442         with the other parse functions (and simplify code). Taken advantage
25443         of zero-length array allocation with GCC. Removed reduntant (and
25444         wrong) MonoFieldType struct and use MonoParam instead. Changed
25445         mono_metadata_parse_field_type () to use common code for parsing.
25446         Added mono_metadata_typedef_from_field () and
25447         mono_metadata_typedef_from_method () to lookup a typedef index from a
25448         field or method token.
25449         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
25450
25451 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
25452
25453         * metadata.c (mono_metadata_parse_field_type): Implement. 
25454         (do_mono_metadata_parse_type): Split engine from
25455         mono_metadata_parse_type, so that we can create smaller structures
25456         for things that just have one pointer to the MonoType (look at
25457         the MonoFieldType)
25458
25459 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
25460
25461         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
25462         as Jan Gray found out, it is incorrect. 
25463
25464 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
25465
25466         * assembly.c: Implement asssembly loading.  This loads an image
25467         and loads all the referenced assemblies.  Come to think of it, we
25468         could always do lazy loading of the assemblies. 
25469
25470         * image.c (mono_image_open): Keep loaded images in a hashtable.
25471
25472         * image.h (MonoImage): Add reference count.
25473
25474 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
25475
25476         * assembly.c (mono_assembly_open): Keep track of the file name in
25477         case the assembly has no ASSEMBLY table.
25478
25479         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
25480         from get.c here.
25481
25482 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
25483
25484         * metadata.c, metadata.h: decode local vars in method header
25485         parse function. Change callers accordingly.
25486
25487 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
25488
25489         * metadata.h, cil-coff.h: protect against multiple inclusion.
25490         Added some new structures to hold information decoded from metadata:
25491         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
25492         and relevant decoding/free functions.
25493         * metadata.c: implement decoding functions. Add warning for out of bounds
25494         index in mono_metadata_locate(). Implement mono_get_method () to retreive
25495         all the info about a method signature and invocation. Remove check on
25496         uninitialized local var in parse_mh() and fix memory leak.
25497
25498 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
25499
25500         * metadata.h: More macros.
25501
25502         * tokentype.h: New file.
25503
25504 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
25505
25506         * assembly.c: added a consistency check and initialize
25507         some structures with g_new0().
25508         * metadata.c: fixed a couple more bugs in table size computation
25509         and add other checks for out-of bound access to metadata.
25510
25511 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
25512
25513         * metatada.c: fix bugs computing table sizes. Spew a
25514         warning when index in string heap is out of bounds.
25515
25516 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
25517
25518         * metadata.h: Add a couple of macros to manipulate tokens. 
25519
25520 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
25521
25522         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
25523         cli_section_tables).
25524
25525 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
25526
25527         * metadata.c (mono_metadata_user_string): New function, provides
25528         access to the UserString heap. 
25529
25530 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
25531
25532         * metadata.c: Add inline documentation.
25533
25534 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
25535
25536         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
25537         files. 
25538
25539 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
25540
25541         * typeattr.h: New file, TypeAttribute flags. 
25542
25543 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
25544
25545         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
25546         mono_assembly_ensure_section): Section loading code.
25547         (load_section_tables): Load the sections.
25548
25549         * mono/metadata/metadata.c (mono_metadata_locate_token,
25550         mono_metadata_locate): Functions to locate the information
25551         definition given a token or a table and an index.
25552         (mono_metadata_compute_table_bases): New.
25553         (compute_size): New function to compute the sizes of the various
25554         tables.
25555
25556         * mono/metadata/metadata.h: Finish listing the different index
25557         types. 
25558
25559         * mono/metadata/pedump.c: Improve to dump new information.
25560
25561 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
25562
25563         * mono/metadata/metadata.c: Entered all the tables matching
25564         Beta2. 
25565
25566         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
25567
25568
25569