6b426b2ff5606a530ab85d3efa51936acb63fbb1
[mono.git] / mono / metadata / ChangeLog
1 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
2
3         * exception.c (mono_exception_from_name_two_strings):
4         Break from loop after method is found.
5
6 2008-01-04  Dick Porter  <dick@ximian.com>
7
8         * process.c (process_module_string_read): Rename variable to
9         reflect correct usage, after fixing bug 345972.
10
11 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
12
13         * verify.c (mono_type_create_fnptr_from_mono_method): 
14         created a MonoType function pointer instance to be used during
15         verification. The verifier releases this memory at end.
16
17         * verify.c (mono_method_is_constructor): extracted repeated
18         checks for constructor into a single class.
19
20         * verify.c (do_push_field): use new extracted method
21         for constructor check.
22
23         * verify.c (do_newobj): same.
24
25         * verify.c (do_ldftn): renamed to do_load_function_ptr
26         and make it verify ldvirtftn too.
27
28         * verify.c (mono_method_verify: proper verification
29         of ldvirtftn. release created MonoMethod instances.
30
31 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
32
33         * verify.c (token_bounds_check): added.
34
35         * verify.c (do_ldftn): added.
36
37         * verify.c (mono_method_verify): proper verificartion of ldftn.
38
39 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
40
41         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
42         than the table row count. It's the resposibility of the caller to
43         make the bounds check and raise the correct error.
44
45         * metadata.c (mono_metadata_decode_row_col): Same.
46
47         * loader.c (mono_get_method_from_token): perform bounds check
48         on token for methoddef table.
49
50 2007-12-29  Miguel de Icaza  <miguel@novell.com>
51
52         * icall.c
53         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
54         assert into a negative result, the managed code already coped with
55         that.
56
57         Some folks on Windows reported this error. 
58
59 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
60
61         * appdomain.c: Bump corlib version.
62         * icall.c:
63         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
64         CultureInfo.CreateCulture to create CultureInfo for name.
65         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
66         create CultureInfo for name. Fixes bug #347174.
67
68 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
69
70         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
71         flags.
72
73         * verify.c (is_valid_branch_instruction): allow branching to the
74         first instruction of the protected block.
75
76         * verify.c (is_valid_cmp_branch_instruction): same.
77
78         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
79         avoid double initialization.
80
81         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
82         detect which cases the eval stack should just be copied.
83
84         * verify.c (mono_method_verify): check if the eval stack
85         is empty when entering a protected block.
86
87 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
88
89         * verify.c: added is_clause_in_range, is_clause_inside_range,
90         is_clause_nested and verify_clause_relationship. They perform
91         the verifications stated in P1 12.4.2.7.
92
93         * verify.c (mono_method_verify): remove some unused variables,
94         add the new exception clause checks, add instruction border
95         checks for protected block start/end, improved some error 
96         messages and fixed a bug in the way invalid instruction access
97         is detected.
98
99 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
100
101         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
102         from GC 7.0 if available.
103
104         * object.c: Remove an unused define.
105         
106         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
107
108         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
109
110         * null-gc.c (mono_gc_make_descr_for_array): Implement.
111
112         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
113
114         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
115         to take the same arguments as the other make_descr functions.
116
117         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
118
119         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
120         directly.
121
122         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
123         mini.c.
124
125         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
126         call to boehm-gc.c.
127
128         * boehm-gc.c (mono_gc_register_root): Fix a warning.
129
130         * null-gc.c (mono_gc_register_root): Fix a warning.
131
132         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
133
134         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
135         (mono_gc_base_init): Call GC_init ().
136
137         * null-gc.c: Define mono_gc_register_root () as a no-op.
138
139         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
140
141 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
142
143         * verify.c: add prototype for merge_stacks at top
144
145         * verify.c (do_switch): added.
146
147         * verify.c (merge_stacks): on some cases the stack merging
148         was not happening properly. Unequal stack sizes at merge
149         points should be invalid.
150
151         * verify.c (mono_method_verify): added more debug info on stack state.
152         verify switch properly.
153
154 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
155
156         * method-builder.h: New file, moved the mono_mb_ declarations here from 
157         marshal.h.
158
159         * boehm-gc.c marshal.c: Include method-builder.h.
160
161         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
162
163         * marshal.c: Remove some code which is now in method-builder.c.
164
165 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
166
167         * method-builder.c: New file, extraction of the method builder functionality 
168         from marshal.c.
169
170         * marshal.c: Move the mb functions into method-builder.c.
171
172         * marshal.h marshal.c: Export some mono_mb_... functions.
173
174         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
175
176         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
177         the caller.
178
179         * class.c (mono_class_get_full): Check the token type in the dynamic case.
180
181         * loader.c (mono_field_from_token): Ditto.      
182
183         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
184         type as well.
185         
186         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
187         Fixes #342565.
188
189         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
190         a helper function for setting it.
191
192         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
193
194         
195         * assembly.c: Significally simplify code now that referenced assemblies are 
196         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
197
198         * threads.h: Don't include  the internal threads-types.h header file. Fixes
199         #349952.
200
201 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
202
203         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
204         instructions that were target of branches or are at protected block boundaries.
205
206         * verify.c (in_same_block): handle filter clauses.
207
208         * verify.c (is_valid_branch_instruction): added. checks the target of
209         instructions br or brtrue/false.
210
211         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
212         binary branch instructions such as beq and bge.
213
214         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
215         and made it pin the instruction as been part of the exception block.
216
217         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
218         of in_same_block.
219
220         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
221         of in_same_block.
222
223         * verify.c (do_ret): ret from a protected block is unverifiable and
224         not invalid.
225
226         * verify.c (do_static_branch): verify br and br.s instructions.
227
228         * verify.c (merge_stacks): add extra param to support detection
229         of branches in the middle of instructions.
230         
231         * verify.c (mono_method_verify): verify branches and exception blocks
232         that target the middle of instructions. Proper verification of br and br.s.
233
234 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
235
236         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
237         skip_visibility field.
238         (reflection_methodbuilder_from_dynamic_method): Ditto.
239
240         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
241         registrations. Fixes #348193.
242
243         * threads.h: Move the internal mono_thread_get_pending_exception () to
244         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
245
246 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
247
248         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
249         icall registration. Fixes #348193.
250
251         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
252         for corlib classes into object. Fixes #349621.
253
254 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
255
256         * icall.c (property_accessor_nonpublic): new function to determine
257         whether an accessor allows a property to be considered non-public.
258         Returns false for private accessor(s) from parent class, and internal
259         accessor(s) from parent on 2.0 profile (and higher).
260         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
261         to determine whether property should be included if NonPublic flag
262         is set. Fixes bug #349078.
263
264 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
265
266         * verify.c (init_stack_with_value): added.
267
268         * verify.c (mono_method_verify): extracted common
269         code for exception initialization into init_stack_with_value.
270
271         * verify.c (mono_method_verify): initialize the exception
272         for handler clauses as well.
273
274         * verify.c (mono_method_verify): fix the exception clause
275         ordering rules, it should use handler end offset and not
276         start offset.
277
278 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
279
280         * rawbuffer.c: remove useless warning.
281
282 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
283
284         * threads.h, threads-types.h: move functions to the correct header
285         (fixes bug#349952).
286
287 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
288
289         * verify.c (mono_method_verify): proper verification
290         of exception handling clauses ranges and fallthru in
291         and out of protected blocks.
292
293 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
294
295         * verify.c (mono_method_verify): fixed compilation issue.
296
297 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
298
299         * verify.c (mono_method_verify): a printf slipped in, changed
300         to use verifier debug macro.
301
302 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
303
304         * verify.c (is_correct_leave): check for filter clauses.
305
306         * verify.c (do_filter): added.
307
308         * verify.c (mono_method_verify): property verification of leave.
309
310
311 2007-12-18  Mark Probst  <mark.probst@gmail.com>
312
313         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
314         Win32 build, until we figure out how to do the proper thing on
315         Win32.
316
317 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
318
319         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
320         by the previous patch.
321         
322         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
323         the assembly resolve handler for refonly assemblies.
324
325 2007-12-17  Mark Probst  <mark.probst@gmail.com>
326
327         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
328         Make sure only one thread is allowed to commence shutdown, and
329         don't allow new threads to be started once shutdown is in
330         progress.
331
332 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
333
334         * verify.c (is_correct_endfilter): added.
335
336         * verify.c (is_unverifiable_endfilter): added.
337
338         * verify.c (do_endfilter): added.
339
340         * verify.c (mono_method_verify): property verification of endfilter
341         and fixed a corner case or endfinally.
342
343 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
344
345         * verify.h: new flags to support fail fast of unverifiable code and
346         do non-strict verification. Non-strict verification is required to
347         have MS runtime compatibility. There are a huge amount of unverifiable
348         code that it accepts as verifiable. The strict mode verifies the code
349         as the specs says.
350         Non-strict mode will be required in cases where code needs to be
351         accepted as verifiable but fails under strict mode.
352
353         * pedump.c: added support to fail fast and non-strict verification.
354
355         * verify.c: added support for both fail fast and non-strict verification.
356
357 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
358
359         * verify.c (is_correct_endfinally): added.
360
361         * verify.c (mono_method_verify): property verification of endfinally.
362
363 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
364
365         * verify.c (in_any_block): check for filter clauses.
366
367         * verify.c (is_correct_rethrow): added.
368
369         * verify.c (mono_method_verify): property verification of rethrow.
370
371         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
372
373 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
374
375         * verify.c (do_throw): added.
376
377         * verify.c (mono_method_verify): property verification of throw
378
379 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
380
381         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
382         assemblies. Fixes #346425.
383
384 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
385
386         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
387         FieldBuilders.
388
389         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
390
391         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
392         prevent asserts when this is called with a token which might not be valid.
393
394         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
395         lookup_dynamic_token_class with valid_token == FALSE.
396
397         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
398
399         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
400
401         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
402         
403 2007-12-10  Mark Probst  <mark.probst@gmail.com>
404
405         * gc.c: Don't delay threadpool thread finalization unless Mono is
406         shutting down.
407
408 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
409
410         * threads.c: turn an assert into a non-fatal warning.
411
412 2007-12-09  Robert Jordan  <robertj@gmx.net>
413
414         * icall.c (GetVirtualMethod): Add missing argument validation.
415
416 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
417
418         * verify.c (do_cast): added.
419
420         * verify.c (mono_method_verify): property verification of castclass and isinst.
421
422
423 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
424
425         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
426
427         * verify.c (do_stelem): added.
428
429         * verify.c (mono_method_verify): property verification of stelem.X.
430
431 2007-12-07  Mark Probst  <mark.probst@gmail.com>
432
433         * class.c, class-internals.h: Introduce an environment variable
434         (MONO_GENERIC_SHARING) through which the extent of generic code
435         sharing can be controlled (share all classes, share only corlib
436         classes, or share nothing).
437
438         * object.c: Only create runtime generic context for classes for
439         which sharing is enabled.
440
441 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
442
443         * verify.c (do_ldelem): refactor it to work with ldelem.any.
444
445         * verify.c (mono_method_verify): property verification of ldelem.any.
446
447 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
448
449         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
450         added ldelem.X opcodes.
451
452         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
453
454         * verify.c: proper verification of ldelem.X 
455
456 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
457
458         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
459
460 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
461
462         * verify.c (mono_method_verify): null literal requires special handling,
463         the value pushed on stack need to be flagged as so.
464
465         * verify.c (do_ldelema): Verify ldelema properly.
466
467 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
468
469         * verify.c: Verify ldlen properly.
470
471 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
472
473         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
474         to the target object's type. Fixes #346160.
475
476 2007-12-05  Dick Porter  <dick@ximian.com>
477
478         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
479         Solaris needs the same workaround as BSD-derived systems.  Fixes
480         bug 323524, patch by Burkhard Linke
481         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
482
483 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
484
485         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
486         handle to use when error dialog is shown; otherwise, update mask
487         to show no error dialog when an error occurs.
488
489 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
490
491         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
492
493         * class.c (mono_class_get_field_default_value): New helper function to initialize
494         field->def_type and field->data.
495
496 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
497
498         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
499         the general one.
500
501         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
502
503         * marshal.c: Avoid depending on delegate->method_info being set.
504
505         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
506         
507         * object.c (mono_delegate_ctor): Set delegate->method.
508
509         * object-internals.h (struct _MonoDelegate): Add 'method' field.
510
511         * appdomain.c: Bump corlib version.
512
513 2007-11-27  Raja R Harinath  <harinath@gmail.com>
514
515         * metadata.c (mono_generic_inst_equal_full): Short-circuit
516         equality check if we're comparing canonicalized MonoGenericInsts.
517
518 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
519
520         * class.c (generic_array_methods): Call mono_class_setup_methods () before
521         accessing class->methods.
522
523 2007-11-22  Dick Porter  <dick@ximian.com>
524
525         * threads.c: Ensure that the synch_cs is set before trying to use
526         it.
527
528 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
529
530         * profiler.c: r89126 broke the statistial profiler, unbreak.
531
532 2007-11-22  Martin Baulig  <martin@ximian.com>
533
534         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
535
536         * mono-debug.c
537         (mono_debug_debugger_version): Bump to 3.
538         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
539         -> mono_debugger_class_initialized().
540
541         * mono-debug-debugger.c
542         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
543
544         * class.c
545         (mono_debugger_start_class_init_func): Removed.
546         (mono_debugger_class_loaded_methods_func): Added.
547         (mono_class_setup_methods): Call it here.
548
549 2007-11-22  Martin Baulig  <martin@ximian.com>
550
551         * mono-debug.c
552         (mono_debug_add_delegate_trampoline): New public method.
553         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
554
555         * mono-debug.h
556         (MonoSymbolTable): Added `global_data_table'.
557         (MonoDebuggerTypeKind): Removed.
558
559 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
560
561         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
562         these methods.
563
564         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
565         
566 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
567
568         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
569
570 2007-11-20  Martin Baulig  <martin@ximian.com>
571
572         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
573
574         * mono-debug-debugger.c
575         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
576         (mono_debugger_remove_breakpoint): Likewise.
577         (mono_debugger_check_breakpoints): Likewise.
578         (mono_debugger_register_class_init_callback): New public method.
579         (mono_debugger_remove_class_init_callback): Likewise.
580         (mono_debugger_add_type): Likewise.
581
582         * mono-debug-debugger.h
583         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
584
585 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
586
587         * class.c: more interface implementations needed for the
588         array enumerator (fixes bug #341112).
589
590 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
591
592         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
593         fix ParamName of ArgumentNullExceptions.
594
595 2007-11-17  Miguel de Icaza  <miguel@novell.com>
596
597         * reflection.c (mono_reflection_encode_sighelper): Generate the
598         modopts and modreqs.   I have a useless test that crashes monodis,
599         but that shows the code working.
600
601 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
602
603         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
604         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
605
606 2007-11-15  Dick Porter  <dick@ximian.com>
607
608         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
609         When joining a thread, it's the thread that's calling Join that
610         gets WaitSleepJoin state not the target.  Fixes the standalone
611         test case in bug 334740, and hopefully the whole bug too.
612
613 2007-11-15  Dick Porter  <dick@ximian.com>
614
615         * process.c: Read file version info from the files pointed at by
616         process modules, not the current process.  Fixes bug 315969.
617
618         Use windows typedef names in some places to fix warnings on the
619         windows build.
620
621 2007-11-15  Mark Probst  <mark.probst@gmail.com>
622
623         * image.c, metadata-internals.h: Added a generic_class_cache hash
624         to MonoImage for looking up generic classes when sharing generics.
625
626 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
627
628         * sgen-gc.c: warning cleanups.
629
630 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
631
632         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
633         inherited properties.
634
635 2007-11-14  Mark Probst  <mark.probst@gmail.com>
636
637         * object.c, class-internals.h: Added more information to the
638         runtime generic context.
639
640 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
641
642         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
643         instead of just the target method. Generalize the abstract method handling to
644         handle any non-static method.
645
646         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
647         mono_marshal_get_delegate_invoke () signature change.
648
649 2007-11-13  Mark Probst  <mark.probst@gmail.com>
650
651         * class.c, class-internals.h: Made
652         mono_type_get_basic_type_from_generic () public.  Fixed member
653         access check for shared generics.
654
655         * loader.c: Don't insert field into field cache if it's part of a
656         non-inflated generic class.
657
658         * domain.c, domain-internals.h: The generic sharing context is now
659         part of the jit info data structure.  Added two accessor
660         functions.
661
662 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
663
664         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
665         the array Get/Set/Address methods, since the JIT inlines them.
666
667         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
668
669         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
670         (mono_image_init): Initialize runtime_invoke_direct_cache.      
671
672         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
673         mono_marshal_get_delegate_invoke signature change.
674
675         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
676         an additional argument. Add support for invoking abstract methods.
677
678         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
679
680         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
681
682 2007-11-09  Mark Probst  <mark.probst@gmail.com>
683
684         * class.c: Do field layout for open generic classes as well.
685
686 2007-11-09  Mark Probst  <mark.probst@gmail.com>
687
688         * gc.c, gc-internal.h: Don't finalize threadpool threads with
689         other objects, because the threadpool is still around.  Put them
690         in a list instead and after finalizing all other objects in the
691         root domain shut down the thread pool and then finalize the
692         threads.  Fixes bug #337383.
693
694         * threads.c, thread-types.h: New mono_thread_create_internal()
695         function for marking a thread with the threadpool flag before it
696         started.  Set synch_cs to NULL after freeing it.
697
698         * threadpool.c: Mark threadpool threads before they start.
699
700 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
701
702         * reflection.h, reflection.c: don't export random functions
703         and lazy load dbnull and missing objects.
704
705 2007-11-07  Jonathan Chambers <joncham@gmail.com>
706
707         * class.c: Initialize COM types if COM interfaces
708         are present (not just COM classes).
709         
710         Code is contributed under MIT/X11 license.
711
712 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
713         * reflection.c:
714         create_dynamic_mono_image: hook module profiler events (dynamic case).
715         mono_image_basic_init: hook assembly profiler events (dynamic case).
716
717 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
718         * profiler.c:
719         simple_appdomain_unload: completely terminate the profiler
720         instead of only processing the statistical samples.
721         simple_shutdown: make sure this is really called exactly once,
722         even in multithreaded applications, and always listen to
723         appdomain events.
724         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
725         here, the "[un]load" functions will do it.
726         Fixes bugs #333791 and #325261.
727
728 2007-11-07  Geoff Norton  <gnorton@novell.com>
729
730         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
731         rather than depend on __APPLE__.
732
733 2007-11-07  Mark Probst  <mark.probst@gmail.com>
734
735         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
736
737 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
738
739         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
740         UTF16 MonoString. Fix the crash from bug #335488
741
742 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
743
744         * marshal.c: Correct (for non-Win32 OS) length != size in 
745         mono_string_from_bstr. Fix #339530.
746
747 2007-11-06  Geoff Norton  <gnorton@novell.com>
748
749         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
750         to succeed
751
752 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
753
754         * process.c: Added run-time GetProcessId API detection for Windows.
755
756 2007-11-04  Miguel de Icaza  <miguel@novell.com>
757
758         * reflection.c  (mono_param_get_objects): If a parameter has the
759         attribute [System.Runtime.InteropServices.Optional] we should
760         set the DefaultValue of the ParameterInfo to be
761         System.Reflection.Missing instead of DBNull.
762
763         See bug #339013.
764
765         (mono_get_reflection_missing_object): New method,
766         returns the System.Reflection.Missing.Value singleton instance.
767
768 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
769
770         * culture-info-table.h : regenerated.
771
772 2007-11-02  Jonathan Chambers <joncham@gmail.com>
773
774         * icall.c: Use GetEnvironmentStrings on windows
775         so we are using the same environment block as 
776         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
777         #333740.
778         
779         Code is contributed under MIT/X11 license.
780
781 2007-10-31  Martin Baulig  <martin@ximian.com>
782
783         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
784
785         * mono-debug-debugger.h
786         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
787
788 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
789
790         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
791         classes.
792
793 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
794
795         * culture-info-table.h : regenerated.
796
797 2007-10-30  Robert Jordan  <robertj@gmx.net>
798
799         * icall-def.h, icall.c:
800         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
801
802         Code is contributed under MIT/X11 license.
803
804 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
805
806         * class.c (mono_class_setup_vtable): Find the inflated methods in the
807         inflated class instead of inflating them again.
808         
809         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
810         dynamic case.
811
812         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
813         Call setup_supertypes () after klass->parent is set.
814         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
815
816         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
817         for inflated instances of not yet created dynamic generic classes.
818         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
819         times from inflated_method.
820         (methodbuilder_to_mono_method): Ditto.
821
822 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
823
824         * gc.c: code cleanup and removed old untested option of not creating the
825         finalizer thread.
826
827 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
828
829         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
830         creating a jump trampoline for dynamic methods.
831
832 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
833
834         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
835         generic TypeBuilders when called from another method of the same type (bug #335131).
836
837
838 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
839
840         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
841         doesn't seem to work perfectly.
842         
843         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
844         called multiple times.
845         (methodbuilder_to_mono_method): Ditto.
846         (resolve_object): Inflate FieldBuilder's.
847
848 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
849
850         * string-icalls.c, string-icalls.h, appdomain.c: patch from
851         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
852         RemoveEmptyEntries in the string.Split implementation (bug #322375).
853
854 2007-10-26  Dick Porter  <dick@ximian.com>
855
856         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
857         Thread initialisation changes
858
859 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
860
861         * verify.c: fix compatibility check between arrays and System.Array
862
863 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
864
865         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
866         too. Fixes #336999.
867
868 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
869
870         * object.c (mono_value_box): Use typed allocation here.
871
872 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
873
874         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
875         trampoline instead of compiling the method right away.
876
877         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
878
879 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
880
881         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
882         related fields for dynamic classes. Fixes #334493.
883
884 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
885
886         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
887         
888         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
889
890         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
891         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
892
893         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
894
895         * reflection.c (create_generic_typespec): Initialize klass->generic_container
896         if needed.
897         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
898
899 2007-10-18  Jonathan Chambers <joncham@gmail.com>
900
901         * marshal.c: Use correct key when removing item
902         from ccw_hash.
903         
904         Code is contributed under MIT/X11 license.
905
906 2007-10-17  William Holmes  <billholmes54@gmail.com>
907
908         *marshal.c: Adding a case to marshal booleans to U1
909
910         Code is contributed under MIT/X11 license.
911
912 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
913
914         * class.c (mono_class_from_name): Search the modules compromising dynamic
915         assemblies. Fixes #331601.
916
917 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
918
919         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
920         exception if the type name contains an assembly component. Fixes #334203.
921
922         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
923         modules inside dynamic assemblies. Fixes #334200.
924         
925         * reflection.c: Set image->public_key and image->public_key_length;
926
927         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
928         fields.
929
930         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
931         
932 2007-10-16  Mark Probst  <mark.probst@gmail.com>
933
934         * metadata.c: Implemented correct comparing of generic classes.
935         An inflated generic class can be equal to a non-inflated one if it
936         is inflated with generic type variables as type arguments.  Fixes
937         bug #333798.
938
939 2007-10-15  Dick Porter  <dick@ximian.com>
940
941         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
942         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
943         81646.
944
945         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
946         instead of a monitor lock.  This means that monitor_try_enter and
947         co can set the thread state safely.
948         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
949         thread_interrupt_requested, so interrupt actually works.
950
951         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
952         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
953         state accessor function
954
955 2007-10-15  Martin Baulig  <martin@ximian.com>
956
957         * mono-debug.h
958         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
959         the debugger with the current runtime.
960
961 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
962
963         * object.c, object-internals.h: added the ability to set a single
964         trampoline for all the slots in a vtable.
965
966 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
967
968         * marshal.c: deal with a possible race condition during multicast
969         delegate invocation.
970
971 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
972
973         * class.c: ensure value type methods don't have the synchronized
974         flag set.
975
976 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
977
978         * string-icalls.c, string-icalls.h: reverted unapproved patch that
979         breaks the build.
980
981 2007-10-11  Joel Reed  <joelwreed@comcast.com>
982
983         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
984         to take an options parameter so that empty entries can be removed during
985         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
986
987 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
988
989         * marshal.c: make sure we don't store the signature from a dynamic
990         method into the runtime invoke cache (bug #327189).
991
992 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
993
994         * marshal.c: make sure the wrapper methods are properly initialized.
995
996 2007-10-11  Mark Probst  <mark.probst@gmail.com>
997
998         * metadata.c, metadata-internals.h: Generalized
999         mono_type_stack_size() to mono_type_stack_size_internal() which
1000         takes an additional argument specifying whether it allows open
1001         types.
1002
1003 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
1004
1005         * verify.c (do_invoke_method): handle typedbyref params
1006         correctly and check for unverifiable return values.
1007
1008         * verify.c (do_newobj): fix a warning.
1009
1010 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
1011
1012         * verify.c: don't tread typedbyref as allways unverifable,
1013         so uses, like (ld/st)loc.0 are valid. verify for the cases
1014         that it matters, like boxing related operations.
1015
1016 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
1017
1018         * verify.c: add verification of the newobj opcode. verification
1019         of delegate instantation still missing due ldftn and virldftn not
1020         pushing the function type on stack
1021
1022 2007-10-08  Mark Probst  <mark.probst@gmail.com>
1023
1024         * class-internals.h: Runtime generic context data structure
1025         definition.
1026
1027         * object.c: Initialization of runtime generic context at runtime
1028         vtable creation time.
1029
1030 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
1031         * class.c (mono_class_create_from_typedef,
1032         mono_class_from_generic_parameter, mono_ptr_class_get,
1033         mono_fnptr_class_get, mono_bounded_array_class_get)
1034         * domain.c (mono_domain_create, mono_domain_free)
1035         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
1036         * image.c (do_mono_image_load, mono_image_close):
1037         Hooked up load-unload profiler events.
1038
1039 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
1040
1041         * domain.c: track statistics about the actual amount of native code
1042         allocated.
1043
1044 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
1045
1046         * class.c: the valuetype enumerators don't have the additional
1047         supertypes interfaces.
1048
1049 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1050
1051         * class.c: need more interfaces setup for the IEnumerator<T>
1052         object created for arrays (tests/ienumerator-interfaces.2.cs).
1053
1054 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
1055
1056         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
1057
1058 2007-10-05  Alp Toker  <alp@atoker.com>
1059
1060         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1061         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1062         #315863.
1063
1064 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
1065
1066         * verify.c (verify_type_compatibility_full): verification of
1067         compatibility improved, validates correctly non-strict checks between
1068         native int and I4 types different than (unsigned)int32.
1069
1070         * verify.c (do_store_indirect): added, do all verification of
1071         ldind.X opcodes. 
1072
1073         * verify.c (get_load_indirect_mono_type): renamed to
1074         get_indirect_op_mono_type, as it now returns the MonoType for 
1075         ldind.X and stind.X opcodes.
1076
1077 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
1078
1079         * reflection.c: Fix the encoding of generic type definition for
1080         TypeBuilders.
1081
1082         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
1083         mono_image_typedef_or_ref but allows to specify if typespec lookups should
1084         be made. Typespec check is done prior to typeref cache lookup.
1085
1086         * reflection.c (mono_image_typedef_or_ref): now just delegate to
1087         mono_image_typedef_or_ref_full.
1088
1089         * reflection.c (encode_generic_class): encode the generic class
1090         directly instead of calling encode_type.
1091
1092         * reflection.c (encode_type): encode the generic type definition
1093         MonoClass as a generic instantiation.
1094
1095         * reflection.c (create_typespec): cache typespec tokens in
1096         the assembly->typespec cache. Don't create typespec for a generic
1097         instance MonoClass. Create typespec for the generic type defintion.
1098
1099         * reflection.c (create_generic_typespec): encode the generic
1100         class directly instead of calling encode_type.
1101
1102         * reflection.c (mono_image_create_token): encode the generic
1103         type definition not using a typespec for MonoType instances.
1104
1105
1106 2007-10-04  Raja R Harinath  <rharinath@novell.com>
1107
1108         Fix #328812
1109         * class.c (mono_image_init_name_cache): Don't return nested
1110         'protected internal' classes.
1111         (mono_class_from_name_case): Likewise.
1112
1113 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
1114
1115         * icall-def.h, icall.c : get_bundled_machine_config() is now the
1116           common function used by both DefaultConfig in System.dll and
1117           InternalConfigurationHost in System.Configuration.dll.
1118
1119 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
1120
1121         * class.c: automatically add to vectors only a few essential explicit
1122         generic interfaces. The rest of the interfaces that arrays should
1123         provide are currently implicitly added (but still not lazily, see the
1124         design in the discussion of bug#325495 for the details of what is
1125         needed for that). Additionally, implicit interfaces are assigned the
1126         same vtable slot as the explicit interfaces (as they are compatible):
1127         this enables huge memory savings since we don't need to instantiate
1128         as many memthods and as large vtables anymore. Also, Since
1129         GetEnumerator<T> returns an instance of a type that is required to
1130         support a similarly large set of interfaces as arrays, we add
1131         implicit interfaces and interface offset sharing support to those
1132         types, too. This change adds all the required interfaces so that
1133         the anonarray.cs test case in the bug report works (we don't add
1134         all the interfaces to arrays of arrays 3-level deep and more because
1135         of the memory requirements explained in the bug and since they are much
1136         less common: the lazy-loading support will enabled them to work, too).
1137
1138 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
1139
1140         * verify.c (merge_stacks): major clean up, all type compatibility
1141         checks are done by verify_type_compatibility. This fix my earlier lack
1142         of understanding of the CLR type system and merge_stacks no longer looks
1143         scary.
1144
1145         * verify.c: fixed some bad spelling.
1146
1147 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
1148
1149         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
1150         a given stack slock.
1151         
1152         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
1153         verify_type_compatibility_full. This removed a near indentical function and fixed
1154         handling of Int32 and IntPtr across all opcodes.
1155
1156 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
1157
1158         * class.c: only vectors have the additional generic interfaces.
1159
1160 2007-10-01  Jonathan Chambers <joncham@gmail.com>
1161
1162         * mono-config.c: Use g_strcasecmp instead of
1163         strcasecmp like everywhere else to fix
1164         compilation with MSVC.
1165         
1166         Code is contributed under MIT/X11 license.
1167
1168 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1169
1170         * object.c, object-internals.h: refactored the IMT code to enable
1171         building a single slot at a time and lazily creating the IMT trampolines
1172         and thunks.
1173
1174 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
1175
1176         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
1177
1178         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
1179         Fixes #328501.
1180         
1181 2007-09-29  Raja R Harinath  <harinath@gmail.com>
1182
1183         * loader.c (method_from_methodspec): Rearrange to avoid
1184         un-necessary exposition.  Don't assert out if the method's
1185         declaring type is a generic type definition.
1186
1187 2007-09-28  Martin Baulig  <martin@ximian.com>
1188
1189         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
1190
1191 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
1192
1193         * class-internals.h: optimize field layout of MonoClass to
1194         requires less cachelines at runtime and save a few bytes on 64 bit
1195         systems.
1196
1197 2007-09-28  Jb Evain  <jbevain@novell.com>
1198
1199         * reflection.c: when encoding type names in custom attributes,
1200         if the type is a closed generic type, its generic arguments
1201         have to be serialized as AssemblyQualifiedName, so that when
1202         they are deserialized, it's possible to re-create them properly.
1203         Fixes #329450.
1204
1205
1206 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
1207
1208         * object.c, class-internals.h: added delegate-creation counter.
1209
1210 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
1211
1212         * class.c: cleanup of the code that synthetizes interfaces for
1213         arrays in 2.0: saves quit a bit of corlib mempool memory.
1214         Code to fix bug #325495 ifdeffed out for now until the issues
1215         with memory usage and O(n^2) behaviour are fixed.
1216
1217 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1218
1219         * marshal.c: when possible, do not duplicate the name of the methods
1220         in the method builder and in the generated MonoMethod.
1221
1222 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
1223         * verify.c: added support for type checking ldind_* opcodes.
1224
1225 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
1226
1227         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
1228         which is used to distinguish the fully open instantiation of a TypeBuilder
1229         with the rest. This temporary hack is required to restore the property that
1230         the fully open instantiation is the same type of the generic type definition.
1231
1232         * class-internals.h (mono_generic_class_is_generic_type_definition):
1233         new function as part of the internal API.
1234
1235         * class.c (inflate_generic_type): return NULL when the generic inst is
1236         fully open. The fully open generic type is now the same as the generic type
1237         definition for non TypeBuilder types.
1238
1239         * class.c (mono_generic_class_get_class): removed assert since it is
1240         no longer valid, gklass->cached_class can point to the generic type definition.
1241
1242         * class.c (mono_generic_class_is_generic_type_definition): new.
1243
1244         * metadata.c (mono_generic_class_hash): added is_tb_open field
1245         to the hash calculation.
1246
1247         * metadata.c (free_generic_class): if the generic class is associated
1248         with the generic type definition, its field will come from the mempool and
1249         must not be freed.
1250
1251         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
1252         new, this function identifies the corner case of a TypeBuilder fully open
1253         instantiation.
1254
1255         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
1256         for lookup. Set gclass->cached_class to be the container class in case of
1257         the fully open instantiation of non TypeBuilder types.
1258
1259         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
1260         to compare generic classes.
1261
1262         * reflection.c (method_encode_methodspec): remove assert that
1263         no longer is valid.
1264
1265         * reflection.c (mono_reflection_generic_class_initialize): add
1266         an aditional assert to ensure the proper type is used.
1267
1268 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
1269
1270         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
1271         to enjoy it.
1272
1273 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
1274
1275         * verify.c (push_arg): Fixed support for ldarga
1276         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
1277         MonoType used as first arg in case of instance calls.
1278
1279 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
1280
1281         * verify.c: Support for verifying VAR and MVAR types, 
1282
1283 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
1284
1285         * icall.c (ves_icall_get_property_info): Set the reflected type of the
1286         accessors correctly.
1287
1288 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
1289
1290         * threads.c: support OSX and other systems in
1291         mono_thread_get_stack_bounds (bug #328026).
1292
1293 2007-09-25  Martin Baulig  <martin@ximian.com>
1294
1295         * mono-debug.h
1296         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
1297
1298 2007-09-24  Martin Baulig  <martin@ximian.com>
1299
1300         * mono-debug.h
1301         (MonoDebugClassEntry): Moved the definition of this struct into
1302         mono-debug.c to make it private.
1303
1304         * mono-debug.c
1305         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
1306         type table per symbol file, we don't need to store the symfile id
1307         any longer.
1308
1309 2007-09-24  Martin Baulig  <martin@ximian.com>
1310
1311         Create one type table per symbol file, since a `MonoClass *' gets
1312         invalid when its image is unloaded.
1313
1314         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
1315         (MonoDebugHandle): Added `type_table'.
1316
1317 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1318
1319         * mempool.c, mempool.h: added mono_mempool_new_size () API
1320         to be able to specify a smaller initial size for the pool.
1321         Adjusted the code to slowly increase pool size before using
1322         the previous default size.
1323         * image.c: use a small initial size for image mempools.
1324
1325 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
1326
1327         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
1328         Fixes ##320990.
1329
1330         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
1331         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
1332
1333 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
1334
1335         * metadata.c (mono_type_create_from_typespec): Remove an invalid
1336         free. Fixes #327438.
1337
1338 2007-09-21  Raja R Harinath  <harinath@gmail.com>
1339
1340         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
1341         generic instantiations, etc.
1342         <MONO_TYPE_ARRAY>: Likewise.
1343
1344 2007-09-21  Martin Baulig  <martin@ximian.com>
1345
1346         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
1347         these structs were never defined.
1348         (MonoDebugHandle): Removed the `_priv' field, it was never used.
1349
1350 2007-09-21  Martin Baulig  <martin@ximian.com>
1351
1352         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
1353
1354 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
1355
1356         * image.c: removed the guid hash tables: we can get the same info
1357         without the additional memory usage hit (partially fixes also bug #327052).
1358
1359 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
1360
1361         * profiler.h, profiler-private.h, profiler.c: add a new profiler
1362         event to handle unloading methods. After the event is called, the
1363         corresponding MonoMethod* must be considered invalid.
1364         * loader.c (mono_free_method): call the new mono_profiler_method_free
1365         event.
1366
1367 2007-09-20  Mark Probst  <mark.probst@gmail.com>
1368
1369         * domain-internals.h: New flag in MonoJitInfo which marks shared
1370         generic methods.  New hash table (shared_generics_hash) in
1371         MonoDomain to keep track of shared generic methods.  Prototypes
1372         for functions to register and lookup shared generic methods.
1373
1374         * domain.c: Support for registering and looking up shared generic
1375         methods via a hash table (shared_generics_hash) in MonoDomain.
1376
1377         * class-internals.h: New exception to signal failure of shared
1378         compilation of a generic method.  New counters for generics
1379         sharing in MonoStats.
1380
1381 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
1382
1383         * image.c, metadata-internals.h: don't keep a file descriptor open
1384         for loaded assemblies (bug#325988).
1385
1386 2007-09-19  Raja R Harinath  <rharinath@novell.com>
1387
1388         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
1389         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
1390         use the corresponding datatypes.
1391         (type_in_image): Update to changes.
1392         (CleanForImageUserData): Simplify.
1393         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
1394         Avoid quadratic behaviour in handling the "stolen" list by
1395         separating the filter predicate out, and by prepending the stolen
1396         items rather than appending them.
1397         (steal_ginst_in_image): Likewise.
1398         (mono_metadata_clean_for_image): Update to changes.
1399
1400 2007-09-19  Martin Baulig  <martin@ximian.com>
1401
1402         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
1403
1404 2007-09-19  Martin Baulig  <martin@ximian.com>
1405
1406         * mono-debug.c (mono_debug_cleanup): Don't call
1407         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
1408
1409 2007-09-19  Raja R Harinath  <harinath@gmail.com>
1410
1411         Fix crash on 'make run-test' in mcs/errors
1412         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
1413         Avoid more potential allocations in mono_class_from_mono_type.
1414         (ginst_in_image): Update to changes.
1415         (gclass_in_image): Rearrange slightly.
1416
1417 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
1418
1419         * class.c (mono_class_init): Move the code that sets up class->methods to 
1420         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
1421
1422         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
1423         canonical instance of an inflated generic signature.
1424         (mono_type_create_from_typespec): Remove an invalid free.
1425
1426         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
1427
1428 2007-09-18  Marek Habersack  <mhabersack@novell.com>
1429
1430         * domain-internals.h: added a declaration of the
1431         mono_assembly_load_full_nosearch internal function.
1432
1433         * assembly.c (mono_assembly_load_with_partial_name): use
1434         mono_try_assembly_resolve return value properly.
1435         (mono_assembly_load_full_nosearch): copied the function body from
1436         mono_assembly_load_full, without the code to invoke assembly
1437         search hooks.
1438         (mono_assembly_load_full): calls the above new function and if the
1439         assembly is not resolved, invokes the search hooks.
1440
1441         * appdomain.c (mono_runtime_init): restore the global postload
1442         assembly search handlers.
1443
1444 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
1445
1446         * class.c (mono_class_init): Make sure class->methods and class->properties
1447         are never NULL in the generics case.
1448
1449         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
1450
1451 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
1452
1453         * metadata.c (free_generic_class): Disable some code to fix the build.
1454
1455         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
1456
1457         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
1458         from the image mempool.
1459
1460         * metadata.c (free_generic_class): Free more data from the inflated class.
1461
1462         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
1463
1464         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
1465         mempool.
1466         (mono_type_create_from_typespec): Ditto.
1467
1468         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
1469         MonoImage to the caller.
1470         (mono_init_internal): Save the opened image in a global variable.
1471         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
1472
1473         * reflection.c (resolve_object): Fix a leak.
1474
1475         * metadata.c: Fix the freeing of data in the generics caches.
1476         
1477         * metadata.c (free_generic_inst): Comment this out to fix the build.
1478         (free_generic_class): Ditto.
1479
1480         * metadata.c: Free cached generic methods, instantinations and classes when
1481         they are removed from the caches.
1482         (mono_metadata_free_type): Free the type itself.
1483
1484         * class.c: Free the result of mono_class_inflate_generic_type () in a few
1485         places.
1486
1487 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1488
1489         * boehm-gc.c: restrict managed allocs to __thread supporting
1490         architectures.
1491
1492 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
1493
1494         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
1495         (mono_generic_class_get_class): Fix a leak.
1496
1497         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
1498         mono_metadata_free_type ().
1499         (mono_metadata_inflate_generic_inst): Fix a leak.
1500
1501 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
1502
1503         * mono-debug.c (free_header_data): Fix a leak missed earlier.
1504
1505         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
1506         mempool.
1507
1508         * mono-debug.c (mono_debug_close_image): Fix call to 
1509         g_hash_table_remove ().
1510
1511 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
1512
1513         * icall-def.h: redirect all the string ctor to the managed
1514         CreateString () methods.
1515         * string-icalls.c, string-icalls.h: removed dead code for string
1516         ctors and icalls.
1517
1518 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
1519
1520         * mono-debug.c: Fix memory leaks.
1521
1522 2007-09-14  Jonathan Chambers <joncham@gmail.com>
1523
1524         * threads-types.h: Implement mono_hazard_pointer_set and 
1525         mono_hazard_pointer_clear macros using do/while(0) to fix
1526         compilation with MSVC.
1527         
1528         Code is contributed under MIT/X11 license.
1529
1530 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
1531
1532         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
1533         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
1534
1535 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1536
1537         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
1538         icalls.
1539
1540 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1541
1542         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
1543         managed-code allocated as well.
1544
1545 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
1546
1547         * class.c (mono_class_is_assignable_from): Add support for generic variance.
1548
1549 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1550
1551         * boehm-gc.c: fixed the build after the AOT changes.
1552
1553 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
1554
1555         * wrapper-types.h: Add an ALLOC wrapper type.
1556
1557         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
1558         reference managed allocator methods.
1559
1560 2007-09-12  Marek Safar  <marek.safar@gmail.com>
1561
1562         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
1563         of Type array and not MonoType, a fix suggested by Hari.
1564         
1565 2007-09-12  Jonathan Chambers <joncham@gmail.com>
1566
1567         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
1568         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
1569         
1570         Code is contributed under MIT/X11 license.
1571
1572 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
1573
1574         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
1575
1576 2007-09-12  Marek Habersack  <mhabersack@novell.com>
1577
1578         * image.c (do_mono_image_open): if assembly file fails to open and
1579         MONO_IOMAP is in effect, try to find the path in a
1580         case-insensitive way.
1581
1582         * appdomain.c (mono_runtime_init): do not install postload hooks -
1583         tests show that MS.NET doesn't use anything of that sort to
1584         trigger the AppDomain.AssemblyResolve event.
1585         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
1586         made non-static.
1587         (mono_runtime_init): init portability helpers here.
1588
1589         * assembly.c (mono_assembly_load_with_partial_name): if other   
1590         attempts fail, trigger the AppDomain.AssemblyResolve event handler
1591         to resolve the assembly.
1592
1593         * domain-internals.h: added mono_try_assembly_resolve and marked
1594         it as internal.
1595
1596 2007-09-11  Jb Evain  <jbevain@novell.com>
1597
1598         * object-internals.h (MonoReflectionDynamicMethod): add
1599         a `MonoReflectionType *owner` field. The owner is used
1600         * reflection.c:
1601         (mono_reflection_create_dynamic_method): use the owner of the dynamic
1602         method as the class declaring the dynamic method.
1603         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
1604         dynamic method to the declaring type of the methodbuilder.
1605
1606 2007-09-11  Mark Probst  <mark.probst@gmail.com>
1607
1608         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
1609         rules for calling methods via reflection.
1610
1611 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
1612
1613         * reflection.c (resolve_object): Add support for MonoGenericClass. 
1614         Inflate MonoType's.
1615
1616 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
1617
1618         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
1619         provide a managed method that does fast allocations without needing
1620         a managed->unmanaged transition. Boehm GC implementation currently
1621         enabled for ptrfree objects on sane architectures.
1622
1623 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
1624
1625         * marshal.c, marshal.h: exported a couple of useful functions and
1626         added mono_mb_get_label () to easily handle backward branches.
1627
1628 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
1629
1630         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
1631
1632 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
1633
1634         * loader.c (find_method): Fixed the regression introduced while
1635         fixing bug #81466.
1636
1637 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
1638
1639         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
1640         well.
1641         
1642         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
1643         icall.c reflection.c: Pass a MonoGenericContext argument to 
1644         mono_lookup_dynamic_token ().
1645
1646         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
1647         #82744.
1648         
1649 2007-09-09  Robert Jordan  <robertj@gmx.net>
1650
1651         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
1652         for generic methods.
1653
1654         * object.c (mono_object_get_virtual_method): Handle generic methods.
1655         Fixes bug #78882.
1656
1657         Code is contributed under MIT/X11 license.
1658
1659 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1660
1661         * image.c: fix locking in mono_image_load_file_for_image ().
1662
1663 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
1664
1665         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
1666         used only as a cache: added an icall to fill it.
1667
1668 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
1669
1670         * reflection.h: exposed mono_reflection_free_type_info
1671         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
1672         since mono_reflection_bind_generic_parameters makes a copy of it.
1673         * reflection.c (free_type_info): subinfos should be freed.
1674         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
1675         made non static.
1676         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
1677         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
1678         this fixes #82695 and #81726.
1679    
1680
1681 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
1682
1683         * process.h, process.c:  added support for user profile/info in
1684           ProcessStartInfo. For now only Windows works.
1685
1686 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
1687
1688         * metadata.c: consider the generic arguments when comparing
1689         signatures (bug #82614).
1690
1691 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
1692
1693         * cil-coff.h, image.c: updated assembly loader to cope with the
1694         PE32+ 64 bit file format.
1695
1696 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
1697
1698         * assembly.c, class.c, domain.c, loader.c: remove useless
1699         inclusion of cil-coff.h.
1700
1701 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
1702
1703         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
1704         if interface is marked with CoClassAttribute. 
1705    
1706         Code is contributed under MIT/X11 license.
1707
1708 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1709
1710         * sgen-gc.c: ensure no object from the to space is copied again or finalized
1711         if it's seen twice in major collections.
1712
1713 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
1714
1715         * sgen-gc.c: big objects are not copied to the gray area, but they
1716         need to be considered for scanning, too, if they are brought alive
1717         by an object ready for finalizations or a survived one.
1718
1719 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1720
1721         * sgen-gc.c: properly account the number of disappearing links when
1722         they are nullified.
1723
1724 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
1725
1726         * sgen-gc.c: share the code to scan the registered roots between the
1727         different types of collections.
1728
1729 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
1730
1731         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
1732
1733 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
1734
1735         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
1736         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
1737
1738 2007-08-28  Mark Probst  <mark.probst@gmail.com>
1739
1740         * security-manager.c (mono_security_manager_get_methods):
1741         LinkDemandSecurityException now has 2 arguments instead of 3.
1742
1743 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
1744
1745         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
1746         platforms which need it.
1747
1748 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
1749
1750         * sgen-gc.c: unregister thread data structures with a pthread_key_t
1751         dtor.
1752
1753 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
1754
1755         * threads.c: free the thread static data on thread exit.
1756
1757 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
1758
1759         * class.c: walk the hierarchy to find the generic definition for
1760         a class (fixes runtime part of bug #82498).
1761
1762 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
1763
1764         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
1765         ...
1766
1767         * image.c (mono_image_close): Here. Hopefully fixes #82510.
1768
1769 2007-08-24  Mark Probst  <mark.probst@gmail.com>
1770
1771         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
1772
1773 2007-08-24  Robert Jordan  <robertj@gmx.net>
1774
1775         * appdomain.c: don't perform the ':'->';' substitution on Win32.
1776
1777 2007-08-24  Jb Evain  <jbevain@novell.com>
1778
1779         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
1780         for byref types.
1781
1782 2007-08-24  Mark Probst  <mark.probst@gmail.com>
1783
1784         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
1785         #82286.
1786
1787 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
1788
1789         * assembly.c: Fix a warning.
1790         
1791 2007-08-23  Marek Habersack  <mhabersack@novell.com>
1792
1793         * appdomain.c: parse the <runtime> section looking for the probing
1794         element with the 'privatePath' attribute, which sets additional
1795         directories in which the runtime should look for assemblies.
1796
1797 2007-08-23  Robert Jordan  <robertj@gmx.net>
1798
1799         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
1800         Fixes #82499.
1801
1802 2007-08-23  Martin Baulig  <martin@ximian.com>
1803
1804         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
1805         _mono_debug_init_corlib() and remove it from the header file.
1806
1807 2007-08-23  Martin Baulig  <martin@ximian.com>
1808
1809         * mono-debug-debugger.c
1810         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
1811         don't notify the debugger about it.
1812
1813         * mono-debug-debugger.h
1814         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
1815
1816 2007-08-23  Robert Jordan  <robertj@gmx.net>
1817
1818         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
1819         Code is contributed under MIT/X11 license.
1820
1821 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
1822
1823         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
1824
1825 2007-08-22  Martin Baulig  <martin@ximian.com>
1826
1827         * mono-debug.c: Store debugging info on a per-domain basis and
1828         free it on domain unload.  Add support for unloading symbol files.
1829
1830         * mono-debug.h
1831         (MonoDebugList): New typedef.
1832         (MonoSymbolTable):
1833         - add `data_tables and `type_table'.
1834         - replace 'symbol_files' and `num_symbol_files' with a
1835           `MonoDebugList *'.
1836         (mono_debug_data_table): Removed.
1837         (mono_debug_list_add): New public function.
1838         (mono_debug_list_remove): New public function.
1839         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
1840         (mono_debug_init_2_memory): Renamed into
1841         mono_debug_open_image_from_memory().
1842         (mono_debug_close_image): New public function.
1843         (mono_debug_domain_create): Likewise.
1844         (mono_debug_domain_unload): Likewise.
1845         (MONO_DEBUGGER_VERSION): Bump to 60.
1846
1847         * mono-debug-debugger.h
1848         (MonoDebuggerEvent):
1849         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
1850         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
1851         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
1852         - rename `THREAD_CREATED' and `THREAD_EXITED' into
1853           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
1854         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
1855           meaning.
1856         (mono_debugger_add_symbol_file): Removed.
1857         (mono_debugger_add_type): Removed.
1858         (mono_debugger_lookup_type): Removed.
1859         (mono_debugger_lookup_assembly): Removed.
1860
1861         * domain.c
1862         (mono_domain_create): Call mono_debug_domain_create().
1863         (mono_init_internal): Call mono_debug_init_corlib().
1864
1865         * assembly.c
1866         (mono_assembly_close): Call mono_debug_close_image().
1867
1868 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
1869
1870         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
1871         mmap call.
1872
1873 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1874
1875         * sgen-gc.c: ensure section->pin_queue_end is initialized
1876         correctly when non pinning objects in the section have been found.
1877
1878 2007-08-22  Marek Habersack  <mhabersack@novell.com>
1879
1880         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
1881         containing a list of directories separated by ':'. MSDN docs say
1882         the directories should be separated with ';'. Part of a bugfix for
1883         bug #81446
1884
1885 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
1886
1887         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
1888         it should MonoType and not MonoClass.
1889
1890 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
1891
1892         * culture-info-table.h : regenerated.
1893
1894 2007-08-20  William Holmes  <billholmes54@gmail.com>
1895
1896         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
1897          to call ReplaceFile Kernel32 on windows or in io-layer.
1898         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
1899         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
1900          as an internal call.
1901
1902         Code is contributed under MIT/X11 license.
1903
1904 2007-08-20  Jb Evain  <jbevain@novell.com>
1905
1906         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
1907         and MONO_EXCEPTION_FIELD_ACCESS.
1908
1909         * debug-helpers.[c|h]: new mono_field_full_name function.
1910
1911 2007-08-20  Mark Probst  <mark.probst@gmail.com>
1912
1913         * class.c: Removed class_security_level() and moved it to
1914         security-core-clr.c.
1915
1916         * security-core-clr.c, security-core-clr.h: class_security_level()
1917         is now public and renamed to mono_security_core_clr_class_level().
1918         It also looks for security attributes in the classes a class is
1919         nested in.
1920
1921 2007-08-20  Mark Probst  <mark.probst@gmail.com>
1922
1923         * security-core-clr.c, security-core-clr.h: CoreCLR security
1924         utility functions.
1925
1926         * Makefile.am: Added security-core-clr.[ch].
1927
1928         * security-manager.c, security-manager.h: Functions and enum for
1929         setting and getting the security mode.
1930
1931         * class.c: CoreCLR security checks.
1932
1933 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
1934
1935         * icall-def.h, process.c, process.h: implemented icall to get
1936         user/system processor times.
1937
1938 2007-08-17  Mark Probst  <mark.probst@gmail.com>
1939
1940         * domain.c, threads.c, class-internals.h, domain-internals.h: New
1941         reader-lock-free jit_info_table.
1942
1943 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
1944
1945         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
1946
1947         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
1948
1949         * object-internals.h (MonoException): Add missing _data member.
1950
1951 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
1952
1953         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
1954         checking that only methods with matching qname or fqname are picked
1955         from implemented interfaces.
1956
1957 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1958
1959         * verify.c (do_newarr):added, do type verification of
1960         newarr ops, push the right value on the eval stack.
1961         * verify.c (mono_method_verify): use do_newarr
1962
1963
1964 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1965
1966         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
1967         factored the common code into get_boxable_mono_type, which
1968         is now using mono_type_get_full, this fixed byref related tests.
1969
1970 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1971
1972         * class.c: added mono_type_get_full, this function has the same
1973         behavior of mono_class_get_full but the returned MonoType has
1974         all metadata of the associated token in case of a typespec token.
1975         * class.c: added mono_type_retrieve_from_typespec, used by 
1976         mono_type_get_full to retrieve the token type.
1977         * class.c (mono_class_create_from_typespec): changed to use
1978         mono_type_retrieve_from_typespec.
1979         * class.c (mono_ldtoken): changed to use mono_type_get_full
1980         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
1981         * class-internals.h: exported mono_type_get_full for internal use.
1982
1983 2007-08-16  Jb Evain  <jbevain@novell.com>
1984
1985         * domain.c (supported_runtimes): add entry for
1986         the 'moonlight' runtime version.
1987
1988 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1989
1990         * verify.c (mono_method_verify): small typo sliped in.  
1991
1992 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1993
1994         * verify.c (do_unbox_value): added, do type verification of
1995         unboxing ops
1996         * verify.c (mono_method_verify): use do_unbox_value
1997
1998
1999 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2000
2001         * verify.c (dump_stack_value): fixed typo, was printing string
2002         instead of object on stack.
2003         * verify.c (do_box_value): moved the byref check up as it leads
2004         to invalid code and should be done earlier.
2005         * verify.c: improved error messages for and ldobj
2006
2007 2007-08-15  William Holmes  <billholmes54@gmail.com>
2008
2009         * marshal.c (emit_marshal_custom): Omit the call to 
2010           marshal_native_to_managed when calling native to managed 
2011           and the argument is specified as an out argument.
2012
2013         Code is contributed under MIT/X11 license.
2014
2015 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
2016
2017         * verify.c: fixed the type checks for generics, function pointers and vectors.
2018         Added type verification for ldobj and ldtoken. The verifier
2019         would segfault if header or signature of a method contained references
2020         to non-existant types.
2021
2022 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
2023
2024         * marshal.c (cominterop_get_ccw): Patch from
2025         Bill Holmes to no walk up interface hierarchy. 
2026         All parent methods should be present in the interface for COM.
2027    
2028         Code is contributed under MIT/X11 license.
2029
2030 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
2031
2032         * marshal.c (emit_marshal_com_interface): Patch from
2033         Bill Holmes to handle COM Interfaces as return values
2034         for native->managed calls.
2035    
2036         Code is contributed under MIT/X11 license.
2037
2038 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
2039
2040         * marshal.c (cominterop_get_idispatch_for_object): Implement
2041         for runtime callable wrappers.
2042    
2043         Code is contributed under MIT/X11 license.
2044
2045 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
2046
2047         * pedump.c (main): changed from mono_init to mono_init_from_assembly
2048         so 2.0 types are accessible
2049
2050
2051 2007-08-13  Miguel de Icaza  <miguel@novell.com>
2052
2053         * domain.c (mono_init_internal): Call mono_assembly_load_friends
2054         once we load mscorlib.   Due to the order in which we initialize,
2055         the mono_assembly_load_full routine that loads mscorlib did not
2056         load friends.   We now load it once we load the
2057         mono_defaults.internals_visible_class class. 
2058
2059         * assembly.c: Expose the mono_load_friend_assemblies method.
2060
2061 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
2062
2063         * verify.c: improved the handling of boxing, better
2064         type checking for unary ops and conversion. Fix bug
2065         regarding managed pointer compatibility checking
2066
2067 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
2068
2069         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
2070
2071         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
2072
2073 2007-08-09  Raja R Harinath  <rharinath@novell.com>
2074
2075         * reflection.c (dup_type): Remove.
2076         * class.c (dup_type): Remove.
2077         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
2078         instead of the dodgy 'dup_type'.
2079         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
2080         handle the case where 'dup_type' needed the second argument.
2081
2082 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
2083
2084         * domain.c: Fix a warning.
2085
2086 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
2087
2088         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
2089         checking that methods with the same fqname are not overridden
2090         with a method from an ancestor.
2091
2092 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
2093
2094         * threads.c (free_thread_static_data_helper): Avoid a crash if
2095         thread->static_data is not yet set.
2096
2097 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
2098
2099         * marshal.c: Use correct image when emitting
2100         native wrapper for COM calls.
2101    
2102         Code is contributed under MIT/X11 license.
2103
2104 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
2105
2106         * icall-def.h, security.c, security.h :
2107           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
2108
2109 2007-08-07  Martin Baulig  <martin@ximian.com>
2110
2111         * mono-debug-debugger.h
2112         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
2113
2114         * domain.c (mono_domain_free): Call
2115         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
2116
2117 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
2118
2119         * verify.c (check_underflow, check_overflow): error message now returns IL offset
2120         * verify.c (in_same_block): code should test if either offset is inside the clauses
2121         * verify.c (mono_method_verify): push the exception into the eval stack of exception
2122         and filter blocks
2123
2124 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
2125
2126         * image.c (mono_image_close): Fix a leak.
2127
2128         * object.c (mono_runtime_invoke_array): Avoid using alloca.
2129
2130         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
2131
2132 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
2133
2134         * domain.c, threads.c, threads-types.h: fix memory retention issue
2135         with thread static variables not being cleared on domain unload.
2136         Reuse thread static slots after domain unload.
2137
2138 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
2139
2140         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
2141         nullable type.
2142
2143         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
2144         now done in mono_runtime_invoke_array.
2145
2146         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
2147         receiver is a nullable type.
2148
2149         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
2150         generic parameter.
2151
2152 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
2153
2154         * marshal.c: Implement COM Objects as return type for 
2155         managed->unmanaged calls. Added Release calls for COM Object
2156         out/return values in managed->unmanaged calls.
2157
2158         Code is contributed under MIT/X11 license.
2159
2160 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
2161
2162         * threads.h, threads-type.h: move the hazard pointer declarations
2163         to the private header.
2164
2165 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
2166
2167         * file-io.c, appdomain.c: memory leak fixes.
2168
2169 2007-08-02  Dick Porter  <dick@ximian.com>
2170
2171         * socket-io.c
2172         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
2173         SO_REUSEADDR setting into io-layer/sockets.c.
2174
2175 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
2176
2177         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
2178         from Object when called on a generic parameter. Fixes #82211.
2179
2180 2007-08-01  Dick Porter  <dick@ximian.com>
2181
2182         * file-io.c (convert_share): Test FileShare values bit-by-bit.
2183         Fixes bug 79250 yet again.
2184
2185 2007-07-30  Martin Baulig  <martin@ximian.com>
2186
2187         Merged the `debugger-dublin' branch.
2188
2189         * mono-debug.h
2190         (MonoDebugDataTable): New typedef.
2191         (MonoDebugMethodAddressList): New typedef.
2192         (MonoDebugWrapperData): Removed.
2193         (MonoDebugSymbolTable): Removed `current_data_table',
2194         `current_data_table_size', `current_data_table_offset'.
2195         (MonoDebugDataItemType): Moved into mono-debug.c.
2196         (MonoDebugMethodJitInfo): Remove `address'.
2197         (mono_debug_data_table): New global variable.
2198         (mono_debug_lookup_method_addresses): New public function.
2199         (mono_debug_find_method): Take a `MonoMethod *', not a
2200         `MonoDebugMethodInfo *'.
2201
2202         * mono-debug.c: Drop support for the old symbol tables.
2203
2204 2007-06-28  Martin Baulig  <martin@ximian.com>
2205
2206         * mono-debug.c (mono_debug_debugger_version): New public variable.
2207
2208 2007-07-31  William Holmes  <billholmes54@gmail.com>
2209
2210         * metadata.c Changed mono_type_create_from_typespec to not insert
2211           the type into the hash map until after
2212           do_mono_metadata_parse_type has completed.
2213         Fixes Bug #82194
2214         Code is contributed under MIT/X11 license.
2215
2216 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
2217
2218         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
2219         generic parameter. Fixes #82211.
2220
2221 2007-07-27  Jb Evain  <jbevain@novell.com>
2222
2223         * pedump.c (dump_metadata, dump_metadata_header): dump
2224         versions contained in the metadata header.
2225
2226 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2227
2228         * threads.c: register small_id_table with the GC.
2229
2230 2007-07-27  Mark Probst  <mark.probst@gmail.com>
2231
2232         * threads.c, threads.h, class-internals.h, object-internals.h:
2233         Hazard pointers, to be used by lock-free parallel algorithms.
2234
2235 2007-07-26  Dick Porter  <dick@ximian.com>
2236
2237         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
2238         routine on non-windows platforms, as I've not managed to think of
2239         a non-kludgy way of doing this.  Finishes off bug 78739.
2240
2241 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
2242
2243         * object.c: properly setup interface_bitmap in proxy vtables.
2244
2245 2007-07-25  Marek Habersack  <mhabersack@novell.com>
2246
2247         * appdomain.c (get_shadow_assembly_location): do not use TickCount
2248         to create unique shadow copy target directories, use the domain's
2249         serial number instead. Each domain gets a unique target directory
2250         that way.
2251
2252         * domain.c (mono_domain_create): added code to increment domain
2253         shadow copy serial number and cache the value in the current
2254         domain structure.
2255
2256         * domain-internals.h (struct _MonoDomain): added a new field -
2257         shadow_serial to hold the serial number used in generation of
2258         shadow-copy directories. This is to make sure that the directory
2259         name is unique for each and every domain created. We avoid a race
2260         condition with overriding assemblies already in use by other app
2261         domains.
2262
2263 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
2264
2265         * class.c (mono_bounded_array_class_get): fixed memory leak when 
2266         binding generic parameters.
2267
2268 2007-07-24  Raja R Harinath  <rharinath@novell.com>
2269
2270         * metadata.c (do_mono_metadata_parse_generic_class): Use
2271         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
2272         error.
2273
2274 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
2275
2276         * loader.c, class-internals.h, reflection.c: removed the per-method
2277         generics hashtable: we use the global one through the call of
2278         mono_class_inflate_generic_method ().
2279
2280 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
2281
2282         * class.c, metadata.c, class-internals.h: introduce yet another
2283         generics global cache for inflated methods (fixes 98% of the perf
2284         issue in bug #81806).
2285
2286 2007-07-23  Raja R Harinath  <rharinath@novell.com>
2287
2288         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
2289         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
2290         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
2291         return a MonoGenericInst containing (a copy) of those types.
2292         (mono_metadata_inflate_generic_inst): Update to changes.
2293         (mono_metadata_parse_generic_inst): Likewise.
2294         (mono_get_shared_generic_inst): Likewise.
2295         * reflection.c (mono_class_bind_generic_parameters): Likewise.
2296         (mono_reflection_bind_generic_method_parameters): Likewise.
2297         * metadata-internals.h: Likewise.
2298         * icall.c (free_generic_context): Kill.
2299         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
2300
2301         * reflection.c (reflection_methodbuilder_to_mono_method): Use
2302         mono_metadata_type_dup.
2303         * marshal.c (mono_mb_create_method): Likewise.
2304
2305         * metadata.c (mono_metadata_type_dup): Rename from
2306         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
2307         MonoImage.  Handle a few more cases, esp. when no mempool is given.
2308         * marshal.c, metadata-internals.h: Update to changes.
2309
2310 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2311
2312         * class.c: fixed a small leak for array classes and removed warning.
2313
2314 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
2315
2316         * loader.c (mono_method_get_param_token): Make this work on generic methods.
2317         Return 0x8000000 for return parameters. Fixes #82161.
2318
2319 2007-07-21  Marek Habersack  <grendello@gmail.com>
2320
2321         * appdomain.c (get_shadow_assembly_location): append the current
2322         ticks value to the path. Avoids overwriting the same assemblies by
2323         several threads at the same time.
2324
2325 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
2326         and Raja R Harinath  <rharinath@novell.com>
2327
2328         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
2329         Simplify slightly.
2330         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
2331         property for testing if a method is a generic method definition.
2332
2333 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
2334
2335         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
2336
2337 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2338
2339         * verify.c: used function from private branch, reverted to the one in class.h 
2340
2341 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2342
2343         * verify.c: a typo slipped in and the code wont compile
2344
2345 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2346
2347         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
2348         disabled box instruction as it is doing the wrong thing
2349         improved stack dump messages, now it is easier to debug type related issues
2350
2351
2352 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
2353
2354         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
2355
2356 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2357
2358         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
2359         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
2360         grouped with class and valuetype. This change will simply 
2361         the code as it should be handled just like unmanaged pointers.
2362
2363 2007-07-19  Mark Probst  <mark.probst@gmail.com>
2364
2365         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
2366
2367 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2368
2369         * verify.c: several stack merge issues fixed, reference comparisons now
2370         check the type size. strict type check now works correctly.
2371         added more uses of IS_MANAGED_POINTER macro.
2372         fixed issues pointed by running the test suite against .net.
2373         
2374
2375 2007-07-19  Mark Probst  <mark.probst@gmail.com>
2376
2377         * class.c, loader.c, class-internals.h: Removed the
2378         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
2379         defines.
2380
2381         * icall.c: Better error checking in some internal reflection
2382         methods.
2383
2384 2007-07-18  William Holmes  <billholmes54@gmail.com>
2385
2386         * filewatcher.c : removed unused variable 'filename' in 
2387           ves_icall_System_IO_FSW_SupportsFSW
2388
2389 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
2390
2391         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
2392         obsolete, removed.
2393
2394 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
2395
2396         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
2397         
2398         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
2399
2400 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
2401
2402         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
2403         Implement generics support.
2404         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
2405
2406         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
2407         type_args and method_args arguments.
2408         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
2409         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
2410         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
2411
2412 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
2413
2414         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
2415           It adds a rootimage parameter to mono_reflection_get_type_internal,
2416           adds new function mono_reflection_get_type_with_rootimage and use
2417           the rootimage to resolve the types instead of the current image
2418
2419 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2420
2421         * culture-info-table.h: Forgot to update after r78304.
2422
2423 2007-07-13  Raja R Harinath  <rharinath@novell.com>
2424
2425         * class.c (mono_class_is_open_constructed_type)
2426         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
2427
2428 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
2429
2430         * class.c (mono_bounded_array_class_get):  method fails if used with
2431         an incomplete TypeBuilder enum (no basetype field), fixed it by 
2432         avoiding calculating the size for such array as it cannot be instantiated.
2433         Fix bug #82015
2434
2435 2007-07-12  Raja R Harinath  <rharinath@novell.com>
2436
2437         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
2438         field.
2439         * metadata.c, reflection.c: Update to changes.
2440
2441 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
2442
2443         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
2444         mono_class_is_valid_enum, they are used to valide a enum when loading.
2445         * reflection.c: used new functions to throw TypeLoadException when and
2446         invalid enum is build with TypeBuilder. Fixes #82018
2447   
2448 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2449
2450         * object.c: forgot commit of mono_class_setup_methods () to access
2451         iface->methods.
2452         * object-internals.h: added a few more handy fields to
2453         MonoIMTCheckItem.
2454
2455 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
2456
2457         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
2458         iface->methods.
2459
2460 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
2461
2462         * class-internals.h, object-internals.h, object.c: IMT-based
2463         interface invocation core from Massimiliano Mantione
2464         (massi@ximian.com) with a reworked arch-specific interface,
2465         bsearch implementation and a few bugfixes and memory savings by me.
2466
2467 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
2468
2469         * class.c (mono_class_create_from_typedef): mono would segfault if 
2470         an enum did not have a __value field. It now throws a TypeLoadException
2471         for such cases. Fix bug #82022
2472
2473 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
2474
2475         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
2476
2477 2007-07-09  Mark Probst  <mark.probst@gmail.com>
2478
2479         * class.c (mono_class_init): If a class is already inited but has
2480         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
2481
2482 2007-07-09  Mark Probst  <mark.probst@gmail.com>
2483
2484         * class.c: Properly handle the case of an unimplemented interface
2485         method.  Fixes: 81673.
2486
2487 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
2488
2489         * class-internals.h, object.c: cleanup patch from massi: use
2490         MonoVTable->interface_bitmap since the vtable interfaces offset array
2491         is going away.
2492
2493 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
2494
2495         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
2496         GetMDStreamVersion icall instead.
2497
2498 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
2499
2500         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
2501         not use mono_dl_build_path() with a full library name: makes
2502         fallbacks to libgaim and libfam work.
2503
2504 2007-07-06  William Holmes  <billholmes54@gmail.com>
2505
2506         * assembly.c: Added a continue statement in probe_for_partial_name when
2507          parse_assembly_directory_name fails.  Fixes : 82002
2508
2509 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
2510
2511         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
2512         and added a verification  for TYPEDBYREF.
2513         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
2514         make native int interchangeable with int32 and some small cleanup and formating.
2515         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
2516         handle byref of byref.
2517         * verify.c (push_local): handle byref of byref.
2518         * verify.c (do_binop): invalid mix of values is unverifiable
2519         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
2520         added visibility checks
2521         * verify.c (field related method): added visibility checks
2522         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
2523
2524 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
2525
2526         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
2527         string.
2528
2529 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
2530
2531         * profiler.c (mono_profiler_load): Fix an off-by-one error.
2532
2533         * marshal.c (emit_marshal_string): When returning a string from managed code,
2534         allways make a copy even for unicode strings. Fixes #81990.
2535
2536 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
2537
2538         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
2539         of byref generic inst types (bug #81997).
2540
2541 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
2542
2543         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
2544         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
2545
2546 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
2547
2548         * marshal.c (emit_marshal_string): Add support for unicode strings in
2549         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
2550
2551 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
2552
2553         * verify.c: field load/store are now verified, missing only access checks now
2554
2555 2007-06-28  Martin Baulig  <martin@ximian.com>
2556
2557         * mono-debug.c (mono_debug_debugger_version): New public variable.
2558
2559 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
2560
2561         * locales.c: When constructing DateTimeFormat or NumberFormat for
2562         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
2563         MonoCultureInfo contructed from the current locale is always
2564         read-only and has UseUserOverride set to true. All MonoCultureInfo
2565         instances returned for GetCultures have both IsReadOnly and
2566         UseUserOverride set to true. Fixes part of bug #81930.
2567
2568 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
2569
2570        * icall-def.h: Update System.__ComObject icalls
2571        * marshal.c: Avoid managed transition (and object creation)
2572        when looking up COM interface in RCW.
2573        * marshal.h: Ditto.
2574        
2575        Code is contributed under MIT/X11 license.
2576
2577 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
2578
2579         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
2580         to avoid crashes during assembly unloading.
2581
2582 2007-06-22  Raja R Harinath  <rharinath@novell.com>
2583
2584         Fix MethodInfo.IsGenericMethodDefinition
2585         * reflection.c (mono_reflection_bind_generic_method_parameters):
2586         Rearrange code to ensure we always uses a generic method definition.
2587         * class.c (mono_class_inflate_generic_method_full): Set
2588         'generic_container' field only for generic method definitions.
2589         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
2590         Use presense of 'generic_container' field as indication of being a
2591         generic method definition.
2592
2593 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
2594
2595         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2596
2597         * object-internals.h: Reflect changes in the layout of the managed Delegate
2598         class.
2599         
2600         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
2601         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
2602         runtime memory used by the dynamic method. Fixes #77146.
2603
2604 2007-06-21  Dick Porter  <dick@ximian.com>
2605
2606         * file-io.h: 
2607         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
2608         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
2609         81767.
2610
2611 2007-06-21  Raja R Harinath  <rharinath@novell.com>
2612
2613         * reflection.c (method_encode_methodspec): Add a tripwire.
2614         * class.c (inflate_generic_type): The fully open generic type is
2615         not the same as the generic type definition.
2616
2617 2007-06-21  Martin Baulig  <martin@ximian.com>
2618
2619         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
2620
2621         * mono-debug-debugger.h
2622         (MonoDebuggerBreakpointInfo): Removed.
2623         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
2624         (mono_debugger_remove_breakpoint): Likewise.
2625         (mono_debugger_breakpoint_callback): Likewise.
2626         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
2627
2628 2007-06-21  Raja R Harinath  <rharinath@novell.com>
2629
2630         * metadata.c (mono_metadata_lookup_generic_class): The fully open
2631         generic type is not the same as the generic type definition.
2632         * class.c (mono_generic_class_get_class): Likewise.
2633
2634 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
2635
2636         * icall.c: The second argument to 
2637         System.Reflection.MethodBase.GetMethodFromHandleInternalType
2638         is a MonoType not a MonoClass.
2639
2640 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
2641
2642         * verify.c: support for function pointers in the verifier
2643
2644 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
2645
2646         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
2647
2648 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
2649
2650         * assembly.c: removed Mono.Data.SqliteClient from the list of
2651         forward-compatible assemblies as it breaks the ABI (bug #81899).
2652
2653 2007-06-19  Raja R Harinath  <rharinath@novell.com>
2654
2655         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
2656         lookup/update with the loader lock.
2657         * reflection.c (mono_class_bind_generic_parameters): No need to
2658         protect mono_metadata_lookup_* with the loader lock.
2659         * class.c (inflate_generic_type): Likewise.
2660         
2661         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
2662         on a generic instantiated type.
2663
2664 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
2665
2666         *verify.c: produce meanfull error messages on verification error
2667         *verify.c: fixed some cases of verification errors reported as validation errors
2668         *pedump.c: fixed the error name array, now it shows validation errors properly
2669         *verify.h: fixed the contant that should be used for verification errors
2670
2671 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
2672
2673         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
2674         for bug #77596, 81858 and 80743 (generics data structures on domain
2675         unload).
2676
2677 2007-06-15  Raja R Harinath  <rharinath@novell.com>
2678
2679         Avoid allocating 'MonoGenericContext' on the heap.
2680         * class-internals (_MonoMethodInflated::context): Make field
2681         inline, not a pointer.
2682         * loader.c (method_from_methodspec): Allocate 'new_context' on the
2683         stack.  Use the context embedded within the inflated method as the
2684         hash key, rather than 'new_context'.
2685         * class.c (inflate_generic_context): Simplify.  Return a struct
2686         rather than allocating on the heap.
2687         (mono_class_inflate_generic_method_full): Update to changes.  Now,
2688         doesn't salt away a copy of the context -- simplifying the
2689         lifetime rules of a 'MonoGenericContext *'.
2690         (mono_method_get_context): Return pointer to embedded context.
2691         (setup_generic_array_ifaces): Allocate temporary context on stack.
2692         * reflection.c (inflate_mono_method): Likewise.
2693         (mono_reflection_bind_generic_method_parameters): Likewise.
2694         Use the context embedded within the inflated method as the hash key.
2695
2696         Avoid a source of allocation of 'MonoGenericContext'.
2697         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
2698         and 'cached_context' fields into embedded 'MonoGenericContext' field.
2699         * class.c: Update to changes.
2700         (mono_generic_class_get_context): Simplify drastically.  Now just
2701         returns a pointer to the field.
2702         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
2703         argument as a const pointer.
2704         (mono_metadata_generic_context_equal): Likewise.
2705         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
2706         Update to changes.
2707
2708 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
2709
2710         * verify.c improved the handling of brtrue/brfalse, factored out common code
2711
2712 2007-06-14  Raja R Harinath  <rharinath@novell.com>
2713
2714         Kill MonoGenericMethod.
2715         * class-internals.h (MonoGenericContext::method_inst): Rename from
2716         'gmethod' and convert to a MonoGenericInst.
2717         (MonoGenericMethod): Remove.
2718         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
2719         * loader.c (method_from_methodspec): Update to changes.  Use a
2720         MonoGenericContext as the key to the hashtable.
2721         * metadata.c (mono_metadata_generic_context_equal): Rename from 
2722         'mono_metadata_generic_method_equal' and take MonoGenericContext.
2723         (mono_metadata_generic_context_hash): Likewise from
2724         'mono_metadata_generic_method_hash'.  Change hash function.
2725         (mono_metadata_load_generic_params): Update to changes.
2726         (mono_get_shared_generic_method): Remove.
2727         * metadata-internals.h (mono_get_shared_generic_method): Remove.
2728         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
2729         (inflate_generic_context): Likewise.
2730         (mono_class_inflate_generic_method_full): Likewise.
2731         (setup_generic_array_ifaces): Likewise.
2732         (mono_class_create_from_typespec): Likewise.
2733         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
2734         (method_encode_methodspec): Update callsite.
2735         (reflection_methodbuilder_to_mono_method): Update to changes.
2736         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
2737         MonoGenericContext as the key to the hashtable.
2738         (inflate_mono_method): Update to changes.
2739
2740         * class-internals.h (MonoGenericMethod::container): Remove.
2741         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2742
2743 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
2744
2745         * profiler-private.h, profiler.c, profiler.h: added API to profile
2746         exception events.
2747
2748 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
2749
2750         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
2751
2752 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
2753
2754         * verify.c: method invocation is now validated, now we verify parameter types on stack.
2755         Fixed overflow and underflow not aborting the verification process.
2756
2757 2007-06-13  Mark Probst  <mark.probst@gmail.com>
2758
2759         * class-internals.h (MonoStats): Added stats entries for dynamic
2760         code allocations.
2761
2762 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
2763
2764         * loader.c (mono_free_method): Free header->locals and header->clauses.
2765
2766         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
2767         dynamic case.
2768
2769         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
2770
2771         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
2772
2773 2007-06-12  Raja R Harinath  <rharinath@novell.com>
2774
2775         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
2776         the tables.
2777
2778 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2779
2780         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
2781
2782 2007-06-11  Raja R Harinath  <harinath@gmail.com>
2783
2784         MonoGenericMethod on a diet
2785         * class-internals.h (_MonoMethodInflated::reflection_info): Move
2786         here ...
2787         (_MonoGenericMethod::reflection_info): ... from here.
2788         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
2789         Update to changes.
2790         * reflection.c (inflate_mono_method): Likewise.
2791         (mono_reflection_bind_generic_method_parameters): Likewise.
2792
2793 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2794
2795         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
2796         *verify.c: factored long ldarg forms to share code with short forms
2797
2798 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2799
2800         *verify.c: fixed code formating factored some duplicate code
2801         into a new function
2802
2803         *verify.h: fixed binary incompatibility introduced earlier
2804
2805         *pedump.c: fixed formating
2806
2807 2007-06-11  Raja R Harinath  <harinath@gmail.com>
2808
2809         Fix assertion when disassembling Mono.C5.dll
2810         * loader.c (method_from_methodspec): Avoid inflating a method
2811         twice with the same context.  If the methodref is inflated, use
2812         the declaring method instead.
2813
2814         * class.c (mono_class_from_generic_parameter): Fix case similar to
2815         bug #81830 handled below, but for method containers.
2816
2817 2007-06-10  Raja R Harinath  <harinath@gmail.com>
2818
2819         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
2820         get_shared_generic_class.  Directly inflate the instance.
2821         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
2822         (inflate_generic_class): Delete.
2823         (get_shared_generic_class): Delete.  Move setting of
2824         'cached_class' and 'cached_context' ...
2825         * metadata.c (mono_metadata_lookup_generic_class): ... here.
2826
2827         * metadata.c (mono_metadata_lookup_generic_class): Change
2828         signature to take the components of a MonoGenericClass rather than
2829         an allocated MonoGenericClass.  Change semantics to be intern-like.
2830         * reflection.c (mono_class_bind_generic_parameters): Update to
2831         changes.  Make locking region tighter.
2832         * class.c (inflate_generic_class): Update to changes.
2833         (get_shared_generic_class): Likewise.
2834         * metadata-internals.h: Likewise.
2835
2836         * reflection.c (mono_class_bind_generic_parameters): Take and
2837         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
2838         (mono_reflection_bind_generic_parameters): Use
2839         'mono_class_bind_generic_parameters' rather than duplicate the code.
2840         * class.c (mono_bounded_array_class_get): Update to changes.
2841         * object-internals.h: Likewise.
2842
2843         * reflection.c (mono_class_bind_generic_parameters): Only support
2844         parameterizing generic type definitions.  Remove support for other
2845         open types.
2846
2847 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
2848
2849         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
2850
2851         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
2852         in the dynamic case.
2853
2854 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
2855
2856         * threads.c: When cleaning up thread, reset the Background bit.
2857         Fixes bug #81720.
2858
2859 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
2860
2861        * metadata.c: Move variable declarations to top of scope.
2862        * verify.c: Move variable declarations to top of scope.
2863
2864        Code is contributed under MIT/X11 license.
2865
2866 2007-06-08  Raja R Harinath  <rharinath@novell.com>
2867
2868         * reflection.c (mono_class_bind_generic_parameters): Replace
2869         open-coded loop with mono_metadata_inflate_generic_inst.
2870
2871         * class.c (get_shared_generic_class): Don't call
2872         mono_get_shared_generic_inst.  Use the container's own
2873         'class_inst'.
2874
2875         * metadata.c (mono_metadata_load_generic_params): Move
2876         initialization of 'context' field here from ...
2877         * class.c (mono_class_create_from_typedef): ... here, and ...
2878         * loader.c (mono_get_method_from_token): ... here.
2879
2880         * class.c (get_shared_generic_class): Rename from
2881         mono_get_shared_generic_class and make static.
2882         (mono_get_shared_generic_inst): Move to metadata.c.
2883         * loader.c (mono_get_shared_generic_method): Likewise.
2884         * class-internals.h, metadata-internals.h: Update to changes.
2885
2886         Fix #81830
2887         * class.c (mono_class_from_generic_parameter): Don't assume a
2888         generic container owner exists.  Generic containers from monodis
2889         don't have any.
2890
2891 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
2892
2893         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
2894         * verify.h: new typedefs to returns the non-verifiable status
2895         * verify.c: initial implementation of generics, stack merging and object compatibility check
2896
2897 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2898
2899         * class.c, image.c, class-internals.h (MonoImage): class_cache is
2900         a MonoInternalHashTable again (fixed bug in internal hash table
2901         code).
2902
2903 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2904
2905         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
2906         MonoInternalHashTable again (fixed bug in internal hash table
2907         code).
2908
2909 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2910
2911         * class.c, image.c, class-internals.h, domain.c,
2912         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
2913         changes.  Have to figure out what makes them break the SWF
2914         regression.
2915
2916 2007-06-04  Mark Probst  <mark.probst@gmail.com>
2917
2918         * class.c, image.c, class-internals.h (MonoImage): class_cache is
2919         a MonoInternalHashTable now.
2920
2921 2007-06-04  Mark Probst  <mark.probst@gmail.com>
2922
2923         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
2924         MonoInternalHashTable now.
2925
2926 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
2927
2928         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
2929         invoke_impl code.
2930
2931         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
2932
2933         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
2934         dependent trampoline.
2935
2936         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2937
2938         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
2939
2940 2007-05-29  Robert Jordan  <robertj@gmx.net>
2941
2942         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
2943
2944 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
2945
2946         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
2947
2948 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
2949
2950        * marshal.c: Fix interface lookup loops for
2951        cominterop_get_com_slot_for_method and 
2952        cominterop_get_method_interface. Only need to lookup
2953        if type is a class, else use interface type method is on.
2954
2955        Code is contributed under MIT/X11 license.
2956
2957 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
2958
2959         * reflection.c: HasSecurity can be present even if no specially 
2960         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
2961         SecurityAttribute). Fix CAS regression tests on buildbot.
2962
2963 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
2964
2965        * appdomain.c: Add configure checks for header files.
2966        * image.c: Add configure checks for header files.
2967        * file-io.c: Add configure checks for header files.
2968        * debug-mono-symfile.c: Add configure checks for header files.
2969        * threadpool.c: Add configure checks for header files.
2970        * console-io.c: Add configure checks for header files.
2971        * profiler.c: Add configure checks for header files.
2972        * rawbuffer.c: Add configure checks for header files.
2973        * icall.c: Add configure checks for header files.
2974        * rand.c: Add configure checks for header files.
2975        * socket-io.c: Add configure checks for header files.
2976
2977        Code is contributed under MIT/X11 license.
2978
2979 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
2980
2981         * reflection.c (mono_custom_attrs_from_builders): Remove the 
2982         assertion as it breaks the build.
2983         
2984         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
2985
2986         * reflection.c (lookup_custom_attr): Make a copy here too.
2987
2988         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
2989         dynamic images.
2990
2991         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
2992         images.
2993
2994         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
2995         info.
2996
2997 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
2998
2999         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
3000         (load_cattr_value): Ditto.
3001
3002 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
3003
3004         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
3005
3006 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
3007
3008         * threads.c: In "start_wrapper", set apartment_state to MTA if
3009         apartment_state is Unknown and we're running on 2.0 profile or
3010         higher.
3011         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
3012         to main method, then set apartment_state to Unknown on 1.0 profile,
3013         and MTA on 2.0 profile.
3014
3015 2007-05-16  Jb Evain  <jb@nurv.fr>
3016
3017         * class-internals.h (MonoDefaults): Add an attribute_class and
3018           customattribute_data_class.
3019         * domain.c (mono_init_internal): Populate them.
3020         * reflection.c: Use them to remove duplicates. Make a vew
3021         MonoClass variables `static'.
3022
3023 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
3024
3025         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
3026         step in implementing IMT, so that all isinst checks now can go
3027         through the bitmap.
3028         This was needed because vtables for TransparentProxy need to look
3029         like the vtable of the "target" class, so they need to point to
3030         its interface bitmap directly.
3031
3032         * object.c: inside "mono_class_create_runtime_vtable" and
3033         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
3034
3035 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
3036
3037         * object-internals.h
3038           culture-info.h : added territory field in MonoCulture and
3039           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
3040         * locales.c : fill territory field above too.
3041         * culture-info-table.h : regenerated.
3042
3043 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
3044
3045         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
3046         Fixes #81599.
3047
3048 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
3049
3050         * object.c: Always initialize apartment, even if 
3051         there is no custom attributes on entry point.
3052         
3053         Code is contributed under MIT/X11 license.
3054
3055 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
3056
3057         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
3058         * metadata.c: If no encoding is set, check for unicode
3059         on class.
3060         
3061         Code is contributed under MIT/X11 license.
3062
3063 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
3064
3065         * threads.c: Handle if mono_thread_current returns NULL 
3066         
3067         Code is contributed under MIT/X11 license.
3068
3069 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
3070
3071         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
3072         in start_wrapper. Added mono_thread_init_apartment_state and
3073         mono_thread_cleanup_apartment_state.
3074         * object.c: Initialize thread apartment state on main thread
3075         by checking for STAThreadAttribute on entry point.
3076         * object-internals.h: Add apartment_state field to MonoThread.
3077         * threads-types.h: Add unmanaged definition of 
3078         System.Threading.ApartmentState, MonoThreadApartmentState.
3079         
3080         Code is contributed under MIT/X11 license.
3081         
3082 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
3083
3084         * class.c: Fix windows build.
3085         * class-internals.h: Fix windows build.
3086         
3087         Code is contributed under MIT/X11 license.
3088
3089 2007-05-08  Robert Jordan  <robertj@gmx.net>
3090
3091         * process.c (CreateProcess_internal):
3092         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
3093         .CreateNoWindow was specified. Fixes #81496.
3094
3095 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
3096
3097         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
3098         step in implementing IMT, replaced it with two compact arrays
3099         (interfaces_packed and interface_offsets_packed) and a bitmap that
3100         is used for isinst checks (interface_bitmap).
3101
3102         * class.c: (compare_interface_ids): compare function to pass to
3103         bsearch when looking for an interface with a given id.
3104         (mono_class_interface_offset): reimplemented using bsearch on
3105         interfaces_packed, getting the offset from interface_offsets_packed.
3106         (print_implemented_interfaces): utility debugging function.
3107         (setup_interface_offsets): reworked to initialize interfaces_packed,
3108         interface_offsets_packed and interface_bitmap.
3109
3110         * object.c: replaced all accesses to "MonoClass.interface_offsets"
3111         with uses of interfaces_packed and interface_offsets_packed.
3112
3113 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
3114
3115         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
3116         mono_class_interface_offset prototype to wrap all accesses to
3117         "MonoClass.interface_offsets".
3118
3119         * class.c: Implemented mono_class_interface_offset, and wrapped all
3120         accesses to "MonoClass.interface_offsets".
3121
3122         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
3123         "MonoClass.interface_offsets".
3124
3125 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
3126
3127         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
3128         GetMethodFromHandle overloads (bug #78637).
3129
3130 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
3131
3132         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
3133         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
3134
3135 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
3136
3137         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
3138         #81498.
3139
3140         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
3141         gracefully.
3142         (mono_custom_attrs_from_index): Ditto.
3143
3144         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
3145         Fixes #81501.
3146
3147 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
3148
3149         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
3150         is now allocated from a mempool.
3151
3152 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
3153
3154         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
3155         caller holds threads_lock, leading to deadlocks. Fixes #81476.
3156
3157 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
3158
3159         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
3160         mono_loader_clear_error () too late. Fixes #81463.
3161
3162 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
3163
3164         * culture-info-table.h : regenerated.
3165
3166 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
3167
3168         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
3169         is missing.
3170
3171 2007-04-25  Dick Porter  <dick@ximian.com>
3172
3173         * Makefile.am: Put the mingw enforced-optimisation back into the
3174         PLATFORM_WIN32 section.
3175
3176 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
3177
3178         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
3179         patch.
3180
3181         * image.c (mono_image_load_module): New API function to load a module reference.
3182
3183         * image.c (load_modules): Load modules lazily. Fixes #80812.
3184
3185         * class.c (mono_class_from_typeref): Use mono_image_load_module.
3186         
3187         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
3188
3189         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
3190         to mono_image_load_module_dynamic.
3191
3192 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
3193
3194         * marshal.c: Fix calling convention for CCW on non-windows
3195         platforms. STDCALL on windows, CDECL everywhere else to work 
3196         with XPCOM and MainWin COM.
3197         
3198         Code is contributed under MIT/X11 license.
3199
3200 2007-04-23  Martin Baulig  <martin@ximian.com>
3201
3202         Fix #80969.
3203
3204         * loader.c
3205         (method_from_memberref): Added `gboolean *used_context' argument.
3206         (mono_get_method_from_token): Likewise.
3207         (mono_get_method_full): Don't insert the method in the cache when
3208         `used_context' is true.
3209
3210 2007-04-23  Raja R Harinath  <rharinath@novell.com>
3211
3212         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
3213
3214         * reflection.c (mono_reflection_bind_generic_parameters): Don't
3215         create new MonoTypes for returned types.
3216         * class.c (mono_generic_class_get_class): Export mono-internal.
3217         * class-internals.h: Update to changes.
3218
3219 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
3220
3221         * threadpool.c, threadpool.h, icall-def.h: patch from
3222         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
3223
3224 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
3225
3226         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
3227         
3228         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
3229
3230         * threads.c (mono_thread_get_stack_bounds): New helper function.
3231
3232         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
3233         Correctly compute stack bounds when attaching. Fixes #81394.
3234
3235 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
3236
3237         * reflection.c: fix handling of doubles in custom attributes
3238         for the arm-fpa format (bug #81368).
3239
3240 2007-04-18  Raja R Harinath  <rharinath@novell.com>
3241
3242         * reflection.c (assembly_add_win32_resources): Mildly relax an
3243         bounds check to let the end pointer point just past the end of the
3244         allocated buffer.  (may fix #81384)
3245
3246 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
3247
3248         * culture-info-table.h : regenerated.
3249
3250 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
3251
3252         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
3253         the thread is aborted early.
3254
3255 2007-04-05  Dick Porter  <dick@ximian.com>
3256
3257         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
3258         FindFirstFile()/FindNextFile() to find entries.  This lets the
3259         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
3260         81038.
3261
3262         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
3263         the parameters of
3264         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
3265
3266 2007-04-04  Martin Baulig  <martin@ximian.com>
3267
3268         * debug-helpers.c
3269         (mono_method_desc_full_match): Add support for nested classes.
3270
3271 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
3272
3273         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
3274
3275 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
3276
3277         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
3278         waiting for too many threads.
3279
3280 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
3281
3282         * environment.c: Fix return value check on uname so we can get the 
3283         executing version on Solaris operating systems.
3284
3285 2007-03-28  Jb Evain  <jbevain@gmail.com>
3286
3287         * class.c (mono_type_get_name_recurse): Complete the
3288         fix for the creation of assembly qualified names for
3289         pointer types. Fixes #81208.
3290
3291 2007-03-27  Dick Porter  <dick@ximian.com>
3292
3293         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
3294         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
3295         changed.
3296
3297         * threads.c
3298         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
3299         the value of ReleaseMutex().
3300
3301 2007-03-27  Dick Porter  <dick@ximian.com>
3302
3303         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
3304         in little-endian order, not network endian, so must be converted
3305         to host endian here.  Fixes bug 80593.
3306
3307 2007-03-22  Jb Evain  <jbevain@gmail.com>
3308
3309         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
3310         qualified names for pointer types. Fixes #81208.
3311
3312 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
3313
3314         * marshal.c: Add support for PreserveSigAttribute. 
3315         
3316         Code is contributed under MIT/X11 license.
3317
3318 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
3319
3320         * process.c: Fix endianness issues. Fixes #81126.
3321
3322         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
3323         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
3324
3325         * image.c (mono_image_lookup_resource): Make this work on big-endian
3326         machines.Change API contract so the caller needs to free the return value.
3327         
3328         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
3329         API change.
3330         
3331 2007-03-14  Martin Baulig  <martin@ximian.com>
3332
3333         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
3334         mono_type_get_desc() as well.
3335
3336 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
3337
3338         * icall.c:  Fix environ access in VS.  
3339         
3340 2007-03-13  Alp Toker  <alp@atoker.com>
3341
3342         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
3343         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
3344         #63841.
3345
3346 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
3347
3348         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
3349         circular references among dynamic methods. Fixes #81091.
3350
3351         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
3352
3353 2007-03-09  Martin Baulig  <martin@ximian.com>
3354
3355         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
3356
3357 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
3358
3359         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
3360         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
3361         
3362         Code is contributed under MIT/X11 license.
3363         
3364 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
3365
3366         * loader.c: Reapply patch for bug #79424.
3367
3368 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
3369
3370         * metadata.c (mono_type_to_unmanaged): Only convert object to
3371         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
3372
3373 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
3374
3375         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
3376         (and incorrectly set) is_reference field from MonoGenericInst.
3377
3378 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
3379
3380         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
3381         a little earlier.
3382
3383         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
3384
3385         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
3386
3387 2007-03-05  Miguel de Icaza  <miguel@novell.com>
3388
3389         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
3390         FileOptions.1 value to mean "temporary", map that to
3391         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
3392
3393         Fixes 80688
3394
3395 2007-03-03  Marek Habersack  <mhabersack@novell.com>
3396
3397         * appdomain.c: implement MS .Net style shadow copying. Copies of
3398         the assemblies are made in a subdirectory of the dynamic base
3399         directory, the assembly names are preserved.
3400         Copy .mdb and .config files along with the assemblies being shadowed.
3401
3402 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
3403
3404         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
3405         (emit_marshal_handleref): Ditto.
3406
3407         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
3408         on Visual C++. Fixes #80671.
3409
3410 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
3411
3412         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
3413         for clone operations.
3414
3415 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
3416
3417         * marshal.c: Fix warnings.
3418
3419 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
3420
3421         * loader.c: allow case-insensitive matching of the dll name
3422         in dllmap handling when prefixed with "i:".
3423
3424 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
3425
3426         * threads.c: Fix #ifdef for dummy_apc function for VS.
3427
3428 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
3429
3430         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
3431
3432 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
3433         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
3434         giving precedence to the methods with a fully qualified name
3435         (InterfaceName.MethodName) when building the interface sections
3436         of the vtable.
3437
3438 2007-02-16  Dick Porter  <dick@ximian.com>
3439
3440         * threadpool.c (append_job): Fix fast-path array handling, so it's
3441         less likely the array will grow exponentially when the load is
3442         heavy.
3443
3444 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
3445
3446         * metadata-internals.h, loader.c: fix dllmap lookup order
3447         for non-function maps, too, and prepare for fallback code.
3448
3449 2007-02-12  Robert Jordan  <robertj@gmx.net>
3450
3451         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
3452         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
3453         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
3454         GlobalFree. Fixes a part of bug #77075.
3455
3456 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
3457
3458         * loader.c: implemented typedef parent in field memberref.
3459
3460 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
3461
3462         * marshal.c: Fix warnings and remember to call Release on
3463         IUnknown of RCW.
3464         
3465         Code is contributed under MIT/X11 license.
3466
3467 2007-02-10  Miguel de Icaza  <miguel@novell.com>
3468
3469         * class-internals.h: Add MonoHandleRef definition, and
3470         handleref_class to mono_defaults. 
3471
3472         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
3473         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
3474
3475         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
3476         (do nothing on this stage)
3477         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
3478         (emit_marshal_handleref): New method, used for argument handling
3479         of HandleRefs. 
3480
3481 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
3482
3483         * class.c (mono_class_setup_parent): Lazily init com types.
3484         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
3485         init com types.
3486         * object.c (mono_remote_class_vtable): Lazily init com types.
3487         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
3488         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
3489         * domain-internals.h: Expose mono_init_com_types.
3490         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
3491         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
3492         Add support for COM Callable Wrapper marshalling.
3493         * marshal.h: Add icall definitions.
3494         * gc.c: Handle freeing of CCWs in finalizer code.
3495         
3496         Code is contributed under MIT/X11 license.
3497
3498 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
3499
3500         * reflection.c: changed all the signature encoding code to use
3501         a variable-sized buffer.
3502
3503 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
3504
3505         * marshal.c: locking fixes: never take the loader lock
3506         or other runtime locks when holding the marshal lock
3507         (fixes bug#80664).
3508
3509 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
3510
3511         * marshal.c: make the delegate function pointer mapping
3512         work for the moving GC.
3513
3514 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
3515
3516         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
3517         for bug #80618.
3518
3519 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
3520
3521         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
3522         gmodule.
3523
3524 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
3525
3526         * threadpool.c: made the code moving-GC safe.
3527
3528 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
3529
3530         * assembly.c, boehm-gc.c, class-internals.h, class.c,
3531         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
3532         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
3533         warning cleanup.
3534         * reflection.c: warning cleanup, some threading and moving GC fixes.
3535
3536 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
3537
3538         * class.c, loader.c: create the needed Set/Get/Address array methods
3539         as well as the .ctors in mono_class_init (), fixes bug #80567.
3540
3541 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
3542
3543         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
3544         we doesn't decrease its alignment. Should fix the sparc build.
3545
3546 2007-01-24  Dick Porter  <dick@ximian.com>
3547
3548         * socket-io.c
3549         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3550         Create the returned object if we need to ignore an unsupported
3551         socket option.  Fixes a segfault reported by Atsushi.
3552
3553 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
3554
3555         * class.c, object.c: restrict GC-tracked fields to
3556         UIntPtr fields used inside corlib, so we provide better
3557         type info to the GC and also allow broken packing as in
3558         bug #80580.
3559
3560 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
3561
3562         * sgen-gc.c: removed duplicated function.
3563
3564 2007-01-19  Miguel de Icaza  <miguel@novell.com>
3565
3566         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
3567         value that means that the value is not supported, but that we
3568         should not return a failure, but instead report this as a
3569         successful operation.
3570
3571 2007-01-19  Raja R Harinath  <rharinath@novell.com>
3572
3573         Fix tests/bug79956.2.il
3574         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
3575         (mono_generic_class_get_class): If the generic definition in an
3576         enum, copy over other fields related to it.
3577
3578 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
3579
3580         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
3581         genericinst enums (bug #79215).
3582
3583 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
3584         * class.c: Fix bug 80307.
3585
3586 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
3587
3588         * image.c: if the file table is not present, try to load
3589         all the modules, since we don't have info about them
3590         having or not metadata (bug #80517).
3591         * assembly.c: allow mono_assembly_load_references () to
3592         work for netmodules.
3593
3594 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
3595
3596         * image.c, metadata-internals.h, object.c: execute module
3597         cctors when running on the 2 runtime if present (bug #80487).
3598
3599 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
3600
3601         * icall.c: optimized InitializeArray() on bigendian.
3602
3603 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
3604
3605         * icall.c: fix for the broken ARM FPA double format.
3606
3607 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
3608
3609         * icall.c: handle endian issues for r4 and r8 types, too, in
3610         the InitializeArray() icall.
3611
3612 2007-01-15  Miguel de Icaza  <miguel@novell.com>
3613
3614         * loader.c (mono_loader_error_prepare_exception): Clear the error
3615         once we have extracted the information from it, do this before we
3616         call into the JIT's class loading mechanisms.
3617
3618         * object.c (mono_class_create_runtime_vtable): Do not clear the
3619         loader error before calling mono_class_get_exception_for_failure
3620         as the loader error is needed inside
3621         mono_class_get_exception_for_failure to throw the error (thinko).
3622
3623         Fixes #80521
3624         
3625 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
3626
3627         * reflection.c: align fields rva data so it's faster to load at
3628         runtime.
3629
3630 2007-01-12  Raja R Harinath  <rharinath@novell.com>
3631
3632         Prepare to simplify GenericMethod handling.
3633         * class-internals.h (mono_method_get_context): New accessor function.
3634         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
3635         rather than directly accessing '->context' field.
3636
3637         * class-internals.h (_MonoGenericParam.method): Move ...
3638         (_MonoGenericContainer): ... here.  Add into union with klass field.
3639         * class.c, icall.c, loader.c, metadata.c, reflection.c:
3640         Update to changes.
3641
3642 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
3643
3644         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
3645         the wrapper type enum and reduce relocations.
3646
3647 2007-01-12  Raja R Harinath  <rharinath@novell.com>
3648
3649         * reflection.c (inflate_mono_method): Reuse method instantiation
3650         from the generic method, if available.
3651
3652 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
3653
3654         * marshal.c (emit_marshal_variant): Fix conv_arg
3655         type in last commit, based on whether parameter is byref.
3656         
3657 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
3658
3659         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
3660         marshalling.
3661         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
3662         MONO_TYPE_OBJECT back for VARIANT support.
3663
3664 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
3665
3666         * marshal.c, marshal.h, icall-def.h: Implement 
3667         Marshal.ReAllocCoTaskMem.
3668
3669 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
3670
3671         * marshal.c: memory retention fixes: use the proper
3672         image cache for runtime_invoke method lookups.
3673
3674 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
3675
3676         * mempool.c: added code to help debug mempool allocations.
3677
3678 2007-01-11  Dick Porter  <dick@ximian.com>
3679
3680         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
3681         support (experimenting with faking it with IP_MTU_DISCOVER for
3682         systems that don't have IP_DONTFRAGMENT.)
3683         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
3684         icall.
3685
3686         * icall-def.h: new System.Net.Sockets.Disconnect icall.
3687
3688         * socket-io.h: Add new fields to MonoSocketAsyncResult
3689         corresponding to the new ones in Socket.cs.
3690
3691 2007-01-11  Raja R Harinath  <rharinath@novell.com>
3692
3693         Fix IronPython regression mentioned in #80249
3694         * metadata.c (do_mono_metadata_parse_generic_class): Clear
3695         'cached_context' field, since it may have been initialized as a
3696         side-effect of metadata parsing.
3697
3698         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
3699         (_MonoGenericClass.cached_class): Move here and rename from lone
3700         remaining field of ...
3701         (_MonoInflatedGenericClass): ... this.  Remove.
3702         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
3703         to changes.
3704
3705         Fix mcs/tests/test-128.cs regression.
3706         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
3707         2007-01-10 change below.
3708         [MONO_TYPE_OBJECT]: Recurse into array case.
3709
3710 2007-01-11  Raja R Harinath  <harinath@gmail.com>
3711
3712         * class-internals.h (mono_get_inflated_generic_class): Remove.
3713         * class.c (mono_get_inflated_generic_class): Remove.
3714         (mono_generic_class_get_class): Rename from
3715         mono_class_create_generic.
3716         (mono_class_from_mono_type) [GENERICINST]: Use it.
3717         * reflection.c, metadata.c: Update to changes.  Use
3718         'mono_class_from_mono_type'.
3719
3720 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
3721
3722         * reflection.c: use passed type when encoding an array element
3723         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
3724
3725 2007-01-09  Robert Jordan  <robertj@gmx.net>
3726
3727         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
3728         result arguments (someDelegate.EndInvoke (unrelatedAres)).
3729         Fixes bug #80392.
3730
3731 2007-01-09  Raja R Harinath  <rharinath@novell.com>
3732
3733         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
3734
3735         * object.c (set_value): Avoid aliasing between type->data.klass
3736         and type->data.generic_class.
3737
3738         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
3739
3740 2007-01-08  Raja R Harinath  <rharinath@novell.com>
3741
3742         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
3743         between type->data.klass and type->data.generic_class.
3744
3745 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
3746
3747         * marshal.c: In MS.NET, StringBuilder objects are not copied by
3748         value in out parameters.
3749
3750 2007-01-08  Raja R Harinath  <rharinath@novell.com>
3751
3752         Simplify invariant for MonoGenericClass::klass field.
3753         * class.c (mono_class_create_generic): Verify 'klass' is null.
3754         * metadata.c (do_mono_metadata_parse_generic_class): Don't
3755         initialize 'klass' field.
3756
3757 2007-01-05  Raja R Harinath  <rharinath@novell.com>
3758
3759         Ongoing work to avoid redundant data and simplify invariants.
3760         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
3761         'generic_class', and change type to a GenericInst.
3762         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
3763         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
3764
3765 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
3766
3767         * class.c : skip io-layer under PLATFORM_WIN32.
3768
3769 2007-01-03  Tor Lillqvist  <tml@novell.com>
3770
3771         Fix #80305: In a bundled executable, look in the bundled exe
3772         assembly to determine the runtime version. Add the possibility to
3773         bundle also the machine.config file.
3774         
3775         * assembly.c (mono_assembly_open_from_bundle): Make
3776         non-static. Allow being called even if we have no bundled
3777         assemblies, and return NULL right away in that case.
3778
3779         * domain-internals.h: Declare mono_assembly_open_from_bundle()
3780         here.
3781
3782         * domain.c (app_config_parse): Take an assembly exe file name as
3783         parameter instead of a config file name. Check for a bundled
3784         config file for that assembly by calling
3785         mono_config_string_for_assembly_file() (see below) before looking
3786         for one in the file system.
3787         (get_runtimes_from_exe): Corrsponding change to call of
3788         app_config_parse().
3789         (get_runtimes_from_exe): Check for bundled assembly exe file first
3790         by calling mono_assembly_open_from_bundle(). If no bundled
3791         assembly exe file is found, call mono_image_open() as before to
3792         look it up in the file system.
3793
3794         * mono-config.c: Add variable bundled_machinec_onfig.
3795         (mono_config_string_for_assembly_file): New function.
3796         (mono_config_for_assembly): Move code snippet that looks for a
3797         bundled assembly .config file into the above new function. Call
3798         it.
3799         (mono_register_machine_config, mono_get_machine_config): New
3800         functions to set and retrieve
3801
3802         * assembly.h: Declare mono_register_machine_config().
3803
3804         * mono-config.h: Declare mono_get_machine_config() and
3805         mono_config_string_for_assembly_file().
3806
3807         * icall.c: No declaration of environ necessary on Win32. It is
3808         declared (as a macro expanding to a function call) in stdlib.h.
3809         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
3810         New internal mono function. Returns the value of
3811         mono_get_machine_config() as a Mono string.
3812
3813         * icall-def.h: Add get_bundled_machine_config().
3814
3815 2007-01-04  Raja R Harinath  <rharinath@novell.com>
3816
3817         Remove redundant field
3818         * class-internals.h (_MonoGenericContext.container): Remove field.
3819         * loader.c (mono_method_get_signature_full): Don't parse a
3820         "container" for a signature parse when the signature is inflated
3821         immediately.
3822         (method_from_methodspec): Likewise, for a generic_inst.
3823         * class.c, metadata.c, reflection.c: Update to changes.
3824
3825 2006-01-04  Raja R Harinath  <rharinath@novell.com>
3826
3827         * class-internals.h (_MonoGenericClass): Rename 'context' field to
3828         'cached_context', and change semantics -- it starts off NULL, and
3829         is initialized on demand.
3830         * class.c (mono_generic_class_get_context): New accessor to
3831         replace 'context' field accesses.
3832         (mono_class_get_context): New helper.
3833         (*): Update to changes.
3834         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
3835
3836 2007-01-03  Miguel de Icaza  <miguel@novell.com>
3837
3838         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
3839         before the memcpy.   Fixes Marshal2 regression.
3840
3841 2007-01-02  Jb Evain  <jbevain@gmail.com>
3842
3843         * blob.h: add a MONO_TYPE_ENUM definition
3844         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
3845         fix the encoding of arrays of enums in custom attributes.
3846
3847         Fixes #79666.
3848
3849 2007-01-01  Miguel de Icaza  <miguel@novell.com>
3850
3851         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
3852         string is null terminated, but only cut the string short if it
3853         overflows the buffer.   
3854         
3855         (mono_string_to_byvalstr): Also fix this routine.   The code here
3856         was not properly terminating a string (it was only terminated
3857         because of the previous catch-all memset). 
3858
3859         I left the memset, because I do not know if applications expect
3860         the runtime to clear this region. 
3861
3862         Fixes #79944.
3863
3864         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
3865         Clear the error before returning to unmanaged code to prevent the
3866         runtime from being confused later on (fixes  80420).
3867         (ves_icall_type_from_name): Always call mono_loader_clear_error
3868         after parsing a type that could have failed.
3869         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
3870
3871         * loader.c (mono_loader_clear_error): Fix indentation.
3872
3873 2006-12-28  Martin Baulig  <martin@ximian.com>
3874
3875         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
3876
3877 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
3878
3879         * reflection.c: patch from Rolf Bjarne Kvinge to fix
3880         getting a token for an EnumBuilder.
3881
3882 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
3883
3884         * reflection.c: be more careful in case resource generation
3885         fails to create the data array.
3886
3887 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
3888
3889         * sgen-gc.c: write barrier for clone and fix unregister handles.
3890
3891 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
3892
3893         * reflection.c: some fixes needed in the generics code for the moving GC.
3894
3895 2006-12-22  Robert Jordan  <robertj@gmx.net>
3896
3897         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
3898         account. Fixes bug #80299.
3899
3900 2006-12-21  Raja R Harinath  <rharinath@novell.com>
3901
3902         Fix WaitHandle usage in delegates.
3903         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
3904         * object.c (mono_wait_handle_new): Use the property set method to
3905         initialize the handle.
3906         (mono_wait_handle_get_handle): New.
3907         * threadpool.c (mono_async_invoke): Use it.
3908         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
3909         Likewise.
3910         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
3911
3912 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
3913
3914         * marshal.c (emit_marshal): Call emit_marshal_variant and
3915         emit_marshal_com_interface when applicable.
3916         (emit_marshal_variant, emit_marshal_com_interface): Add
3917         methods for this case and remove if's from emit_marshal_object.
3918         
3919 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
3920
3921         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
3922
3923 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
3924
3925         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
3926         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
3927         and GlobalFree on Windows. Remove FIXME.
3928
3929 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3930
3931         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
3932         implementation for managed objects.
3933
3934 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
3935
3936         * object.c: implemented code to be used for checking
3937         that no reference field overlaps with non-references.
3938
3939 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3940
3941         * threadpool.c: fix queue code to be compatible with the
3942         moving GC.
3943
3944 2006-12-18  Miguel de Icaza  <miguel@novell.com>
3945
3946         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
3947         in structures by throwing ArgumentNullException.
3948
3949         (emit_marshal_safehandle): Also when they are null parameters.
3950
3951         (emit_marshal_safehandle): Add support for ref
3952         SafeHandles parameters
3953
3954 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3955
3956         * profiler.c: updated to use the mono-dl API instead of
3957         gmodule.
3958
3959 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3960
3961         * profiler.c: updated to use the mono-dl dynamic loading
3962         API instead of gmodule.
3963
3964 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
3965
3966         * profiler.c: use readlink, older versions of glib don't have
3967         g_file_read_link ().
3968
3969 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3970
3971         * profiler.c: try to detect the path to mono if libc fails to provide
3972         a useful name (bug #80286).
3973
3974 2006-12-16  Raja R Harinath  <rharinath@novell.com>
3975
3976         Fix #80242
3977         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
3978         instance, use the generic type definition instead.
3979         (ves_icall_Type_GetNestedTypes): Likewise.
3980         * class.c (mono_class_create_generic): Always set the
3981         nested_classes of a generic instance to NULL, even if the generic
3982         type definition has nested types.
3983
3984 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
3985
3986         * marshal.c (mono_string_from_bstr): Revert previous Windows change
3987         and fix on Linux.
3988         
3989 2006-12-15  Miguel de Icaza  <miguel@novell.com>
3990
3991         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
3992         my arguments were in the wrong order.   I also fixed the Windows
3993         version which seems to have had the same issue.
3994
3995         (mono_free_bstr): On Unix, this is g_free.
3996         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
3997         conversions (for the tests in corlib to pass).
3998
3999 2006-12-14  Miguel de Icaza  <miguel@novell.com>
4000
4001         * marshal.c (emit_ptr_to_object_conv): For now, ignore
4002         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
4003         exception if a ref SafeHandle in a struct has changed).
4004         
4005         (emit_struct_conv): Do not perform layout checks for classes
4006         derived from SafeHandle, as those are specially handled. 
4007
4008         (emit_object_to_ptr_conv): Add support for
4009         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
4010
4011         (emit_marshal_safehandle): Implement conversion of return values
4012         of safehandles (MARSHAL_ACTION_CONV_RESULT).
4013         
4014         * threads.c: WaitHandle now is compiled with two different handles
4015         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
4016         for 2.0.
4017         
4018         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
4019         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
4020         these routines to cope with both kinds of fields.
4021
4022 2006-12-12  Miguel de Icaza  <miguel@novell.com>
4023
4024         * metadata.c (mono_type_to_unmanaged): Handle the case where
4025         type->data.klass is a SafeHandle, and in that case, return the
4026         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
4027         MONO_MARSHAL_CONV_SAFEHANDLE. 
4028
4029 2006-12-11  Miguel de Icaza  <miguel@novell.com>
4030
4031         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
4032         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
4033         calling emit_marshal_object.
4034
4035         (emit_marshal_safehandle): Implement marshalling of
4036         SafeHandle parameters (no ref support yet).
4037
4038         (MarshalAction): Document the defines as I implement
4039         them for SafeHandle.
4040
4041         (emit_marshal_object): indentation police.
4042
4043         * class-internals.h: Define MonoSafeHandle.
4044         Add safehandle_class to MonoDefaults type.
4045
4046         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
4047         list of classes to check for fields. 
4048
4049         * domain.c (mono_init_internal): Add SafeHandle to the list of
4050         mono_defaults loaded.
4051
4052 2006-12-15  Raja R Harinath  <rharinath@novell.com>
4053
4054         Fix #80253
4055         * reflection.c (mono_reflection_bind_generic_parameters): If the
4056         generic type definition is a type builder, ensure that it is fully
4057         initialized before instantiating it.  Kill some dead code.
4058
4059 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
4060
4061         * object.c: clear the loader_error () before loading
4062         more metadata stuff (bug #80258).
4063
4064 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
4065
4066         * icall.c, icall-defs.h: type modifiers icalls for
4067         parameters and properties.
4068
4069 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
4070
4071         * object.c, icall.c: fixed warnings.
4072
4073 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
4074
4075         * marshal.c: fixed a couple of leaks and coding style in a few places.
4076
4077 2006-12-08  Dick Porter  <dick@ximian.com>
4078
4079         * process.c: Cope with NULL ProcessStartInfo arguments on windows
4080         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
4081         80173.
4082
4083 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4084
4085         * process.c: ProcessStartInfo may have only filename set and
4086         arguments can be NULL.
4087
4088 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4089
4090         * icall.c: fix leak found by Robert Jordan.
4091
4092 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
4093
4094         * marshal.c, marshal.h: generate managed method to access an element
4095         of a multi-dimensional array.
4096
4097 2006-11-30  Paolo Molaro (lupus@ximian.com)
4098
4099         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
4100
4101 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4102
4103         * icall.c: back out GetFields () fix until the serialization code is
4104         fixed to not depend on the incorrect behaviour.
4105
4106 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
4107
4108         * profiler.c: provide defaults if none are set.
4109
4110 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
4111
4112         * Makefile.am, attrdefs.h: new public header file with
4113         constants for attributes for use by embedders.
4114
4115 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
4116
4117         * icall.c: GetFields () fix for bug #80064.
4118
4119 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
4120
4121         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
4122         removed long unused icalls.
4123
4124 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
4125   
4126         * marshal.c: 
4127                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
4128                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
4129                 can be generated without a delegate class.
4130                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
4131         
4132         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
4133
4134 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4135
4136         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
4137         #80069.
4138
4139 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4140
4141         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
4142         icall-def.h: added icalls needed by System.GC.
4143
4144 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
4145
4146         * loader.c: ensure the class in catch clauses is handled
4147         correctly for generics methods (fixes bug#79980).
4148
4149 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
4150
4151         * monitor.h, monitor.c: added mono_locks_dump () function
4152         to help debug deadlocks involving managed locks.
4153
4154 2006-11-13  Dick Porter  <dick@ximian.com>
4155
4156         * file-io.c (get_file_attributes): If the file is a symlink try
4157         and get the stat data for the target, but also add the
4158         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
4159         the specs for the windows symlink support, but will probably have
4160         to be reworked when I have test data from a vista machine.  Fixes
4161         bug 79887.
4162
4163 2006-11-13  Dick Porter  <dick@ximian.com>
4164
4165         * gc.c (mono_domain_finalize): 
4166         * marshal.c (mono_delegate_begin_invoke): 
4167         * threadpool.c (socket_io_init, mono_thread_pool_init)
4168         (mono_thread_pool_finish): 
4169         * monitor.c (mono_monitor_try_enter_internal): 
4170         * threads.c (mono_thread_resume, mono_thread_init)
4171         (mono_thread_suspend_all_other_threads)
4172         (mono_thread_execute_interruption): 
4173         * appdomain.c (mono_domain_unload): Check for NULL error returns
4174         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
4175         75733.
4176
4177 2006-11-11  Miguel de Icaza  <miguel@novell.com>
4178
4179         * process.c
4180         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
4181         Only close the handle if the value of the handle is not
4182         INVALID_HANDLE_VALUE.  This just makes the process a bit more
4183         robust.
4184
4185         Improvement for #75733, so that we do not run into this problem. 
4186
4187         
4188         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
4189         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
4190         internal variables.  Fixes #79462 
4191         
4192
4193 2006-11-09  Dick Porter  <dick@ximian.com>
4194
4195         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
4196         Use poll() not select().  Fixes bug 79397.
4197
4198 2006-11-09  Raja R Harinath  <rharinath@novell.com>
4199
4200         Fix #79872
4201         * assembly.c (mono_assembly_load_from_full): Check that the given
4202         image has an assembly manifest.
4203
4204 2006-11-09  Ankit Jain  <jankit@novell.com>
4205
4206         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
4207         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
4208         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
4209
4210 2006-11-07  Dick Porter  <dick@ximian.com>
4211
4212         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
4213         Put the old resolver behaviour back for pre-2.0 profiles.
4214
4215 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
4216
4217         * threadpool.c: precise GC and locking fixes.
4218
4219 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
4220
4221         * class.c: don't load types that have an explicit unaligned
4222         managed reference. Provide better info in the TypeLoad exception.
4223         Part of the fix for bug #79744.
4224         * object.c: use the correct check for class type load issues.
4225
4226 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
4227
4228         * class.c: enforce alignment of fields with managed references
4229         even when Pack=1 is forced by the user (bug #77788).
4230
4231 2006-11-03  Dick Porter  <dick@ximian.com>
4232
4233         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
4234         If the address reverse lookup fails, return it as the hostname
4235         anyway.  Fixes bug 79721.
4236
4237 2006-11-03  Dick Porter  <dick@ximian.com>
4238
4239         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
4240         Fix build on Windows.
4241
4242 2006-11-02  Dick Porter  <dick@ximian.com>
4243
4244         * icall-def.h: 
4245         * object-internals.h: 
4246         * exception.c (mono_get_exception_thread_interrupted): 
4247         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
4248         Fixes bug 74525.
4249
4250         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
4251         Check for pending Thread.Interrupt.
4252
4253 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
4254         * loader.c: Fixed bug 79684.
4255
4256 2006-10-27  Dick Porter  <dick@ximian.com>
4257
4258         * file-io.c (get_file_attributes): Force symlinks to directories
4259         to be returned as a regular file.  Fixes bug 79733.
4260 2006-10-26  Dick Porter  <dick@ximian.com>
4261
4262         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
4263         CreateFile to open a directory then we need to set the
4264         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
4265
4266 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
4267
4268         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
4269         friends.
4270
4271 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
4272
4273         * sgengc.c: small cleanup of timer code.
4274
4275 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4276
4277         * sgen-gc.c: fix some warnings and start adding support for
4278         complete object removal on domain unload.
4279
4280 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
4281
4282         * assembly.c: build_assembly_name should not consider a version
4283         number without build or revision number invalid. Fixes bug #79715.
4284
4285 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
4286
4287         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
4288         call kernel32 function OutputDebugString directly.
4289         
4290         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
4291         
4292 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
4293
4294         * reflection.c: small cleanup, using a function to insert a MonoString
4295         in the string heap.
4296
4297 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
4298
4299         * reflection.c: moving GC fixes.
4300
4301 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
4302
4303         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
4304         all the objects with finalizers belonging to an unloading appdomain.
4305
4306 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
4307
4308         * sgen-gc.c: added ability to allocate even when the nursery is fully
4309         pinned and fixed a couple of bugs.
4310
4311 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
4312
4313         * threads.h: Revert the last change for now.
4314
4315         * threads.h (mono_thread_get_pending_exception): Rename this to
4316         mono_thread_get_undeniable_exception ().
4317
4318 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
4319
4320         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
4321         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
4322         when fname does not refer to valid assembly. This result in a more
4323         meaningful error message.
4324         * exception.c: added mono_get_exception_bad_image_format2 which 
4325         constructs a BadImageFormatException using the ctor taking a custom
4326         message and the file name. Passing in a NULL msg results in a default
4327         message.
4328         * exception.h: define mono_get_exception_bad_image_format2 function.
4329         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
4330         when file name pointed to an invalid IL image. Use 
4331         mono_get_exception_file_not_found2 to construct FileNotFoundException,
4332         as this results in a more meaningful error message.
4333
4334 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
4335
4336         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
4337         #79465.
4338
4339 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
4340
4341         * metadata.c (mono_type_size): Change the align parameter to guint32 for
4342         consistency with the other _size functions.
4343         (mono_type_stack_size): Ditto.
4344
4345         * class.c object.c icall.c: Fix warnings caused by the above change.
4346
4347         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
4348
4349         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
4350
4351         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
4352
4353 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4354
4355         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
4356         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
4357         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
4358         threadpool.h, threads-types.h: mark more internal functions.
4359
4360 2006-10-11  Dick Porter  <dick@ximian.com>
4361
4362         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
4363         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
4364         reproduce the bug even before applying the fix.)
4365
4366 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
4367
4368         * reflection.c: allow retrieving attributes for arguments in generic
4369         methods (bug #79241).
4370
4371 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
4372
4373         * debug-mono-symfile.c: properly check fopen () result (found by
4374         coverity).
4375
4376 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
4377
4378         * reflection.c: make error message clearer and fixed two
4379         issuelets found by Coverity.
4380
4381 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
4382
4383         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
4384
4385 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4386
4387         * object-internals.h, gc-internal.h, profiler-private.h:
4388         mark internal functions.
4389
4390 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4391
4392         * reflection.c: put data in the text section.
4393         * icall.c: recognize more types in type_from_typename ().
4394         * process.c, marshal.c: added some GC FIXMEs.
4395
4396 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
4397
4398         * loader.c: check for NULL before initializing.
4399
4400 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
4401
4402         * gc.c (finalizer_thread): Use a non-alertable wait here.
4403
4404         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
4405         until the correct solution is found.
4406
4407 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
4408
4409         * reflection.c (mono_module_get_object): Avoid an assert when operating on
4410         modules with no metadata. Fixes #79596.
4411
4412         * image.c (load_metadata_ptrs): Put back the error message when
4413         the #- heap is encountered since the support is not complete yet.
4414
4415 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
4416
4417         * gc.c: do not allow the user to SuppressFinalize () a
4418         delegate because it would leak the trampoline if present.
4419
4420 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
4421
4422         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
4423         PropertyPtr table.
4424
4425 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
4426
4427         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
4428
4429         * metadata.c (mono_metadata_get_param_attrs): Ditto.
4430
4431         * row-indexes.h: Add definitions for *Ptr tables.
4432
4433         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
4434
4435         * metadata.c (mono_metadata_translate_token_index): New helper function to
4436         translate table indexes used in uncompressed metadata.
4437         (mono_metadata_decode_table_row): Ditto.
4438         (mono_metadata_decode_table_row_col): Ditto.
4439
4440         * metadata.c: Add table schema for *Ptr tables.
4441
4442         * class.c loader.c: Use the new helper function to access the affected metadata
4443         tables.
4444         
4445         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
4446         #38532.
4447         
4448 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
4449
4450         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
4451         sequences which can be unbounded in size. Fixes #79583.
4452
4453 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
4454
4455         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
4456         static initialization.
4457
4458         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
4459
4460         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
4461
4462         * domain.c (mono_domain_free): Free up type_init_exception_hash.
4463
4464         * object.c (mono_runtime_class_init): Implement correct semantics when a static
4465         ctor fails, i.e. throw the same exception on subsequent accesses.
4466         
4467 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
4468
4469         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
4470         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
4471         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
4472         Handle marshalling of interfaces and VARIANTs contained in structs.
4473         
4474         Code is contributed under MIT/X11 license.
4475         
4476 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
4477
4478         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
4479         
4480         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
4481         mempool.
4482
4483 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4484
4485         * console-io.c: ignore previous SIGINT handler.
4486
4487 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
4488
4489         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
4490         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
4491         #79460, #79461, #79485.
4492
4493         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
4494
4495         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
4496         #79217.
4497
4498 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
4499
4500         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
4501         could be generated from it.
4502
4503 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
4504
4505         * rand.c: fix read loop to correctly handle EINTR.
4506
4507 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
4508
4509         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
4510         internal calls are defined to keep methods closer to the declaring
4511         type and allow a significant reduction in runtime relocations and
4512         memory usage.
4513
4514 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
4515
4516         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
4517         exception message to have FileNotFoundException use the default
4518         assembly load error message. Fixes bug #79426.
4519         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
4520
4521 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4522
4523         * threadpool.c: (start_thread_or_queue) use the root domain when
4524         creating the thread instead of the async object one.
4525
4526 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
4527
4528         * class.c, object.c, class-internals.h, reflection.c:
4529         for arrays, store element_size inside MonoClass (speedup
4530         for array object creation).
4531
4532 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
4533
4534         * icall.c: fixed CodeBase to use the file name and not the module
4535         name (bug #79365).
4536
4537 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
4538
4539         * mono-debug.c, mono-debug.h: export find_method as
4540         mono_debug_find_method ().
4541
4542 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
4543
4544         * debug-helpers.c, class-internals.h: added a few functions useful
4545         when debugging under gdb.
4546
4547 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4548
4549         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
4550         characters that need special handling.
4551
4552 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
4553
4554         * mono-config.c: make the os/cpu specification more flexible,
4555         allowing lists and negation.
4556
4557 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
4558
4559         * marshal.c: COM Interop fixes. Handle case where method->klass.
4560         is interface. Handle BSTR/MonoString when null. Use CDECL as 
4561         calling convention on non-windows platforms. This is for
4562         compatibility with XPCOM and MainWin COM.
4563         
4564         Code is contributed under MIT/X11 license.
4565         
4566
4567 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
4568
4569         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
4570         correctly. Fixes #79217.
4571
4572         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
4573
4574 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
4575
4576         * mono-config.c: allow both an os and cpu attribute for dllmap
4577         and dllentry elemnets to enable a single config file to be used
4578         for multiple architectures.
4579
4580 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
4581
4582         * loader.c: MonoLoaderError was cleared too soon on load failure.
4583         Fixes bug #79424.
4584
4585 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
4586
4587         * icall.c: use the defining class vtable when accessing a
4588         static field, not a pobblibly derived class.
4589
4590 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
4591
4592         * icall.c string-icalls.c: Remove references to unicode.h.
4593
4594         * unicode.h unicode.c Makefile.am: Remove these unused source files.
4595
4596         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
4597
4598         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
4599         indicating the image where custom marshaller types should be looked up.
4600         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
4601         custom marshallers, instead of corlib. Fixes #79425.
4602
4603 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
4604
4605         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
4606
4607 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
4608
4609         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
4610         Implement Environment.ProcessorCount.
4611         
4612         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
4613         Implement Environment.ProcessorCount.
4614         
4615         * icall.c: 
4616         Add Environment.ProcessorCount icall.
4617         
4618         Patch by Jason McFall.
4619
4620 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4621
4622         * assembly.c: don't append .exe/.dll when the filename already contains
4623         one of those extensions.
4624
4625 2006-09-12  Martin Baulig  <martin@ximian.com>
4626
4627         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
4628         to array interfaces.
4629
4630 2006-09-11  Martin Baulig  <martin@ximian.com>
4631
4632         * reflection.c (mono_image_build_metadata): Create the
4633         MethodImpl's after emitting all types and methods, so we don't
4634         need another fixup pass for them.
4635
4636 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
4637
4638         * class.c (mono_class_from_name_case): Fix regression introduced by the last
4639         change.
4640
4641 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
4642
4643         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
4644         unload.
4645
4646 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
4647
4648         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
4649         args is not set. Fixes #78926.
4650
4651 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
4652
4653         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
4654
4655         * image.c (load_class_names): Move this to class.c, and rename it to 
4656         'mono_image_init_name_cache'.
4657         (load_modules): Fix a warning.
4658
4659         * class.c icall.c image.c: Initialize image->name_cache lazily.
4660
4661         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
4662         on its name using information in the AOT file.
4663
4664         * class.c (mono_class_from_name): Use the new hook function.
4665
4666 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
4667
4668         * reflection.c (mono_param_get_objects): Handle enum default parameter values
4669         correctly.
4670
4671         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
4672         Fixes #79289.
4673         
4674 2006-09-06  Martin Baulig  <martin@ximian.com>
4675
4676         * icall.c (mono_lookup_internal_call): Small fix.
4677
4678 2006-09-05  Raja R Harinath  <rharinath@novell.com>
4679
4680         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
4681         double g_free.
4682
4683 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
4684
4685         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
4686         when --debug is specified.
4687
4688 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
4689
4690         * class.c (setup_generic_array_ifaces): Fix a warning.
4691
4692 2006-09-04  Miguel de Icaza  <miguel@novell.com>
4693
4694         * Temporarily remove the patch to assemly.c that checks the
4695         assembly versions as it breaks our gacutil.
4696
4697 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
4698
4699         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
4700
4701         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
4702         a net 1.0 runtime.
4703
4704         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
4705         created using the default ctor. Fixes #79152.
4706         (mono_string_builder_to_utf16): Ditto.
4707
4708 2006-09-01  Martin Baulig  <martin@ximian.com>
4709
4710         Fix handling of the generic array interfaces.
4711
4712         * class-internals.h
4713         (MonoDefaults): Removed `generic_array_class' and added
4714         `generic_ilist' class.
4715
4716         * class.c
4717         (mono_bounded_array_class_get): Add the new generic array interfaces.
4718         (setup_generic_array_ifaces): New static method; create vtable
4719         entries for each method in the generic array interfaces.
4720
4721         * metadata.c
4722         (select_container): Allow "parent-less" generic methods.
4723
4724         * marshal.c
4725         (mono_marshal_get_generic_array_helper): New public method.
4726
4727         * icall.c
4728         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
4729         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
4730         moved the interncall into System.Array.
4731
4732 2006-09-01  Raja R Harinath  <rharinath@novell.com>
4733
4734         A few more cases of avoiding work on types with ->byref set.
4735         Has the real fix for #79238
4736         * icall.c (is_generic_parameter): New helper.
4737         (ves_icall_Type_GetGenericParameterPosition): Use it.
4738         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
4739         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
4740         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
4741         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
4742         reference types.
4743         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
4744         reference types.
4745         (ves_icall_Type_get_IsGenericInstance): Likewise.
4746         (ves_icall_Type_get_IsGenericType): Likewise.
4747
4748 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
4749
4750         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
4751         class if possible.
4752
4753         * mempool.h (mono_mempool_get_allocated): New helper function.
4754
4755         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
4756         change.
4757
4758         * mempool.c: Fix warnings and the calculation of stats.
4759
4760         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
4761
4762         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
4763
4764         * loader.c (mono_get_method_from_token): Update method_count stat.
4765
4766         * class-internals.h (MonoStats): Add some stats.
4767
4768 2006-08-31 Robert Jordan  <robertj@gmx.net>
4769
4770         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
4771         with managed variants.
4772         All code is contributed under the MIT/X11 license.
4773         
4774 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
4775
4776         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
4777         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
4778
4779         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
4780
4781         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
4782         with cycles in classes.
4783
4784         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
4785
4786         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
4787         missing a [MarshalAs] directive. Fixes #79203.
4788
4789         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
4790         klass->marshal_info. Fixes #79217.
4791
4792 2006-08-30  Martin Baulig  <martin@ximian.com>
4793
4794         Committing a patch from Joachim Ante <joe@otee.dk>:
4795         Add support for binary data symbol stores.
4796
4797         * debug-mono-symfile.c
4798         (mono_debug_open_mono_symbol_file): Renamed into
4799         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
4800         arguments.
4801
4802         * mono-debug.c
4803         (mono_debug_open_image): Added `raw_contents' and `size' args.
4804         (mono_debug_init_2_memory): New public function.
4805
4806 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
4807
4808         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
4809
4810 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4811
4812         * appdomain.c: implement support for ShadowCopyFiles.
4813
4814 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
4815
4816         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
4817         when value is NULL (and should remove CID #51).
4818
4819 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4820
4821         * image.c: moved 2 functions to ../utils.
4822
4823 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
4824
4825         * gc.c: cope with the target object of a GC handle being NULL
4826         (bug #78877).
4827
4828 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
4829
4830         * class.c: recursively check parent's explicit implementations
4831         of interface methods (fixes bug #79125).
4832
4833 2006-08-19  Miguel de Icaza  <miguel@novell.com>
4834
4835         * filewatcher.c: Avoid warnings when building, do not redefine
4836         constants that are defined.
4837
4838         Remove warnings.
4839
4840 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4841
4842         * image.c: don't fail when the link points to an absolute path.
4843
4844 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
4845
4846         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
4847         Fix CID #3.
4848
4849 2006-08-17  Miguel de Icaza  <miguel@novell.com>
4850
4851         * image.c (full_path): A new method used to obtain the actual path
4852         of an assembly even in the presence of symbolic links.  
4853
4854         This is necessary for the case where we are running a binary that
4855         has been GACed, but we are using the "published" path name
4856         ($prefix/mono/1.0/blah.exe) which happens to point to the real
4857         file in the GAC.
4858
4859         This was the source of the failure for the `xsp' command with the
4860         recent AppDomain changes, as far as the runtime was concerned,
4861         there were two different assemblies: $prefix/mono/1.0/blah.exe and
4862         $prefix/mono/gac/blah/version/blah.exe.
4863
4864         (do_mono_image_open): use full path
4865
4866 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4867
4868         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
4869
4870 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
4871
4872         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
4873         domain_id is supplied. Fix CID #241 and corlib's unit tests.
4874
4875 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4876
4877         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
4878         small structures. Fixes #78990.
4879
4880 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4881
4882         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
4883
4884         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
4885
4886 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4887
4888         * appdomain.c:
4889         * marshal.c: don't load all the assemblies from a domain into newly
4890         created ones. The new domains might have different rules and load
4891         assemblies from different locations. Fixes bug #76757.
4892
4893         Patch by Lluis. Conflicts resolved by Brian Crowell.
4894
4895 2006-08-16  Alp Toker  <alp@atoker.com>
4896
4897         * socket-io.c: First half of the fix for #79084.
4898         Set sa_size to the length of the content, not that of the struct.
4899         Don't add NULL suffix to the content, this should be done in
4900         managed code if needed.
4901
4902 2006-08-14  Raja R Harinath  <rharinath@novell.com>
4903
4904         Fix part of #79012
4905         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
4906         mono_metadata_parse_type returns NULL.
4907
4908 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
4909
4910         * normalization-tables.h : new file for string normalization data.
4911         * locales.c, locales.h, icall.c :
4912           added load_normalization_resource() for string normalization,
4913           and icall as well.
4914         * Makefile.am : added normalization-tables.h to the sources.
4915
4916 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
4917
4918         * marshal.c: Add more helper functions to reduce code duplication and use them
4919         everywhere.
4920
4921 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
4922
4923         * marshal.c: Fix non-x86 stdcall warnings.
4924         
4925         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
4926         them everywhere.
4927
4928 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
4929
4930         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
4931         type check on multi-dimensional arrays. Fixes #79000.
4932
4933 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
4934
4935         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
4936         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
4937         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
4938         * class-internals.h: add is_com_object to class structure.
4939         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
4940         null checks to COM object marshalling. Fix .ctor call on RCW.
4941         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
4942         
4943         All code is contributed under the MIT/X11 license.
4944
4945 2006-08-09  Dick Porter  <dick@ximian.com>
4946
4947         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
4948         racing mono_monitor_allocator_lock() somewhere, so don't delete
4949         the critical section for now.  Found by running and exiting
4950         monodevelop.
4951
4952 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
4953
4954         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
4955         (ves_icall_System_ComObject_FindInterface): Ditto.
4956         (ves_icall_System_ComObject_CacheInterface): Ditto.
4957
4958         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
4959         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
4960
4961 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4962
4963         * threadpool.c: treat pipes from process asynchronous reads as sockets
4964         when reading from them, so we get select/poll or epoll to wait for
4965         data.
4966
4967 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
4968
4969         * loader.c: Fix a typo (CID #233) in the null check.
4970
4971 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
4972
4973         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
4974         Hopefully fixes #78949.
4975         
4976         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
4977         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
4978         bytes. Fixes #78972.
4979
4980 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4981
4982         * filewatcher.c: we need to set errno here.
4983
4984 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4985
4986         * filewatcher.c: let Win32Exception get the error value.
4987
4988 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4989
4990         * filewatcher.c: translate errno into win32 errors for Win32Exception
4991         to know what happened.
4992
4993 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
4994
4995         * threadpool.c: Fix more warnings.
4996
4997         * assembly.c (search_loaded): Fix warnings.
4998
4999         * threadpool.c (mono_thread_pool_finish): Fix warnings.
5000         (mono_async_invoke): Ditto.
5001
5002 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
5003
5004         * object.c (mono_remote_class_vtable): Need to create proxy vtable
5005         entries for __ComObject type in addition to ComImport types.
5006         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
5007         about hash table.
5008         
5009         All code is contributed under the MIT/X11 license.
5010
5011 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
5012
5013         * image.c: avoid tentative loading of modulerefs that contain
5014         no metadata (P/Invoke library names).
5015
5016 2006-07-28  Dick Porter  <dick@ximian.com>
5017
5018         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
5019         mono_loader_lock() somewhere, so don't delete the critical section
5020         for now.  Found by running and exiting monodevelop.
5021
5022 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5023
5024         * filewatcher.c: define the inotify syscalls when we're building on
5025         linux and have sys/syscall.h. The build system might not have support
5026         for inotify but the target system might have it.
5027
5028 2006-07-26  Miguel de Icaza  <miguel@novell.com>
5029
5030         * domain.c: Documentation updates.
5031
5032         * loader.c (mono_free_method): Do not release the method
5033         information if we are being profiled, as profilers will use this
5034         information at shut down to present some data to the user.
5035
5036         This is needed so that the profiler does not crash, as the
5037         profiler tends to keep MonoMethods around, and they might become
5038         invalid if we free these.
5039
5040         (mono_get_method_constrained): Return the original CIL stream
5041         method as well, so verification can be performed against it.
5042
5043 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5044
5045         * filewatcher.[ch]: support for inotify file system watcher.
5046         * icall.c: add new internal calls for the inotify file system watcher.
5047
5048 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5049
5050         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
5051         #78888.
5052
5053 2006-07-20  Dick Porter  <dick@ximian.com>
5054
5055         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
5056         warning.
5057
5058 2006-07-20  Dick Porter  <dick@ximian.com>
5059
5060         * threads.c (start_wrapper): Do the thread cleanup while we still
5061         hold a reference to its object.  Fixes bug 78123.
5062
5063 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
5064
5065         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
5066         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
5067           "managed-to-managed".
5068         * icall.c: Redirect string constructors that take sbyte* to
5069           ves_icall_System_String_ctor_RedirectToCreateString.
5070         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
5071           to CreateString () methods with matching signature.
5072         * reflection.c: Use original security informations for
5073           MONO_WRAPPER_MANAGED_TO_MANAGED.
5074         * security-manager.c: Use original security informations for
5075           MONO_WRAPPER_MANAGED_TO_MANAGED.
5076         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
5077           that is a placeholder and only its address should be used.
5078         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
5079           that is a placeholder and only its address should be used.
5080
5081 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
5082
5083         Begin implementing COM Interop.
5084         * appdomain.c: Increment corlib version.
5085         * class.c: Set ComImport classes' parent to __ComObject.
5086         * loader.c: Mark cominterop methods as such.
5087         * domain.c: Add __ComObject class to MonoDefaults structure.
5088         * image.c: Add 2 hashtables to the image for COM Interop related methods
5089         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
5090         using the mempool allocator
5091         
5092         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
5093         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
5094         declaration for mono_metadata_type_dup_mp.
5095         
5096         * debug-helpers.c: Added strings for two additional wrapper types
5097         * object.c: Create proxy objects for ComImport classes
5098         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
5099         and added __ComObject class to MonoDefaults structure.
5100         
5101         * object-internals.h: Finish MonoRealProxy definition, and add definition of
5102         MonoComInteropProxy and MonoComObject.
5103         
5104         * marshal.c: Added support for COM Interop
5105         (signature_cominterop): Converts managed signature to corresponding
5106         unmanaged COM signature.
5107         (cominterop_get_function_pointer): gets unmanaged function pointer via
5108         COM object vtable
5109         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
5110         (cominterop_get_method_interface): returns interface type that method is defined on
5111         (mono_mb_emit_cominterop_call): emits native call to function pointer
5112         gotten from vtable
5113         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
5114         that matches signature of unmanaged function.
5115         (cominterop_get_native_wrapper): wrapper around adjusted method call.
5116         (cominterop_get_invoke): forwards call from proxy to __ComObject
5117         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
5118         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
5119         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
5120         
5121         * marshal.h: Added Marshal icall declarations.
5122         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
5123         so we can access them in finalizer
5124         
5125 2006-07-14  Dick Porter  <dick@ximian.com>
5126
5127         * object.c (mono_type_initialization_cleanup): Fix a race
5128         condition by temporarily commenting out the critical section
5129         deletion.
5130
5131 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
5132
5133         * reflection.c (create_custom_attr): Fix some warnings.
5134         (create_custom_attr_data): Ditto.
5135         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
5136         types. Fixes #78855.
5137
5138 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
5139
5140         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
5141
5142         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
5143
5144 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
5145
5146         * reflection.c (resolve_object): Add support for DynamicMethod.
5147
5148         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
5149         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
5150
5151 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
5152
5153         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
5154         don't leak GPtrArray's pdata has we have no use (nor free) for it.
5155
5156 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
5157
5158         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
5159         Fixes #77888.
5160
5161 2006-06-30  Raja R Harinath  <rharinath@novell.com>
5162
5163         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
5164         slightly: remove a shadow local variable.
5165
5166 2006-06-29  Raja R Harinath  <rharinath@novell.com>
5167
5168         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
5169         definition that introduces the virtual function slot.
5170         Also fix Coverity #105.
5171
5172 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
5173
5174         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
5175         for dynamic assemblies. Fixes #78724.
5176
5177 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
5178
5179         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
5180         Fixes #78722.
5181
5182 2006-06-21  Martin Baulig  <martin@ximian.com>
5183
5184         * reflection.c
5185         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
5186         fixes #76484.
5187
5188 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
5189
5190         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
5191
5192 2006-06-20  Raja R Harinath  <rharinath@novell.com>
5193
5194         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
5195         nor TYPEREFs.
5196         * class.c (mono_class_create_from_typespec): Add 'context' argument.
5197         Inflate result if necessary.
5198         (mono_class_get_full): Remove old version.  Rename from
5199         'mono_class_get' and add 'context' argument.  Pass it to
5200         ..._create_from_typespec.
5201         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
5202         (mono_ldtoken): Revert change below.
5203
5204 2006-06-20  Martin Baulig  <martin@ximian.com>
5205
5206         * class.c (mono_ldtoken): Don't pass the generic context to
5207         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
5208
5209 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
5210
5211         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
5212         and later freeing it. Fixes #78638.
5213
5214 2006-06-15  Miguel de Icaza  <miguel@novell.com>
5215
5216         * icall.c (mono_class_get_throw): Revert over-zealous error
5217         throwing, the caller for mono_class_get_throw will cope with
5218         errors when classes are not properly initialized already.
5219
5220         The code still copes with loader exceptions though.
5221
5222         Fixes the regression in reftype1 and reftype3 from the CAS tests.
5223         
5224 2006-06-14  Miguel de Icaza  <miguel@novell.com>
5225
5226         Fixes the `make run1' version of RuntimeAbort (to be commited,
5227         source is in Bugzilla).
5228         
5229         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
5230         FALSE on class loading failure instead of returning true.
5231
5232         * class.c (mono_class_create_from_typedef): It is possible for
5233         mono_metadata_interfaces_from_typedef_full to fail if a class is
5234         not found, cope with this.
5235         
5236
5237 2006-06-14  Dick Porter  <dick@ximian.com>
5238
5239         * socket-io.c: 
5240         * process.c: Fix a bunch of signed/unsigned warnings from gcc
5241         4.1.1
5242
5243 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
5244
5245         * culture-info-table.h : oops, forgot to make it nsync with r61548.
5246
5247 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
5248
5249         * icall.c: Another fix for building mono in Visual Studio.
5250
5251 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
5252
5253         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
5254         
5255 2006-06-09  Martin Baulig  <martin@ximian.com>
5256
5257         * debug-mono-symfile.c: Put this back and really fix it this
5258         time. Sorry for all the trouble.
5259
5260 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
5261
5262         * icall.c (mono_class_get_throw): Fix a warning.
5263         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
5264         ReflectionTypeLoadException if needed. Fixes #78606.
5265
5266         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
5267         (mono_class_init): Ditto.
5268
5269         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
5270         ref_only exceptions.
5271         (mono_loader_clear_error): Make this work even if there is no error.
5272
5273 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
5274
5275         * object-internals.h marshal.c marshal.h icall.c: Implement method 
5276         Marshal.GetComSlotForMethodInfo using internal call.
5277
5278 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
5279
5280         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
5281         a function for signalling it.
5282
5283         * class.c (mono_class_from_typeref): Use the new kind of loader error when
5284         a referenced assembly is not found.
5285
5286         * loader.c (mono_loader_error_prepare_exception): Add support for 
5287         LOADER_ERROR_ASSEMBLY. Fix formatting.
5288
5289 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
5290
5291         * domain.c appdomain.c class-internals.h marshal.c: Add support 
5292         for VARIANT marshalling on windows and increment corlib version
5293         since Variant struct was added.
5294
5295 2006-06-03  Miguel de Icaza  <miguel@novell.com>
5296
5297         * debug-mono-symfile.c: Revert Martin's previous patch which broke
5298         stack trace line information:
5299
5300         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
5301         (Martin) when looking up B which is between A and C, return A not C.
5302
5303         Bug is #78573.
5304
5305         Thanks to Alexander Olk for tracking this down.
5306
5307 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
5308
5309         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
5310         
5311         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
5312         avoid clobbering its value.
5313         (mono_string_to_lpstr): Fix a warning on windows.
5314
5315 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
5316
5317         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
5318
5319         * reflection.c loader.c: Removed references to 'dummy' flag.
5320
5321         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
5322
5323         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
5324         it gets GC tracking.
5325
5326         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
5327         GC tracking.
5328         
5329         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
5330
5331         * marshal.c threadpool.c: Update callers of mono_async_result_new.
5332
5333         * appdomain.c: Bump corlib version.
5334
5335 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
5336
5337         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
5338         CEE_STIND_REF when working with object references.
5339
5340 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
5341
5342         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
5343         Fixes #78539.
5344
5345 2006-05-30  Miguel de Icaza  <miguel@novell.com>
5346
5347         * loader.c (method_from_memberref): Fix argument value for
5348         mono_loader_set_error_method_load (I was passing the MonoClass
5349         instead of the class name char *).
5350
5351 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
5352
5353         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
5354         CEE_STIND_REF when working with object references.
5355
5356 2006-05-30  Martin Baulig  <martin@ximian.com>
5357
5358         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
5359         mono_method_full_name() change and replace the ':' with a '.'
5360         here.
5361
5362 2006-05-30  Martin Baulig  <martin@ximian.com>
5363
5364         * debug-mono-symfile.c
5365         (mono_debug_symfile_lookup_location): Fix the algorithm:
5366         when looking up B which is between A and C, return A not C.
5367
5368 2006-05-29  Martin Baulig  <martin@ximian.com>
5369
5370         * mono-debug.h
5371         (MonoDebugMethodInfo): Make the typedef public.
5372         (MonoDebugSourceLocation): New public struct.
5373
5374         * mono-debug.c
5375         (mono_debug_source_location_from_address): Removed.
5376         (mono_debug_source_location_from_il_offset): Removed.
5377         (mono_debug_il_offset_from_address): Removed.
5378         (mono_debug_address_from_il_offset): Removed.
5379         (mono_debug_lookup_method): New public function.
5380         (mono_debug_lookup_source_location): New public function; replaces
5381         the old mono_debug_source_location_from_*() functions; see the
5382         inline documentation.
5383         (mono_debug_free_source_location): New public function.
5384         (mono_debug_print_stack_frame): New public function; see the
5385         inline documentation.
5386
5387         * debug-mono-symfile.c
5388         (mono_debug_find_source_location): Renamed into
5389         mono_debug_symfile_lookup_location(); only take a
5390         `MonoDebugMethodInfo *' and an `offset' argument; added inline
5391         documentation.
5392         (mono_debug_find_method): Renamed into
5393         mono_debug_symfile_lookup_method().
5394
5395 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
5396
5397         * assembly.c (mono_assembly_open_full): Dont overwrite the status
5398         returned by mono_image_open_full ().
5399
5400         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
5401         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
5402         #78517.
5403
5404         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
5405         #78518.
5406
5407 2006-05-27  Miguel de Icaza  <miguel@novell.com>
5408
5409         * class.c (mono_class_from_typeref): handle missing images
5410         earlier, deals with bug #78418.   Refactor code; 
5411
5412         Fix a warning introduced in my previous commit (some stale code
5413         from before I revisited my patch).
5414
5415         * class.c (mono_class_create_from_typedef): On failure, remove the
5416         class from the MonoImage->class_cache as the class is not
5417         initialized;   Fixes the leak pointed out by Paolo.
5418
5419 2006-05-25  Dick Porter  <dick@ximian.com>
5420
5421         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
5422         DeleteCriticalSections until I figure out which one may still be
5423         sometimes locked when mono_thread_cleanup is called.
5424
5425 2006-05-24  Dick Porter  <dick@ximian.com>
5426
5427         * threads.c (mono_thread_cleanup): Move the threading cleanup out
5428         of mono_thread_manage and back into its own function, so it can be
5429         called after the finalizer thread has finished.
5430
5431         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
5432
5433 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
5434
5435         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
5436         Fixes #78495.
5437
5438         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
5439         with non-blittable elements.
5440         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
5441
5442 2006-05-24  Martin Baulig  <martin@ximian.com>
5443
5444         * mono-debug-debugger.h (MonoDebuggerEvent): Added
5445         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
5446
5447         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
5448         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
5449         `mono_debugger_event_handler' to NULL.
5450
5451 2006-05-24  Martin Baulig  <martin@ximian.com>
5452
5453         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
5454
5455 2006-05-24  Martin Baulig  <martin@ximian.com>
5456
5457         * mono-debug-debugger.h
5458         (mono_debugger_create_notification_function): Added
5459         `MonoCodeManager *' argument.
5460
5461 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
5462
5463         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
5464
5465 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
5466
5467         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
5468         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
5469         implementation.
5470
5471 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
5472
5473         * icall.c: precise GC support: objects can't be stored in unmanaged
5474         memory anymore, even if they are kept alive by other references: since
5475         they can move the GC needs to be able to always find them.
5476
5477 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
5478
5479         * object.c: precise GC support for static fields. Support
5480         for moving GCs: write barriers and pinned allocation for interned
5481         strings.
5482
5483 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
5484
5485         * domain.c, domain-internals.h: precise GC support for the MonoDomain
5486         structure.
5487
5488 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
5489
5490         * class.c, gc.c: sgen and precise GC updates.
5491
5492 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
5493
5494         * marshal.h, marshal.c: added write barrier wrapper and precise type
5495         fixes.
5496
5497 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
5498
5499         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
5500         support.
5501
5502 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
5503
5504         * reflection.c: precise and sgen GC updates.
5505
5506 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
5507
5508         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
5509
5510 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
5511
5512         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
5513
5514 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
5515
5516         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
5517         MONO_TYPE_OBJECT. Fixes #78462.
5518
5519 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
5520
5521         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
5522         and blittable types.
5523
5524 2006-05-17  Miguel de Icaza  <miguel@novell.com>
5525
5526         * class.c (mono_class_get_exception_for_failure): Implement parts
5527         of a TODO: if the loader error is set (instead of the class
5528         error), we return a Loader exception that can be properly thrown
5529         elsewhere.
5530
5531         This was exposed by some Winforms 2.0 code that I tried to run
5532         (Atsushi pointed me to it).
5533
5534 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
5535
5536         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
5537         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
5538         
5539         * marshal.c (emit_marshal_vtype): Add limited support for 
5540         UnmanagedType.LPStruct. Fixes #78427.
5541
5542         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
5543         Applied a patch from kangaroo to fix #77523.
5544
5545 2006-05-17  Martin Baulig  <martin@ximian.com>
5546
5547         * threads.c
5548         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
5549         (debugger_thread_created): Removed.
5550         (debugger_thread_exited): Removed.
5551
5552 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
5553
5554         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5555
5556         * object-internals.h (MonoReflectionResource): Sync with managed version.
5557
5558 2006-05-12  Wade Berrier <wberrier@novell.com>
5559
5560         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
5561
5562 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
5563
5564         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
5565         functions try to allocate from the image mempool.
5566
5567 2006-05-12  Dick Porter  <dick@ximian.com>
5568
5569         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
5570
5571 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
5572
5573         * object.c: The FieldGetter and FieldSetter methods require the full
5574         name of the class, not only the name. Fixes bug #78277.
5575
5576 2006-05-11  Miguel de Icaza  <miguel@novell.com>
5577
5578         * loader.c (method_from_memberref): Do not pass the NULL klass to
5579         mono_loader_set_error_() methods.  Pass the non-NULL value
5580         (class). 
5581
5582 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
5583
5584         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
5585         (mono_assembly_close): Null out assembly->image->references after freeing it.
5586
5587         * image.c (mono_image_close): Free image->references.
5588         
5589         * reflection.c (mono_image_basic_init): Fix a small memory leak.
5590
5591 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
5592
5593         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
5594         before checking if it's NULL (g_assert).
5595
5596 2006-05-10  Martin Baulig  <martin@ximian.com>
5597
5598         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
5599         I thought I already killed that two months ago, but now it somehow reappeared.
5600
5601 2006-05-10  Martin Baulig  <martin@ximian.com>
5602
5603         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
5604
5605 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
5606
5607         * reflection.c: Allocate memory for dynamically created methods in the image
5608         mempools.
5609
5610 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
5611
5612         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
5613         don't use the ad pointer before checking if it's NULL (g_assert).
5614
5615 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
5616
5617         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
5618         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
5619
5620         * marshal.c: Allocate all signatures from mempools.
5621
5622         * marshal.c: Allocate some more signatures from mempools.
5623
5624 2006-05-09  Miguel de Icaza  <miguel@novell.com>
5625
5626         * object.c (mono_load_remote_field): The code used to provide a
5627         temporary variable for returning results if the user did not
5628         provide a result pointer.  But our temporary variable was allocted
5629         on the satck.
5630
5631         Fix calling code to always pass a result area.   Coverity ID 103.
5632
5633 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
5634
5635         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
5636         value, not the old. Fixes #78312.
5637         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
5638
5639         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
5640         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
5641         per-image cache.
5642
5643         * assembly.c (mono_assembly_close): Free image->references.
5644
5645         * assembly.c (mono_assembly_names_equal): Fix a warning.
5646         (mono_assemblies_cleanup): Cleanup more global data.
5647
5648         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
5649
5650         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
5651         ptr_cache and image->modules.
5652
5653         * image.c (mono_image_init): Allocate array_cache lazily.
5654         
5655 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5656
5657         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
5658         behavior was changed recently and has bad side effects.
5659
5660 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
5661
5662         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
5663         
5664         * assembly.c (mono_assembly_close): Remove a debug printf.
5665
5666         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
5667
5668         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
5669         to also allow for temporary references between mono_image_open ()/close ().
5670
5671         * domain.c (get_runtimes_from_exe): Add a FIXME.        
5672
5673 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
5674
5675         * marshal.c: Fix support for dynamic methods.
5676
5677         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
5678
5679         * marshal.c (mono_marshal_cleanup): New cleanup function.
5680
5681         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
5682         image mempools.
5683
5684         * class.c (mono_class_init): Fix leaking class->nested_classes.
5685
5686         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
5687
5688         * image.c (mono_image_init): Initialize the new cashes.
5689
5690         * image.c (mono_image_close): Destroy the new cashes.
5691
5692         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
5693
5694         * mempool.c (mono_mempool_strdup): New helper function.
5695
5696         * class-internals.h: Add prototype for mono_loader_unlock ().
5697
5698         * domain.c (mono_jit_info_table_find): Fix a warning.
5699         (mono_debugger_check_runtime_version): Ditto.
5700
5701         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
5702         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
5703         functions to these modules.
5704
5705         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
5706         metadata modules.
5707         
5708         * marshal.c (mono_free_bstr): Fix a warning.
5709
5710         * assembly.c (mono_assembly_open_full): Fix another small leak.
5711
5712         * object.c: Fix some unload leaks in the remoting code.
5713
5714         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
5715         function.
5716
5717         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
5718
5719         * reflection.c: Fix some unload leaks in dynamic assemblies.
5720
5721 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
5722
5723         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
5724         * marshal.h: Add BSTR support on Win32
5725         * icall.c: Add BSTR icalls
5726         * metadata.h: Add BSTR enums
5727
5728 2006-04-28  Miguel de Icaza  <miguel@novell.com>
5729
5730         Work to catch the crash from #76795 and turn it into an
5731         exception.   As I stubbed out pieces of the VisualBasic support,
5732         I found a number of places where the code was failing and I added
5733         checks to those places. 
5734         
5735         * metadata.c (do_mono_metadata_parse_generic_class): Make this
5736         function return a status code.  If we fail to parse the signature
5737         from mono_metadata_parse_generic_inst, return FALSE.
5738
5739         * loader.c (mono_get_method_from_token): If we fail to load the
5740         method (mono_class_get) return NULL.   
5741
5742         * (method_from_memberref): Return NULL if we are unable to parse
5743         the method signature
5744
5745         (mono_loader_error_prepare_exception): Since we now use the
5746         loader_error flag internally to stop processing, and obtaining
5747         exceptions that might be thrown will walk this code path the
5748         proper way of going from a MonoLoaderError into a
5749         MonoException was convoluted.   This new routine encapsulates the
5750         process of turning the error into an exception and *clearing* the
5751         error afterwards.
5752         
5753 2006-04-27  Miguel de Icaza  <miguel@novell.com>
5754
5755         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
5756         with missing assemblies), and to cope with:
5757
5758                 * Missing fieldref from a non-existing assembly.
5759                 * Missing methodref from a non-existing assembly.
5760
5761         The first batch of work to address *some* of the issues from 76661.
5762         
5763         * object.c (mono_class_create_runtime_vtable): If we fail to
5764         initialize the class raise the exception here. 
5765
5766         * metadata.c (mono_class_get_overrides_full): If any methods fail
5767         to load return the failure to the caller.
5768
5769         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
5770         flagging assemblies that failed to load.   
5771
5772         Do not crash if we are unable to load the assembly.
5773
5774         (mono_assembly_close): Do nothing with REFERENCE_MISSING
5775         assemblies. 
5776
5777         * loader.c (mono_loader_set_error_type_load): Change the
5778         convention to always pass unallocated strings, so we make our own
5779         copies (I know our own code had duplicated strings before, but
5780         this keeps the normal conventions).
5781         (method_from_memberref): Call mono_loader_set_error_method_load
5782         for all possible failures of loading the class. 
5783         Remove assert, turn into a loader error.
5784
5785         (mono_loader_error_to_exception): Move this routine from mini
5786         (mini_loader_error_to_exception) there was no need to have that in
5787         mini. 
5788
5789         * class.c (mono_class_from_typeref): If we were not able to load
5790         the assembly with mono_assembly_load_reference, call the
5791         mono_loader_set_error_type_load to register the problem.
5792
5793         (mono_class_setup_fields): If we fail to load the type from
5794         mono_metadata_parse_type_full, call mono_class_set_failure and
5795         break from the loop.
5796
5797         If class->exception_type is set, we do not layout the fields as
5798         that might crash the runtime, and instead return (from breaking
5799         from the previous loop).
5800
5801         (mono_class_setup_vtable): This now returns a boolean indicating
5802         whether the table was properly setup.   The decision is driven by
5803         mono_class_get_overrides_full which might run into non-existing
5804         methods. 
5805         
5806         (mono_class_init): Returns TRUE on success or FALSE if there was a
5807         problem in loading the type (incorrect assemblies, missing
5808         assemblies, methods, etc).
5809
5810         When we call mono_class_setup_fields we also check for a potential
5811         error inside this call (either a class exception or a general
5812         loader exception).
5813
5814         (mono_class_create_from_typedef): If the parent fails to load
5815         (calling mono_class_get_full) return NULL.
5816         
5817         ** Important **
5818
5819         calls to mono_metadata_parse_type_full should be checked
5820         everywhere and set the mono_class_set_failure
5821         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
5822
5823         The current patch checks the places where my manually constructed
5824         tests show the errors are showing up, but we should do it
5825         everywhere. 
5826
5827         ** Important2 **
5828
5829         mono_class_init return values should be tested everywhere, like
5830         the previous case this is something that we should audit
5831         everywhere and not only on the cases exposed by the tests I
5832         created. 
5833
5834 2006-04-26  Miguel de Icaza  <miguel@novell.com>
5835
5836         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
5837         boolean parameter and instead pass the information on `options'
5838         parameter (FileOptions).
5839
5840         * icall.c: Register the new signature for MonoIO.Open.
5841
5842         * debug-helpers.c (dis_one): Trying to understand how coverity
5843         works.  Fix Run 5, item 78.
5844
5845 2006-04-26  Dick Porter  <dick@ximian.com>
5846
5847         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
5848         dereference.
5849
5850 2006-04-25  Martin Baulig  <martin@ximian.com>
5851
5852         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
5853
5854         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
5855         debugger_thread_created().
5856         (debugger_gc_push_all_stacks): Don't handle the main thread in any
5857         special way.
5858         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
5859         (mono_debugger_finalize_threads): New function; undo the effects
5860         of mono_debugger_init_threads().
5861         (mono_debugger_create_all_threads): Removed.
5862
5863 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
5864
5865         * image.c (mono_image_close): Tidy up trace messages.
5866
5867         * assembly.c (mono_assembly_close): Ditto.
5868
5869         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
5870         no longer references an already freed assembly. Fixes #78168.
5871
5872 2006-04-21  Dick Porter  <dick@ximian.com>
5873
5874         * threads.c (mono_thread_detach): Fix reference counting when
5875         detaching threads.
5876
5877 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
5878
5879         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
5880         #78155.
5881
5882 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
5883
5884         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
5885         (mono_type_to_stind): Ditto.
5886
5887         * marshal.c: Use the new helper functions to simplify code.
5888
5889         * image.c (mono_image_close): Add some code for help debug assembly unloading
5890         problems.
5891
5892         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
5893         image mempool.
5894
5895         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
5896         assembly was already loaded in another appdomain. Fixes #78083.
5897
5898 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
5899
5900         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
5901         referenced assemblies.
5902         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
5903
5904         * domain.c (mono_domain_free): Add a trace message.
5905
5906         * appdomain.c (add_assemblies_to_domain): Ditto.        
5907
5908         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
5909         field.  
5910
5911 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
5912
5913         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
5914
5915 2006-04-12  Martin Baulig  <martin@ximian.com>
5916
5917         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
5918         `USE_INCLUDED_LIBGC'.   
5919
5920 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
5921
5922         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
5923         the patch contains ../ and a small directory name later. Hopefully fixes
5924         #78035.
5925
5926 2006-04-10  Martin Baulig  <martin@ximian.com>
5927
5928         Clean up the debugger's thread-handling code.
5929
5930         The debugger's thread-handling code has been moved from
5931         ../mini/debug-debugger.c to threads.c.  We now iterate directly
5932         over the `threads' hash, keep track of exiting threads and also
5933         use proper locking.
5934
5935         We can now debug XSP and XSP based applications with the debugger.
5936
5937         * object-internals.h (MonoThread): Added `gpointer end_stack'.
5938
5939         * threads.h
5940         (MonoThreadCallbacks): Removed; this was only used by the debugger.
5941         (mono_install_thread_callbacks): Likewise.      
5942
5943         * threads.c (mono_thread_callbacks): Removed.
5944         (debugger_thread_created, debugger_thread_exited): New static functions.
5945         (start_wrapper): Call debugger_thread_created().
5946         (thread_cleanup): Call debugger_thread_exited().
5947         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
5948         (mono_debugger_init_threads): New public function.
5949         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
5950         iterate directly over the `threads' hash and also use proper locking.
5951
5952         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
5953
5954         * mono-debug-debugger.h
5955         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
5956
5957 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
5958
5959         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
5960         argument type=array. Fixes #78057.
5961
5962 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
5963
5964         * culture-info-table.h : regenerated. Fixed bug #69652.
5965
5966 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
5967
5968         * loader.c metadata.c: Reapply a variant r59116.
5969         
5970         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
5971
5972         * class.c (mono_class_setup_interface_offsets): New internal function.
5973
5974         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
5975         interfaces too. Fixes #77398.
5976
5977         * reflection.c (encode_cattr_value): Add support for 
5978         parameter type=object, argument type=array.
5979         (load_cattr_value): Ditto. Fixes #77916.
5980
5981         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
5982         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
5983
5984         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
5985         a byval char array and CharSet is Ansi.
5986
5987         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
5988
5989 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
5990
5991         * metadata.c: Add some locking comments.
5992         
5993         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
5994         mempool.
5995         (mono_metadata_free_method_signature): Don't free the signature itself.
5996
5997         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
5998
5999         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
6000         reference the same MonoImage.
6001         (mono_assembly_load_from_full): Add an assert.
6002
6003 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
6004
6005         * image.c (mono_image_close): Don't put the image we are about to free into the
6006         loaded_images_guid_hash.
6007
6008         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
6009         to reduce code duplication.
6010
6011         * marshal.c: Register the native functions called by this module as icalls, to
6012         somewhat centralize the creation of MonoMethodSignature's.
6013
6014         * loader.c (mono_method_signature): Add a cache for method signatures.
6015
6016         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
6017         the parameter attributes of a method.
6018         (mono_metadata_parse_method_signature_full): Refactored the computation of
6019         parameter attributes into a separate function. Also avoid one allocation in
6020         most cases.
6021
6022         * assembly.c (mono_assembly_close): Ditto.
6023
6024         * image.c (mono_image_close): Log trace messages with INFO level.
6025
6026         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
6027
6028         * image.c reflection.c: Correct reference counting of image modules.
6029         
6030         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
6031         of this function from the image mempool.
6032         
6033         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
6034         to allow more cached types to be used.
6035
6036         * mono-debug.c (mono_debug_add_method): Appled patch from
6037         David S. Miller  <davem@sunset.davemloft.net>: Access 
6038         minfo->lexical_blocks[] entry elements using read32().
6039
6040 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
6041
6042         * loader.c (mono_free_method): No longer free the method header for non-dynamic
6043         methods as it is allocated from the mempool.
6044
6045         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
6046         image mempool.
6047
6048         * metadata-internals.h: Add comments describing the reference counting scheme
6049         used for MonoImage and MonoAssembly.
6050
6051         * image.c assembly.c reflection.c: Rework reference counting of images and 
6052         assemblies so they are freed when the runtime is shut down. Free some 
6053         additional memory structures when an image is unloaded.
6054         
6055 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
6056
6057         * class.c loader.c reflection.c: Allocate more data structures in
6058         the image mempool.
6059
6060 2006-03-31  Miguel de Icaza  <miguel@novell.com>
6061
6062         * icall.c
6063         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
6064         build on pre glib 2.4 systems.
6065
6066 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
6067
6068         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
6069
6070         * icall.c: Fix some warnings.
6071
6072 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
6073
6074         * culture-info-table.h : regenerated.
6075
6076 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
6077
6078         * threads.c, object-internals.h, verify.c: changed the culture caching
6079         code to use a normal MonoArray for storage so the GC can keep track of
6080         them easily. Fixed bits of the cache logic, too and simplified the
6081         code.
6082
6083 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
6084
6085         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
6086         thread for non-Boehm GCs.
6087
6088 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
6089
6090         * domain.c, object.c, domain-internals.h: reduce the amount of memory
6091         needed to keep track of the data for static fields.
6092
6093 2006-03-29  Raja R Harinath  <rharinath@novell.com>
6094
6095         Fix #75172
6096         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
6097         for interface classes.  Use 'num_methods' instead.
6098         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
6099         before using '->vtable_size' field.
6100
6101 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
6102
6103         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
6104         doesn't contain managed pointers, so use a normal hashtable.
6105
6106 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
6107
6108         * reflection.c, class-internals.h, domain.c: fixed handling of types
6109         used as values for objects in custom attributes (bug #77915):
6110
6111 2006-03-24  Martin Baulig  <martin@ximian.com>
6112
6113         * class.c (mono_class_setup_fields): Added support for generic
6114         instances; fixes #77580.
6115
6116 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6117
6118         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
6119
6120 2006-03-24  Dick Porter  <dick@ximian.com>
6121
6122         * file-io.c (get_file_attributes): More stat macro breakage.
6123         Fixes bug 77759.
6124
6125 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
6126
6127         * profiler.c: added the file=filename option in the default profiler
6128         to output the profile data to filename.
6129
6130 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6131
6132         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
6133         bug #77877.
6134
6135 2006-03-22  Martin Baulig  <martin@ximian.com>
6136
6137         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
6138         allocated `MonoClassField *' in `fb->handle'.
6139
6140 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6141
6142         * class.c, image.c, metadata-internals.h: implemented new mechanism to
6143         allocate interface ID to save memory and allow better ID reuse on
6144         appdomain unload. setup_generic_vtable () removal from Martin.
6145
6146 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
6147
6148         * object.h, appdomain.c, domain.c, exception.c, icall.c,
6149         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
6150         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
6151         write barriers for reference stores with managed objects accessed with
6152         C structures in the runtime and in embedding programs.
6153
6154 2006-03-20  Raja R Harinath  <rharinath@novell.com>
6155
6156         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
6157         'interface_id' and 'max_interface_id' fields of MonoClasses
6158         representing open generic types.
6159
6160 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
6161
6162         * object.h, object.c, icall.c: added functions to deal with
6163         storing valuetypes that contain references in managed objects.
6164         * reflection.c, string-icalls.c, threads.c, marshal.c: small
6165         fixes and comments around uses of mono_array_addr ().
6166
6167 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
6168
6169         * object.h, icall.c, monitor.c: object.GetHashCode ()
6170         implementation that supports the moving garbage collector.
6171
6172 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
6173
6174         * icall.c, threads-types.h, threads.c: implemented finalizer for
6175         LocalDataStoreSlot.
6176
6177 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
6178
6179         * metadata.c (mono_type_size): Add a fixme.
6180         (mono_type_stack_size): Ditto.
6181
6182         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
6183         'type_forwarders' field.
6184
6185         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
6186         attribute from net 2.0.
6187
6188         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
6189         from class.c.
6190
6191         * class.c (mono_class_setup_fields): Fix a warning.
6192         
6193         * class.c (mono_class_from_name): Add support for assemblyref entries
6194         in the EXPORTEDTYPE table.
6195
6196         * reflection.c: Add support for handling type forwarders under net 2.0.
6197
6198         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
6199         
6200 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
6201
6202         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
6203         overwriting entries in ModuleBuild->types, also clean up the code
6204         a little. Fixes #77774.
6205
6206 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
6207
6208         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
6209         load friend assembly info when present.
6210
6211 2006-03-14  Raja R Harinath  <rharinath@novell.com>
6212
6213         Fix crasher on gtest-158.cs.
6214         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
6215         the return value if the MonoClass we want is yet in an
6216         inconsistent state.
6217         * class.c (mono_class_create_from_typedef): Add an comment
6218         explaining an order dependency between mono_class_setup_parent and
6219         mono_class_setup_mono_type.
6220
6221 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
6222
6223         * class.c: documentation updates and events bug fix.
6224
6225 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
6226
6227         * class.c: some cleanup, locking fixes.
6228
6229 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
6230
6231         * class.c: fix the generics code to setup nested
6232         type info to the instantiated type (bug #77770).
6233
6234 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
6235
6236         * marshal.c: fixed a few type correctness issues.
6237
6238 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
6239
6240         * loader.c: the Set/Get/Addrtess array methods should be public.
6241
6242 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
6243
6244         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
6245         
6246         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
6247         info->wrapper.
6248
6249 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
6250
6251         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
6252
6253         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
6254
6255         * mempool.c (mono_mempool_alloc): Speed this up a bit.
6256         (mono_mempool_alloc0): Ditto.
6257
6258 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6259
6260         * socket-io.c:
6261         (create_object_from_sockaddr): it was allocating 4 extra bytes
6262         for the AF_UNIX data. Fixes bug #77747.
6263
6264 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
6265
6266         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
6267
6268 2006-03-09  Dick Porter  <dick@ximian.com>
6269
6270         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
6271         Fixes bug 76966 again.
6272
6273 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
6274
6275         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
6276         names from r57532
6277         * appdomain.c: Bumped corlib version to 48 (due to r57532)
6278
6279 2006-03-07  Martin Baulig  <martin@ximian.com>
6280
6281         * object.c
6282         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
6283
6284 2006-03-07  Martin Baulig  <martin@ximian.com>
6285
6286         * class.c
6287         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
6288         regression introduced in r56970; see gtest-252.cs.
6289
6290         * loader.c (mono_get_method_constrained): Correctly handle generic
6291         methods; see gtest-253.cs.
6292
6293 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
6294
6295         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
6296
6297 2006-03-04  Martin Baulig  <martin@ximian.com>
6298
6299         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
6300         compute the parent type at runtime, just like we're already doing
6301         it for interfaces.
6302
6303         * reflection.c
6304         (mono_reflection_bind_generic_parameters): Don't compute the
6305         parent type anymore.
6306
6307         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
6308
6309 2006-03-04  Martin Baulig  <martin@ximian.com>
6310
6311         * mono-debug-debugger.h
6312         (mono_debugger_create_notification_function): Allocate memory at
6313         runtime and return a pointer to it.
6314
6315 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
6316
6317         * assembly.c: Fix windows build.
6318         
6319         * assembly.c: Fix build.
6320
6321         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
6322
6323         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
6324         
6325 2006-03-03  Dick Porter  <dick@ximian.com>
6326
6327         * process.c
6328         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
6329         Check parameters before dereferencing them.  Fixes Aaron's part of
6330         bug 77393.
6331
6332 2006-03-03  Raja R Harinath  <rharinath@novell.com>
6333
6334         Fix performance regression.
6335         * loader.c (find_method_in_class): Add 'from_class' argument.
6336         Rename 'klass' argument to 'in_class'.  The signature is compared
6337         against the method in 'in_class', and the corresponding method is
6338         returned from 'from_class'.
6339         (find_method): Walk both 'in_class' and 'from_class' in parallel.
6340         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
6341         type definition and generic instantiation in parallel.
6342         (mono_get_method_constrained): Update to changes.
6343
6344 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
6345
6346         * threads.c: make sure the domain is correct, too when doing
6347         mono_thread_attach ().
6348
6349 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
6350
6351         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
6352         windows. Fixes #77683.
6353
6354 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
6355
6356         * object.h, *: introduced specific way to set elements of an array
6357         of references to be used as write barrier. Still need to audit the
6358         uses of mono_array_addr.
6359
6360 2006-03-01  Miguel de Icaza  <miguel@novell.com>
6361
6362         * object-internals.h: New field to cache the assmebly name, patch
6363         from Tambet Ingo (tambet@ximian.com)
6364
6365 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
6366
6367         * decimal.h, class-internals.h, metadata-internals.h,
6368         file-io.h: mark a few function declarations as internal, to
6369         reduce the number of PLT entries.
6370
6371 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6372
6373         * file-io.c: fix typo in warning message.
6374
6375 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
6376
6377         * loader.c: on unix, lookup the "*A" version of a function
6378         if charset is auto as a second option before failing.
6379
6380 2006-02-28  Raja R Harinath  <rharinath@novell.com>
6381
6382         * class.h (mono_class_inflate_generic_method): Revert to two
6383         argument version.
6384         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
6385         (mono_class_inflate_generic_method_full): Add.
6386         * class.c (mono_class_inflate_generic_method_full): Rename from
6387         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
6388         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
6389         * loader.c, reflection.c: Update to changes.
6390
6391 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
6392
6393         * icall.c: const fixes and small improvements.
6394
6395 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6396
6397         * threadpool.c: for asynchronous connect(), enable the same workaround
6398         for BSD 6 as for the Mac. Fixes bug #77637.
6399
6400 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
6401
6402         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
6403         formatted classes. Fixes #77524.
6404
6405 2006-02-24  Raja R Harinath  <rharinath@novell.com>
6406
6407         * class.c (inflate_generic_type): Add a couple more
6408         micro-optimizations.
6409         (inflate_generic_context): Don't use the 'gmethod' from
6410         'inflate_with'.
6411         (mono_class_inflate_generic_method): If the method has generic
6412         parameters, but the passed-in context doesn't have a 'gmethod',
6413         create one.  Use the possibly simplified generic instantiation
6414         from the declaring class instead of the one passed in.
6415
6416 2006-02-24  Raja R Harinath  <harinath@gmail.com>
6417
6418         Make generic method signature and method header handling lazy.
6419         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
6420         (inflate_generic_header): Likewise.
6421         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
6422         parameter to avoid inflating types.
6423         (mono_get_inflated_method): Empty out.
6424         * class.h (mono_class_inflate_generic_method): Update to changes.
6425         * loader.c (mono_get_method_from_token): Don't parse signature for
6426         generic methods, nor methods of generic classes.
6427         (mono_method_signature): Rename from 'mono_method_signature'.
6428         Inflate signature on demand.
6429         (mono_method_get_header): Inflate method header on demand.
6430         * reflection.c: Update to changes.
6431
6432 2006-02-23  Raja R Harinath  <rharinath@novell.com>
6433
6434         * metadata.c (mono_metadata_inflate_generic_inst): If the
6435         instantiation is closed, don't bother expanding it in the new
6436         context.
6437         * class.c (inflate_generic_class): If the generic instantiation
6438         doesn't change after inflation, return the argument itself.
6439         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
6440         Add bounds checks.
6441         (inflate_generic_context): If neither the generic class nor the
6442         generic method instantiations change, return the original context.
6443         * reflection.c (mono_method_get_object): Do
6444         'mono_get_inflated_method' before accessing the ->klass field.
6445         (inflate_mono_method): Don't create a MonoGenericMethod unless
6446         necessary.
6447         (inflate_method): Don't pass a constructed type as the declaring
6448         type of a methodbuilder.
6449
6450 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
6451
6452         * object.c: fix memory overwrite.
6453
6454 2006-02-22  Dick Porter  <dick@ximian.com>
6455
6456         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
6457         it doesn't work any more.
6458         (mono_threads_request_thread_dump): Fix unused variable warnings.
6459
6460 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
6461
6462         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
6463         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
6464         the public header file.
6465
6466 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
6467
6468         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
6469
6470 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
6471
6472         * class-internals.h, object.c: reduce the size of MonoVTable
6473         and store the interface_offsets array at negative offsets.
6474
6475 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
6476
6477         * metadata.c: tweak table descriptors data structures to reduce
6478         size and runtime relocations.
6479
6480 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
6481
6482         * marshal.c: fix some types and opcodes to be type-safe
6483         in marshaling wrappers.
6484
6485 2006-02-21  Ankit Jain  <jankit@novell.com>
6486
6487         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
6488
6489 2006-02-21  Raja R Harinath  <rharinath@novell.com>
6490
6491         * metadata.c (get_constraints): Relax debugging checks for monodis.
6492
6493 2006-02-21  Ankit Jain  <jankit@novell.com>
6494
6495         * metadata.c (mono_metadata_load_generic_params): Move the code
6496         checking for ambiguous generic params from here to mono/dis/get.c
6497         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
6498
6499 2006-02-21  Raja R Harinath  <harinath@gmail.com>
6500
6501         Fix assertion triggered when compiling nemerle.
6502         * class.c (mono_get_shared_generic_inst): Rename from
6503         get_shared_inst and make non-static.
6504         * loader.c (mono_get_shared_generic_method): New.  Used to create
6505         the MonoGenericContext-equivalent of a MonoGenericContainer.
6506         (mono_get_method_from_token): Initialize the 'context' field of
6507         the created MonoGenericContainer.
6508         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
6509         * metadata.c (get_constraints): Add sanity check.
6510         * class-internals.h: Add new internal methods.
6511
6512         * reflection.c (verify_safe_for_managed_space): New sanity check.
6513         Currently checks that owner-less generic parameters aren't allowed
6514         in managed space.
6515         (mono_type_get_object): Use it.
6516         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
6517         that are now in mono_type_get_object.
6518         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
6519
6520 2006-02-19  Raja R Harinath  <harinath@gmail.com>
6521
6522         * metadata.c (mono_type_create_from_typespec): Rename from
6523         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
6524         argument and caching of types in the generic container.
6525         (unwrap_arrays, find_generic_param): Remove.
6526         * metadata-internals.h: Update.
6527         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
6528
6529 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
6530
6531         * class.c (mono_class_get_exception_for_failure): Fix a warning.
6532
6533         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
6534         return values. Fixes #77581.
6535
6536         * class.c (mono_fnptr_class_get): Switch name and name_space.
6537
6538         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
6539         classes and add support for [In, Out] attributes.
6540         (mono_marshal_free_asany): Ditto. Fixes #77524.
6541
6542 2006-02-18  Raja R Harinath  <harinath@gmail.com>
6543
6544         * class.c (mono_class_from_generic_parameter): Make more robust to
6545         incomplete MonoGenericContainers from monodis.
6546
6547 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6548
6549         * class-internals.h: added some more exception types.
6550         * class.c, metadata.c: added a few checks to handle missing
6551         types.
6552
6553 2006-02-17  Raja R Harinath  <rharinath@novell.com>
6554
6555         Use owner-less generic-params some more.
6556         * class.c (my_mono_class_from_generic_parameter): Remove.
6557         (mono_class_from_generic_parameter): Handle null image,
6558         param->name and param->owner.
6559         (mono_class_from_mono_type): Update.
6560         (mono_class_create_from_typespec): Remove 'container' parameter.
6561         If that parameter is non-null, the result is always inflated by
6562         'mono_class_get_full' anyway.
6563         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
6564         parameter.
6565         (mono_class_get_full): Update.
6566
6567         * class.c (inflate_generic_type) [GENERICINST]: If the generic
6568         instance is not open, don't bother inflating.
6569         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
6570         parse metadata for inflated classes.
6571         (_mono_class_get): Change GenericContext* parameter to
6572         GenericContainer*.
6573         (mono_class_create_from_typespec): Likewise.  Simplify, and
6574         implement trivially.  All the cases are handled in
6575         mono_class_from_mono_type.  Don't inflate returned class.
6576         (mono_class_get_full): Delegate GENERICINST optimization to
6577         inflate_generic_type.
6578         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
6579
6580 2006-02-16  Dick Porter  <dick@ximian.com>
6581
6582         * socket-io.c (create_object_from_sockaddr): Fix typo.
6583         (create_sockaddr_from_object): Check array lengths before
6584         potentially accessing items off the end.
6585         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
6586         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
6587         (ves_icall_System_Net_Sockets_Socket_Send_internal)
6588         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
6589         length checks to avoid wraparound overflows.
6590         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
6591         contents of the array of sockets
6592         (hostent_to_IPHostEntry2)
6593         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
6594         Check return value of inet_ntop ().
6595         (addrinfo_to_IPHostEntry): Fix typo
6596
6597 2006-02-16  Raja R Harinath  <rharinath@novell.com>
6598
6599         Type metadata parsing doesn't use generic-instantiation information.
6600         * metadata.c (mono_metadata_parse_array_full): Change
6601         MonoGenericContext* parameter to MonoGenericContainer*.
6602         (mono_metadata_parse_type_full): Likewise.
6603         (mono_type_create_from_typespec_full): Likewise.
6604         (mono_metadata_parse_mh_full): Likewise.
6605         (mono_metadata_parse_generic_inst): Likewise.
6606         (do_mono_metadata_parse_generic_class): Likewise.
6607         (do_mono_metadata_parse_type): Likewise.
6608         * metadata-internals.h: Update to changes.
6609         * class.c (mono_class_find_enum_basetype): Likewise.
6610         (mono_class_setup_fields): Likewise.
6611         (mono_class_create_from_typespec): Likewise.
6612         * loader.c (method_from_methodspec): Likewise.
6613         (mono_get_method_from_token): Likewise.
6614         (mono_method_get_header): Likewise.
6615
6616 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
6617
6618         * marshal.c: handle additional GENERICINST case (patch from
6619         Thong Nguyen <tum@veridicus.com>).
6620         Fix a few cases where LDIND_I/STIND_I was used for references.
6621
6622 2006-02-16  Raja R Harinath  <rharinath@novell.com>
6623
6624         * reflection.c (mono_reflection_get_token): Remove unused variable.
6625
6626 2006-02-16  Martin Baulig  <martin@ximian.com>
6627
6628         * reflection.c (mono_reflection_get_token): Add support for fields
6629         in instantiated generic types.
6630
6631         * icall.c
6632         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
6633
6634 2006-02-15  Martin Baulig  <martin@ximian.com>
6635
6636         * icall.c
6637         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
6638         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
6639         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
6640         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
6641
6642 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
6643
6644         * class.c, metadata.c, metadata.h, object.c, icall.c,
6645         marshal.c: changed mono_type_get_underlying_type () to do
6646         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
6647         Fixed handling of instantiated generic valuetypes (bug #75479).
6648
6649 2006-02-15  Raja R Harinath  <rharinath@novell.com>
6650
6651         * metadata.c (mono_metadata_decode_signed_value): Simplify.
6652         Delegate to mono_metadata_decode_value, and work on the returned value.
6653
6654         * icall.c (ves_icall_MonoType_GetGenericArguments):
6655         Add consistency check here too.
6656         
6657 2006-02-15  Ankit Jain  <jankit@novell.com>
6658
6659         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
6660         char/short etc.
6661
6662 2006-02-15  Ankit Jain  <jankit@novell.com>
6663
6664         * metadata.c (mono_metadata_decode_signed_value): New function to decode
6665         signed values, used only for representing lower bounds of arrays.
6666         (mono_metadata_parse_array_full): Use new
6667         mono_metadata_decode_signed_value to decode lower bounds.
6668
6669 2006-02-14  Martin Baulig  <martin@ximian.com>
6670
6671         * reflection.c
6672         (mono_reflection_get_token): Support "MonoGenericMethod" and
6673         "MonoGenericCMethod" and allow generic instances / methods.
6674
6675 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
6676
6677         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
6678         to obtain the terminal size using an ioctl.
6679
6680         * object.c (mono_nullable_init): Revert this as nullable reference
6681         types are not valid.
6682         (mono_nullable_box): Ditto.
6683
6684 2006-02-09  Dick Porter  <dick@ximian.com>
6685
6686         * threads.c (mono_thread_detach): Drop a reference to the thread
6687         we're detaching.
6688
6689 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
6690
6691         * object.c (mono_nullable_init): Handle nullable reference types.
6692         (mono_nullable_box): Ditto. Fixes #77446.
6693
6694 2006-02-07  Martin Baulig  <martin@ximian.com>
6695
6696         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
6697
6698 2006-02-07  Ankit Jain  <jankit@novell.com>
6699
6700         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
6701         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
6702         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
6703         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
6704         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
6705         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
6706
6707 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
6708
6709         * class.c (mono_class_create_generic): Set type_token as well.
6710
6711         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
6712         compatible with MS.
6713
6714 2006-02-02  Martin Baulig  <martin@ximian.com>
6715
6716         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
6717         has never been used so far.
6718
6719 2006-02-02  Martin Baulig  <martin@ximian.com>
6720
6721         * mono-debug-debugger.h: Changed comment at the top of this file;
6722         the header is not installed, but it's safe to #include it from
6723         within the JIT.
6724
6725         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
6726         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
6727
6728 2006-02-02  Martin Baulig  <martin@ximian.com>
6729
6730         * mono-debug.h
6731         (MonoSymbolTable): Removed the `metadata_info' field.
6732
6733         * mono-debug.c
6734         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
6735
6736         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
6737         (mono_debugger_add_builtin_types): Removed.
6738         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
6739         (mono_debugger_create_notification_function): We now operate on a
6740         pre-allocated area; take a `gpointer' and return `void'.
6741
6742         * mono-debug-debugger.c
6743         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
6744         (mono_debugger_add_builtin_types): Removed.
6745
6746 2006-02-02  Martin Baulig  <martin@ximian.com>
6747
6748         * threads.c (mono_debugger_create_all_threads): New public method.
6749
6750 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6751
6752         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
6753         breaks on several platforms.
6754
6755 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
6756
6757         * assembly.c: the VS.NET build doesn't supply default values for
6758         MONO_ASSEMBLIES and MONO_CFG_DIR.
6759
6760 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
6761
6762         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
6763         helper function.
6764
6765         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
6766
6767         * loader.c (method_from_memberref): Fix a warning.
6768
6769         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
6770
6771         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
6772         with explicit layout. Fixes #77433.
6773
6774 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
6775
6776         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
6777         max_interface_id is initialized before using it. Fixes #77398.
6778         (ves_icall_Type_GetInterfaces): Ditto.
6779
6780 2006-01-30  Raja R Harinath  <rharinath@novell.com>
6781
6782         * metadata.c (mono_metadata_parse_method_signature_full): Don't
6783         allocate memory for parameter attributes when parsing memberref
6784         signatures.
6785         * loader.c (mono_loader_set_error_method_load): Don't warn.
6786         (method_from_memberref): Ensure MissingMethodException gets thrown
6787         if method is not found.  Make warning more informative.
6788
6789 2006-01-29  Raja R Harinath  <harinath@gmail.com>
6790
6791         Fix #77397
6792         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
6793         return true if is byref.
6794         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
6795         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
6796         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
6797
6798 2006-01-27  Raja R Harinath  <rharinath@novell.com>
6799
6800         Fix tests/find-method.2.il
6801         * loader.c (find_method, find_method_in_class): Remove is_inflated
6802         argument.  Revert 2006-01-18 change.
6803         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
6804         is generic, search for method in its generic definition.
6805         * class.c (mono_class_setup_vtable_general): Print generic
6806         arguments of generic types in debugging printf.
6807
6808 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
6809
6810         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
6811
6812         * threads.c (mono_threads_request_thread_dump): New helper function.
6813
6814 2006-01-25  Raja R Harinath  <rharinath@novell.com>
6815
6816         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
6817
6818 2006-01-25  Ankit Jain  <jankit@novell.com>
6819
6820         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
6821         move definition to ..
6822         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
6823         
6824 2006-01-25  Ankit Jain  <jankit@novell.com>
6825             Raja R Harinath  <rharinath@novell.com>
6826
6827         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
6828         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
6829         as necessary.
6830
6831 2006-01-25  Martin Baulig  <martin@ximian.com>
6832
6833         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
6834         `MonoDebuggerThread' into debug-debugger.c.
6835
6836 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
6837
6838         * profiler.c: fix printing of data.
6839
6840 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
6841
6842         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
6843           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
6844
6845 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
6846
6847         * object.c: fix deadlock related to string interning.
6848
6849 2006-01-23  Martin Baulig  <martin@ximian.com>
6850
6851         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
6852
6853         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
6854
6855 2006-01-23  Martin Baulig  <martin@ximian.com>
6856
6857         * mono-debug.h: Moved the prototypes of some functions which are
6858         used by the JIT here from mono-debug-debugger.h.
6859
6860 2006-01-21  Martin Baulig  <martin@ximian.com>
6861
6862         * Makefile.am: Don't install mono-debug-debugger.h.
6863
6864 2006-01-21  Martin Baulig  <martin@ximian.com>
6865
6866         * mono-debug-debugger.h: Enforce the private status of this header
6867         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
6868         Moved some stuff from mono-debugger-jit-wrapper.h here.
6869
6870 2006-01-20  Raja R Harinath  <rharinath@novell.com>
6871
6872         * class.c (mono_class_from_typeref): Add a sanity test to help
6873         catch lack of assembly load/search hooks.
6874
6875 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
6876
6877         * marshal.c (emit_struct_conv): Relax the fields with same offset
6878         check even more. Fixes #77230.
6879
6880 2006-01-18  Martin Baulig  <martin@ximian.com>
6881
6882         * loader.c (find_method_in_class): Added `gboolean is_inflated'
6883         argument; if false, we compare the uninstantiated signatures.
6884         (method_from_memberref): Compare the uninstantiated signatures;
6885         fixes #76417.
6886
6887 2006-01-18  Robert Jordan  <robertj@gmx.net>
6888
6889         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
6890         Clear the weak link. Fixes bug #77170.
6891
6892         * gc.c (mono_gchandle_free):
6893         Reflect *-gc.c changes (tiny optimization).
6894
6895 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
6896
6897         * metadata.c (mono_metadata_signature_dup): Applied patch from
6898         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
6899         Fixes #77288.
6900
6901 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
6902
6903         * marshal.c (emit_struct_conv): Allow fields with the same offset when
6904         marshalling from native to managed code. Fixes #77230.
6905
6906 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6907
6908         * threadpool.c: fix problem (Mac only) when more than one asynchronous
6909         connect. Fixes bug #77020.
6910
6911 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
6912
6913         * class.c: fixed id assignement for nested interfaces (bug #77275).
6914         Added also better info for --print-vtable debugging.
6915
6916 2006-01-12  Martin Baulig  <martin@ximian.com>
6917
6918         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
6919         interfaces on-the-fly; fixes #76625.
6920
6921         * class-internals.h
6922         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
6923         don't need that anymore.
6924
6925 2006-01-12  Miguel de Icaza  <miguel@novell.com>
6926
6927         * socket-io.c
6928         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
6929         To avoid initing the nested_classes when not needed I turned the
6930         PeerCredData as a toplevel internal class, as it has to be shared
6931         anyways. 
6932
6933         Fixes the CASA issue.
6934
6935 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
6936
6937         * domain.c: Accessors for MonoJitInfo
6938
6939         * profiler-private.h: Add jitinfo to the end jit hook
6940
6941         * profiler.[ch]: Define new hooks, called after jitting which give
6942         the MonoJitInfo that was compiled
6943
6944 2006-01-10  Martin Baulig  <martin@ximian.com>
6945
6946         * class.c (mono_class_setup_events): Add support for generic
6947         classes; fixes #76440.
6948
6949 2006-01-06  Raja R Harinath  <rharinath@novell.com>
6950
6951         Fix #77160.
6952         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
6953         on passed-in method.
6954
6955 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
6956
6957         * object.c (mono_runtime_invoke_array): Add Nullable support.
6958
6959         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
6960
6961 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
6962
6963         * file-io.c: Don't consider sockets as directory and avoid an endless
6964         loop. Fix bug #76966.
6965
6966 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
6967
6968         * object.c (mono_nullable_init): New helper function.
6969         (mono_nullable_box): Ditto.
6970
6971         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
6972
6973         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
6974
6975         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
6976         
6977 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
6978
6979         * class.c (mono_class_is_assignable_from): Make T assignable to 
6980         Nullable<T>.
6981
6982 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
6983
6984         * appdomain.c: Bump corlib version to 46.
6985         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
6986         serialization purpose) and changed ves_icall_System_Reflection_
6987         Assembly_get_code_base signature to accept a boolean (to escape, or 
6988         not, the assembly code base).
6989
6990 2005-12-23  Dick Porter  <dick@ximian.com>
6991
6992         * icall.c: 
6993         * threads-types.h: 
6994         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
6995         CreateEvent icall now returns "created" boolean parameter.
6996
6997 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
6998
6999         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
7000         #76967.
7001
7002         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
7003         when attr_klass is an interface. Fixes #77045.
7004
7005 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
7006
7007         * marshal.c (emit_struct_conv): Fix previous patch.
7008         
7009         * marshal.c (emit_struct_conv): Add a check for fields with the same
7010         offset.
7011
7012 2005-12-20  Raja R Harinath  <rharinath@novell.com>
7013
7014         Fix regression in Mono.C5.
7015         * class.c (mono_class_create_generic): If 'klass' is an interface
7016         set up the interface offsets.
7017         (mono_class_is_assignable_from): Don't throw away generic arguments.
7018
7019 2005-12-19  Raja R Harinath  <rharinath@novell.com>
7020
7021         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
7022         type parameters.
7023
7024 2005-12-15  Raja R Harinath  <rharinath@novell.com>
7025
7026         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
7027         dead store.
7028         (do_mono_metadata_parse_generic_class): Don't pass the current
7029         generic context when parsing the type being instantiated: it
7030         cannot use it, anyway.
7031
7032         * loader.c (method_from_memberref): Don't inflate a signature if
7033         it doesn't contain any type parameters.
7034
7035 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
7036
7037         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
7038
7039 2005-12-14  Martin Baulig  <martin@ximian.com>
7040
7041         * class.c
7042         (mono_type_get_name_recurse): Don't return null for type
7043         parameters and open generic classes.
7044         (mono_class_setup_methods): Don't exclude generic instances.
7045         (mono_get_unique_iid): Use different IDs for different
7046         instantiations of the same generic type.
7047         (mono_class_setup_vtable): Only use setup_generic_vtable() for
7048         open generic instances; create a normal vtable for closed generic
7049         instances.
7050         (mono_class_setup_vtable_general): We're now also called for
7051         closed generic instances.
7052
7053         * reflection.c
7054         (mono_reflection_bind_generic_parameters): Correctly use
7055         mono_metadata_lookup_generic_inst() everywhere.
7056
7057 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
7058
7059         * object.c (mono_class_create_runtime_vtable): Call 
7060         mono_class_setup_vtable ().
7061
7062         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
7063         function.
7064         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
7065         #76959.
7066
7067         * loader.c (mono_loader_set_error_type_load): Print the type load
7068         warnings to the console so they are more visible to the user.
7069         (mono_loader_set_error_method_load): Ditto.
7070
7071         * reflection.c (ensure_runtime_vtable): Revert the last change as it
7072         is still broken.
7073         
7074         * reflection.c (ensure_runtime_vtable): Fix build.
7075
7076         * reflection.c (ensure_runtime_vtable): Disable an optimization which
7077         doesn't work in all cases.
7078
7079 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
7080
7081         * object.c (mono_array_new_full): Treat a single dimensional array
7082         with 0 lower bounds as an szarray. Fixes #76973.
7083
7084         * reflection.c (custom_attr_visible): Really fix this.
7085
7086 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
7087
7088         * reflection.c (custom_attr_visible): Allow nested public attributes
7089         as well.
7090
7091         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
7092         interface check.
7093
7094 2005-12-12  Raja R Harinath  <harinath@gmail.com>
7095
7096         * class.c (set_generic_param_owner): Delete.
7097         (mono_class_create_from_typedef): Don't set ->owner field of
7098         generic parameters to "param containers" of enclosing classes.
7099         * reflection.c (mono_reflection_initialize_generic_parameter):
7100         Likewise.
7101
7102 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
7103
7104         * reflection.c (custom_attr_visible): Fix build.
7105
7106 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
7107
7108         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
7109         private attributes.
7110         
7111         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
7112         handling of null parameter defaults.
7113
7114 2005-12-09  Raja R Harinath  <rharinath@novell.com>
7115
7116         * class.c (mono_class_from_generic_parameter): Don't set
7117         klass->generic_container.
7118         (my_mono_class_from_generic_parameter): Likewise.
7119
7120 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
7121
7122         * reflection.c (load_public_key): Fix a warning.
7123         (method_encode_code): Fix unaligned accesses.
7124
7125 2005-12-07  Martin Baulig  <martin@ximian.com>
7126
7127         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
7128
7129         * reflection.c
7130         (write_generic_param_entry): Encode our custom attrs.
7131
7132         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
7133
7134 2005-12-07  Martin Baulig  <martin@ximian.com>
7135
7136         * reflection.c (encode_new_constraint): Removed; we don't use the
7137         `NewConstraintAttribute' anymore.
7138
7139 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
7140
7141         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
7142         not fire a TypeResolve event when Assembly.GetType () is called.
7143
7144 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
7145
7146         Beginning of support for nullable types in the runtime. Parts of
7147         this patch are from Martin.
7148
7149         * appdomain.c (MONO_CORLIB_VERSION): Bump
7150
7151         * domain.c (mono_init_internal): get the nullable type
7152
7153         * class.c (mono_class_is_nullable): New method
7154         (mono_class_get_nullable_param): New mehod
7155         (mono_class_create_generic): In types T? set cast_class to T
7156
7157         * class-internals.h (MonoDefaults): new nullable default class
7158         (mono_class_get_nullable_param, mono_class_get_nullable_param):
7159         new methods.
7160
7161 2005-12-05  Raja R Harinath  <rharinath@novell.com>
7162
7163         * metadata.c (select_container): New.  Refactor code to select the
7164         appropriate GenericContainer given the type of generic parameter
7165         we are looking for.
7166         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
7167         not a MonoGenericContext.  Use select_container.  Update parameters.
7168         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
7169         and MONO_TYPE_MVAR.
7170         (unwrap_arrays): Remove duplicate tests.
7171         (find_generic_param): Rename from 'has_same_context'.  Now walks a
7172         generic instantiated class to find any arguments that are generic
7173         parameters.
7174         (mono_type_create_from_typespec_full): Use find_generic_param to
7175         avoid evicting some generic instantiations from the typespec
7176         cache.
7177
7178 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
7179
7180         * reflection.c: fixed writing of doubles on ARM FPA.
7181
7182 2005-12-02  Robert Jordan  <robertj@gmx.net>
7183
7184         * icall.c: Fixed EventInfo.ReflectedType (#76829).
7185
7186 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7187
7188         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
7189         least on SUSE 10 they are not the same (on debian, they are just the
7190         same thing).
7191
7192 2005-12-01  Raja R Harinath  <rharinath@novell.com>
7193
7194         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
7195         DeclaringType for VARs and MVARs.
7196         * class.c (set_generic_param_owner): Fix initialization of owner
7197         fields.
7198
7199 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7200
7201         * icall.c: fixed Enum.ToObject() to correctly convert the values.
7202
7203 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7204
7205         * threadpool.c: workaround for a bug that shows up on the Mac:
7206         select()+connect() on a blocking socket is not like it should
7207         be, so we proceed to connect() in that case, wasting the I/O
7208         threadpool thread until connect succeedes. Fixes bug #75436.
7209
7210 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7211
7212         * threadpool.c: fix typo when setting file descriptor states.
7213
7214 2005-11-28  Raja R Harinath  <rharinath@novell.com>
7215
7216         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
7217         * metadata.c (mono_metadata_parse_method_signature_full): Don't
7218         create a temporary signature container.
7219         (mono_metadata_parse_generic_param): Update to changes.
7220         (mono_type_create_from_typespec_full): Update to changes.
7221         * loader.c (method_from_memberref): Don't use a
7222         MonoGenericContainer while parsing a memberref signature.
7223         (method_from_methodspec): Remove dead-store of the 'container'
7224         variable.  It's overwritten before use.
7225
7226         * metadata.c (mono_type_create_from_typespec_full): Make debugging
7227         checks tighter.
7228         (mono_metadata_parse_generic_param): Likewise.
7229         * loader.c (find_method_in_class): Does not need a
7230         MonoGenericContainer.  Use 'mono_method_signature' rather than
7231         'mono_method_signature_full'.
7232         (find_method, mono_get_method_constrained, method_from_memberref):
7233         Update to changes.
7234
7235         * metadata.c (mono_type_create_from_typespec_full): Ensure that
7236         owner-less generic-parameters are never evicted from the typespec
7237         cache.
7238
7239         * loader.c (method_from_memberref): Don't use the current context
7240         when parsing signatures.
7241         (method_from_methodspec, mono_get_method_from_token): Update to changes.
7242
7243         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
7244         side-effects in g_assert.
7245         * loader.c (mono_get_method_from_token): Resolve klass earlier so
7246         that we don't potentially lose information.
7247
7248 2005-11-26  Dick Porter  <dick@ximian.com>
7249
7250         * icall.c:
7251         * threads.c: icalls to implement basic (ie, not named)
7252         System.Threading.Semaphore.
7253
7254 2005-11-24  Dick Porter  <dick@ximian.com>
7255
7256         * process.c
7257         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
7258         Use GetProcessId() if it's available.
7259
7260 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
7261
7262         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
7263
7264 2005-11-23  Raja R Harinath  <rharinath@novell.com>
7265             Ankit Jain  <jankit@novell.com>
7266
7267         * loader.c (mono_get_method_from_token): Initialize 'method' field
7268         of all generic parameters before parsing the signature.  Remove
7269         code that "fixed"-up MVAR references.
7270
7271 2005-11-23  Ankit Jain  <jankit@novell.com>
7272
7273         * metadata.c (mono_metadata_has_generic_params):
7274         (mono_metadata_load_generic_param_constraints):
7275         (mono_metadata_load_generic_params): Move duplicate code ...
7276         (mono_metadata_get_generic_param_row): ... here. Returns the
7277         first row-id in GenericParam table for a given owner (token).
7278         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
7279         prototype.
7280
7281 2005-11-23  Raja R Harinath  <rharinath@novell.com>
7282             Ankit Jain  <jankit@novell.com>
7283
7284         * metadata.c (mono_metadata_class_equal): Pass signature_only when
7285         comparing VARs too.
7286         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
7287         type->data.generic_param only if the type is an MVAR.
7288         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
7289         leak owner-less VARs and MVARs into managed space.
7290
7291 2005-11-21  Martin Baulig  <martin@ximian.com>
7292
7293         * class-internals.h
7294         (MonoMethod): Moved the `generic_container' here from
7295         `MonoMethodNormal' since we now also need it for
7296         `MonoMethodPInvoke';
7297         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
7298         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
7299         an union containing both `MonoMethodNormal' and
7300         `MonoMethodPInvoke'.
7301
7302         * loader.c
7303         (mono_get_method_from_token): Allow implementing generic methods
7304         as interncalls.
7305
7306         * threads.c
7307         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
7308         icall.
7309
7310 2005-11-17  Dick Porter  <dick@ximian.com>
7311
7312         * icall.c: 
7313         * process.h: 
7314         * process.c: Split the Process Start_internal icall into
7315         ShellExecuteEx_internal and CreateProcess_internal, which are
7316         called depending on whether UseShellExecute is true.  Fixes bug
7317         76670.
7318
7319         * appdomain.c (MONO_CORLIB_VERSION): Incremented
7320
7321 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
7322
7323         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
7324         'msize' parameters, use the information in 'mspec' instead.
7325         (emit_object_to_ptr_conv): Ditto.
7326
7327         * marshal.c (emit_struct_conv): Handle explicit layout structs with
7328         fields out of order. Fixes #76733.
7329
7330 2005-11-17  Ankit Jain  <jankit@novell.com>
7331
7332         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
7333
7334 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
7335
7336         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
7337           bug #76575.
7338
7339 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
7340
7341         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
7342         for types with non-auto layout. Fixes #76717.
7343
7344 2005-11-16  Ankit Jain  <jankit@novell.com>
7345
7346         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
7347         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
7348         if generic_context is null.
7349           (mono_metadata_generic_param_equal): param->owner can be null.
7350           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
7351         null.
7352
7353 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
7354
7355         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
7356         the correct value.
7357
7358 2005-11-15  Martin Baulig  <martin@ximian.com>
7359
7360         * object.c (set_value): Use mono_class_from_mono_type() instead of
7361         the hack for generic instances; fixes #76136.
7362
7363 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
7364
7365         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
7366         fields.
7367
7368         * image.c (load_metadata_ptrs): Initialize the new fields.
7369
7370         * reflection.c (create_dynamic_mono_image): Ditto.
7371
7372         * reflection.c (build_compressed_metadata): Use the new fields.
7373
7374         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
7375         icall.
7376
7377         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
7378         icall.
7379         
7380 2005-11-15  Ankit Jain  <jankit@novell.com>
7381             Raja R Harinath  <harinath@gmail.com>
7382
7383         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
7384         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
7385         new per-generic_container cache if the cached MonoType's context matches
7386         the current context.
7387           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
7388         to the expected context.
7389           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
7390
7391 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7392
7393         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
7394         we changed the signature of an icall.
7395         * icall.c: Modify to mono_double_ParseImpl return true/false 
7396         depending on the success, instead of throwing the exception. This will
7397         help us in Double.TryParse methods.
7398         
7399 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
7400
7401         * marshal.c (emit_marshal_object): Throw an exception when
7402         marshalling 'object' instead of crashing. Fixes #76696.
7403
7404 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
7405
7406         * class-internals.h: Add prototype for mono_type_get_full_name ().
7407
7408 2005-11-11  Dick Porter  <dick@ximian.com>
7409
7410         * threads.c (mono_thread_manage): Make sure the main thread has
7411         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
7412
7413 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
7414
7415         * loader.c (mono_loader_set_error_type_load): Log a warning to the
7416         console about the missing type.
7417         (mono_loader_set_error_method_load): Ditto.
7418
7419 2005-11-09  Miguel de Icaza  <miguel@novell.com>
7420
7421         * mono-config.c (mono_get_config_dir): Set the system defaults if
7422         none is specified.
7423
7424         * assembly.c (mono_set_dirs): New API entry point to set the
7425         assembly and the config directory in one call
7426
7427 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
7428
7429         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
7430         the ftnptr was created from a delegate in a domain other than the
7431         current domain. Fixes #75377.
7432
7433         * exception.h exception.c: Add mono_get_exception_not_supported ().
7434
7435 2005-11-08  Martin Baulig  <martin@ximian.com>
7436
7437         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
7438
7439 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
7440
7441         * security-manager.h: Added definitions to deal with strongname key 
7442         pairs bigger (and smaller) than 1024 bits.
7443         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
7444         adjust wrt the public key length being used.
7445
7446 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
7447
7448         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
7449           Windows build (r51396-51397).
7450
7451 2005-11-03  Martin Baulig  <martin@ximian.com>
7452
7453         * class.c (mono_class_setup_vtable_general): Also add generic
7454         methods to the vtable; fixes #76581.
7455
7456 2005-11-01  Miguel de Icaza  <miguel@novell.com>
7457
7458         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
7459         sure that we lookup GetString method from the System.Text.Encoding
7460         class, not the derived class or we get an empty method.
7461
7462         Fixed class #76612.
7463
7464 2005-10-25  Miguel de Icaza  <miguel@novell.com>
7465
7466         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
7467         if it has been previously set (embedders). 
7468
7469         Make mono_set_rootdir available also on Unix.
7470
7471 005-10-24  Robert Jordan  <robertj@gmx.net>
7472
7473         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
7474
7475 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
7476
7477         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
7478         only calls which are made to native code use this flag.
7479
7480         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
7481
7482 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
7483
7484         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
7485         Add support for FieldBuilders.
7486
7487 2005-10-29  Martin Baulig  <martin@ximian.com>
7488
7489         * mono-debug.c
7490         (mono_debug_using_mono_debugger): New public method; returns
7491         whether we're running inside the debugger.
7492
7493 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
7494
7495         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
7496         for Method/Constructor/FieldBuilders.
7497
7498 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
7499
7500         * reflection.c (module_add_cattrs): Save custom attributes for global methods
7501         and fields as well.
7502
7503 2005-10-26  Martin Baulig  <martin@ximian.com>
7504
7505         * mono-debug-debugger.c
7506         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
7507
7508 2005-10-24  Raja R Harinath  <harinath@gmail.com>
7509
7510         * icall.c (base64_to_byte_array): Don't pass an out-of-range
7511         integer to isspace.
7512
7513 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
7514
7515         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
7516         when passing valuetypes byref. Fixes #76502.
7517
7518 2005-10-19  Jackson Harper  <jackson@ximian.com>
7519
7520         * profiler.c: Don't put a . in front of types that are not in a
7521         namespace.
7522
7523 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
7524
7525         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
7526
7527 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
7528
7529         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
7530         #76436.
7531         (mono_marshal_get_ldflda_wrapper): Fix a warning.
7532
7533 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7534
7535         * assembly.c metadata-internals.h icall.c: Define an additional
7536         parameter for mono_assembly_name_parse_full, so we can avoid creating
7537         S.R.AssemblyName.Version when no version info wasn't passed.
7538         
7539 2005-10-09  Miguel de Icaza  <miguel@novell.com>
7540
7541         * class.c (mono_type_get_full_name): Reimplement method that was
7542         removed. 
7543
7544         * image.c: Some docs
7545
7546 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
7547
7548         * profiler.c (output_newobj_profile): Fix printing of Total memory
7549         on x86.
7550
7551 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
7552
7553         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
7554
7555 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
7556
7557         * threads.c: remove debug output.
7558
7559 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
7560
7561         * threads.c (mono_thread_manage): Fix crashes if more than 64
7562         threads need to be aborted. Hopefully fixes #75899.
7563
7564         * assembly.c (mono_stringify_assembly_name): New helper function.
7565
7566         * class.c: Use mono_stringify_assembly_name instead of the similar
7567         static function.
7568
7569         * assembly.h assembly.c: Add support for calling a postload search 
7570         hook if an assembly cannot be loaded.
7571
7572         * appdomain.c: Register new search hooks which call the AssemblyResolve
7573         events in AppDomain. Fixes #75231
7574
7575 2005-10-07  Martin Baulig  <martin@ximian.com>
7576
7577         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
7578         methods without debug info.
7579
7580 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
7581
7582         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
7583         wrappers.
7584
7585 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7586
7587         * file-io.c: now that we return symlinks, use lstat and, when the file
7588         is a symbolic link, stat, to get the file attributes. Also avoid the
7589         conversion to/from utf16/external.
7590
7591 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
7592
7593         * class.c (mono_class_layout_fields): Compute klass->has_references
7594         correctly if an embedded valuetype is not yet initialized. Fixes
7595         #76331.
7596
7597 2005-10-04  Martin Baulig  <martin@ximian.com>
7598
7599         * metadata.c
7600         (mono_metadata_load_generic_param_constraints): New public
7601         function; splitted the constraints loading out from
7602         mono_metadata_load_generic_params().
7603
7604         * class.c (mono_class_create_from_typedef): Call
7605         mono_metadata_load_generic_param_constraints() after setting up
7606         the type and creating our parent; fixes #75329.
7607
7608 2005-10-04  Martin Baulig  <martin@ximian.com>
7609
7610         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
7611         non-dynamic parent classes.
7612
7613 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
7614
7615         * file-io.c : win32 build fix (ETXTBSY seems not found).
7616
7617 2005-10-04  Martin Baulig  <martin@ximian.com>
7618
7619         * reflection.c
7620         (mono_image_get_methodspec_token): Make the cache actually work;
7621         fixes #75974.
7622
7623 2005-10-04  Martin Baulig  <martin@ximian.com>
7624
7625         * class.c (mono_class_name_from_token): Removed the unneccessary
7626         `MonoGenericContext *' argument.
7627
7628 2005-10-04  Martin Baulig  <martin@ximian.com>
7629
7630         * loader.c
7631         (method_from_methodspec): Make the caching work again; fixes the
7632         performance regression from #76262.
7633
7634 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7635
7636         * file-io.c:
7637         * file-io.h:
7638         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
7639         GetFileSystemEntries that performs the same work but without going
7640         into io-layer, locking, etc.
7641
7642 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
7643
7644         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
7645         ThreadState_Stopped as well. Fixes #76047.
7646
7647 2005-09-29  Martin Baulig  <martin@ximian.com>
7648
7649         * class.c
7650         (inflate_generic_context): If the new context has a `gmethod', set
7651         its `container' that that gmethod's `container'.
7652
7653         * metadata.c
7654         (mono_metadata_parse_generic_param): Simplify things;
7655         `generic_container = generic_context->container;' is just fine.
7656
7657         * loader.c (method_from_methodspec): Code cleanups.
7658
7659 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
7660
7661         * decimal.c: fix warning (and let gcc generate correct
7662         code on ARM with optimizations).
7663
7664 2005-09-28  Martin Baulig  <martin@ximian.com>
7665
7666         * loader.c
7667         (method_from_memberref): Added `MonoGenericContext *class_context'
7668         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
7669         (method_from_methodspec): If we're a memberref, use the enclosing
7670         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
7671
7672 2005-09-28  Martin Baulig  <martin@ximian.com>
7673
7674         * object.c (mono_runtime_invoke_array): Added support for
7675         MONO_TYPE_GENERICINST; fixes #75917.
7676
7677 2005-09-27  Martin Baulig  <martin@ximian.com>
7678
7679         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
7680         `k->byval_arg.type' to determine the actual type.
7681
7682         * loader.c (method_from_methodspec): Removed some hacks.
7683
7684 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
7685
7686         * class-internals.h (mono_field_is_deleted): Do the test for
7687         rtspecialname before we check the actual name of the field. This
7688         prevents us from dereferencing a pointer into the string table,
7689         saving us from accessing a few pages
7690
7691         * *.c: Replace the use of {Enter,Leave}CriticalSection with
7692         macros. This will allow a deadlock debugger to easily be plugged
7693         in.
7694
7695 2005-09-27  Martin Baulig  <martin@ximian.com>
7696
7697         * loader.c (method_from_methodspec): Create a "signature"
7698         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
7699
7700 2005-09-27  Martin Baulig  <martin@ximian.com>
7701
7702         * class.c
7703         (inflate_generic_class): Correctly set the new context's
7704         container.
7705
7706         * loader.c
7707         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
7708         instead of a `MonoGenericContext *'.
7709         (mono_method_signature_full): Take a `MonoGenericContainer *'
7710         instead of a `MonoGenericContext *'.
7711
7712         * metadata.c
7713         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
7714         instead of a `MonoGenericContext *'.
7715         (mono_metadata_parse_method_signature_full): Likewise.
7716
7717 2005-09-26  Martin Baulig  <martin@ximian.com>
7718
7719         * class.c
7720         (mono_class_from_generic_parameter): Set `klass->generic_container'
7721         (mono_class_from_generic_parameter): Likewise.
7722         (mono_bounded_array_class_get): We inherit the generic container
7723         from the element class.
7724
7725         * loader.c
7726         (find_method, find_method_in_class): Take a `MonoGenericContext *'
7727         argument rather than computing it here.
7728         (method_from_memberref): Correctly set the generic context before
7729         parsing the signature.  Fixes #75681.
7730
7731 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
7732
7733         * object.c (mono_class_has_special_static_fields): Fix warnings.
7734
7735 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7736
7737         * assembly.c: Add parse_public_key function, to
7738         par the public keys. Also added mono_assembly_name_parse_full,
7739         to define it the parsed key should be freed or not.
7740         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
7741         to parse a long format assembly name.
7742         * metadata-internals.h: Keep mono_assembly_name_parse_full as
7743         private, since calling it to preserve the key requires
7744         freeing it manually.
7745         
7746 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
7747
7748         * locales.c : removed HAVE_ICU part.
7749
7750 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
7751
7752         * object.c (mono_class_create_runtime_vtable): Avoid calling 
7753         field_is_special_static if the klass has no special static fields.
7754
7755         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
7756         (MonoCachedClassInfo): Likewise.
7757
7758         * object.c (mono_class_has_special_static_fields): New helper function.
7759
7760 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
7761
7762         * class.c (mono_class_create_from_typedef): Don't call 
7763         interfaces_from_typedef_full for enums.
7764         (mono_class_create_from_typedef): Compute the base types of enums directly
7765         without calling mono_class_setup_fields ().
7766         (mono_class_find_enum_basetype): New helper function.
7767
7768         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
7769         one place inside the string heap.
7770         
7771 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
7772
7773         * class.c: locking fixes, code cleanups, some docs added.
7774         Allocate some data structures in the image mempool.
7775
7776 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
7777
7778         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
7779         the example code.
7780         
7781 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
7782
7783         * class-internals.h, class.c, reflection.c: reduce memory taken by
7784         MonoClass.
7785
7786 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
7787
7788         * metadata.c, metadata.h, loader.h: documentation updates, code and
7789         API cleanups.
7790
7791 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
7792
7793         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
7794         the example code.
7795
7796         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
7797         page faults caused by the runtime while reading metadata.
7798
7799 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7800
7801         * socket-io.c: the field names were changed 3 months ago and no one
7802         realized until bug #76077 got filed!
7803
7804 2005-09-20  Martin Baulig  <martin@ximian.com>
7805
7806         * icall.c (assembly_icalls): Removed some unused debugger icalls.
7807
7808 2005-09-20  Martin Baulig  <martin@ximian.com>
7809
7810         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
7811         write the rank into the class entry.
7812
7813 2005-09-20  Martin Baulig  <martin@ximian.com>
7814
7815         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
7816
7817 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
7818
7819         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7820
7821         * icall.c (custom_attrs_defined_internal): New icall.
7822
7823         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
7824         function.
7825         (mono_custom_attrs_construct_by_type): New helper function.
7826
7827 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
7828
7829         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
7830         terminate the resulting string. Fixes #76123.
7831
7832 2005-09-16  Martin Baulig  <martin@ximian.com>
7833
7834         * mono-debug.c
7835         (mono_debug_add_method): Ignore inflated methods for the moment.
7836
7837 2005-09-14  Martin Baulig  <martin@ximian.com>
7838
7839         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
7840
7841 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
7842
7843         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
7844         return a success/failure indication.
7845         (mono_metadata_interfaces_from_typedef_full): Ditto.
7846         (get_constraints): Ditto.
7847
7848 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
7849
7850         * marshal.c (emit_marshal_array): Fix handling of null arrays.
7851         
7852         * marshal.c (emit_marshal_array): Add support for returning string
7853         arrays from delegates. Fixes #76063.
7854
7855         * marshal.c: Use the emit_ldloc/stloc macros where possible.
7856
7857 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
7858
7859         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
7860         icall.
7861
7862 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
7863
7864         * reflection.c icall.c: Fix after mono_get_exception_type_load
7865         signature change.
7866
7867         * assembly.c (mono_assembly_get_assemblyref): New helper function.
7868         (mono_assembly_load_reference): Use the new helper.
7869
7870         * class-internals.h (MonoLoaderError): New structure containing 
7871         information about type loading errors.
7872
7873         * class-internals.h loader.c: Add APIs to store per-thread loader
7874         error information.
7875
7876         * loader.c class.c: Set the loader error if needed.
7877
7878         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
7879
7880 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
7881
7882         * decimal.c: fixed to handle the broken ARM fp format.
7883
7884 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
7885
7886         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
7887         broken.
7888
7889 2005-09-06  Martin Baulig  <martin@ximian.com>
7890
7891         * domain.c (supported_runtimes): Added v2.0.50727.
7892
7893 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
7894
7895         * culture-info.h: reduce the size of some structures.
7896
7897 2005-09-05  Martin Baulig  <martin@ximian.com>
7898
7899         Reflect latest API changes in the August CTP.
7900
7901         * icall.c
7902         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
7903         ("MonoType.HasGenericArguments"): Removed.
7904         ("MonoMethod.BindGenericParameters"): Renamed to
7905         "MakeGenericMethod".
7906         ("MethodBuilder.BindGenericParameters"): Renamed to
7907         "MakeGenericMethod".    
7908
7909 2005-09-05  Martin Baulig  <martin@ximian.com>
7910
7911         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
7912
7913 2005-09-05  Martin Baulig  <martin@ximian.com>
7914
7915         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7916
7917         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
7918         generic_container is non-NULL.
7919
7920 2005-09-05  Martin Baulig  <martin@ximian.com>
7921
7922         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7923
7924         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
7925
7926 2005-08-29  Michal Moskal  <malekith@nemerle.org>
7927
7928         * reflection.c (encode_locals,
7929         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
7930         for large generic types.
7931
7932 2005-09-05  Martin Baulig  <martin@ximian.com>
7933
7934         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7935
7936         * class.c (mono_dup_array_type): New public method.
7937         (mono_metadata_signature_deep_dup): New public method.
7938         (dup_type): Correctly duplicate array and function types.
7939
7940 2005-09-05  Martin Baulig  <martin@ximian.com>
7941
7942         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7943
7944         * reflection.c (get_default_param_value_blobs): Handle generic types
7945         and generic methods.
7946
7947 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
7948
7949         * class.c: Fixed error reporting (method/class were inversed) for 
7950         inheritance demands.
7951         * security-manager.c|h: Added the AppDomain when calling the managed
7952         System.Security.SecurityManager.InheritanceDemand method.
7953
7954 2005-09-01  Raja R Harinath  <rharinath@novell.com>
7955
7956         * reflection.c (encode_marshal_blob): 'marshaltype' and
7957         'marshaltyperef' are alternate sources for the custom marshaler
7958         name.
7959
7960 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
7961
7962         * class.c: fix creation of array classes with rank == 1
7963         (patch by Ankit Jain <jankit@novell.com>).
7964
7965 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
7966
7967         * object.c: fix check for creating the bound data for arrays vs
7968         szarrays.
7969
7970 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7971
7972         * object.c: configuration file name is now based on the executable name,
7973         not the image name. Fixes bug #75931.
7974
7975 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
7976
7977         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
7978         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
7979
7980 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
7981
7982         * rand.c: Use wincrypt.h instead of WinCrypt.h.
7983
7984 2005-08-24  Ankit Jain  <jankit@novell.com>
7985             Raja R Harinath  <rharinath@novell.com>
7986
7987         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
7988           called by it recursively.
7989           (mono_class_init): Remove special case in pending_init handling, since it's
7990           superseded by the fix to mono_class_from_typeref.
7991
7992 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
7993
7994         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
7995         BROKEN_THREAD_START stuff.
7996
7997 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
7998
7999         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
8000         trampoline.
8001
8002         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
8003         
8004         * object.c (mono_delegate_ctor): Replace the original function address with
8005         a delegate trampoline.
8006
8007 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
8008
8009         * icall.c: add boolean argument to base64_to_byte_array and 
8010         InternalFromBase64String to control whether a whitespace-only string
8011         is allowed (or should casue a FormatException to be thrown). We need
8012         this as the behavior has changed between MS.NET 1.x and 2.0, and we
8013         to match the MS behaviour in both profiles.
8014         * appdomain.c: Bump corlib version.
8015
8016 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8017
8018         This patch implements a big portion of publisher policy
8019         support, used to bind assembly versions and redirect
8020         one assembly from version A to version B.
8021
8022         * assembly.c:
8023         New GSList loaded_assembly_bindings, for storing the cached
8024         assembly bindings.
8025         (assembly_binding_maps_name): New static function for checking if a 
8026         assembly binding information maps an assembly name.
8027         (mono_assembly_binding_info_free): New function for freeing
8028         assembly binding information resources.
8029         (get_publisher_policy_info): New static function for retrieving 
8030         assembly binding information from a MonoImage.
8031         (compare_versions): New static function for comparing an assembly
8032         binding information data and the version of an assembly name.
8033         (check_policy_versions): New static function for checking if an
8034         assembly binding info mapping an assembly name is valid for it.
8035         (mono_assembly_load_publisher_policy): New static function for
8036         loading the 'policy.major.minor.MyAssembly' image for an assembly
8037         with an assembly name 'aname'.
8038         (mono_assembly_bind_version): New static function for updating
8039         assembly redirection.
8040         (mono_assembly_apply_binding): New static function for applying
8041         assembly binding.
8042         (search_binding_loaded): New static function for searching 
8043         loaded assembly binding infos in the cache domain.
8044         (mono_assembly_load_full): Don't apply assembly binding for
8045         reflection only assemblies.
8046
8047         * metadata-internals.h: Add MonoAssemblyBindingInfo,
8048         which contains information about assembly binding. Also
8049         declare signature for mono_config_parse_publisher_policy ()
8050         function, used to retrieve pub policy info.
8051         
8052         * mono-config.c:
8053         (publisher_policy_start): New static function used to parse publisher 
8054         policy config files.
8055         (publisher_policy_parser): New static MonoParseHandler containing 
8056         the functions used when parsing config files.
8057         (mono_config_parse_publisher_policy): New function for parsing
8058         publisher policy files.
8059         
8060 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
8061
8062         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
8063
8064         * marshal.c (mono_delegate_free_ftnptr): Ditto.
8065
8066         * object.c (mono_get_addr_from_ftnptr): New helper function.
8067
8068         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
8069
8070         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8071
8072 2005-08-19  Dick Porter  <dick@ximian.com>
8073
8074         * threads.c, threads.h, appdomain.c, appdomain.h,
8075         profiler-private.h, monitor.c, object.c, object-internals.h,
8076         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
8077         store the thread ID, so it can hold a 64 bit value if needed.
8078
8079 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
8080
8081         * reflection.c (mono_reflection_create_dynamic_method): Store the
8082         handle class into the method references as well so ldtoken works in
8083         dynamic methods.
8084
8085         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
8086         types.
8087
8088 2005-08-19  Ankit Jain <jankit@novell.com>
8089
8090         Fix #75847.
8091         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
8092           here rather than using the method signature of a arbitrary function
8093           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
8094           two arguments.
8095           Hack done with Harinath.
8096
8097 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8098
8099         * threadpool.c: disable printing stack traces when we get a exception
8100         in a threadpool thread. I need to do more testing to figure out which
8101         cases actually print this. Fixes bug #75828.
8102
8103 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8104
8105         * icall.c: there might be ignored whitespace after the last '='. This
8106         fixes length computation and bug #75840.
8107
8108 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
8109
8110         * assembly.c (mono_assembly_load_full): Consider .exe extension as
8111         well. Fixes #75809.
8112
8113         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
8114         #75784.
8115         
8116         * reflection.c (create_custom_attr_data): Ditto.
8117
8118 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
8119
8120         * locales.c, culture-info.h : removed RegionLCIDMap.
8121         * culture-info-tables.h : regenerated.
8122
8123 2005-08-16  Martin Baulig  <martin@ximian.com>
8124
8125         * class.c (mono_type_get_name_recurse): Small fix.
8126
8127 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
8128
8129         * locales.c : indentation fixie.
8130
8131 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
8132
8133         * object-internals.h,
8134           locales.h,
8135           locales.c,
8136           culture-info.h,
8137           icall.c : added RegionInfo table support.
8138         * culture-info-table.h : regenerated for region support.
8139
8140 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
8141
8142         * reflection.c (resolve_object): handle all kinds of MonoMethod
8143         including generic ones
8144
8145 2005-08-12  Ankit Jain <jankit@novell.com>
8146
8147         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
8148           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
8149
8150 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
8151
8152         * process.c: Don't close a thread handle when it's NULL. This is a
8153         workaround for bug #75733.
8154
8155 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
8156
8157         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
8158
8159 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
8160
8161         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
8162
8163 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8164
8165         * threadpool.c: if a work item in the thread pool has a callback that
8166         catches a exception, don't propagate it after invoking the callback.
8167         Fixes bug #75336.
8168
8169 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
8170
8171         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
8172
8173         * class-internals.h (MonoCachedClassInfo): Add some new fields.
8174
8175         * class.c (mono_class_init): Load field info lazily in the AOT case.    
8176
8177         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
8178
8179 2005-08-03  Ankit Jain  <jankit@novell.com>
8180
8181         Fix #75683.
8182         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
8183           PInvoke calling convention is 0.
8184
8185 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
8186
8187         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
8188         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
8189
8190 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
8191
8192         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
8193         to handle threads not started by the GC (patch by Michael Meeks
8194         <michael.meeks@novell.com>).
8195
8196 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
8197
8198         * reflection.c: Make buffer used in emitting types larger for some
8199         big generic types (patch by Michal Moskal).
8200
8201 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
8202
8203         * mono-debug.c: Fix some (not all) alignment problems.
8204
8205 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8206
8207         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
8208         Invoke mono_image_load_from_data_full passing the refonly
8209         parameter.
8210
8211         * assembly.c
8212         (mono_assembly_open_from_bundle): Add the refonly argument, 
8213         in order to pass it to other methods it calls to.
8214         (do_mono_assembly_open): Add the refonly argument, in order 
8215         to pass it to other methods it calls to.
8216         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
8217         the refonly parameter to it.
8218
8219         * image.c: Add loaded_images_refonly_hash and
8220         loaded_images_refonly_guid_hash to cache the reflection
8221         only loaded images.
8222         (mono_images_init): Initialize the hash tables used for
8223         caching the reflection only images.
8224         (load_modules): Invoke mono_image_open_full passing the refonly
8225         parameter to load the modules the correct way.
8226         (build_guid_table): Add the refonly argument, to re-build the 
8227         correct hash table.
8228         (do_mono_image_open): Added the refonly argument, in order to
8229         define it for the loaded image.
8230         (mono_image_loaded_full): New function, which receives an
8231         additional parameter to look for the image in the refonly or
8232         non-refonly section.
8233         (mono_image_loaded): Updated, using mono_image_loaded_full.
8234         (mono_image_loaded_by_guid_full): The same case that happens
8235         with mono_image_loaded_full.
8236         (mono_image_loaded_by_guid): Likewise.
8237         (register_image): Use the ref_only variable inside MonoImage
8238         to decide in which hash table store the current image.
8239         (mono_image_open_from_data_full): Rename
8240         mono_image_open_from_data to mono_image_open_from_data_full,
8241         adding the refonly argument, to define the ref_only variable 
8242         inside MonoImage.
8243         (mono_image_open_from_data): Return 
8244         mono_image_open_from_data_full.
8245         (mono_image_open_full): Rename mono_image_open to
8246         mono_image_open_full, receiving the new refonly argument,
8247         to pass it to inner methods.
8248         (mono_pe_file_open): Update this function, to open
8249         a MonoImage as a non-refonly image.
8250         (mono_image_close): Use the refonly variable inside
8251         MonoImage to remove the image from the correct caches.
8252
8253         * image.h: Add the signatures of mono_image_open_full,
8254         mono_image_open_from_data_full, mono_image_loaded_full,
8255         mono_image_loaded_by_guid_full.
8256
8257         * metadata-internals.h: Add the ref_only field to 
8258         MonoImage.
8259         
8260 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8261
8262         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
8263         Fix the last behavior, which used to load the assemblies and
8264         extract MonoReflectionAssemblyName information, instead of
8265         extract it from the metadata tables. Needed for Reflection
8266         Only assemblies.
8267         
8268 2005-07-29  Martin Baulig  <martin@ximian.com>
8269
8270         * mono-debug-debugger.c
8271         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
8272         not initialized.
8273
8274         * mono-debug.c
8275         (mono_debug_address_from_il_offset): Check whether we have
8276         debugging support before attempting to take the lock.
8277         (mono_debug_source_location_from_address): Likewise.
8278         (mono_debug_source_location_from_il_offset): Likewise.
8279         (mono_debug_il_offset_from_address): Likewise.
8280         (mono_debug_address_from_il_offset): Likewise.
8281
8282 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
8283
8284         * class.c (mono_class_from_name_case): Add support for dynamic images.
8285         Fixes #75650.
8286
8287         * object.c (mono_class_compute_gc_descriptor): Add a workaround
8288         for #75479.
8289
8290 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
8291         
8292         * reflection.c (mono_method_get_object): Fix warning.
8293
8294 2005-07-28  Martin Baulig  <martin@ximian.com>
8295
8296         * mono-debug.c
8297         (mono_debug_add_wrapper): Also write the wrapper type.
8298
8299 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
8300
8301         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
8302         
8303         * class.c (mono_class_init): Avoid reading nested classes if the AOT
8304         data indicates the class has none.
8305
8306 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
8307
8308         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
8309         loader lock with the debugger lock. Prevents deadlocks for beagle.
8310
8311         Beagle can now run on an smp box for a weekend without any
8312         issues. Woohoo!
8313
8314 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
8315
8316         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
8317         in a module. Fixes #75629.
8318
8319 2005-07-26  Martin Baulig  <martin@ximian.com>
8320
8321         * mono-debug.c (mono_debug_add_wrapper): New static method.
8322         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
8323         interncall or a wrapper.
8324
8325         * mono-debug.h (MonoDebugWrapperData): New public typedef.
8326         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
8327         (MONO_DEBUGGER_VERSION): Bump to 51.
8328
8329         * mono-debug-debugger.c
8330         (mono_debugger_add_type): Removed this empty function.
8331         (mono_debugger_add_method): Likewise.
8332
8333 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
8334
8335         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
8336         before accessing method->slot.
8337
8338 2005-07-21  Jb Evain  <jbevain@gmail.com>
8339
8340         * reflection.c (method_encode_clauses/class): Handle filters clauses.
8341         Fixes #75010.
8342
8343 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
8344
8345         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
8346         #75587.
8347
8348 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
8349
8350         * image.h image.c: Add mono_image_get_guid () API function.
8351
8352 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
8353
8354         There were issues when multiple threads tried to load
8355         assemblies. A deadlock was created between assemblies_mutex and
8356         mono_domain_assemblies_lock. This fixes the issue by making the
8357         assembly ref counting be lock free. See bug 75586.
8358         
8359         * image.c (mono_image_close): The add ref function here was using
8360         Interlocked operations while the unref was using a mutex and a
8361         --. I don't think this was ever a bug that would be exposed in a
8362         non-pendantic way (ie, by an embedder doing a ref on one thread
8363         and an unref on another), but for the sake of correctness, this is
8364         now Interlocked.
8365
8366         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
8367         (mono_assembly_load_reference): Call mono_assembly_addref rather
8368         than touching the refcount ourselves.
8369         (mono_assembly_close): Use InterlockedDecrement to unref the
8370         assembly. Don't acquire the lock unless it is actually needed.
8371
8372 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
8373
8374         * class.c (mono_class_layout_fields): Fix calculation of has_references
8375         for generic types.
8376
8377 2005-07-12  Martin Baulig  <martin@ximian.com>
8378
8379         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8380
8381         * metadata.c
8382         (mono_type_hash): Provide better hashing for generic instances.
8383         (mono_generic_inst_hash): Improve hashing.
8384         (mono_generic_class_hash): Likewise.
8385
8386         * reflection.c (mymono_metadata_type_hash): Improve hashing for
8387         generic instances.
8388
8389 2005-07-12  Martin Baulig  <martin@ximian.com>
8390
8391         * reflection.c (mono_reflection_create_runtime_class): Remove the
8392         hack for generic type definitions and non-`Run' assemblies.
8393         (mono_reflection_bind_generic_parameters): Also use
8394         `klass->wastypebuilder' to check for TypeBuilders.
8395
8396 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
8397
8398         * class.c (mono_class_layout_fields): Fix calculation of has_references
8399         for generic types.
8400
8401         * class.c (inflate_generic_class): Fix a leak.
8402         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
8403         for generic types.
8404
8405 2005-07-11  Martin Baulig  <martin@ximian.com>
8406
8407         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
8408         on error.
8409
8410 2005-07-11  Martin Baulig  <martin@ximian.com>
8411
8412         * loader.c (find_method): Also lookup in
8413         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
8414
8415 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
8416
8417         * appdomain.c (mono_domain_unload): Don't free the error message
8418         before passing it to mono_get_exception_...
8419
8420         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
8421         
8422 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
8423
8424         * threads.c: try to better guess an available RT signal (bug #75387).
8425
8426 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
8427
8428         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
8429         and CACHE_OBJECT.
8430
8431 2005-07-07  Martin Baulig  <martin@ximian.com>
8432
8433         * class.c (mono_type_get_name_full): Return NULL for
8434         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
8435         fixes #75408.
8436
8437 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
8438
8439         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
8440         exit the appdomain as well being aborted.
8441
8442         * threadpool.c: Create all threadpool threads inside the root appdomain, and
8443         change back to the root domain after calling managed code. This enables
8444         appdomains using threadpools to be unloaded.
8445
8446 2005-07-07  Martin Baulig  <martin@ximian.com>
8447
8448         * class-internals.h
8449         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
8450         into `MonoDynamicGenericClass' since we only need it for dynamic
8451         types.
8452
8453         * reflection.c (mono_class_bind_generic_parameters): We don't need
8454         to compute the `parent' here.
8455
8456 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
8457
8458         * culture-info-table.h : regenerated.
8459
8460 2005-07-06  Martin Baulig  <martin@ximian.com>
8461
8462         * icall.c
8463         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
8464
8465         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
8466
8467 2005-07-06  Martin Baulig  <martin@ximian.com>
8468
8469         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
8470         we're doing a signature-only comparision; fixes #74945.
8471
8472 2005-07-06  Martin Baulig  <martin@ximian.com>
8473
8474         * class-internals.h (MonoGenericClass): Moved some things out into
8475         a new `MonoInflatedGenericClass' type.  
8476         (MonoInflatedGenericClass): New type; the `klass' of a
8477         `MonoGenericClass' is now computed lazyly in
8478         mono_get_inflated_generic_class().      
8479
8480         * class.c (mono_get_inflated_generic_class): New public function.
8481         (mono_class_inflate_generic_method): Removed the unused
8482         `MonoClass *' argument.
8483         (setup_generic_vtable): Don't call mono_get_inflated_method() on
8484         all the methods.
8485         (mono_class_create_generic): Make this static and merge it with
8486         mono_class_create_generic_2(); we're now called automatically from
8487         mono_get_inflated_generic_class().
8488
8489         * loader.c (mono_method_signature): Call
8490         mono_get_inflated_method() here.
8491
8492 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
8493
8494         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
8495         type of fields with RVA.
8496
8497         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
8498         for this pseudo class.
8499         (my_mono_class_from_generic_parameter): Likewise.
8500         (mono_class_init): Allow interfaces to have cctors.
8501
8502 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
8503
8504         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
8505         lazily for AOT methods.
8506
8507 2005-07-05  Martin Baulig  <martin@ximian.com>
8508
8509         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
8510         returns FALSE for a successful match, not TRUE.
8511
8512 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
8513
8514         * loader.c (mono_method_get_index): Optimize this a bit.
8515
8516 2005-07-04  Martin Baulig  <martin@ximian.com>
8517
8518         * class.c
8519         (class_compute_field_layout): Move the check for generic type
8520         definitions into mono_class_layout_fields().  Fixes #74684.
8521         (mono_class_from_generic_parameter): Correctly compute
8522         `klass->parent'; fixes #75457.
8523
8524         * reflection.c (register_assembly, register_module): Make sure
8525         `domain->rejobject_hash' is already created.
8526
8527 2005-07-02  Martin Baulig  <martin@ximian.com>
8528
8529         * class-internals.h
8530         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
8531         `MonoDynamicGenericClass'.      
8532
8533 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
8534
8535         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
8536         returned by a field getter is null, since null is a valid value.
8537
8538 2005-07-01  Martin Baulig  <martin@ximian.com>
8539
8540         * reflection.c (mono_reflection_generic_class_initialize): Update
8541         the `dgclass->fields [i].parent' to the correct class.
8542         (mono_image_get_fieldref_token): Use the declaring type, not the
8543         reflected type.
8544
8545 2005-07-01  Martin Baulig  <martin@ximian.com>
8546
8547         * loader.c (find_method): Also look in the interfaces; fixes #75429.
8548
8549 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
8550
8551         * threads.c (thread_cleanup): assert that thread != NULL
8552         (wait_for_tids_or_state_change): We were using the wrong variable
8553         when accessing wait->threads. `i' was always out of the bounds of
8554         the array.
8555
8556 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8557
8558         * loader.c: map user32 and kernel32 to libMonoSupportW
8559
8560 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
8561
8562         * appdomain.c (unload_thread_main): Mark this as WINAPI.
8563
8564 2005-06-28  Martin Baulig  <martin@ximian.com>
8565
8566         * loader.c (method_from_methodspec): Fix #75334.
8567
8568 2005-06-28  Martin Baulig  <martin@ximian.com>
8569
8570         Fix #74953 - Arrays now implement the generic IList<T> interface
8571         on the 2.0 platform.
8572
8573         * class-internals.h (MonoDefaults): Added `generic_array_class'.
8574
8575         * reflection.c (mono_class_bind_generic_parameters): New public
8576         function; similar to mono_reflection_bind_generic_parameters(),
8577         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
8578
8579         * domain.c (mono_init_internal): Try to initialize.
8580         `mono_defaults.generic_array_class' here; this'll only succeed if
8581         we're using the 2.0 corlib.
8582
8583         * icall.c
8584         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
8585         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
8586         (mono_lookup_internal_call): Added support for nested classes.
8587
8588         * loader.c
8589         (mono_get_method_from_token): Set `result->signature->pinvoke' if
8590         we're an interncall and have generic arguments.
8591
8592         * class.c
8593         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
8594         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
8595         instance of System.Array.InternalArray<T> for arrays, so they
8596         implement the generic IList<T> interface.
8597
8598 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
8599
8600         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
8601         (chastamar@yahoo.com). Fixes #75374.    
8602
8603 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
8604
8605         * culture-info-table.h: regenerated.
8606
8607 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8608
8609         * icall.c: handle spaces correctly for base64 strings.
8610
8611 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
8612
8613         * *.c: Kill some warnings.
8614
8615 2005-06-23  Duncan Mak  <duncan@novell.com>
8616
8617         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
8618         that this builds on Solaris 10 (x86).
8619
8620 2005-06-23  Martin Baulig  <martin@ximian.com>
8621
8622         * class.c
8623         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
8624         generic type definitions.
8625
8626 2005-06-23  Martin Baulig  <martin@ximian.com>
8627
8628         Fix #75331.
8629
8630         * metadata.c (mono_class_get_overrides): Renamed to
8631         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
8632         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
8633         pass it to mono_get_method_full().
8634
8635 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
8636
8637         * reflection.c (mono_reflection_create_runtime_class): take the
8638         mono_domain_lock in this method. Prevents deadlocks
8639
8640 2005-06-22  Martin Baulig  <martin@ximian.com>
8641
8642         * loader.c (method_from_methodspec): Fix #75330.
8643
8644 2005-06-22  Martin Baulig  <martin@ximian.com>
8645
8646         * reflection.c (type_get_qualified_name): Use
8647         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
8648         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
8649         argument; use it if we don't have an assembly name.
8650
8651 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
8652
8653         * object.c: In mono_message_init, set "copy out" flag for in
8654         parameters with the [Out] flag.
8655
8656 2005-06-21  Martin Baulig  <martin@ximian.com>
8657
8658         * class.c
8659         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
8660         and MONO_TYPE_PTR.
8661
8662 2005-06-21  Martin Baulig  <martin@ximian.com>
8663
8664         * class.c (mono_class_init): Don't initialize `class->fields' for
8665         generic instances since they're initialized again in
8666         compute_field_layout(). 
8667         (compute_field_layout): Set the field's `generic_info' here; fix
8668         #75320. 
8669
8670 2005-06-21  Martin Baulig  <martin@ximian.com>
8671
8672         * class-internals.h
8673         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
8674
8675         * metadata.c (mono_metadata_generic_method_equal): Also
8676         distinguish the `generic_class'; fixes #75334.
8677
8678 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8679
8680         * domain.c:
8681         * appdomain.c:
8682         * domain-internals.h:
8683         * reflection.c: 'domain_assemblies' field is now protected by its own
8684         lock. Don't call into managed code to run the AssemblyLoad event if we
8685         now there are no registered delegates for it.
8686
8687 2005-06-20  Martin Baulig  <martin@ximian.com>
8688
8689         * class.c (mono_class_is_assignable_from): Use a custom version of
8690         mono_class_has_parent() to make things work for generic instances;
8691         fix #75300.
8692
8693 2005-06-20  Martin Baulig  <martin@ximian.com>
8694
8695         * loader.c (method_from_methodspec): Apply a patch from
8696         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
8697
8698 2005-06-20  Martin Baulig  <martin@ximian.com>
8699
8700         * class.c (mono_class_init): Reverted Zoltan's last change; it
8701         breaks generics.
8702
8703 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
8704
8705         * threads.c (wait_for_tids_or_state_change): Add missing locking.
8706
8707 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8708
8709         * socket-io.c: fix the index in the socket array for writable/error
8710         sockets. Fixes bug #75306.
8711
8712 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
8713
8714         * class.c (mono_class_init): Allow interfaces to have static ctors.
8715
8716 2005-06-17  Martin Baulig  <martin@ximian.com>
8717
8718         * loader.c (method_from_methodspec): Use `context->container' when
8719         parsing the `gmethod->inst'.
8720
8721 2005-06-17  Martin Baulig  <martin@ximian.com>
8722
8723         * class.c (mono_type_get_name_recurse): Don't add the assembly
8724         name for type arguments.
8725
8726 2005-06-15  Martin Baulig  <martin@ximian.com>
8727
8728         * reflection.c (mono_image_get_inflated_method_token): Encode
8729         correct klass; fixes #75260.
8730
8731 2005-06-13 Michal Moskal <malekith@nemerle.org>
8732
8733         * icall.c: Make GetCorrespondingMethod/Constructor take
8734         MonoReflectionMethod method not MonoMethod. Removed
8735         MonoType.GetCorrespondingField, and make
8736         MonoGenericType.GetCorrespondingField take name not
8737         MonoClassField.
8738
8739 2005-06-13  Michal Moskal <malekith@nemerle.org>
8740
8741         * reflection.c (field_encode_signature, encode_locals):
8742          Make sizes of buffers for types larger (for big generic types).
8743          (create_generic_typespec,
8744          mono_reflection_sighelper_get_signature_local,
8745          mono_reflection_sighelper_get_signature_field):
8746          Add asserts for too small buffers.
8747
8748 2005-06-15  Martin Baulig  <martin@ximian.com>
8749
8750         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
8751         if our parent is not a dynamic type.
8752
8753 2005-06-15  Martin Baulig  <martin@ximian.com>
8754
8755         * class-internals.h (MonoTypeNameFormat): New enum.
8756
8757         * class.c
8758         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
8759         (mono_type_get_full_name): Removed.
8760         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
8761         argument instead of the boolean's.
8762
8763         * icall.c (ves_icall_System_MonoType_getFullName):
8764         Added `gboolean assembly_qualified'.    
8765
8766         * reflection.h
8767         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
8768
8769         * reflection.c (mono_reflection_parse_type): Parse the new type
8770         name format.
8771
8772 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8773
8774         * icall.c: no need to convert from utf16 to utf8 and then back again
8775         after the call to GetLogicalDrives.
8776
8777 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8778
8779         * icall.c: frombase64. Fix problems exposed by new tests.
8780
8781 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8782
8783         * icall.c: added internal calls for converting char [] and strings in
8784         base64 into byte [].
8785
8786 2005-06-10  Martin Baulig  <martin@ximian.com>
8787
8788         * class.c (mono_class_create_generic_2): Read the nested classes
8789         from the metadata rather than from `gklass->nested_classes' since
8790         `gklass' might not be initialized yet.
8791
8792 2005-06-09  Duncan Mak  <duncan@novell.com>
8793
8794         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
8795         all public headers. Fixes #74919.
8796
8797 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
8798
8799         * domain.c: The key for proxy_vtable_hash is now a pointer
8800         array. Added new GHashFunc and GCompareFunc functions for this.
8801
8802         * class.h: The list of interfaces in MonoRemoteClass is known in
8803         advance and can't grow (we create a new MonoRemoteClass if needed),
8804         so now the interface array can be allocated together with
8805         MonoRemoteClass.
8806         
8807         * object.c: Added a new method create_remote_class_key.
8808         Fixed mono_remote_class so it does not depend on
8809         mono_upgrade_remote_class.
8810         Removed extend_interface_array.
8811         Added new method clone_remote_class(), which makes a copy of a remote
8812         class and adds a new interface or class to it.
8813         mono_upgrade_remote_class() now creates a new remote class (or gets
8814         it from the cache) if an vtable upgrade is needed. In this way
8815         we make sure that other objects sharing the same remote class
8816         don't get the new vtable with unwanted interfaces.
8817         
8818         * object-internals.h:
8819         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
8820         
8821         * marshal.c: Track changes in mono_upgrade_remote_class().
8822
8823 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
8824         * icall.c: Add runtime methods for obtaining members of inflated
8825         class, which were created from supplied non-inflated members. It
8826         is used in internal Get{Method,Constructor,Field} methods in
8827         System.Type
8828
8829 2005-06-09  Martin Baulig  <martin@ximian.com>
8830
8831         * reflection.c
8832         (mono_reflection_bind_generic_method_parameters): Fix #75169.
8833
8834 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8835         * reflection.c (mono_image_basic_init): Define
8836         Version in MonoDynamicAssembly. 
8837         
8838 2005-06-08  Martin Baulig  <martin@ximian.com>
8839
8840         Fix #75136.
8841
8842         * loader.c
8843         (mono_method_signature_full): New public method; takes a
8844         `MonoGenericContext *'.
8845         (find_method): Use mono_method_signature_full() and pass the
8846         klass'es context to it.
8847
8848         * class.c (mono_class_is_inflated_method): Use
8849         mono_method_signature_full() and pass the context to it.
8850
8851 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
8852
8853         * object.c: add proper locking in mono_remote_class_vtable(),
8854         fixes possible memory corruption.
8855
8856 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
8857
8858         * marshal.c (mono_remoting_marshal_init): set
8859         initialized after initialization.
8860
8861 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8862
8863         * locales.c : hush.
8864
8865 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
8866
8867         * object.c (extend_interface_array): fix really silly
8868         memory corrupting / comparison bug.
8869
8870 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8871
8872         * reflection.c: Functions added to support the creation
8873         of CustomAttributeData, which includes Attribute data
8874         used by ReflectionOnly methods.
8875
8876         * reflection.h:  mono_reflection_get_custom_attrs_data and
8877          mono_custom_attrs_data_construct added (functions exposed).
8878
8879          * icall.c: Added mono_reflection_get_custom_attrs_data
8880          as icall.
8881         
8882 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
8883
8884         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
8885         lupus's request.
8886
8887 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
8888
8889         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
8890
8891         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
8892         dynamic DllImportAttribute.
8893
8894         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
8895         dynamic DllImportAttribute.
8896
8897         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
8898         Fixes #75162.
8899
8900 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8901
8902         * threads.c: avoid segfault when an unstarted thread is aborted.
8903
8904 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
8905
8906         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
8907         Returns the name and version of the runtime for reporting.
8908
8909 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8910
8911         * appdomain.c: bump corlib version.
8912         * object-internals.h: new field in MonoReflectionAssembly.
8913
8914 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8915
8916         * object-internals.h: Carlos forgot to add this field.
8917
8918 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8919
8920         * icall.c: Added create_version to create instances
8921         of Version of MonoReflectionAssemblyName. This change helps
8922         the AssemblyName tests to keep running fine.
8923         
8924 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
8925   
8926         * object.c (mono_method_return_message_restore): A somehow less
8927         intrusive fix for #75138.
8928
8929 2005-06-03  Raja R Harinath  <rharinath@novell.com>
8930
8931         * object.c (mono_method_return_message_restore): Fix computation
8932         of expected number of out args.
8933
8934 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
8935
8936         * reflection.c (mono_image_get_method_info): Fix the case when the
8937         charset is empty.
8938
8939 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
8940
8941         * object.c: Added missing null check in
8942           mono_method_return_message_restore.
8943
8944 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
8945
8946         * reflection.c (mono_image_get_method_info): Handle the case when
8947         dllentry is empty.
8948
8949 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
8950
8951         * object.c: When creating the vtable for a proxy, take into account
8952         all inherited interfaces, not only the ones registered in
8953         iclass->interfaces. This fixs bug #74996.
8954         Also, in mono_method_return_message_restore, verify that the array
8955         of out args has the expected lengh.
8956
8957 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8958
8959         * socket-io.c: update the timeout in Poll when the call is interrupte.
8960
8961 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8962
8963         * socket-io.c: support abort/suspend in Select_internal after last
8964         change.
8965
8966 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8967
8968         * threadpool.c: remove warning.
8969
8970 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8971
8972         * icall.c:
8973         * socket-io.[ch]: Select_internal uses poll() now when available, thus
8974         removing the 1024 limit from select(). Runtime part of the fix for
8975         bug #71203.
8976
8977 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8978
8979         * socket-io.c: when resolving the addresses for the same
8980         host returned by gethostname(), get the local IPs from the interface
8981         list. Loopback addresses are discarded if the are interfaces up with
8982         non-loopback ones. Fixes bug #63265.
8983
8984 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
8985
8986         * appdomain.c, verify.c, object-internals.h, reflection.c:
8987         bumped corlib number to 36, and added new extra_flags field
8988         to ReflectionMethodBuilder and friends.  Fixes #75060.
8989
8990 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
8991
8992         * gc.c: register a new weak link only if the object is non-null
8993         (fixes bug#75047).
8994
8995 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8996
8997         * culture-info.h : short time pattern too.
8998
8999 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9000
9001         * culture-info.h : expand long time pattern string length.
9002
9003 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9004
9005         * culture-info-table.h : update (more French date format; #72788).
9006
9007 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
9008
9009         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
9010         the method is static. Fixes #75029.
9011
9012 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
9013
9014         * reflection.c: Update the table_idx field of method builders after
9015         saving the module, since it can change. This is a workaround for
9016         bug #74914. 
9017
9018 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9019
9020         * culture-info-table.h : update (additional French date format).
9021
9022 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
9023
9024         * icall.c (ves_icall_type_Equals): Revert last change.
9025         
9026         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
9027
9028         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
9029
9030 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
9031
9032         * class-internals.h: Added executioncontext_class field to 
9033         MonoDefaults structure.
9034         * domain.c: Cache System.Threading.ExecutionContext class in 
9035         mono_defaults.
9036         * object.c: Capture the ExecutionContext for asynchroneous calls in
9037          mono_async_result_new.
9038         * object-internals.h: Added execution_context and original_context 
9039         fields to MonoAsyncResult. Added execution_context to MonoThread.
9040         * security-manager.c|.h: Added mono_get_context_capture_method to 
9041         return the capture method (if required by the security manager or by
9042         the framework version used).
9043         * threadpool.c: Apply capture (if present) ExecutionContext in 
9044         mono_async_invoke and revert to original context after it completes.
9045
9046 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
9047
9048         * culture-info-table.h : updated (real hacky solution for zh-CHT).
9049
9050 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
9051
9052         * culture-info-table.h : zh-CHT related workaround.
9053
9054 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
9055
9056         * marshal.c (emit_marshal_custom): Add some error checking and call the
9057         methods in the ICustomMarshaler interface. Fixes #74875.
9058         
9059         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
9060         native->managed wrappers.
9061
9062 2005-05-12  Martin Baulig  <martin@ximian.com>
9063
9064         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
9065         here and use the loader lock.
9066
9067         * mono-debug.c: Properly lock when the debugger is not attached.
9068         (mono_debug_init): Release the initial lock if we're not running
9069         in the debugger.
9070
9071 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
9072
9073         * marshal.c (emit_marshal_custom): Pass through NULL values without
9074         calling the custom marshalling routines.
9075
9076         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
9077         conversion in structures. Fixes #74882.
9078
9079 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
9080
9081         * culture-info-table.h : zh-* cultures were missing.
9082
9083 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
9084
9085         * threads.c: Added a new event background_change_event which is signaled
9086         when a thread changes its background mode.
9087         Moved here several checks previously done in managed code. The checks
9088         require the thread lock, and using the thread lock in managed code
9089         can result in deadlocks.
9090         Merged Start_internal and Thread_internal into a single method. Now 
9091         Thread_internal does all work of creating and starting a thread.
9092         Added icalls for setting and getting the state of the object. Moved from
9093         managed code to avoid locking there.
9094         Added wait_for_tids_or_state_change() which is called instad of
9095         wait_for_tids when waiting for non-backround threads to end. This method
9096         will return if one of the threads ends or the background_change_event
9097         is signaled.
9098         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
9099         the background mode. This method signals the background_change_event
9100         event.
9101         * icall.c:
9102         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
9103         removed Start_internal.
9104         
9105 2005-05-11  Martin Baulig  <martin@ximian.com>
9106
9107         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
9108         to order of some fields to get proper alignment on 64-bit machines.
9109
9110 2005-05-11  Martin Baulig  <martin@ximian.com>
9111
9112         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
9113         changes as they're broken and completely fuck up the debugger.
9114
9115         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
9116
9117 2005-05-10  Martin Baulig  <martin@ximian.com>
9118
9119         * reflection.c (mono_reflection_generic_class_initialize): Don't
9120         call mono_class_setup_parent() here.
9121
9122 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9123
9124         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
9125         send/receive timeout use an integer in milliseconds. We were using a
9126         struct timeval.
9127
9128 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9129
9130         * locales.c:
9131         (internal_get_cultures): reserve the first slot of the array for the
9132         InvariantCulture, which will be filled in managed code.
9133
9134 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
9135
9136         * reflection.c (mono_image_fill_module_table): Initialize the
9137         GENERATION field as well.
9138
9139 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9140
9141         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
9142         Monitor.Enter on the object.
9143
9144 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
9145
9146         * threads.c: Enable the wait for running threads when exiting.
9147         * icall.c: Suspend all threads before exiting.
9148
9149 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
9150
9151         * assembly.c (mono_assembly_load_reference): Fix warning.
9152
9153 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9154
9155         * threadpool.c: changed the default number of threads per cpu. From now
9156         on, the default will be 20 + (5 * number of cpus) instead of 50.
9157
9158 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
9159
9160         * loader.c (mono_method_get_signature_full): Add locking here.
9161
9162 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
9163
9164         * appdomain.c: Moved methods for parsing and freeing assembly
9165         names to assembly.c.
9166         * assembly.c, domain-internals.h: Created public methods for parsing
9167         assembly names. Fixed mono_assembly_load_with_partial_name:
9168         it now finds the best match, taking into account the version,
9169         token and culture specified in the partial name. Also return
9170         the latest version if no version information is specified.
9171
9172 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
9173
9174         * threadpool.c: replace check for SocketAsyncCall class.
9175
9176 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9177
9178         * threadpool-internals.h:
9179         * Makefile.am: added threadpool-internals.h
9180
9181         * threadpool.c: call mono_unhandled_exception on exceptions not handled
9182         that happen in threadpool threads (tested on MS).
9183         (mono_thread_pool_remove_socket): new function that dispatch any pending
9184         AIO call on a socket that is closing. By now only epoll really needs it,
9185         as select/poll wake up when the socket closes.
9186
9187
9188         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
9189
9190 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
9191
9192         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
9193
9194 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
9195
9196         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
9197
9198 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
9199
9200         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
9201         has an abort request, convert it into a suspend request.
9202
9203 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
9204
9205         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
9206         warning for the usage of `UnmanagedFunctionPointerAttribute' which
9207         is not supported yet.
9208
9209 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9210
9211         * image.c: register assemblies loaded from data (bundles) in the loaded
9212         assemblies hash. Fixes bug #74772.
9213
9214 2005-04-29  Martin Baulig  <martin@ximian.com>
9215
9216         * class.c (mono_type_get_name_recurse): Update to the new naming
9217         schema from the latest .NET 2.x beta2.
9218         (mono_class_setup_vtable_general): If we're a generic instance,
9219         copy the vtable from our generic type definition and inflate all
9220         the methods in it.
9221
9222         * loader.c (find_method): Update to the new naming schema from the
9223         latest .NET 2.x beta2.
9224
9225 2005-04-29  Raja R Harinath  <harinath@gmail.com>
9226
9227         * class.c (mono_class_init): Add a mono_loader_unlock to the
9228         #74734 fix.
9229
9230 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
9231
9232         * icall.c (ves_icall_System_Environment_Exit): Remove the 
9233         suspend_all_other_threads () call for the time being, since it can hang.
9234
9235         * threads.c (mono_thread_manage): Similarly, disable the waiting for
9236         the background threads to exit, since it can also hang.
9237
9238         * class.c (mono_class_init): Applied patch from Ankit Jain 
9239         (radical@gmail.com). Avoid pending init errors when a field refers
9240         to a nested class using a typeref. Fixes #74734.
9241
9242         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
9243         this for dynamic modules.
9244
9245 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9246
9247         * threads.c: don't wait for threads that are in the process of aborting
9248         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
9249         and waiting for background threads to finish. This makes xsp and
9250         mod-mono-server exit without random length delays and/or hangs.
9251
9252 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9253
9254         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
9255
9256 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
9257
9258         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
9259         dynamic types to prevent infinite loops. Fixes #74727.
9260
9261         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
9262         ..._is_assignable_to.
9263
9264 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
9265
9266         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
9267
9268 2005-04-25  Martin Baulig  <martin@ximian.com>
9269
9270         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
9271
9272         * domain.c
9273         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
9274
9275         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
9276
9277         * reflection.c (build_compressed_metadata): Set metadata header
9278         version to 2.0.
9279
9280 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
9281
9282         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
9283         number into an integral and a decimal part. Fixes #70473.
9284
9285         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
9286
9287 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
9288
9289         * culture-info-table.h : reflected the latest locale-builder output.
9290
9291 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9292
9293         * threadpool.c: check for SuspendRequested too when deciding if
9294         mono_thread_interruption_checkpoint should be called.
9295
9296 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9297
9298         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
9299         * threads.c: remove interruption_mutex and use Interlocked instead. When
9300         suspending all the threads, wait for all the suspended events at once.
9301         If we're shutting down and get an APC that is going to be queued,
9302         call mono_thread_execute_interruption immediately, as the thread might
9303         be sleeping on a pthread condition or mutex.
9304
9305         * icall.c: call mono_runtime_set_shutting_down before suspending the
9306         threads.
9307
9308         Fixes bug #74693. And now xsp is happier when exiting.
9309
9310 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
9311
9312         * loader.c (mono_stack_walk): Fix #74690.
9313
9314 2005-04-22  Martin Baulig  <martin@ximian.com>
9315
9316         * mono-debug.h (MonoDebugMethodJitInfo): Added
9317         `MonoDebugMethodJitInfo *jit'.
9318
9319         * mono-debug.c (mono_debug_read_method): Cache the
9320         MonoDebugMethodJitInfo in `address->jit'.
9321         (mono_debug_free_method_jit_info): New public method.
9322
9323 2005-04-22  Martin Baulig  <martin@ximian.com>
9324
9325         * class.c (mono_class_is_assignable_from): Disallow
9326         type parameter -> interface.
9327
9328 2005-04-21  Dick Porter  <dick@ximian.com>
9329
9330         * threads.c (mono_thread_create): Turn an assertion into an error.
9331
9332 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
9333
9334         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
9335         
9336         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
9337         Fix some gcc 4.0 warnings.
9338
9339 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
9340
9341         * file-io.c: fix alt dir separator char on unix systems
9342         and cleanup (fixes bug #71214).
9343
9344 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
9345
9346         * marshal.c: Use CALLVIRT instead of CALL when dispatching
9347         a call to a remote domain, since the method may be an
9348         interface method in the client domain. This fixes bug #74192.
9349
9350 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9351
9352         * threadpool.c: recv/send are now performed before going back to managed
9353         code to save one transition.
9354
9355 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9356
9357         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
9358
9359         * metadata/threadpool.c: removed hack to workaround the bug above.
9360
9361         Fixes bug #74618.
9362
9363 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
9364
9365         * reflection.c reflection.h: Fix handling of parameter defaults in
9366         dynamic methods. Also fixes handling of parameter attributes.
9367         Fixes #74609.
9368
9369         * mono-debug.c (mono_debug_close_image): Fix warning.
9370
9371 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9372
9373         * socket-io.h: replaced old unused field with new 'blocking'.
9374         * threadpool.c: restore socket blocking state on windows(tm).
9375
9376 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
9377
9378         * icall.c: don't return the codebase in the AssemblyName[] returned by
9379         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
9380         * object-internals.h: Removed FIXME (fields were presents) and fixed
9381         versioncompat declaration.
9382
9383 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9384
9385         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
9386         not closed, so don't cleanup when it happens.
9387
9388 2005-04-13  Chris Toshok  <toshok@ximian.com>
9389
9390         * mono-debug-debugger.h: change prototype for
9391         mono_debugger_lookup_type.
9392
9393         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
9394         this function, although it should probably be named
9395         mono_debugger_init_type.
9396
9397 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9398
9399         * threadpool.c: fix non-AIO case.
9400
9401 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
9402
9403         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
9404         the built-in profiler to measure just JIT compilation times.
9405
9406 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9407
9408         * threadpool.c: the epollfd might be closed by another thread at
9409         any time, so ignore EBADF at treat it as a "we're closing" sign.
9410
9411 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9412
9413         * threadpool.c: release the semaphores with a count equals to the number
9414         of working threads in both IO and regular pools. Fixed typo that messed
9415         up the count of IO pool threads. Don't initialize the pipe handles if
9416         we're using epoll.
9417
9418 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9419
9420         * threadpool.c: some systems don't like a NULL when deleting the socket
9421         from epoll.
9422
9423 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9424
9425         * threadpool.c: fix semaphore allocation.
9426
9427 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9428
9429         * threadpool.c: added epoll() based implementation for asynchronous IO
9430         that is used instead of the default poll() when available.
9431         It can be disabled by setting MONO_DISABLE_AIO.
9432
9433 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9434
9435         * threadpool.c: windows needs 'closesocket' and instead of returning
9436         0 when the stream is closed while in select, it returns -1. Fixes bug
9437         #74573.
9438
9439 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
9440
9441         * class.c (class_compute_field_layout): Fix the regression caused by
9442         the previous try.
9443
9444 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9445
9446         * threadpool.c: separate pool for socket async. IO.
9447         * threadpool.h: mono_max_worker_threads is not a global any more.
9448
9449 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
9450
9451         * class.c (class_compute_field_layout): Fix #74549.
9452
9453 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9454
9455         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
9456         use 2 connected sockets instead.
9457
9458 2005-04-08  Miguel de Icaza  <miguel@novell.com>
9459
9460         * mono-config.c: Add new entry point for mkbundle
9461         mono_config_parse_memory. 
9462
9463 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9464
9465         * threadpool.c: removed another unused function.
9466
9467 2005-04-08  Ankit Jain  <radical@corewars.org>
9468
9469         * reflection.c (get_default_param_value_blobs): Add 'types'
9470         parameter to get the types encoded in the constant table.
9471         (mono_param_get_objects): Use the type from the constant table,
9472         not the type of the parameter, when creating default values.
9473         Handle null default values correctly.
9474
9475 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9476
9477         * file-io.c:
9478         * file-io.h:
9479         * threadpool.c:
9480         * threadpool.h:
9481         * icall.c:
9482         * socket-io.c: removed dead code for async IO.
9483
9484 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9485
9486         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
9487
9488         * threadpool.c: intercept socket async. calls and pass them to a thread
9489         that is polling and dispatching the job items to the threadpool as
9490         socket become ready. Fixes bugs #71217, #71933.
9491
9492         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
9493         between char and short/ushort arrays.
9494
9495         * socket-io.c: remove dead code.
9496
9497 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
9498
9499         * locales.c,
9500           icall.c : removed InternalToUpper_Comp() and
9501           InternalToLower_Comp().
9502
9503 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
9504
9505         * char-conversions.h : The tables were incorrectly generated. Should
9506           be generated against invariant culture.
9507
9508 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
9509
9510         * object.c (mono_runtime_invoke_array): Fix return value when 
9511         passing pre-created valuetype objects to ctors.
9512
9513         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
9514         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
9515         Fixes #74338.
9516
9517 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
9518
9519         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
9520         only used with --security and hides the wrong corlib version error.
9521
9522 2005-03-30  Joshua Tauberer  <tauberer@for.net>
9523
9524         * class.c: Changed mono_class_name_from_token so that types
9525         outside of a namespace don't have an initial period.  Improved
9526         the g_warning message used in _mono_class_get when loading
9527         fails.
9528         * assembly.c: In mono_assembly_load_reference, when an assembly
9529         can't be found, "No such file or directory" is misleading and
9530         unhelpful because a few paths were checked for the presence of
9531         the assembly.  When that happens (ENOENT), display a nicer
9532         message indicating the directories that were searched.  In all
9533         cases, the warning is made easier to read for non-hackers.
9534
9535 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
9536
9537         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
9538         project/solution.
9539         * appdomain.h|domain.c: Removed inline from functions.
9540         * appdomain.c: Reduced warnings when compiling on windows.
9541         * icall.c: Fixed output_debug declaration to gunichar2*.
9542         * mono-config.c: Reduced warnings when compiling on windows.
9543         * rand.c: Added missing "windows.h". Added missing return value.
9544         * rawbuffer.c: Added missing winsock2.h for windows.
9545         * sysmath.h: Added mono-compiler.h header to allow/ease 
9546         compilation with non-GCC compilers.
9547         * threads.c: Fixed declarations to compile with VS.NET C compiler.
9548         Removed cast warnings.
9549
9550         Adapted from the work of J Lothian (for VC6).
9551
9552 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
9553
9554         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
9555         from default_path.
9556
9557 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
9558
9559         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
9560         the 2.0 profile.
9561
9562 2005-03-27  Raja R Harinath  <harinath@gmail.com>
9563
9564         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
9565         has to be in $(exec_prefix).  $(prefix) is for arch-independent
9566         stuff, and it would probably use $(prefix)/share rather than
9567         $(prefix)/lib.
9568
9569 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9570
9571         * console-io.c: added 2 includes that might be missing.
9572
9573 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
9574
9575         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
9576         profile.
9577
9578         * reflection.c (create_custom_attr): Allocate the params array using
9579         alloca so it gets GC tracking.
9580
9581 2005-03-23  Chris Toshok  <toshok@ximian.com>
9582
9583         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
9584         out some spew.
9585
9586 2005-03-24  Raja R Harinath  <rharinath@novell.com>
9587
9588         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
9589         changes to pick up any changes in prefix, etc.
9590
9591 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
9592
9593         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
9594         
9595         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
9596         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
9597
9598 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
9599
9600         * class-internals.h object-internals.h class.c reflection.c: Extend the
9601         mono_lookup_dynamic_token () function to return the class of the
9602         token as well. 
9603
9604         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
9605         well. Fixes #73848.
9606
9607 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
9608
9609         * security-manager.c: Skip inheritance checks for intra-corlib
9610         class inheritance and method overrides. This skips a lot of checks
9611         and (anyway) permissions cannot work until corlib is loaded.
9612
9613 2005-03-23  Martin Baulig  <martin@ximian.com>
9614
9615         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
9616         MONO_TYPE_GENERICINST.  
9617
9618 2005-03-23  Martin Baulig  <martin@ximian.com>
9619
9620         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
9621
9622 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9623
9624         * class.c: added locking comments to some functions.
9625         Cache the interface offsets arrays (saves about 20 KB
9626         of runtime memory in a typical app).
9627         Reduce the time overhead in mono_class_setup_supertypes ().
9628
9629 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
9630
9631         * icall.c: speedup and fix leaks in GetMethodsByName and
9632         GetPropertiesByName.
9633
9634 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9635
9636         * reflection.c: some locking fixes.
9637
9638 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9639
9640         * metadata.c: added missing break in case statement.
9641
9642 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
9643
9644         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
9645         typedbyref return values. Fixes #73941.
9646
9647 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
9648
9649         * security-manager.c|h: Added demandunmanaged method and 
9650         suppressunmanagedcodesecurity class to MonoSecurityManager.
9651         Renamed aptc class to allowpartiallytrustedcallers.
9652
9653 2005-03-17  Martin Baulig  <martin@ximian.com>
9654
9655         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
9656
9657 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9658
9659         * file-io.c: disabled file async. IO using aio_*. It uses the
9660         threadpool now. Workaround for bug #73718.
9661
9662 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9663
9664         * assembly.h, mono-config.c: added code to deal with bundled configs
9665         for bundled assemblies.
9666
9667 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
9668
9669         * *.c, private.h: cleanup, removing old private.h header file.
9670
9671 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
9672
9673         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
9674         and throw_on_unmappable_char attributes.
9675
9676 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
9677
9678         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
9679         _ProcessName_internal.
9680
9681 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
9682
9683         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
9684         #73631.
9685
9686         * icall.c threads.c threads-types.h: Remove slothash icalls as they
9687         are no longer used.
9688
9689 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
9690
9691         * object.c (compute_class_bitmap): Add support for generics. Fixes
9692         #73527.
9693
9694 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
9695
9696         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
9697
9698 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9699
9700         * filewatcher.c: commented out the code for windows watcher, as we don't
9701         use it (we use the managed implementation instead).
9702
9703 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
9704
9705         * object-internals.h (MonoThread): Remove 'unused1' field.
9706
9707         * appdomain.c: Bump corlib version.
9708
9709         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
9710
9711         * reflection.c (mono_reflection_create_runtime_class): Remove the
9712         AssemblyBuilder.Save optimization since it causes too many problems.
9713
9714 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
9715
9716         * exception.c|h: Added mono_get_exception_reflection_type_load to
9717         create a ReflectionTypeLoadException object.
9718         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
9719         to return NULL is a InheritanceDemand fails during reflection. Updated
9720         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
9721         ReflectionTypeLoadException if an InheritanceDemand fails during 
9722         reflection. Added icall mapping for GetLinkDemandSecurity.
9723         * security-manager.c|h: Added ves_icall_System_Security_
9724         SecurityManager_GetLinkDemandSecurity internal call to return the
9725         class and methods permissions set for a LinkDemand. Removed unused
9726         fields in MonoSecurityManager.
9727
9728 2005-03-10  Martin Baulig  <martin@ximian.com>
9729
9730         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
9731         it's a generic instance.
9732
9733 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
9734
9735         * reflection.c (mono_get_object_from_blob): Applied patch from
9736         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
9737
9738         * class.c (mono_class_is_assignable_from): Another try at fixing 
9739         #73469 without breaking anything.
9740
9741 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
9742
9743         * class.c: (mono_class_is_assignable_from): Revert the last changes
9744         since they don't work with generics.
9745         
9746         * class.c (mono_class_is_assignable_from): Fix build bustage.
9747
9748         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
9749         the managed IsAssignableFrom method. Fixes #73469.
9750
9751         * reflection.c (mono_reflection_call_is_assignable_from): New helper
9752         function.
9753
9754 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
9755
9756         * object.c (mono_load_remote_field_new): Fix returning uninitialized
9757         memory when the remoting callback does not sets the out arguments.
9758         Fixes #73007.
9759
9760         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
9761         by mistake.
9762
9763         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
9764
9765         * object-internals.h (MonoStackFrame): Sync with managed object layout.
9766
9767         * appdomain.c: Bump corlib version.
9768
9769 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
9770
9771         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
9772         function.
9773
9774         * threads.c (mono_thread_attach): Detect threads which are not started
9775         by the GC pthread wrappers.
9776
9777 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
9778
9779         * icall.c: Added new icall for RNG.
9780         * rand.c|h: Added new icall to open the RNG. This allows to share a 
9781         single handle on Linux to access /dev/urandom and fix #73183.
9782
9783 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
9784
9785         * object.c: setting the new vtable in a transparent proxy object must
9786         not change the GC descriptor.
9787
9788 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9789
9790         * object.c: fixed compilation without GCJ support.
9791         * reflection.c: for runtime-created types ensure klass->has_references
9792         is correct (bug #73215).
9793
9794 2005-03-02  Martin Baulig  <martin@ximian.com>
9795
9796         * class.c (mono_class_is_assignable_from): Make this work if
9797         `oklass' is a generic instance; fixes #72831.
9798
9799 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
9800
9801         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
9802         with hasthis set.
9803         
9804         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
9805
9806         * marshal.c: Reorganize native->managed marshalling code to also use
9807         the emit_marshal_... functions.
9808
9809 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
9810
9811         * object.c: typed allocs have issues with bitmap sizes > 30,
9812         so check for max_set >= 30.
9813
9814 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
9815
9816         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
9817         managed code. Fixes #73012.
9818
9819         * metadata.h (MonoMarshalSpec): Add elem_mult field.
9820
9821         * metadata.c reflection.c: Load/Emit elem_mult as well.
9822         
9823         * metadata.h (MonoMarshalSpec): Add comment.
9824
9825         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
9826
9827         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
9828         num_elem to -1 if not given.
9829
9830         * object-internals.h (MonoReflectionMarshal): Add has_size field.
9831
9832         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
9833         given values.
9834
9835 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
9836
9837         * null-gc.c (mono_gc_free_fixed): Was not compilable.
9838
9839 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
9840
9841         * reflection.c (encode_marshal_blob): Encode param_num field as well.
9842
9843         * object-internals.h (MonoReflectionMarshal): Add param_num field.
9844
9845 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
9846
9847         * object.c: generalized the reference bitmap creation
9848         and added hooks for the new GC.
9849         * class-internals.c: removed the gc_bitmap field from MonoClass.
9850
9851 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9852
9853         * domain.c: help the compiler to produce better code
9854         in mono_jit_info_table_find ().
9855
9856 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
9857
9858         * object.c: make all allocations look typed.
9859
9860 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9861
9862         * socket-io.c: load Mono.Posix if it's not loaded already
9863         (fixes bug#73033).
9864
9865 2005-02-24  Martin Baulig  <martin@ximian.com>
9866
9867         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
9868         * reflection.c (dup_type): Likewise.
9869
9870 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
9871
9872         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
9873         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
9874
9875 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9876
9877         * domain.c, threads.c, object-internals.h: make the critical thread
9878         local vars use the fast access mode (even when we're compiled in
9879         a lib). Provide accessors to be used by the jit during codegen.
9880
9881 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9882
9883         * appdomain.c: Changed hook functios behavior to include
9884         support for the reflection only assemblies. Some icalls were changed
9885         to support the mentioned assemblies too. Signatures of static methods
9886         try_assembly_resolve and real_load now have an additional parameter:
9887         refonly.
9888
9889         * assembly.c: General changes to mono_assembly_ methods to support
9890         reflection only api. Functions mono_assembly_open, mono_assembly_load,
9891         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
9892         suffix, to support an additional gbool parameter to specify whether
9893         the assembli is reflection only or not. Created some new hook functions 
9894         to add support for reflection only assemblies. Signatures of static 
9895         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
9896         have now an additional parameter: refonly.
9897
9898         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
9899         indicating whether the assembly is reflection only or not.
9900
9901         * exception.c: Add mono_get_exception_invalid_operation.
9902
9903         * icall.c: Throw an InvalidOperationException when trying to invoke
9904         a property/method/event, or trying to set/get the value of a field.
9905         Also add an icall to retrieve the ref_only flag to the
9906         MonoReflectionAssembly.
9907
9908 2005-02-23  Chris Toshok  <toshok@ximian.com>
9909
9910         Part of fix for #72827.
9911         * mono-debug.c (mono_debug_add_method): add lexical block data to
9912         the info we write.  Kind of a hack at the moment - we copy the
9913         lexical block info from the MonoDebugMethodInfo to the
9914         MonoDebugMethodJitInfo here, before writing it.
9915         (mono_debug_read_method): read the lexical block info.
9916
9917         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
9918
9919         * debug-mono-symfile.h: add lexical block support.
9920
9921         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
9922         support.
9923
9924 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
9925
9926         * loader.c (mono_lookup_pinvoke_call): Fix warning.
9927
9928         * object.c (mono_runtime_free_method): Call mono_free_method () and
9929         put the TODOs there.
9930
9931         * loader.c (mono_free_method): Free up most memory allocated for 
9932         dynamic methods.
9933
9934 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9935
9936         * reflection.c: properly flag a Type argument to a
9937         named custom attr value (bug #72248).
9938
9939 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9940
9941         * reflection.c: reduce code duplication in named custom
9942         attribute encoding.
9943
9944 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
9945
9946         * reflection.c: properly encode custom attrs of type object
9947         (bug #72649).
9948
9949 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
9950
9951         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
9952
9953 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
9954
9955         * socket-io.c: load System.dll if it's not loaded already
9956         (bug #72850 and #70477).
9957
9958 2005-02-21  Martin Baulig  <martin@ximian.com>
9959
9960         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
9961         generic instances.
9962
9963 2005-02-21  Martin Baulig  <martin@ximian.com>
9964
9965         * reflection.c (mono_image_build_metadata): We also need to
9966         "fixup" the MethodImpl table after we computed the final method
9967         indices.  Call fixup_methodimpl() to do that.
9968         (fixup_methodimpl): New private method.
9969
9970 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
9971
9972         * assembly.c: special case mscorlib.dll (bug#72536),
9973         patch from Carlos Alberto Cortez.
9974
9975 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
9976
9977         * threads-types.h threads.c: Fix build bustage.
9978
9979         * threads.c: Use a union for long<->double conversions.
9980
9981         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
9982         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
9983
9984         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
9985         containing the checkpoint call with NOT_TAKEN.
9986         
9987         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
9988         checkpoint before pushing the arguments, so they won't have to be
9989         spilled to stack.
9990
9991 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9992
9993         * domain.c, assembly.c, domain-internals.h: make some data
9994         const and relocation-free.
9995
9996 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
9997
9998         * object.c, appdomain.c, class-internals.h: introduce the
9999         MonoClassRuntimeInfo structure to hold the info needed to
10000         use a class at runtime. Made mono_class_vtable() lock-free
10001         for all the appdomains.
10002
10003 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
10004
10005         * metadata-internals.h, image.c: introduce a per-image mempool to
10006         be used for memory that has the same lifetime as the image.
10007
10008 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
10009
10010         * domain.c: In mono_init_internal(), instead of selecting the first
10011         runtime version supported by an executable, get a list of all
10012         supported versions and select the one for which an mscorlib exists
10013         (since even if the runtime supports a given version, it doesn't mean
10014         that the framework for that version is installed).
10015         Modified get_runtimes_from_exe to support this behavior.
10016         In supported_runtimes, added information about additional system
10017         assembly versions.
10018         
10019         * assembly.c: Added support for more than one system assembly version
10020         per runtime version. Updated the assembly list.
10021         In mono_assembly_remap_version, removed the initial version check,
10022         since we don't know to which version we need to compare until we
10023         get the version set on which the assembly is based.
10024         Moved the code for loading corlib into the new method
10025         mono_assembly_load_corlib(), so it can be used by the initialization
10026         code.
10027         
10028         * domain-internals.h: Updated data structures and added declaration
10029         for mono_assembly_load_corlib.
10030
10031 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
10032
10033         * reflection.c (resolve_object): Fix the creation of the signature in 
10034         the SignatureHelper case.
10035
10036         * assembly.c (mono_assembly_remap_version): Fix binary search.
10037         
10038 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
10039  
10040         * class.c: Added inheritance check when a method is overloaded (from a
10041         virtual method or when implementing an interface) and when a class is
10042         inherited. Added functions to set a failure for a class and to 
10043         retreive the exception from a failure.
10044         * class-internals.h: Added fields to MonoClass to keep the exception
10045         information status for inheritance (or other exceptions) to be thrown
10046         later (i.e. not at load time).
10047         * object.c: Throw the inheritance SecurityException when a type is to 
10048         be created with either class or method inheritance violations.
10049         * reflection.c|h: Fix when getting declsec from a class. Removed 
10050         unrequired code for class. Improved sanity in parameter naming.
10051         * security-manager.c|h: Added functions to check for class and method
10052         inheritance.
10053
10054 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
10055
10056         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
10057         and has_finalize in dynamic types as well.
10058
10059 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
10060
10061         * culture-info-table.h : fixed currency format for en-GB (and so on).
10062
10063 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
10064
10065         * gc.c: ensure the GC handles never have 0 as a value.
10066
10067 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
10068
10069         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
10070         a pointer to a struct to unmanaged code. Fixes #72625.
10071
10072 2005-02-16  Martin Baulig  <martin@ximian.com>
10073
10074         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
10075
10076 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
10077
10078         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
10079
10080 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
10081
10082         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
10083
10084         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
10085         UnmanagedFunctionPointerAttribute, use it for determining calling convention
10086         etc. Fixes #71471.
10087
10088         * reflection.c (mono_custom_attrs_get_attr): New helper function.
10089
10090         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
10091
10092 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
10093
10094         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
10095         changes to make the current context a field in MonoThread.
10096
10097 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
10098
10099         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
10100         the last change.
10101         
10102         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
10103         extracted from mono_marshal_get_native_wrapper.
10104
10105         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
10106         to create wrappers around native functions.
10107
10108         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
10109         delegates for arbitrary function pointers. Fixes #71472.
10110
10111 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
10112
10113         * threads.c: cleaned up the code a little.
10114
10115 2005-02-15  Martin Baulig  <martin@ximian.com>
10116
10117         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
10118         the data table.
10119
10120         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
10121         allocate larger chunks if needed.
10122
10123 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
10124
10125         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
10126         in by mistake.
10127
10128 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
10129
10130         * domain.c: keep the domains in an array and ensure the domain ids
10131         are kept small, so they can be used as indexes to domain-specific data
10132         with a small memory overhead.
10133
10134 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
10135
10136         * icall.c: Handle byref types in Type icalls. Fixes #72544.
10137
10138 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
10139
10140         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
10141
10142 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
10143
10144         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
10145
10146         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
10147         values.
10148
10149         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
10150         
10151 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
10152
10153         * domain-internals.h: add the hashtable here.
10154
10155         * class-internals.h: Remove `info' from MonoMethod
10156
10157         * domain.c: Add a new hashtable, jit_trampoline_hash
10158
10159 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
10160
10161         * object.c: don't set the value of static fields
10162         (fixes bug#72494).
10163
10164 2005-02-11  Martin Baulig  <martin@ximian.com>
10165
10166         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
10167         (mono_debug_add_method): Silently ignore the method if it's too big.
10168         (mono_debug_add_type): Likewise.
10169
10170 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
10171
10172         * threads.c, appdomain.c: remove #ifdefs from the code.
10173
10174 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
10175
10176         * metadata-internals.h: Added flags to MonoAssembly to cache the most
10177         common security informations. This allows us to stay in unmanaged code
10178         when doing LinkDemand and it's special cases (except for the first 
10179         time for initialization). The flags a very much used with --security.
10180         * reflection.c|h: Added code to get declarative security attributes 
10181         for LinkDemand and InheritanceDemand. This required to refactor the
10182         existing code for Demand.
10183         * security-manager.c|h: Added new method fields for the special cases
10184         of LinkDemand.
10185
10186 2005-02-10  Martin Baulig  <martin@ximian.com>
10187
10188         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
10189         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
10190
10191 2005-02-10  Martin Baulig  <martin@ximian.com>
10192
10193         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
10194         debugging code; this is almost a complete rewrite.
10195
10196         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
10197
10198 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10199
10200         * domain.c, object.h: expose mono_string_equal () and 
10201         mono_string_hash ().
10202         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
10203         it's implemented in managed code.
10204
10205 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10206
10207         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
10208         lo leak objects between appdomains.
10209
10210 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10211
10212         * assembly.c: old compilers compilation fix from 
10213         robertj@gmx.net (Robert Jordan).
10214
10215 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
10216
10217         * class-internals.h: Little reminder for the future.
10218
10219         * debug-helpers.c: Fix up wrapper_type_names
10220
10221 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10222
10223         * image.c, metadata-internals.h: when loading an image from a file,
10224         mmap all of it and use the same codepaths as when using a
10225         in-memory image: the code is simpler and we use less memory
10226         (both writable and readonly).
10227
10228 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
10229
10230         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
10231         API to alloc runtime data structures that need to be tracked by the
10232         GC and contain pointers.
10233         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
10234         make the code more readable and eventually use a different GC.
10235
10236 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
10237
10238         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
10239         for out arguments.
10240         
10241 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
10242
10243         * object.c: In release_type_locks(), don't release the cctor lock
10244         if it has already been released. This fixes a crash in the
10245         thread5 test.
10246
10247 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10248
10249         * gc.c, marshal.c, icall.c: register a delegate for finalization
10250         only when the native function pointer has been allocated for it.
10251
10252 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
10253
10254         * object.c: cleaned up some code, allocate objects that are
10255         pointer free with the atomic malloc variant. Allocate memory
10256         for static data from the mempool if it's pointer-free.
10257         Allocate the bounds array at the end of the array data, when needed.
10258         * object-internals.h, object.h: move a private function in a private
10259         header.
10260         * class.c: handle missing case in tracking references in fields.
10261
10262 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
10263
10264         * class.c, class-internals.h: keep track if a type has
10265         reference fields in either the instance or static fields.
10266
10267 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
10268
10269         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
10270         and renamed to MonoRuntimeInfo. Added fields to store the expected
10271         framework assembly version. Changed mono_get_framework_version and
10272         mono_get_runtime_version for a single mono_get_runtime_info method.
10273         
10274         * assembly.c: Added method to remap system assembly versions to the
10275         current executing runtime version. Removed old mapping code.
10276         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
10277         
10278         * icall.c, reflection.c: Track api changes.
10279
10280 2005-02-06  Miguel de Icaza  <miguel@novell.com>
10281
10282         * loader.c (method_from_memberref): Improve error reporting,
10283         produce the class name instead of the typeref/typedef index. 
10284
10285 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
10286
10287         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
10288
10289 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
10290
10291         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
10292         stdcall and charset name mangling.  Reorganize the code and add
10293         some tracing stuff.
10294
10295 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
10296
10297         * monodiet.c: More iters!
10298
10299         * marshal.c: Iter usage.
10300
10301         * icall.c: Iter usage.
10302
10303         * object.c: Use iters.
10304
10305         * debug-helpers.c: More iters
10306
10307 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
10308
10309         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
10310         under win32.
10311
10312 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
10313
10314         * mono-debug-debugger.c: use iters
10315
10316         * class.c, class-internals.h: mono_class_setup_events is static
10317         now
10318
10319         * All callers: use iters
10320
10321 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
10322
10323         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
10324         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
10325
10326 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
10327
10328         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
10329
10330         * marshal.h: Add prototypes for ldfld/stfld_remote.
10331
10332         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
10333         this is called during startup.
10334         
10335 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
10336
10337         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
10338         MonoThreadsSync struct private in monitor.c. Changed the way
10339         MonoThreadsSync is allocated so it's faster and there is no
10340         need to keep track of it with a finalizer and it uses less memory.
10341         This also finally allows us to allocate mono objects as ptrfree when
10342         there are no reference fields.
10343
10344 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
10345
10346         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
10347         disappearing link to the GC interface and use them to simplify
10348         the gchandles code.
10349
10350 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
10351
10352         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
10353         stfld_remote which call mono_load/store_field_new. This allows methods
10354         calling ldfld/stfld wrappers to be AOTed.
10355
10356         * console-io.c: Include sys/filio.h under solaris.
10357         
10358         * console-io.c: Include curses.h if needed correctly.
10359
10360 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
10361         
10362         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
10363         method->klass as well.
10364
10365         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
10366
10367         * class.c (mono_class_init): Switch on lazy initialization of 
10368         methods.
10369
10370         * class.c (mono_class_get_finalizer): Handle the case when the 
10371         finalizer is inherited.
10372
10373 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10374
10375         * console-io.c: <curses.h> is needed by term.h on solaris.
10376
10377 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
10378
10379         * icall.c, class-internals.h, monodiet.c, class.c: Remove
10380         mono_class_setup_properties where possible. Remove this ftn from
10381         the header file, and make it static.
10382
10383 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
10384
10385         * loader.c: Add missing setup_... call.
10386
10387         * class.c: Add missing setup_... calls.
10388
10389         * class.c (mono_class_init): Switch on lazy initialization of 
10390         the generic vtable.
10391         
10392         * class.c (mono_class_init): Fix generics broken by the recent changes.
10393
10394         * monodiet.c (handle_type): Add missing setup_... calls.
10395
10396         * class.c: Back out garbage in previous patch.
10397         
10398         * class.c: Add missing setup_... calls.
10399
10400         * class.c (mono_class_get_method_from_name_flags): Avoid calling
10401         mono_class_setup_methods () if possible.
10402
10403         * class-internals.h (MonoClass): Add 'has_cctor' flag.
10404
10405         * class-internals.h (MonoCachedClassInfo): New structure.
10406
10407         * class.c: Initialize properties and events fields of MonoClass lazily.
10408
10409         * class.c: Add infrastructure for lazily initializing the methods and
10410         vtable fields of MonoClass. Not yet used.
10411
10412         * class.c (mono_class_get_finalizer): New helper function.
10413
10414         * class.c: Add infrastructure for loading some class related data from
10415         an AOT file.
10416
10417         * object.c: Add infrastructure for initializing the vtable from data
10418         in the AOT file.
10419
10420         * gc.c (run_finalize): Use mono_class_get_finalizer ().
10421
10422         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
10423         appropriate initialization function before accessing parts of the
10424         MonoClass structure.
10425
10426         * marshal.c: Fix warnings.
10427         
10428         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
10429
10430         * mono-debug-debugger.c (get_exception_message): Use 
10431         mono_class_get_method_from_name_flags ().
10432
10433 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
10434
10435         * reflection.c, appdomain.c: Replace a few manual searches that
10436         Zoltan missed. (Paolo approved this part of my initial patch).
10437
10438 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
10439
10440         * profiler.c: disable recording statistical events at report time.
10441
10442 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10443
10444         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
10445         to byteswap arrays of enum values, too (bug #72080).
10446
10447 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
10448
10449         * appdomain.c (set_domain_search_path): Allow this to be called if
10450         domain->setup is not yet set.
10451
10452         * loader.c (mono_method_get_index): New helper function.
10453
10454         * loader.c reflection.c: Use mono_method_get_index ().
10455
10456         * class.c (mono_class_get_method_from_name_flags): New helper method.
10457
10458         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
10459         this.
10460
10461         * class.c (mono_class_get_cctor): New helper method.
10462
10463         * string-icalls.c object.c class.c marshal.c reflection.c: Use
10464         mono_class_get_method () to look up methods.
10465
10466 2005-02-01  Miguel de Icaza  <miguel@novell.com>
10467
10468         * console-io.c: Fix the build, this should work on Windows.
10469
10470 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
10471
10472         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
10473         be set to null to keep things valid
10474
10475 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10476
10477         * icall.c: added Console 2.0 icalls.
10478         * Makefile.am: added console-io.[ch]
10479         * console-io.[ch]: internal calls for Console 2.0 API.
10480
10481 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10482
10483         * class.c: make sure we consider all the interfaces
10484         when calculating max_interface_id (bug found by
10485         Jeroen Frijters running ikvm).
10486
10487 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
10488
10489         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
10490         valuetype fields to null.
10491
10492         * object.c (set_value): Ditto. Fixes #71669.    
10493
10494 2005-01-31  Martin Baulig  <martin@ximian.com>
10495
10496         * metadata.c (mono_metadata_has_generic_params): New public
10497         function; checks whether something is a generic method.
10498
10499 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
10500
10501         * appdomain.c: fix infinite recursion when adding assemblies.
10502
10503 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
10504
10505         * object.c: Fix small typo to return all items for Environment.
10506         GetCommandLineArgs.
10507
10508 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10509
10510         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
10511         reflection.c: more domain and assembly-unload related fixes
10512         and memory leaks plugs.
10513
10514 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
10515
10516         * 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.
10517
10518 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
10519
10520         * loader.c (mono_method_signature): Make this method lazy
10521         (mono_get_method_from_token): Don't computate the signature here.
10522
10523         Doing this saves quite a bit of memory. I got 90 kb on starting up
10524         monodoc. It should also save some disk reads on startup.
10525
10526         * *: MonoMethod->signature might be NULL now. You *MUST* use
10527         mono_method_signature.
10528
10529 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
10530
10531         * object.c (mono_runtime_get_main_args): Return an array from the
10532         current domain here. Fixes #71938.
10533
10534 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
10535
10536         * monitor.c: formatting changes to comply with the
10537         mono coding style and remove #ifdefs from the code.
10538
10539 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10540
10541         * metadata.c, private.h: remove some unneeded data
10542         and use a more compact representation for table schemas.
10543
10544 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
10545
10546         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
10547         to get a better distribution in hash tables.
10548         * *.c: use mono_aligned_addr_hash() where appropriate.
10549         * assembly.c: make var static.
10550
10551 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
10552
10553         * domain-internals.h: Put MonoJitInfo on a diet.
10554
10555         * domain.c: Fix a warning.
10556
10557 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10558
10559         * gc.c: rework the gc handles code to reuse handles
10560         when freed.
10561
10562 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
10563
10564         * domain.c: fixed long standing bug in mono_string_equal() which
10565         was brought to light with the ldstr changes.
10566
10567 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
10568
10569         * reflection.c: Remove warning by adding missing include for marshal.h
10570
10571 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10572
10573         * domain.c, object.c: change the ldstr_table to hold
10574         MonoString* as keys: makes the runtime isinterned lookup
10575         faster and simplifies memory management.
10576
10577 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
10578  
10579         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
10580         possible to add imperative security checks before calling the icall.
10581         * reflection.c: Return security attributes on the original MonoMethod
10582         (and not the wrapped one). This fix permissions on icalls.
10583
10584 2005-01-25  Dick Porter  <dick@ximian.com>
10585
10586         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
10587         the check for mktime() support actually test the mktime() return
10588         value.  "Fixes" bug 71682, though the output is still different to
10589         MS.
10590
10591 2005-01-25  Martin Baulig  <martin@ximian.com>
10592
10593         * class.c (mono_class_is_assignable_from): Make this work for
10594         generic instances.
10595
10596 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
10597
10598         * marshal.c (mono_string_utf8_to_builder)
10599         (mono_string_builder_to_utf16): We might not have ownership of the
10600         string. In thise case, we need to create a new buffer.
10601
10602         * object-internals.h (mono_stringbuilder_capacity): sb->str might
10603         be null, in which case, use the default capacity.
10604
10605 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10606
10607         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
10608         GC events to the profiler.
10609
10610 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10611
10612         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
10613         if you don't want the GC to run.
10614
10615 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
10616
10617         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
10618         start providing a GC API and keeping different implementations in
10619         their own file.
10620         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
10621
10622 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
10623
10624         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
10625         mmap rather than allocating a huge buffer.
10626         (mono_debug_close_mono_symbol_file): Free the buffer allocated
10627         above.
10628
10629 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
10630
10631         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
10632         and CheckExecutionRights.
10633         * reflection.c|h: Keep the index of the declarative security to be 
10634         used, instead of the pointer, when AOT compiler is used. Also add 
10635         class initialization when requesting demands.
10636         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
10637         CheckExecutionRights. Both properties are now FALSE by default, and
10638         unmodifiable, unless the --security option is used.
10639
10640 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
10641
10642         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
10643         reflection.c: properly refcount images and assemblies, many leaks fixed.
10644
10645 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10646
10647         * threadpool.c: increase the timeout for threads in the thread pool to
10648         10s.  Fixes bug #67159.
10649
10650 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
10651
10652         * class-internals.h: Sun's compiler insists on explicit
10653         signed on bit fields to handle then correctly.
10654
10655 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
10656
10657         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
10658         Make the size of the array fit only the number of invalid path
10659         chars that we have.
10660
10661         * class.c (_mono_class_get): Improve the error reporting when a
10662         class referenced is not found, to assist debugging. 
10663
10664 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
10665
10666         * threads.c: fix off-by-one error.
10667         * domain.c: free data allocated in the domain.
10668
10669 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
10670
10671         * reflection.c (mono_method_body_get_object): Fill out exception info
10672         as well.
10673
10674         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
10675         structure.
10676         
10677 2005-01-19  Martin Baulig  <martin@ximian.com>
10678
10679         * loader.c (mono_get_method_constrained): Make this work again.
10680
10681 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
10682
10683         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
10684         guint16 to match the managed side.
10685
10686         * reflection.c (mono_reflection_body_get_object): Fill out local
10687         variables array.
10688
10689         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
10690         as well.
10691
10692         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
10693         'local_var_sig_token'.
10694
10695 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
10696
10697         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
10698         System.Drawing.
10699
10700         * reflection.c (mono_method_body_get_object): Handle abstract and
10701         runtime methods.
10702
10703 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
10704
10705         * marshal.c, loader.c, class-internals.h, reflection.c:
10706         store the emthod data for a wrapper in an array instead of a list.
10707
10708 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
10709
10710         * marshal.c: change the code to allocate memory more
10711         conservatively for method wrappers.
10712
10713 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
10714
10715         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
10716         fields from MonoClass to the marshal info structure where they belong.
10717
10718 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10719
10720         * class.c, object.c, class-internals.h, marshal.c: rearrange
10721         some fields and tweak some types to lower memory usage.
10722
10723 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
10724
10725         * threads.c (signal_thread_state_change): Handle the case when the
10726         target thread is the current thread.
10727
10728         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
10729
10730         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
10731         emit_ptr_to_object_conv. 
10732
10733         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
10734         marshalling. Fixes #71352.
10735
10736 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
10737
10738         * metadata.h, blob.h: move table enum to blob.h so it can be included
10739         in any header.
10740         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
10741         cut the size of MonoImage/MonoDynamicImage.
10742
10743 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
10744
10745         * profiler.c (mono_profiler_install_simple): Fix default arguments.
10746
10747 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
10748
10749         * reflection.c, reflection.h, icall.c: add a function to check
10750         if an attribute type is defined for a metadata object.
10751
10752 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
10753
10754         * object-internals.h: Added some needed fields from StringBuilder class.
10755         * marshal.c: Set the maxCapacity when creating a StringBuilder.
10756
10757 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
10758
10759         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
10760         threads before shutting down the runtime.
10761
10762         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
10763
10764 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10765
10766         * object-internal.h, threads.c: implement stacksize and 
10767         parameterized thread start functionality (requires
10768         matching corlib). Marked broken code for later removal.
10769
10770 2005-01-12  Martin Baulig  <martin@ximian.com>
10771
10772         * class-internals.h (MonoGenericClass): Moved the `initialized'
10773         flag to MonoDynamicGenericClass, removed `init_pending'.
10774         (MonoGenericInst): Added `is_reference' flag.
10775
10776 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
10777
10778         * reflection.c (mono_image_create_pefile): Only set the pe_offset
10779         inside the MSDOS header. Fixes #71201.
10780
10781         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
10782         gc thread.
10783         (mono_domain_finalize): Ditto.
10784
10785 2005-01-12  Martin Baulig  <martin@ximian.com>
10786
10787         * class.c (mono_get_shared_generic_class): Use the cache for
10788         non-dynamic generic classes.
10789
10790         * class-internals.h (mono_class_create_generic_2): Removed
10791         function prototype, this function is now static inside class.c.
10792
10793         * class.c (mono_class_create_generic_2): Made this static, only
10794         call it from mono_class_init() and mono_class_setup_parent().
10795         (collect_implemented_interfaces_aux): Call mono_class_init() on
10796         the interfaces we collect.
10797         (mono_class_setup_vtable): Call mono_class_init (class->parent).
10798
10799 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
10800
10801         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
10802         it a real thread handle.
10803
10804         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
10805         MonoJitExceptionInfo, since each catch clause needs its own variable.
10806         
10807 2005-01-11  Dick Porter  <dick@ximian.com>
10808
10809         * image.c (mono_pe_file_open): New variant on mono_image_open()
10810         that does not set up the CLI metadata; used for FileVersionInfo so
10811         it can get the data for windows binaries too.
10812         
10813         * process.c (process_read_string_block): Don't read off the end of
10814         the StringTable block.
10815
10816         These both fix bug 70766.
10817
10818 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
10819
10820         * gc.c: set some fields to NULL at GC cleanup time.
10821         * threads.c: if we quit the main thread, call exit ().
10822
10823 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
10824
10825         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
10826
10827 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
10828
10829         * threads.h, threads.c, object.c: added accessor and settor for
10830         main_thread. Handle it specially when exiting from it: wait
10831         for other foreground threads to exit.
10832
10833 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
10834
10835         * process.c, verify.c: remove some bloat.
10836
10837 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
10838
10839         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
10840         the calling convention to cdecl under win32.
10841
10842 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
10843
10844         * object.c (mono_object_get_size): New function to get the size of
10845         an object instance.
10846
10847         * profiler.c (simple_allocation): Use above.
10848
10849 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
10850
10851         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
10852         ves_icall_System_AppDomain_getRootDomain (as it's not required to
10853         get an appdomain by it's id and we can't assume the root's id is 0).
10854         * domain-internals.h: Change the function prototype to match.
10855         * icall.c: Change the icall table for AppDomain.
10856
10857 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
10858
10859         * locales.c (string_invariant_compare_char): Only compute
10860         GUnicodeTypes in the case where we need them.  Test for ordinality
10861         first and return if so.
10862
10863         From the commit:
10864
10865                 /*
10866                  * FIXME: here we must use the information from c1type and c2type
10867                  * to find out the proper collation, even on the InvariantCulture, the
10868                  * sorting is not done by computing the unicode values, but their
10869                  * actual sort order.
10870                  */
10871
10872 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
10873
10874         * loader.c: for P/Invoke methods, allow the "Internal" shared
10875         library name to refer to the calling process symbol namespace.
10876
10877 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
10878
10879         * Makefile.am: Add the security manager to the build.
10880         * security-manager.c|h: New. Initialization of the security manager.
10881
10882 2005-01-07  Dick Porter  <dick@ximian.com>
10883
10884         * threads.c: 
10885         * monitor.c: Update thread state during Monitor and WaitHandle
10886         waits.  Fixes bug 71031.
10887
10888 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
10889
10890         * reflection.c (property_encode_signature): Correctly handle when the
10891         property has no methods.
10892
10893 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
10894
10895         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
10896         
10897         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
10898         fields from mb, not rmb. Fixes #71017.
10899
10900         * marshal.c (emit_ptr_to_str_conv): Add support for 
10901         ByValTStr -> string conversion. Fixes #71015.
10902
10903         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
10904
10905         * mempool.c (mono_mempool_contains_addr): New helper function.
10906
10907 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
10908
10909         * metadata.c (mono_metadata_compute_size): Fix size calculation of
10910         HasSematics encoded fields.
10911         
10912         * metadata.c (mono_type_to_unmanaged): Improve error message for 
10913         invalid string marshalling.
10914
10915         * metadata.c: Fix warnings.
10916         
10917 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
10918
10919         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
10920         profiler support.
10921
10922 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
10923
10924         * domain.c object.c domain-internals.h: Revert part of r38077 since the
10925         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
10926         tests.
10927
10928 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
10929
10930         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
10931         so methods containing these can be AOTed.
10932
10933 2005-01-03  Martin Baulig  <martin@ximian.com>
10934
10935         * loader.c (find_method): Removed the hack for generic instances.
10936         (method_from_memberref): If our parent is a generic instance, pass
10937         its generic type definition to find_method() and then inflate the
10938         method.
10939         (mono_get_method_constrained): Pass the generic type definition to
10940         find_method() and inflate the method later.
10941
10942         * class-internals.h (MonoStats): Added `generic_class_count'.
10943
10944         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
10945         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
10946
10947         * reflection.c (mono_custom_attrs_from_params): Don't ignore
10948         generic type definitions.
10949
10950 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
10951
10952         * loader.c icall.c: Fix warnings.
10953
10954 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
10955
10956         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
10957         blittable types. Fixes #70864.
10958
10959 2004-12-29  Martin Baulig  <martin@ximian.com>
10960
10961         * icall.c
10962         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
10963
10964         * reflection.c (mono_method_get_object): Create a
10965         "System.Reflection.MonoGenericMethod" for inflated methods; don't
10966         call mono_get_inflated_method().
10967
10968         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
10969
10970 2004-12-27  Martin Baulig  <martin@ximian.com>
10971
10972         * class-internals.h (MonoMethod): Added `is_inflated' flag.
10973         (MonoMethodInflated): Added `inflated' field.
10974
10975         * class.c (mono_class_inflate_generic_method): Don't really
10976         inflate the method here; just set the `is_inflated' flag in the
10977         MonoMethod.
10978         (mono_class_get_inflated_method): Actually inflate the method here
10979         if it's not already inflated; we use the MonoMethodInflated's new
10980         `inflated' field as a cache.
10981
10982 2004-12-26  Martin Baulig  <martin@ximian.com>
10983
10984         * class.c
10985         (inflate_generic_class): Moved some code out of inflate_generic_type().
10986         (mono_class_inflate_generic_method): If we're already inflated,
10987         inflate the context and use the declaring method; ie. make sure
10988         the declaring method of an inflated method is always the generic
10989         method definition.
10990         (mono_class_create_from_typedef): Create
10991         `class->generic_container->context->gclass'.
10992
10993 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
10994
10995         * metadata-internals.h, marshal.c, reflection.c: More
10996         MonoGHashTable->GHashTable.
10997
10998         * domain-internals.h, class.c: Change MonoGHashTable's into
10999         GHashTables for some cases where no gc stuff is used
11000
11001         All users: update apis
11002
11003 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
11004
11005         * metadata.c (builtin_types): Make this `const'. Makes this get
11006         put into the shareable section.
11007         (mono_metadata_init): Casts to make gcc happy.
11008
11009 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
11010
11011         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
11012
11013 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
11014
11015         * icall.c: Added an internal call to retrieve the position and length
11016         of assembly-level declarative security attributes (RequestMinimum, 
11017         RequestOptional and RequestRefuse). This is used by the Assembly class
11018         to re-create the corresponding permission sets.
11019
11020 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
11021
11022         * marshal.c: fix the stelemref wrapper to be type correct
11023         (and faster).
11024
11025 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
11026
11027         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
11028         to do key & 0x7fffffff. Hashtable already does this. It just
11029         results in longer code.
11030
11031 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
11032
11033         * appdomain.c: Bump corlib version.
11034         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
11035         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
11036         * reflection.c|h: Add functions to get declarative security infos
11037         (blob position and length) for assemblies, classes and methods.
11038
11039 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
11040
11041         * reflection.c: sort the constant table (bug #70693).
11042
11043 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
11044
11045         * object-internals.h, threads.c, domain.c: add accessors for
11046         the MonoThread and MonoDomain tls keys.
11047
11048 2004-12-18  Martin Baulig  <martin@ximian.com>
11049
11050         * class.c (inflate_generic_type): If we're inflating a generic
11051         instance, set `ngclass->context->container = context->container';
11052         ie. the container we inflated into.
11053
11054         * metadata.c (mono_metadata_parse_generic_param): Reflect above
11055         inflate_generic_type() changes.
11056
11057 2004-12-17  Martin Baulig  <martin@ximian.com>
11058
11059         * class-internals.h
11060         (MonoGenericClass): Replaced `MonoType *generic_type' with
11061         `MonoClass *generic_class'.  Removed `dynamic_info'; if
11062         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
11063         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
11064
11065 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
11066
11067         * exception.c (mono_exception_from_token): New helper function.
11068
11069 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
11070
11071         * assembly.c (mono_assembly_load_with_partial_name): Call 
11072         mono_assembly_loaded before invoking the preload hooks. Fixes
11073         #70564.
11074
11075         * object-internals.h (MonoThread): Change culture_info and 
11076         ui_culture_info into an array.
11077
11078         * threads.c: Cache culture info objects from more than one appdomain.
11079
11080         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
11081         current UI culture.
11082
11083 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
11084
11085         * threads.h threads.c appdomain.c: Clear the culture_info field of
11086         all threads during unloading if they point to an object in the dying
11087         appdomain.
11088
11089 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
11090
11091         * culture-info.h (TextInfoEntry): New struct
11092         * object-internals.h: sync with managed
11093         * locales.c: fill the `text_info_data' field
11094         * culture-info-tables.h: update
11095
11096 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
11097
11098         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
11099         collector.
11100
11101 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
11102
11103         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
11104         (ves_icall_ModuleBuilder_getMethodToken): Ditto
11105
11106 2004-12-12  Martin Baulig  <martin@ximian.com>
11107
11108         * mono-debug-debugger.c (write_type): If we're an enum and the
11109         builtin types have already been initialized, call mono_class_init().
11110
11111 2004-12-11  Martin Baulig  <martin@ximian.com>
11112
11113         * metadata.c (mono_metadata_load_generic_params): Added
11114         `MonoGenericContainer *parent_container' argument; automatically
11115         compute `container->is_method'; pass the correct owner to
11116         get_constraints().      
11117
11118         * reflection.c (compare_genericparam): Sort the GenericParam table
11119         according to increasing owners. 
11120
11121 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
11122
11123         * profiler.c: allow disabling the default profiler.
11124
11125 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
11126
11127         * decimal.c, icall.c: allow disabling System.Decimal support.
11128
11129 2004-12-09  Marek Safar <marek.safar@seznam.cz>
11130
11131         * reflection.c: Add support for null attribute arguments.
11132
11133 2004-12-09  Martin Baulig  <martin@ximian.com>
11134
11135         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
11136         names to get rid of compiler warnings.
11137
11138 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
11139
11140         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
11141         mono_marshal_load_type_info (). Fixes #69625.
11142         (mono_marshal_get_ptr_to_struct): Likewise.
11143
11144 2004-12-08  Martin Baulig  <martin@ximian.com>
11145
11146         * mono-debug.h: Bumped version number to 47.
11147
11148         * mono-debug-debugger.c
11149         (mono_debugger_event_handler, mono_debugger_event): Take two
11150         guint64 arguments insteed of a gpointer and a guint32.  
11151
11152 2004-12-08  Martin Baulig  <martin@ximian.com>
11153
11154         * debug-mono-symfile.h
11155         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
11156         `address' to `native_offset'.
11157
11158 2004-12-08  Martin Baulig  <martin@ximian.com>
11159
11160         * class.c (mono_class_create_from_typespec): Only inflate if we
11161         either have `context->gclass' or `context->gmethod'.
11162
11163 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
11164
11165         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
11166
11167         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
11168
11169         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
11170
11171         * reflection.c (mono_assembly_get_object): Remove the workaround put
11172         in for the release.
11173         
11174         * appdomain.c: Use the corlib_internal field from MonoAssembly.
11175
11176         * appdomain.c: Bump corlib version.
11177
11178         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
11179         be visible in other appdomains.
11180
11181 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
11182
11183         * threads.c: Interlocked inc and dec for longs were messed up,
11184         use a KISS based impl for this. Fixes 70234
11185
11186 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
11187
11188         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
11189
11190 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
11191
11192         * icall.c: fix to follow policy not to allow struct
11193         arguments in icalls.
11194
11195 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11196
11197         * process.c: make the patch that handles spaces in file paths work
11198         on mono/windows too.
11199
11200 2004-12-06  Martin Baulig  <martin@ximian.com>
11201
11202         * class.c (mono_class_create_generic): Call
11203         mono_class_setup_supertypes() if we're dynamic.
11204         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
11205
11206 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
11207
11208         * object-internals.h: Add new fields to MonoThread.
11209
11210         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11211
11212         * icall.c threads-types.h threads.c: Add new icalls.
11213
11214         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
11215
11216         * object-internals.h (MonoReflectionAssembly): Sync object layout with
11217         managed side.
11218
11219         * appdomain.c: Bump corlib version.
11220
11221         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
11222         internal assemblies. Fixes #69181.
11223
11224 2004-12-05  Martin Baulig  <martin@ximian.com>
11225
11226         * class.c (mono_class_inflate_generic_signature): Make this a
11227         no-op if `context' is NULL or we don't have any type parameters;
11228         also copy `sentinelpos'.        
11229
11230 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
11231
11232         * image.c: Add unbox_wrapper_cache.
11233
11234         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
11235
11236         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
11237         function generator.
11238         
11239         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
11240         Fixes #70173.
11241
11242         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
11243         
11244 2004-12-04  Martin Baulig  <martin@ximian.com>
11245
11246         * loader.c (mono_method_get_signature_full): New public function;
11247         like mono_method_get_signature(), but with an additional
11248         `MonoGenericContext *' argument.
11249
11250         * class.c (mono_class_inflate_generic_signature): Formerly known
11251         as inflate_generic_signature(); make this public.
11252
11253 2004-12-04  Martin Baulig  <martin@ximian.com>
11254
11255         * metadata.c
11256         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
11257         instead of a `MonoGenericContainer *'.  
11258         (mono_metadata_parse_array_full): Likewise.
11259         (mono_metadata_parse_signature_full): Likewise.
11260         (mono_metadata_parse_method_signature_full): Likewise.
11261         (mono_metadata_parse_generic_inst): Likewise.
11262         (mono_metadata_parse_generic_param): Likewise.
11263         (mono_metadata_parse_mh_full): Likewise.
11264         (mono_type_create_from_typespec_full): Likewise.
11265
11266 2004-12-03  Martin Baulig  <martin@ximian.com>
11267
11268         * class-internals.h (MonoGenericContainer): Replaced the
11269         `MonoGenericContext * pointer with a `MonoGenericContext'
11270         structure and made it the first element.
11271
11272 2004-12-03  Martin Baulig  <martin@ximian.com>
11273
11274         * class.c
11275         (inflate_generic_type): Set the `context->container' when creating
11276         a new MonoGenericContext.
11277         (mono_class_inflate_generic_method): Likewise.
11278         (mono_class_create_from_typespec): Just use `context->container'
11279         to get the container.
11280
11281         * loader.c (method_from_methodspec): Set `context->parent' from
11282         `context->container' - and if that's a method container, use its
11283         parent.  Also set the `context->container' when creating a new
11284         MonoGenericContext.
11285         (mono_get_method_from_token): Use just `context->container' to get
11286         the container.
11287
11288         * metadata.c (do_mono_metadata_parse_generic_class): Also set
11289         `gclass->context->container'.
11290
11291         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
11292         the `context->container' when creating a new MonoGenericContext.
11293
11294 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
11295
11296         * reflection.c (compare_genericparam): Sort params with identical
11297         owner by their number. Fixes gen-111 on sparc.
11298
11299 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
11300
11301         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
11302         around the domain changes.
11303
11304         * appdomain.c (mono_domain_unload): Handle the case when the thread
11305         calling Unload is itself being aborted during unloading. Fixes #70022.
11306
11307         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
11308
11309         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
11310         checkpoint_func as an icall so it gets a wrapper.
11311         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
11312         in the cross-appdomain wrappers too.
11313
11314         * threads.c (mono_thread_has_appdomain_ref): Make this public.
11315
11316         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
11317
11318         * reflection.c: Fix some memory leaks.
11319         
11320 2004-12-02  Martin Baulig  <martin@ximian.com>
11321
11322         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
11323
11324         * metadata.c (generic_class_cache): New static hashtable.
11325         (mono_metadata_lookup_generic_class): New public method.
11326
11327 2004-12-02  Martin Baulig  <martin@ximian.com>
11328
11329         * class.c (mono_class_create_from_typedef): Call
11330         mono_class_setup_parent() and mono_class_create_mono_type() before
11331         parsing the interfaces.
11332
11333 2004-12-02  Martin Baulig  <martin@ximian.com>
11334
11335         * metadata.c (generic_inst_cache): New static hashtable.
11336         (mono_metadata_lookup_generic_inst): New public function.
11337         (mono_metadata_inflate_generic_inst): New public function.
11338         (mono_metadata_parse_generic_inst): New public function.
11339         (do_mono_metadata_parse_generic_class): Use the new
11340         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
11341         since this'll also use the cache.
11342
11343         * reflection.c (mono_reflection_bind_generic_method_parameters):
11344         Use mono_metadata_lookup_generic_inst() to use the new cache.
11345
11346         * class.c (inflate_mono_type): Use
11347         mono_metadata_inflate_generic_inst() to inflate a generic
11348         instance; this'll also use the new cache.
11349
11350         * loader.c (method_from_methodspec): Use
11351         mono_metadata_parse_generic_inst() and
11352         mono_metadata_inflate_generic_inst() rather than parsing it
11353         manually, so we can use the new cache.
11354
11355 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
11356
11357         * threads.c (wait_for_tids): Do not incorrectly free threads when 
11358         the wait times out.
11359
11360 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
11361
11362         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
11363         iter->args based on whether parameters are passed in registers (i.e.
11364         MONO_ARCH_REGPARMS is defined)
11365
11366 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
11367
11368         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
11369         the exception message. Fixes #70070.
11370         (method_from_methodspec): Fix warnings.
11371
11372 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11373
11374         * process.c: (complete_path) return the path quoted
11375
11376 2004-12-01  Martin Baulig  <martin@ximian.com>
11377
11378         * class-internals.h (MonoGenericInst): New structure.
11379         (MonoGenericClass): Replaced `type_argc', `type_argv' and
11380         `is_open' with `MonoGenericInst *inst'.
11381         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
11382         `is_open' with `MonoGenericInst *inst'.
11383
11384 2004-11-30  Martin Baulig  <martin@ximian.com>
11385
11386         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
11387
11388         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
11389         to `generic_class_cache'.
11390
11391         * metadata.c
11392         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
11393         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
11394         (mono_generic_inst_is_valuetype): Renamed to
11395         mono_generic_class_is_valuetype().
11396
11397         * class-internals.h
11398         (MonoGenericInst): Renamed to MonoGenericClass.
11399         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
11400         (MonoClass): Renamed `generic_inst' to `generic_class'.
11401         (MonoGenericContext): Renamed `ginst' to `gclass'.
11402
11403         * object-internals.h
11404         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
11405
11406         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
11407         mono_reflection_generic_class_initialize().
11408
11409         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
11410         now known as "System.Reflection.MonoGenericClass".
11411         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
11412
11413 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
11414
11415         * class-internals.h: Added a flag field to MonoClass to cache the
11416         declarative security attributes actions associated with the class.
11417         * domain-internals.h: Added booleans to MonoJitInfo to cache the
11418         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
11419         applicable to the JITted method.
11420         * reflection.c|h: Added functions to extract (as flags) which security
11421         actions are available (declaratively) for a method, class or assembly.
11422         * metadata.c|h: Added functions to search the declarative security
11423         table in the metadata.
11424         
11425 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
11426
11427         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
11428         EXPORTEDTYPES are already in the class name cache, so there is no
11429         need to add extra code here to look at them. Just removes a bit of
11430         cruft.
11431
11432         (ves_icall_System_Environment_get_TickCount): No need for #if
11433         WINDOWS. We already have the code in io-layer.
11434
11435 2004-11-28  Martin Baulig  <martin@ximian.com>
11436
11437         * loader.c
11438         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
11439         Fixes gen-112.cs.
11440
11441 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
11442
11443         * assembly.c (do_mono_assembly_open): Instead of having a
11444         conditional WITH_BUNDLE, incorporate support for bundles here, by
11445         having a global `bundles' variable holding a pointer to the actual
11446         bundles. 
11447
11448         (mono_register_bundled_assemblies): New API call used by the
11449         bundle code. 
11450
11451         See mkbundle.1 for details.
11452         
11453 2004-11-27  Martin Baulig  <martin@ximian.com>
11454
11455         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
11456         the vtable for generic methods.
11457
11458 2004-11-26  Martin Baulig  <martin@ximian.com>
11459
11460         * metadata.c
11461         (mono_metadata_generic_method_hash): New public function.
11462         (mono_metadata_generic_method_equal): Likewise.
11463
11464         * class-internals.h
11465         (MonoGenericContainer): Added `GHashTable *method_hash'.
11466
11467         * reflection.c (ReflectionMethodBuilder): Added
11468         `MonoGenericContainer *generic_container'.
11469         (reflection_methodbuilder_to_mono_method): Don't create a new
11470         MonoGenericContainer each time we're called.
11471         (mono_reflection_bind_generic_method_parameters): Use
11472         `container->method_hash' to cache the results so we don't create a
11473         different method if we're called several times with the same
11474         arguments.
11475
11476         * loader.c (method_from_methodspec): Use the new
11477         `container->method_hash' here, too.
11478
11479 2004-11-26  Martin Baulig  <martin@ximian.com>
11480
11481         * class.c (inflate_generic_signature): Correctly compute
11482         `res->has_type_parameters'.
11483         (mono_class_vtable): Use the `has_type_parameters' flag to
11484         determine whether we're a generic method.
11485
11486         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
11487
11488 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
11489
11490         * object.c (mono_runtime_run_main): Fix a small memory leak.
11491
11492 2004-11-25  Martin Baulig  <martin@ximian.com>
11493
11494         * class.c (set_generic_param_owner): Fixed the loop.
11495
11496 2004-11-25  Martin Baulig  <martin@ximian.com>
11497
11498         * object.c (mono_class_vtable): Don't create any JIT wrappers for
11499         generic methods.
11500
11501 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
11502
11503         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
11504         names. Fixes #69787.
11505
11506 2004-11-24  Martin Baulig  <martin@ximian.com>
11507
11508         * class.c (mono_class_create_generic_2): If we don't have a
11509         `ginst->parent', inflate `gklass->parent' to get our parent.
11510
11511 2004-11-24  Martin Baulig  <martin@ximian.com>
11512
11513         * reflection.c (compare_genericparam): Correctly sort the
11514         GenericParam table; fixes #69779.
11515
11516 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
11517
11518         * reflection.c: When writing a PE file, don't create a huge
11519         buffer in memory. Just write the arrays we have to the file.
11520         This reduces memory usage.
11521
11522         * metadata-internals.h: MonoDynamicStream pefile is no longer used
11523         globally.
11524
11525 2004-11-17  Martin Baulig  <martin@ximian.com>
11526
11527         * class.c (mono_class_init): Don't setup `class->parent' for
11528         dynamic instances; moved this to mono_class_generic_2().
11529         (mono_class_create_generic): Also set `klass->inited' for dynamic
11530         generic instances.
11531         (mono_class_create_generic_2): Don't do anything for dynamic
11532         generic instances.  Set `klass->parent' here and also call
11533         mono_class_setup_parent() here. 
11534
11535         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
11536         `MonoType *parent' argument; set `ginst->parent' before calling
11537         mono_class_create_generic_2(), so we set the correct parent.
11538
11539 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
11540
11541         * reflection.c: allow getting attributes from ModuleBuilder
11542         (used by ikvm).
11543
11544 2004-11-17  Martin Baulig  <martin@ximian.com>
11545
11546         * class.c (mono_class_create_from_typedef): If a type parameter is
11547         inherited from an outer class, set its owner to that class.
11548
11549 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
11550
11551         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
11552           for (int*) written size. This fixes bug #69592.
11553
11554 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
11555
11556         * icall.c: Added IsAuthenticodePresnet internal call.
11557         * image.c|h: New function that check a MonoImage for an Authenticode
11558         signature in the certificate PE data directory.
11559         * security.c|h: New internal call to ask the runtime if an 
11560         Authenticode signature seems referenced in the PE header.
11561
11562 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
11563
11564         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
11565
11566         * reflection.c (mono_image_create_pefile): Free the assembly streams
11567         after writing out the assembly file.
11568
11569         * object.c (mono_runtime_run_main): Fix small memory leak.
11570
11571         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
11572         property access modifiers. Fixes #69389.
11573
11574 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
11575
11576         * domain.c, object.c, object-internals.h, domain-internals.h,
11577         object.h, marshal.c: keep dynamic code info per domain.
11578
11579 2004-11-15  Martin Baulig  <martin@ximian.com>
11580
11581         * class.c (mono_type_get_name_recurse): Put type arguments in
11582         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
11583         see bug #68387.
11584
11585 2004-11-15  Martin Baulig  <martin@ximian.com>
11586
11587         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
11588         (mono_class_setup_vtable): When computing `the_cname' for a
11589         generic instance, don't include the namespace since we'd otherwise
11590         add it twice.
11591
11592 2004-11-15  Martin Baulig  <martin@ximian.com>
11593
11594         * class.c (mono_class_create_generic): Changed return type to void.
11595         (mono_class_create_generic_2): New public function; setup
11596         `class->method', `class->field' and `class->interfaces' here
11597         instead of in mono_class_init().
11598
11599         * class.h (mono_class_create_generic): Moved to class-internals.h.
11600
11601 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
11602
11603         * reflection.c (mono_image_create_pefile): take a file HANDLE.
11604         rather than writing to memory, write to this file. Right now,
11605         we are just writting into a buffer, and copying that. However
11606         we can avoid the buffer later.
11607
11608         (mono_dynamic_stream_reset): new function
11609
11610         * icall.c, object-internals.h: update for the above.
11611
11612 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
11613
11614         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
11615         have been using gc'd memory. First it is slower, unlikely
11616         the comment in the source code said, secondly, it increases
11617         our footprint to do it in the gc.
11618
11619         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
11620         the method so that it does not have to copy to managed code.
11621
11622 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
11623
11624         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
11625
11626 2004-11-12  Martin Baulig  <martin@localhost>
11627
11628         * reflection.c (mono_image_create_token): Allow generic method
11629         definitions here, since they may appear in an `.override'; see
11630         gen-98/gen-99 for an example.
11631
11632 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
11633
11634         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
11635         #69365.
11636
11637         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
11638         descriptive.
11639
11640 2004-11-11  Martin Baulig  <martin@ximian.com>
11641
11642         * class.c (mono_class_setup_vtable): In an explicit interface
11643         implementation, the method name now includes the arity.
11644
11645 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
11646
11647         * object.c (mono_array_full_copy): Fix warning.
11648
11649 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
11650
11651         * appdomain.c: Removed look_for_method_by_name(). Use the new method
11652         mono_class_get_method_from_name() instead.
11653         
11654         * class-internals.h: Added two new types of wrappers. 
11655         Added MonoRemotingTarget enum. Added new trampoline function type, which
11656         takes an additional MonoRemotingTarget value as parameter, so it is
11657         possible to request a trampoline for a specific target.
11658         
11659         * class.c: Added new mono_class_get_method_from_name() method.
11660         
11661         * class.h: In MonoRemoteClass, we can have now to vtables, one for
11662         general remoting sinks and one specific for cross domain calls.
11663         
11664         * debug-helpers.c: Added new wrapper names.
11665         
11666         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
11667         of a remote class.
11668         
11669         * image.c: Porperly delete value objects form the remoting invoke hashtable.
11670         
11671         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
11672         with several other methods (mono_marshal_get_xappdomain_dispatch,
11673         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
11674         and others) can generate a fast remoting wrapper for cross domain calls.
11675         More information can be found in docs/remoting.
11676         Other changes: Removed mono_find_method_by_name, and used
11677         mono_class_get_method_from_name instead.
11678         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
11679         is stored in the remoting invoke hashtable.
11680         
11681         * marshal.h: published the new method for getting the xdomain wrapper,
11682         and also added a method for getting the adequate wrapper for a given
11683         method and target.
11684         
11685         * object-internals.h, object.c: Added a couple of methods for capying and
11686         cloning arrays.
11687         Modified mono_install_remoting_trampoline, which takes the new remoting
11688         trampoline that has a remoting target as parameter.
11689         mono_class_proxy_vtable now also takes a remoting target as parameter, and
11690         will return the most suitable vtable for the target.
11691         Added mono_remote_class_vtable, which returns the vtable of a remote class
11692         (which can be the normal remoting vtable or the xdomain vtable).
11693         
11694         * threads.c: the xdomain invoke and dispatch wrappers must also be
11695         protected against interruptions.
11696
11697 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11698
11699         * icall.c: use memmove in BlockCopyInternal when the source and
11700         destination arrays are the same.
11701
11702 2004-11-09  Martin Baulig  <martin@ximian.com>
11703
11704         * class-internals.h (MonoGenericContainer): Removed `method' and
11705         `signature', replaced them with `is_method' and `is_signature'
11706         flags.  Added `context'.
11707
11708         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
11709         instead of a `MonoGenericContainer *'.
11710
11711         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
11712         for dynamic type parameters.
11713         (mono_metadata_load_generic_params): Setup `container->context'.
11714
11715         * reflection.c (mono_reflection_setup_generic_class): Setup
11716         `tb->generic_container->context'.
11717         (do_mono_reflection_bind_generic_parameters): Use
11718         mono_class_inflate_generic_type() to correctly inflate types,
11719         rather than using our own hack just for MONO_TYPE_VAR.
11720
11721 2004-11-09  Martin Baulig  <martin@ximian.com>
11722
11723         * class.c (mono_class_inflate_generic_method): Small fix; don't
11724         crash here.
11725
11726         * icall.c
11727         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
11728         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
11729         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
11730         (ves_icall_Type_BindGenericParameters): Likewise.
11731         (ves_icall_Type_get_IsGenericInstance): Likewise.
11732         (ves_icall_Type_GetGenericParameterPosition): Likewise.
11733         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
11734         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
11735         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
11736
11737 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
11738
11739         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
11740         assembly versions and public key tokens. Fixes #69113.
11741
11742 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
11743
11744         * metadata.c: fix bug introduced with the type cache changes
11745         on 2004-11-06.
11746
11747 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
11748
11749         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
11750         the MonoClass pointer instead of the token in exception clauses.
11751         * reflection.c: updates for the above and make the code not depend
11752         on the structure of MonoExceptionClause.
11753
11754 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
11755
11756         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11757         Add support for dynamic assemblies. Fixes #69114.
11758
11759         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
11760
11761 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
11762
11763         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
11764         since most only those methods use it. the code member of
11765         MonoMethodPInvoke was dead, so that can be removed too. Also,
11766         remove inline_count (again, not used), and move slot so that it
11767         can share bits with some other flags. This saves 8 bytes in the
11768         structure and gives us about 50 kb back for mcs helloworld.cs
11769
11770         * *.[ch]: Do naming changes for the above.
11771
11772         * loader.c (mono_method_get_header): Lazily init the header
11773         on first access.
11774         (mono_get_method_from_token): don't init the header here
11775         (mono_free_method): the header may never be allocated
11776
11777         Overall, this saves 150 kb of unmanaged allocations
11778         for mcs helloworld.cs. That accounts for 10% of the unmanaged
11779         memory at runtime.
11780         
11781         * loader.c, loader.h (mono_method_get_header): new accessor.
11782
11783         * *.[ch]: use the above method. Prepares us to lazily load
11784         the header.
11785
11786         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
11787         three warnings, which are actual bugs (see 69206).
11788
11789         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
11790         unused. Saves a cool 4 bytes / method.
11791
11792 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
11793
11794         * metadata.c (builtin_types): Add types for System.Object here.
11795         (mono_metadata_parse_type_full): Cache MonoType*'s that are
11796         for a class or valuetype from klass->this_arg or klass->byval_arg.
11797
11798         On mcs for a hello world, this gets us down from 21836 MonoType's
11799         to 14560.
11800
11801         (mono_metadata_free_type): Account for the above change.
11802
11803 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
11804
11805         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
11806         exception instead of asserting if name is null.
11807         (ves_icall_System_AppDomain_GetData): Ditto.
11808
11809 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
11810
11811         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
11812         EnumBuilder.
11813
11814         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
11815         Return NULL when the domain does not have entry_assembly set.
11816
11817         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
11818         Add a 'resource_modules' argument.
11819         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
11820
11821         * reflection.c (mono_reflection_create_runtime_class): Move setting
11822         of wastypebuilder here, so mono_get_type_object () returns a MonoType
11823         for enums too.
11824
11825         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
11826         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
11827         Throw an ArgumentNullException if 'ptr' is null.
11828
11829         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
11830         assemblies here. Fixes #69020.
11831
11832 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
11833
11834         * reflection.c (build_compressed_metadata): Fix the previous patch for
11835         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
11836         the stack.
11837
11838 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
11839
11840         * assembly.c (mono_assembly_names_equal): Allow a match if one of
11841         the cultures is false. Fixes #69090.
11842
11843         * reflection.c (build_compressed_metadata): Fix invalid memory read 
11844         detected by valgrind.
11845         
11846         * reflection.c (mono_reflection_get_type): Avoid triggering a 
11847         TypeResolve multiple times for the same type. Fixes #65577.
11848
11849 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
11850
11851         * marshal.c: Avoid using ldftn to call managed functions. It is
11852         much slower than just a call.
11853
11854         * reflection.c (mono_module_get_object): free the basename we
11855         allocate here from glib.
11856         
11857         * reflection.c (ensure_runtime_vtable): make sure to free
11858         overrides.  Also, we were allocating an array of MonoMethod not an
11859         array of MonoMethod*.
11860
11861         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
11862
11863         * image.c (mono_image_close): free image->guid here.
11864
11865 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
11866
11867         * reflection.c: Fix some spec conformance issues with the PE file
11868         structures so mcs compiled apps run on the Net 2.0 beta.
11869
11870 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
11871
11872         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
11873         Implement this. Fixes #67264.
11874
11875         * debug-helpers.h debug-helpers.c marshal.c: Move 
11876         mono_find_method_by_name to debug-helpers.c.
11877
11878 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
11879
11880         * object.c (mono_release_type_locks): type_initialization_hash is
11881         a GHashTable.
11882
11883         * reflection.c object.c object-internals.h: Fix warnings.
11884
11885         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
11886         without accessors. Fixes #61561.
11887
11888         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
11889         application base from the root domain if not set. Fixes #65641.
11890         (mono_runtime_init): Fix warning.
11891
11892 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11893
11894         * appdomain.c: call mono_thread_pool_init.
11895         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
11896         of worker threads based on the number of CPUs and the environment
11897         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
11898         for non-windows (windows) systems.
11899
11900 2004-10-27  Chris Toshok  <toshok@ximian.com>
11901
11902         * mono-debug-debugger.c (write_class): don't call mono_class_init
11903         here, as even with the check for (!klass->init_pending), we get
11904         into a situation where we're hitting cycles in class
11905         initialization.  Fixes #68816.
11906
11907 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
11908
11909         * image.c: Avoid overwriting values in the loaded_images_hash when an
11910         assembly is loaded multiple times. Fixes #61152.
11911
11912         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
11913         so multiple satellite assemblies for the same name can be loaded.
11914         Fixes #68259.
11915
11916         * mono_domain_assembly_preload: Actually return the loaded assembly, 
11917         not NULL.
11918
11919         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
11920         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
11921
11922         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
11923         pending finalizers are not invoked after the appdomain has been 
11924         unloaded. Fixes #67862.
11925
11926 2004-10-22  Martin Baulig  <martin@ximian.com>
11927
11928         * mono-debug-debugger.c
11929         (mono_debugger_runtime_invoke): Don't box valuetypes.
11930
11931 2004-10-22  Chris Toshok  <toshok@ximian.com>
11932
11933         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
11934         don't hide private methods.
11935
11936 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
11937
11938         * icall.c: Allows the runtime to "share" (when known) the public key
11939         token of an assembly. This avoid the need to recalculate the token 
11940         (from the public key) in managed code.
11941
11942 2004-10-21  Chris Toshok  <toshok@ximian.com>
11943
11944         * debug-helpers.c (append_class_name): argh, revert last patch.
11945         
11946 2004-10-21  Chris Toshok  <toshok@ximian.com>
11947
11948         * debug-helpers.c (append_class_name): use '+' as the delimiter,
11949         not '/', so that it matches what the debugger uses to look up
11950         methods.
11951
11952 2004-10-21  Martin Baulig  <martin@ximian.com>
11953
11954         * mono-debug-debugger.c (mono_debugger_throw_exception): New
11955         public method; this is called each time an exception is thrown and
11956         allows the debugger to use exception catch points.
11957
11958 2004-10-21  Martin Baulig  <martin@ximian.com>
11959
11960         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
11961         the stack pointer and the exception object in some struct and pass
11962         that to the debugger.
11963
11964 2004-10-21  Chris Toshok  <toshok@ximian.com>
11965
11966         * mono-debug-debugger.c (do_write_class): add instance/static
11967         event support.  We don't expose "raise" or "other" yet.
11968         (event_is_static): new method.
11969
11970 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
11971
11972         * mono-debug-debugger.c
11973         (mono_debugger_handle_exception): Remove
11974         bogus return value for fussy compilers.
11975
11976 2004-10-20  Martin Baulig  <martin@ximian.com>
11977
11978         * mono-debug-debugger.c
11979         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
11980         (mono_debugger_handled_exception): Likewise.
11981
11982 2004-10-20  Martin Baulig  <martin@ximian.com>
11983
11984         * mono-debug-debugger.h (MonoDebuggerEvent): Added
11985         MONO_DEBUGGER_EVENT_EXCEPTION.
11986
11987         * mono-debug-debugger.c (mono_debugger_handle_exception): New
11988         public function to send the debugger a notification for an
11989         exception and inform it about a catch/finally clause.
11990
11991 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
11992
11993         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
11994         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
11995         fix 2.95 build. 
11996
11997         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
11998
11999 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
12000
12001         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
12002         marshalled as [In,Out]. Fixes #58325.
12003
12004 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
12005
12006         * reflection.c (mono_method_body_get_object): Implement some fields.
12007
12008 2004-10-12  Martin Baulig  <martin@ximian.com>
12009
12010         * reflection.c (mono_reflection_bind_generic_parameters): Small
12011         fix, correctly retrieve our parent from a generic instance.
12012
12013 2004-10-12  Martin Baulig  <martin@ximian.com>
12014
12015         * metadata.c (mono_metadata_generic_param_equal): We always have
12016         an owner.
12017
12018         * class.c
12019         (mono_class_from_generic_parameter): We need to have an owner.
12020         (my_mono_class_from_generic_parameter): Likewise.
12021
12022         * reflection.c (mono_reflection_setup_generic_class): Renamed to
12023         mono_reflection_create_generic_class() and added a new
12024         mono_reflection_setup_generic_class().  
12025         (mono_reflection_initialize_generic_param): If we're a nested
12026         generic type and inherited from the containing class, set our
12027         owner to the outer class.
12028
12029 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
12030
12031         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
12032
12033         * reflection.c (mono_method_body_get_object): New function to create
12034         a MethodBody object.
12035
12036         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
12037
12038 2004-10-11  Martin Baulig  <martin@ximian.com>
12039
12040         * metadata.c (_mono_metadata_type_equal): Renamed to
12041         do_mono_metadata_type_equal() and made static.
12042
12043 2004-10-11  Martin Baulig  <martin@ximian.com>
12044
12045         * appdomain.c: Bump corlib version number to 28.
12046
12047 2004-10-10  Martin Baulig  <martin@ximian.com>
12048
12049         * class-internals.h
12050         (MonoGenericInst): Added `MonoGenericContainer *container'.
12051         (MonoGenericMethod): Likewise.
12052         (MonoGenericContext): Likewise.
12053         (MonoGenericParam): Added `MonoGenericContainer *owner'.
12054
12055         * metadata.c
12056         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
12057         (do_mono_metadata_parse_generic_inst): Likewise.
12058         (mono_metadata_parse_type_full): New public method.  This is the actual
12059         mono_metadata_parse_type() implementation - with an additional
12060         `MonoGenericContainer *' argument.
12061         (mono_metadata_parse_array_full): Likewise.
12062         (mono_metadata_parse_signature_full): Likewise.
12063         (mono_metadata_parse_method_signature_full): Likewise.
12064         (mono_metadata_parse_mh_full): Likewise.
12065         (mono_type_create_from_typespec): Likewise.
12066         (mono_metadata_interfaces_from_typedef_full): New public method;
12067         this is similar to the other _full() methods, but we take a
12068         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
12069         (mono_metadata_parse_generic_param): Take an additional
12070         `MonoGenericContainer *' argument and lookup the MonoGenericParam
12071         from that container.
12072         (mono_metadata_generic_param_equal): New static method to compare
12073         two type parameters.
12074         (_mono_metadata_type_equal): New static method; takes an
12075         additional `gboolean signature_only' argument - if true, we don't
12076         compare the owners of generic parameters.
12077         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
12078         with a TRUE argument - do a signature-only comparision.
12079
12080         * loader.c: Use the new _full() methods and pass the
12081         MonoGenericContainer to them.
12082
12083         * object-internals.h (MonoReflectionTypeBuilder): Added
12084         `MonoGenericContainer *generic_container' field.
12085         (MonoReflectionMethodBuilder): Likewise.
12086
12087 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
12088
12089         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
12090         case initial images of dynamic assemblies.
12091
12092         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
12093
12094         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
12095
12096         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
12097         length of event->other array.
12098         (typebuilder_setup_events): Ditto.
12099
12100         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
12101         'assembly_by_name' and add an 'assemblies' list.
12102
12103         * assembly.h assembly.c: Add a new search hook for determining whenever
12104         an assembly is already loaded. Use this instead of searching in the
12105         loaded_assemblies list.
12106
12107         * domain.c appdomain.c: Implement the new search hook so loaded 
12108         assemblies are now scoped by appdomain. Fixes #67727.
12109
12110 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
12111
12112         * threads.c (mono_thread_attach): Initialize synch_lock field so
12113         mono_thread_detach works again.
12114
12115         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
12116         'lib' too. Fixes #63130.
12117
12118 2004-10-06  Jackson Harper  <jackson@ximian.com>
12119
12120         * culture-info-tables.h: regenerated.
12121
12122 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
12123
12124         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
12125         implemented by other interfaces in the result. Fixes #65764.
12126         
12127         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
12128         Handle unloadable modules without crashing.
12129
12130         * image.c (load_modules): Revert the previous patch since modules must
12131         have a fixed index inside the array.
12132         
12133         * image.c (load_modules): Don't include native modules in the modules
12134         array.
12135
12136 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
12137
12138         * reflection.h: Add param_defaults field.
12139
12140         * reflection.c: Add support for parameter defaults in dynamic methods.
12141         Fixes #64595.
12142
12143         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
12144         an empty string when a type has no namespace. Fixes #64230.
12145
12146 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
12147
12148         * tabledefs.h: Added "internal" security actions to support non-CAS
12149         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
12150         Note: they do not seems to be used anymore in 2.0 (new metadata format)
12151
12152 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
12153
12154         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
12155         constructor of abstract class. Fixes #61689.
12156
12157 2004-10-04  Martin Baulig  <martin@ximian.com>
12158
12159         * class-internals.h (MonoGenericContainer): New type.
12160         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
12161         `MonoGenericContainer *generic_container'.
12162         (MonoClass): Replaced `gen_params' and `num_gen_params' with
12163         `MonoGenericContainer *generic_container'.
12164
12165         * metadata.c (mono_metadata_load_generic_params): Return a
12166         `MonoGenericContainer *' instead of a `MonoGenericParam *';
12167         removed the `num' argument.
12168
12169 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
12170
12171         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
12172         for dynamic images.
12173
12174         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
12175         machine fields.
12176
12177         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
12178
12179         * reflection.c: Save pe_kind and machine values into the generated
12180         image file.
12181
12182         * appdomain.c: Bump corlib version number.
12183
12184         * object-internals.h: Reorganize layout of LocalBuilder.
12185
12186         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
12187         New helper function.
12188
12189         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
12190         created MonoType for dynamic types. Fixes #66180.
12191
12192 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
12193
12194         * threadpool.c: the ares hashtable needs a critical section around it.
12195         this prevents some nasty segfaults
12196
12197 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
12198
12199         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
12200         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
12201         bug 67324).
12202         
12203 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
12204
12205         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
12206         
12207 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
12208
12209         * image.c: Always canonicalize image file names, to avoid loading
12210         the same assembly twice when referenced using a relative path.
12211
12212 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
12213
12214         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
12215
12216         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
12217
12218         * marshal.c: Fix warnings.
12219
12220 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
12221
12222         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
12223         attempting to marshal the delegate_trampoline as the method_addr.
12224         This patch has a static hashtable of marshalled delegates so that 
12225         we can map delegate_trampoline addresses back to delegates.  This
12226         allows a delegate passed to managed code to be passed back into native
12227         code.  Fixes #67039
12228
12229 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
12230
12231         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
12232
12233         * reflection.c (method_encode_code): Align method headers properly.
12234         Fixes #66025.
12235
12236 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
12237
12238         * marshal.c: In the runtime invoke wrapper, reset the abort
12239         exception if it is cached. This avoids the automatic rethrowal of 
12240         the exception after the catch of the wrapper. Also check for pending
12241         interruptions before calling the managed method. This is done using
12242         the new method emit_thread_force_interrupt_checkpoint, since the
12243         normal checkpoint method is ignored when running the invoke wrapper.
12244         * object.c: If the abort exception is rethrown, set the abort_exc
12245         field of the thread, so it will be rethrown aftere every catch.
12246         * threadpool.c: Only run an interruption checkpoint if what has been
12247         requested is a stop of the thread (aborts will be ignored).
12248         * threads.c: By default, a thread will now never be interrumped while
12249         running the runtime invoke wrapper (this ensures that runtime_invoke
12250         will always return to the caller if an exception pointer is provided).
12251         There is a new special method mono_thread_force_interruption_checkpoint()
12252         to force an interruption checkpoint even if running a protected
12253         wrapper, which is used by the same runtime invoke wrapper to do a check
12254         at a safe point.
12255
12256 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
12257
12258         * object.c, object-internals.h: Implemented mono_release_type_locks,
12259         which releases the cctor locks held by a thread.
12260         * threads.c, threads.h: In thread_cleanup, release cctor locks held
12261         by a thread. Added mono_thread_exit() method to be used to safely stop
12262         a thread.
12263
12264 2004-09-28  Raja R Harinath  <rharinath@novell.com>
12265
12266         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
12267         Move null check before dereference.  Avoid indexing beyond the end
12268         of the 'modules' array.
12269
12270 2004-09-28  Raja R Harinath  <rharinath@novell.com>
12271
12272         * metadata-internals.h (MonoImage): Add module_count field.
12273         * image.c (load_modules): Set image->module_count.
12274         (mono_image_load_file_for_image): Use image->module_count.
12275         * reflection.c (mono_image_load_module): Append to image->modules array 
12276         of dynamic assembly.
12277         (mono_module_get_object): Fix loop to actually increment index.
12278         Use image->module_count.
12279         * assembly.c (mono_assembly_load_references): Use image->module_count.
12280         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
12281         Likewise.
12282
12283 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
12284
12285         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
12286         Avoid assert on generic types.
12287
12288 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
12289
12290         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
12291
12292         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
12293
12294         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
12295         function to convert a MarshalSpec structure to its managed counterpart.
12296
12297         * reflection.c: Fix warnings.
12298         
12299         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
12300         field.
12301
12302         * icall.c (mono_create_icall_signature): Fix build.
12303
12304 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
12305
12306         * icall.c: Add MakePointType icall.
12307
12308         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
12309         warnings.
12310
12311 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12312
12313         * threadpool.c: reuse allocated slots in the queue.
12314
12315 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
12316
12317         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
12318
12319         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
12320
12321         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
12322         previous change.
12323
12324         * tabledefs.h: Add constants for pinvoke attributes BestFit and
12325         ThrowOnUnmappableChar.
12326
12327         * icall.c (ves_icall_Type_GetPacking): New icall.
12328
12329 2004-09-24  Martin Baulig  <martin@ximian.com>
12330
12331         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
12332
12333 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12334
12335         * appdomain.c:
12336         (mono_domain_set): allow setting a domain that is being unloaded.
12337         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
12338         being unloaded.
12339
12340 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
12341
12342         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
12343         the GetCustomAttributes icall.
12344
12345 2004-09-23  Martin Baulig  <martin@ximian.com>
12346
12347         * object-internals.h (MonoReflectionGenericParam): Replaced
12348         'has_ctor_constraint', `has_reference_type' and `has_value_type'
12349         with `guint32 attrs'.
12350
12351 2004-09-23  Martin Baulig  <martin@ximian.com>
12352
12353         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
12354
12355 2004-09-23  Martin Baulig  <martin@ximian.com>
12356
12357         * object-internals.h (GenericParameterAttributes): New enum.
12358
12359 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
12360
12361         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
12362         
12363         * class.c (init_events): Fill out event->other field.
12364
12365         * class.c: Fix warnings.
12366
12367         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
12368
12369 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
12370
12371         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
12372         walk which doesn't supply the IL offset.
12373
12374 2004-09-22  Martin Baulig  <martin@ximian.com>
12375
12376         * reflection.c (mono_reflection_setup_internal_class): If we're
12377         System.ValueType, System.Object or System.Enum, set
12378         `klass->instance_size' and create the vtable.
12379         (mono_reflection_create_internal_class): If we're an enum type,
12380         get the base class from our current corlib.
12381
12382 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
12383
12384         * reflection.h (MonoResolveTokenError): New type.
12385
12386         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
12387         icall.
12388
12389         * icall.c: Add an 'error' argument to the ResolveToken icalls.
12390
12391 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
12392
12393         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
12394         Support also calling constructors, but only for already allocated objects.
12395
12396 2004-09-17  Geoff Norton <gnorton@customerdna.com>
12397
12398         * reflection.c (type_get_qualified_name): If the klass is null
12399         return the typename to avoid a NullRefEx.
12400         (encode_cattr_value): Get the qualified name of the boxed type,
12401         not the underlying enumtype.  Fixes #62984.
12402
12403 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
12404
12405         * marshal.c: Fix problems with previous checkin.
12406
12407 2004-09-21    <vargaz@freemail.hu>
12408
12409         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
12410         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
12411
12412         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
12413
12414 2004-09-21  Geoff Norton <gnorton@customerdna.com>
12415
12416         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
12417         should only return a type for pointers, arrays, and passbyref types.
12418         Fixes bug #63841.
12419
12420 2004-09-21  Martin Baulig  <martin@ximian.com>
12421
12422         * domain.c (mono_debugger_check_runtime_version): New public
12423         function.
12424
12425         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
12426
12427 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
12428
12429         * reflection.c: Added missing sort to the declarative security 
12430         attributes table. MS implementation stops seeing the attributes if the
12431         token number regress in the table (as shown by ildasm and permview).
12432
12433 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
12434
12435         * object-internals.h (MonoReflectionModule): Add 'token' field.
12436         
12437         * reflection.c (mono_reflection_get_token): Add support for Module
12438         and Assembly.
12439         (mono_module_get_object): Set 'token' field.
12440         (mono_module_file_get_object): Set 'token' field.
12441
12442         * icall.c: Add new Assembly and Module icalls.
12443
12444         * appdomain.c: Bump corlib version.
12445
12446 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
12447
12448         * loader.h loader.c class.h class.c: Add helper functions for obtaining
12449         tokens of metadata objects.
12450
12451         * reflection.h reflection.c (mono_reflection_get_token): New function
12452         to obtain the token of a metadata object.
12453
12454         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
12455
12456 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
12457
12458         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
12459         
12460         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
12461
12462 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
12463
12464         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
12465         * object-internals.h: Added 3 MonoArray* members to MonoReflection
12466         AssemblyBuilder to access the permissions set in the class lib.
12467         * reflection.c: Added security attributes encoding step in 
12468         mono_image_build_metadata.
12469         * tabledefs.h: Added new security actions defined in 2.0:
12470         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
12471
12472 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
12473
12474         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
12475         macro parameter.
12476
12477 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
12478  
12479         * locales.c: nullify the ICU_collator member of CompareInfo when it is
12480           finalized. There where random SIGSEVs at program termination, when
12481           an object being finalized was trying to do a string comparison and
12482           the current culture was already finalized.
12483  
12484 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12485
12486         * threads.c: call thread_cleanup before finishing the thread if we get
12487         there.
12488
12489 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
12490
12491         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
12492         assemblies from the parent. Fixes #65665.
12493
12494 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
12495
12496         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
12497         modifiers.
12498
12499 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
12500
12501         * reflection.h: add prototype for mono_get_dbnull_object
12502         * reflection.c: add prototypes for get_default_param_value_blobs 
12503         and mono_get_object_from_blob for fussier compilers
12504
12505 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
12506  
12507         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
12508         false deadlock checks in class initialization.
12509  
12510 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
12511
12512         * image.c (mono_image_addref): Fix comment.
12513
12514         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
12515         possible.
12516
12517 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
12518
12519         * reflection.c (mono_param_get_objects): Modified to return
12520         ParameterInfo.DefaultValue object.
12521
12522         (get_default_param_value_blobs):
12523         (mono_get_object_from_blob):
12524         (mono_get_dbnull_object): New helper routines. 
12525
12526         * object.c (mono_get_constant_value_from_blob): New helper routine
12527         carved out from get_default_field_value ()
12528
12529         * object-internals.h (mono_get_constant_value_from_blob): Added
12530         function declaration.
12531
12532 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
12533
12534         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
12535         referenced assemblies. Fixes #62135.
12536
12537         * exception.h exception.c (mono_get_exception_file_not_found2): New
12538         helper function.
12539
12540 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
12541
12542         * class.h class.c: Add mono_type_get_underlying_type ().
12543
12544 2004-09-09  Geoff Norton <gnorton@customerndna.com>
12545
12546         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
12547         Fix GetTypes() to support dynamically created assemblies.
12548
12549 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
12550
12551         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
12552         
12553         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
12554         previous patch.
12555
12556         * reflection.h reflection.c loader.c: Allow dynamic construction of
12557         pinvoke methods. Fixes #65571.
12558         
12559         * reflection.c (mono_reflection_get_type): Revert previous change since
12560         it causes regressions.
12561
12562 2004-09-08  Martin Baulig  <martin@ximian.com>
12563
12564         * class.c (class_compute_field_layout): Don't call
12565         mono_class_layout_fields() for open generic instances.
12566
12567 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
12568         * threads.c appdomain.c: fix typo in GC macro
12569
12570 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12571
12572         * threads.c: don't call mono_thread_detach() in start_wrapper(),
12573         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
12574
12575 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
12576
12577         * image.c (mono_image_close): Applied patch from 
12578         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
12579         assembly is loaded multiple times from data.
12580         
12581         * image.c (mono_image_open): Fix warning.
12582
12583 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
12584
12585         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
12586         once. Fixes #58334.
12587         
12588         * reflection.c (mono_reflection_create_runtime_class): Initialize
12589         klass->nested_classes. Fixes #61224.
12590
12591 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
12592
12593         * threads.c: sched_yield() on exit, to allow threads to quit.
12594
12595 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
12596
12597         * object.c (mono_unhandled_exception): Remove leftover debug code.
12598
12599 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
12600
12601         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
12602
12603 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
12604
12605         * marshal.c (emit_marshal_array): Really null terminate string arrays.
12606         
12607         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
12608
12609 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
12610
12611         * marshal.c (emit_marshal_array): Null terminate string arrays.
12612         
12613         * marshal.c (raise_auto_layout_exception): Fix warning.
12614
12615         * reflection.c (mono_param_get_objects): Initialize the default value
12616         with DBNull.Value, not null. Fixes #62123.
12617
12618 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
12619
12620         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
12621         throw an exception with a cute explanation.
12622
12623 2004-09-06  Dick Porter  <dick@ximian.com>
12624
12625         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
12626         Close the new process's thread handle, as we don't use it.  The
12627         handle stays around forever otherwise.
12628
12629 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
12630
12631         * object.c (arith_overflow): Fix warning.
12632
12633         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
12634         calling conventions in method refs. Fixes #65352.
12635
12636         * reflection.c: Fix warnings.
12637
12638 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
12639
12640         * icall.c: Add a new icall for Array.Clear
12641
12642 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
12643
12644         * object.c: When allocating an array, we have to throw
12645         an overflow exception if any of the lengths are < 0.
12646
12647 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
12648
12649         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
12650         properly. Also move implementation of string array marshalling to 
12651         managed code. Fixes #42316.
12652
12653 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12654
12655         * assembly.c: provide more information when loading an assembly fails.
12656
12657 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12658
12659         * filewatcher.c: don't expect the development fam package to be
12660         installed.
12661
12662 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
12663
12664         * marshal.c: Make a copy of the signature cookie since it will be
12665         freed by the caller.
12666         
12667         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
12668
12669         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
12670
12671         * metadata.c (mono_metadata_free_marshal_spec): New function to free
12672         marshal specs.
12673
12674         * marshal.c: More refactoring.
12675         
12676         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
12677         smaller functions.
12678
12679 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
12680
12681         * object.c: In mono_message_invoke, fill the output parameter array after
12682           calling the managed method (it was done before the call). This fixes
12683           bug #59299.
12684
12685 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
12686
12687         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
12688         as well.
12689
12690 2004-09-02  Martin Baulig  <martin@ximian.com>
12691
12692         * class.c (mono_class_instance_size): Don't allow generic type
12693         definitions or open generic instances.
12694         (mono_class_array_element_size): If we're a value type, call
12695         mono_class_instance_size() on the original class.
12696
12697         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
12698         handle generic instances.
12699
12700         * mono-debug-debugger.c (write_type): Handle generic instances
12701         like classes.
12702
12703 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
12704
12705         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
12706         the allocation request fails. Fixes #65089.
12707
12708         * object.c (mono_runtime_free_method): Do not call mono_free_method.
12709         
12710         * object.c (mono_runtime_free_method): New function to free a dynamic
12711         method.
12712
12713         * marshal.c (mono_delegate_free_ftnptr): New function to free the
12714         delegate trampoline.
12715
12716         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
12717         with hasthis as dynamic,
12718
12719         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
12720
12721         * domain.c (mono_jit_info_table_remove): New function to remove an
12722         entry from the jit info table.
12723
12724         * class-internals.h (MonoMethod): Add 'dynamic' field.
12725
12726         * loader.c: Fix warnings.
12727
12728 2004-09-01  Martin Baulig  <martin@ximian.com>
12729
12730         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
12731         instead of mono_debugger_lock() because the latter one is a no-op
12732         unless running in the debugger.
12733
12734 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
12735
12736         * class.c (class_compute_field_layout): Classes with auto-layout or
12737         reference fields are not blittable.
12738         
12739 2004-09-01  Dick Porter  <dick@ximian.com>
12740
12741         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
12742         mono_image_get_filename() to get the assembly location.
12743
12744         * icall.c:
12745         * metadata.h: Fix compile warnings
12746
12747 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
12748
12749         * class.c (class_compute_field_layout): System.Object is blittable.
12750
12751         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
12752         as in/out. Fixes #59909.
12753
12754 2004-09-01  Martin Baulig  <martin@ximian.com>
12755
12756         * metadata.h (MONO_TYPE_ISREFERENCE): Call
12757         mono_metadata_generic_inst_is_valuetype() if we're a generic
12758         instance to check whether our underlying type is a reference type.
12759
12760 2004-09-01  Martin Baulig  <martin@ximian.com>
12761
12762         * metadata.c (mono_type_size): If we're a generic instance, call
12763         mono_class_value_size() for value types.
12764
12765 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
12766
12767         * marshal.c: Implement more custom marshalling functionality. Fixes
12768         #64915.
12769
12770 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12771
12772         * mono-debug.c, debug-mono-symfile.c: add some locking love.
12773
12774 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
12775
12776         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
12777
12778         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
12779
12780         * icall.c: Fix some warnings.
12781
12782         * threads.c (abort_appdomain_thread): Fix unref errors.
12783         (mono_thread_current): Fix THREAD_DEBUG define.
12784
12785 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
12786
12787         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
12788
12789         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
12790
12791 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
12792
12793         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
12794         string arrays.
12795
12796 2004-08-28  Martin Baulig  <martin@ximian.com>
12797
12798         * metadata.c
12799         (mono_metadata_generic_inst_is_valuetype): New public function.
12800
12801         * metadata.h (MONO_TYPE_ISSTRUCT): Call
12802         mono_metadata_generic_inst_is_valuetype() if we're a generic
12803         instance to check whether our underlying type is a valuetype.
12804
12805 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
12806
12807         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
12808         #63768.
12809
12810 2004-08-25  Martin Baulig  <martin@ximian.com>
12811
12812         * loader.c (mono_get_method_from_token): Abstract methods can also
12813         be generic and thus have type parameters.
12814
12815         * metadata-internals.h
12816         (MonoDynamicImage): Added `GPtrArray *gen_params'.
12817
12818         * reflection.c (mono_image_get_generic_param_info): Don't create a
12819         metadata row, just add an entry to the `gen_params' array.
12820         (build_compressed_metadata): Sort the `gen_params' array and then
12821         actually create the metadata.
12822
12823 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12824
12825         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
12826
12827 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
12828
12829         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
12830
12831 2004-08-24  Martin Baulig  <martin@ximian.com>
12832
12833         * class.cs (mono_class_is_subclass_of): Like an interface, a
12834         generic instance also derives from System.Object.
12835
12836 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
12837
12838         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
12839         custom modifiers to be in any order. Fixes #61990.
12840
12841 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
12842
12843         * object.c: Register mono_object_new_fast icall.
12844         
12845         * object.c (mono_class_get_allocation_ftn): Return to calling
12846         mono_object_new_fast, since it seems faster to compute the object 
12847         size in unmanaged code than passing it as a parameter.
12848
12849         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
12850
12851         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
12852         this function with Boehm as the oom handler, so we don't have to check
12853         the result of GC_malloc.
12854
12855         * object.c: Remove checks for oom.
12856
12857         * object.h object.c (mono_class_get_allocation_ftn): New function to
12858         return the icall which can be used to allocate an instance of a given
12859         class. 
12860
12861         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
12862
12863         * class-internals.h: Add 'enabled' field.
12864
12865 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
12866
12867         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
12868
12869 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
12870         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
12871         value 0x0010.
12872
12873 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
12874
12875         * appdomain.c: use the Tls function for appdomain too,
12876         at Zoltan's request. Actually return in mono_context_get
12877
12878         * appdomain.c, profiler.c, threads.c: use __thread
12879
12880 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
12881
12882         * appdomain.c threads.c: Call GC_CreateThread on windows.
12883
12884         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
12885         multiple libraries since this don't work on windows.
12886
12887 2004-08-18  Martin Baulig  <martin@ximian.com>
12888
12889         * class-internals.h
12890         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
12891         MonoMethodHeader.
12892
12893         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
12894         MonoMethodNormal since we also need it for abstract and interface
12895         methods.
12896
12897         * reflection.c
12898         (build_compressed_metadata): Sort the GenericParam table.
12899         (mono_image_create_token): Added `gboolean create_methodspec'
12900         argument; this is false when generating a MethodImpl token.
12901         (reflection_methodbuilder_to_mono_method): Abstract and interface
12902         methods may also have generic parameters.
12903
12904 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
12905
12906         * appdomain.c: thread local alloc
12907
12908 2004-08-17  Martin Baulig  <martin@ximian.com>
12909
12910         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
12911
12912         * icall.c
12913         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
12914         argument.
12915
12916         * class.c (mono_type_get_full_name): New public function.
12917         (mono_type_get_name): Don't include the type arguments.
12918
12919 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
12920
12921         * Makefile.am: Build static versions of libmetadata and libmonoruntime
12922         for inclusion into the mono executable.
12923
12924 2004-08-16  Martin Baulig  <martin@ximian.com>
12925
12926         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
12927         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
12928
12929 2004-08-14  Martin Baulig  <martin@ximian.com>
12930
12931         * class.c (dup_type): Also copy the `byref' field.
12932
12933 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
12934
12935         * reflection.c (create_dynamic_mono_image): Revert the last change 
12936         since it breaks bootstrap.
12937
12938 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
12939
12940         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
12941
12942         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
12943         not free them with g_free.
12944
12945 2004-08-11  Martin Baulig  <martin@ximian.com>
12946
12947         * reflection.c (mono_reflection_setup_internal_class): Also call
12948         mono_class_setup_mono_type() if we already have a `tb->type.type'.
12949
12950 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
12951
12952         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
12953         called during default (first) AppDomain creation. Keep track of
12954         Evidence when loading assemblies.
12955
12956 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12957
12958         * opcodes.c, opcodes.h: reduce runtime relocations.
12959
12960 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
12961
12962         * culture-info.h, locales.c: fixes and chages to sue the new
12963         optimized format of the locale data.
12964         * culture-info-tables.h: regenerated.
12965
12966 2004-08-06  Geoff Norton <gnorton@customerdna.com>
12967         
12968         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
12969
12970 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
12971
12972         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
12973         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
12974         * domain-internals.h: icall declaration.
12975         * icall.c: icall registration.
12976         * object-internals.h: New fields in MonoAssembly for CAS.
12977
12978 2004-08-05  Duncan Mak  <duncan@ximian.com>
12979
12980         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
12981         CEE_LDELEM_ANY.
12982
12983 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12984
12985         * reflection.c: fix to deal with object[] arrays in custom ctors
12986         (bug #62550).
12987
12988 2004-08-05  Martin Baulig  <martin@ximian.com>
12989
12990         * class.c (mono_class_array_element_size): Added support for
12991         generic instances and correctly handle "recursive" types.
12992
12993 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
12994
12995         * assembly.c: Fix warnings.
12996
12997 2004-08-04  Martin Baulig  <martin@ximian.com>
12998
12999         * class.c
13000         (mono_type_get_name_recurse): Added `gboolean include_arity'
13001         argument specifying whether or not we should include the generic
13002         arity in the type name.
13003         (_mono_type_get_name): New static function.
13004         (mono_class_setup_vtable): If we're a generic instance, don't
13005         include the generic arity in the names of explicit method
13006         implementations.        
13007
13008 2004-08-03  Martin Baulig  <martin@ximian.com>
13009
13010         * class.c (mono_type_get_name_recurse): Enclose the generic type
13011         arguments in `<', '>'.
13012
13013 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13014
13015         * gc.c: make GC warning messages use the trace API, they are just
13016         noise to most of the users.
13017
13018 2004-08-03  Martin Baulig  <martin@ximian.com>
13019
13020         * debug-mono-symfile.c (read_string): Correctly read the string.
13021
13022 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
13023
13024         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
13025         
13026         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
13027         icalls.
13028         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
13029
13030 2004-07-30  Martin Baulig  <martin@ximian.com>
13031
13032         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
13033         Reflect latest symbol writer changes.   
13034
13035 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
13036
13037         * object.c: always create an object if null is passed
13038         to Invoke() where a valuetype is expected.
13039
13040 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
13041
13042         * marshal.c (mono_marshal_init): make managed
13043         signatures match native ones better for 64bits.
13044
13045 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13046
13047         * appdomain.c: hack to build correctly the private bin path on windows.
13048         Fixes bug #61991.
13049
13050 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
13051
13052         * assembly.c: Load mscorlib from the correct framework directory
13053           (mono/<version>/mscorlib.dll).
13054         * appdomain.h: Added prototypes for new functions.
13055         * internals.h: Added some prototypes.
13056         * domain.c: When initializing the runtime, get from the executable and
13057           the configuration files the runtime version that the app supports.
13058           Added support methods for reading app.exe.config. Added list of versions
13059           supported by the JIT. Added two new methods: mono_init_from_assembly,
13060           which initializes the runtime and determines the required version from
13061           the provided exe file, and mono_init_version, which initializes
13062           the runtime using the provided version.
13063         * icall.c: Get machine.config from version-specific directory.
13064         * reflection.c: When generating an image, embed the version number
13065           of the current runtime.
13066
13067 2004-07-28  Dick Porter  <dick@ximian.com>
13068
13069         * socket-io.c
13070         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
13071         returned sockaddr size before creating the remote address object.
13072         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
13073         61608.
13074
13075 2004-07-28  Dick Porter  <dick@ximian.com>
13076
13077         * locales.c (string_invariant_compare_char): Fix invariant char
13078         compares between upper and lower cases.  Fixes bug 61458.
13079
13080 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
13081         
13082         * marshal.c: actually cache stelem.ref wrappers.
13083         
13084 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
13085
13086         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
13087         sections and remove the mono_cli_rva_map () function.
13088
13089 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
13090
13091         * debug-mono-symfile.c: fix one more endianess issue, from a patch
13092         by Geoff Norton (<gnorton@customerdna.com>).
13093
13094 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13095
13096         * class.c: fix class loads for pointer types (typeof(int) !=
13097         typeof(int*)).
13098
13099 2004-07-27  Martin Baulig  <martin@ximian.com>
13100
13101         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
13102         reading the debugging information from an external ".mdb" file.
13103
13104 2004-07-24  Martin Baulig  <martin@ximian.com>
13105
13106         * reflection.c (mono_image_get_type_info): Only write a class
13107         layout entry if we actually have a size or a packing size.
13108
13109 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
13110
13111         * reflection.c (type_get_fully_qualified_name): 
13112         insert cast to get type checking of ?: with non-gcc compilers
13113
13114 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
13115
13116         * rand.c: use g_getenv for both lookups of
13117         MONO_EGD_SOCKET
13118
13119 2004-07-17  Martin Baulig  <martin@ximian.com>
13120
13121         * reflection.c (mono_reflection_bind_generic_method_parameters):
13122         Set `gmethod->reflection_info'.
13123
13124 2004-07-17  Martin Baulig  <martin@ximian.com>
13125
13126         * class.c (mono_class_create_from_typedef): Insert the newly
13127         created class into the hash table before computing the interfaces
13128         since we could be called recursively.
13129
13130 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
13131
13132         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
13133         function to implement stelem.ref in managed code
13134         * class-internals.h, debug-helpers.c: a new wrapper type
13135         for the above.
13136
13137 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
13138
13139         * gc.c: allow GC handles to work even when no GC is compiled in.
13140         Fix part of bug #61134 (GetAddrOfPinnedObject).
13141
13142 2004-07-13  Peter Williams  <peter@newton.cx>
13143  
13144         * process.c (complete_path): Make sure we don't attempt to execute
13145         directories.
13146  
13147 2004-07-12  Geoff Norton <gnorton@customerdna.com>
13148
13149         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
13150           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
13151           and will add/subtract the hour if needed
13152
13153 2004-07-12  Martin Baulig  <martin@ximian.com>
13154
13155         * reflection.c (mono_field_get_object): If we have
13156         `field->generic_info', take the attributes from
13157         `field->generic_info->generic_type'.    
13158
13159 2004-07-12  Martin Baulig  <martin@ximian.com>
13160
13161         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
13162         This function must be called before initializing the runtime.
13163         (mono_debug_init_1): New function; call this after initializing
13164         the runtime, but before loading the assembly.  It tells the
13165         debugger to load corlib and the builtin types.
13166
13167         * mono-debug-debugger.c: Did some larger changes in the debugging
13168         code; support recursive class declarations, make sure we actually
13169         add all classes.
13170
13171 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13172
13173         * debug-helpers.c: undo my previous patch and fixed the real issue in
13174         ../mini/exceptions-x86.c
13175
13176 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13177
13178         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
13179         when no HOME env. variable was set and a NullRef was thrown in a .cctor
13180         called from other .cctors.
13181
13182 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
13183
13184         * loader.c: Removed the mono_loader_wine_init hack now that we are
13185         doing a managed version of Windows.Forms.
13186
13187 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
13188
13189         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
13190         threadpool.c, threads.c: remove static data from rootset.
13191
13192 2004-07-09  Dick Porter  <dick@ximian.com>
13193
13194         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
13195         Don't do any more processing if the matched length was 0.  It was
13196         increasing the size of the string before.  Fixes bug 61167.
13197
13198 2004-07-09  Dick Porter  <dick@ximian.com>
13199
13200         * socket-io.h:
13201         * socket-io.c
13202         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
13203         Add support for SO_PEERCRED if its available.
13204
13205 2004-07-09  Peter Bartok <pbartok@novell.com>
13206         * loader.c: winelib.exe.so error message is now only displayed if
13207         MONO_DEBUG is set. To help us avoid questions when people are trying
13208         out the new Managed.Windows.Forms.
13209
13210 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
13211
13212         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
13213         for isinst and castclass wrappers.
13214
13215         * class-internals.h icall.c: Move registration and lookup of JIT icalls
13216         to libmetadata from the JIT, so they could be used by the marshalling
13217         code and the interpreter.
13218
13219         * marshal.c: Register marshalling related JIT icalls here instead of
13220         in mini.c. Use CEE_MONO_ICALL instead of the family of 
13221         CEE_MONO_PROC<x> opcodes to call marshalling functions.
13222
13223         * metadata.h: Remove unneeded marshalling conversions.
13224
13225         * opcodes.c: Update for new opcodes.
13226         
13227 2004-07-08  Martin Baulig  <martin@ximian.com>
13228
13229         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
13230         (mono_debug_get_domain_data): Make this function static.
13231
13232 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
13233
13234         * gc.c, object.h: add nice GC handle API for embedders.
13235
13236 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
13237
13238         * reflection.c: more changes for the new api
13239
13240         * object.c: When we reflect on a field w/ a constant value, it
13241         will not have a memory location, so we must access metadata. Also,
13242         allow easier reading of strings so that we can read them from
13243         the constant data.
13244
13245         * class.c (mono_class_layout_fields): no need for literal fields here.
13246
13247         * class-internals.h: api changes for const fields
13248
13249         * icall.c (ves_icall_get_enum_info): use new apis for const fields
13250
13251 2004-07-06  Martin Baulig  <martin@ximian.com>
13252
13253         * mono-debug.h: Increment version number to 44.
13254
13255         * mono-debug.c (mono_debug_add_wrapper): The second argument is
13256         now a gpointer, rewrote this whole method.
13257
13258         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
13259         function.  Add information about the wrapper in a new "misc table".
13260
13261         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
13262         for the new misc table.
13263
13264 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
13265
13266         * metadata-internals.h image.c: Add a cache for helper signatures.
13267
13268         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
13269
13270 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
13271
13272         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
13273         delegates from a delegate. Fixes #61033.
13274         
13275         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
13276         marshalling of stringbuilder arrays. Fixes #59900.
13277
13278 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
13279
13280         * icall.c: Add EnumBuilder:setup_enum_type icall.
13281
13282 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
13283
13284         * icall.c: Added a new icall for the property version of
13285         OffsetOfStringData.
13286
13287 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
13288
13289         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
13290         it has a constant size across platforms.
13291
13292         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
13293         stack trace.
13294
13295 2004-06-29  Martin Baulig  <martin@ximian.com>
13296
13297         * mono-debug.c (mono_debug_add_method): Protect the whole function
13298         in mono_debugger_lock(), not just parts of it.
13299
13300 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
13301
13302         * reflection.c: make sure padding bytes in heaps are zeroed.
13303
13304 2004-06-24  David Waite  <mass@akuma.org>
13305
13306         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
13307         image.c, loader.c, locales.c, marshal.c, metadata.c,
13308         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
13309         string-icalls.c, threads.c: change to C90-style comments from C99 /
13310         C++ -style
13311
13312 2004-06-24  Dick Porter  <dick@ximian.com>
13313
13314         * threads.c
13315         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
13316         return createdNew.  Fixes bug 60412.
13317
13318         * threads-types.h: 
13319         * icall.c: Add createdNew parameter to CreateMutex icall
13320
13321 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
13322
13323         * reflection.c, object-internals.h: save default value in params.
13324
13325 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13326
13327         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
13328         no need to build a new path combining that with the application base.
13329         Fixes bug #60442.
13330
13331 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
13332
13333         * reflection.c: fixed minor standard compliance issues.
13334
13335 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
13336
13337         * reflection.c: fixed issue with encoding some custom attributes
13338         (arrays in properties and fields, bug #60411).
13339
13340 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13341
13342         * reflection.c: fix start address when copying the public key token.
13343
13344 2004-06-23  Martin Baulig  <martin@ximian.com>
13345
13346         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
13347         the `exc' object in a static object to put it into the GC's root set.
13348
13349 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
13350
13351         * reflection.c: make mono_reflection_setup_internal_class ()
13352         callable a second time to setup a new parent class.
13353
13354 2004-06-23  Dick Porter  <dick@ximian.com>
13355
13356         * threads.c: Check for WAIT_IO_COMPLETION return values.
13357
13358 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
13359
13360         * appdomain.c: Removed the g_free on the public key token. Now copy 
13361         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
13362         * assembly.c: Added public key token string value when loading 
13363         assemblies. Fix bug #60439.
13364         * icall.c: Added missing informations (like public key) in 
13365         GetReferencedAssemblies. Fix #60519.
13366         * image.h: Changed definition for public key token from const char*
13367         public_tok_value to guchar public_key_token [17];
13368         * reflection.c: Updated for changes to public key token.
13369
13370 2004-06-22  Lluis Sanchez Gual
13371
13372         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
13373         for the field in base classes.
13374
13375 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
13376
13377         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
13378         mark headers as not supported, they are installed only for use by the
13379         debugger.
13380
13381 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
13382
13383         * *.c, *.h: avoid namespace pollution in public headers.
13384
13385 2004-06-21  Martin Baulig  <martin@ximian.com>
13386
13387         * exception.c (mono_get_exception_security): It's in
13388         "System.Security", not in "System".
13389
13390         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
13391         the exception classes.
13392
13393 2004-06-21  Martin Baulig  <martin@ximian.com>
13394
13395         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
13396         Protect the exception object from being finalized.
13397
13398 2004-06-21  Martin Baulig  <martin@ximian.com>
13399
13400         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
13401         public function.
13402
13403 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
13404
13405         * reflection.c: Load the assembly in mono_reflection_type_from_name,
13406         if it was not loaded before. Fix parts of #60439.
13407
13408 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
13409
13410         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
13411         code that was broken since Ben's change: wrappers are now
13412         dependent on the method signature only again.
13413
13414 2004-06-21  Martin Baulig  <martin@ximian.com>
13415
13416         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
13417         added interface support.
13418
13419 2004-06-21  Martin Baulig  <martin@ximian.com>
13420
13421         * class.c (mono_vtable_get_static_field_data): New public method.
13422
13423 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
13424
13425         * filewatcher.c : Windows build fix to be compliant with API changes.
13426
13427 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
13428
13429         * class.h, class.c: more accessors.
13430         * metadata.h, metadata.c: prepare for hiding MonoType and
13431         MonoMethodSignature: people should use the accessors from now on
13432         outside of the tree.
13433
13434 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
13435
13436         * *.c, *.h: more API cleanups.
13437
13438 2004-06-18  Jackson Harper  <jackson@ximian.com>
13439
13440         * assembly.c: Trace loading assemblies.
13441         * loader.c: Trace loading native libraries.
13442         * mono-config.c: Trace loading config files.
13443         
13444 2004-06-18  Dick Porter  <dick@ximian.com>
13445
13446         * locales.c: Tell ICU the lengths of strings, it can cope with
13447         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
13448
13449 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
13450
13451         * image.c: swapped name/filename;
13452
13453 2004-06-18  Martin Baulig  <martin@ximian.com>
13454
13455         * mono-debug-debugger.c (write_class): Write the parent class at
13456         the end of the header.
13457
13458 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
13459
13460         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
13461
13462 2004-06-17  Raja R Harinath  <rharinath@novell.com>
13463
13464         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
13465         (bundle_obj): New conditional define.
13466         (BUILT_SOURCES): Remove.
13467         ($(bundle_srcs)): Make parallel-make safe.
13468         (libmonoruntime_la_LIBADD): Make unconditional.
13469         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
13470         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
13471
13472 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
13473
13474         * culture-info-tables.h: It was inconsistent with the latest
13475           supp info files.
13476
13477 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
13478
13479         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
13480         be loaded.
13481
13482         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
13483         with gcc 2.95.
13484
13485 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
13486
13487         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
13488         cleaned up public header threads.h.
13489
13490 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
13491
13492         * Makefile.am, *.c, *.h: more API cleanups.
13493
13494 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
13495
13496         * Makefile.am: removed monosn from compilation.
13497         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
13498         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
13499         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
13500         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
13501         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
13502         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
13503
13504 2004-06-15  Jackson Harper  <jackson@ximian.com>
13505
13506         * assembly.c: Make locales lower case when searching the GAC for
13507         assemblies. gacutil will always make locales lowercase when
13508         installing so this effectively makes them case insensitive.
13509         
13510 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
13511
13512         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
13513         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
13514           parameter which allows to choose whether the wait can be interrupted or 
13515           not. Also added the method mono_monitor_enter(), which locks the monitor
13516           using an infinite wait and without allowing interruption.
13517           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
13518           interrupted.
13519         * object.h: Added new fields in MonoThread. suspend_event holds the event
13520           used to susped/resume the thread. synch_lock is the lock object to use for
13521           modifying the thread state.
13522         * threads.c: Use the new synch_lock object for locking, instead of "this",
13523           which can generate deadlocks.
13524           Moved thread state change in Thread.Sleep and Thread.Join from managed
13525           to unmanaged code. This avoids a deadlock when the thread was suspended
13526           just after acquiring the thread lock.
13527           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
13528           Implemented Thread.Suspend using an event instead of ThreadSuspend,
13529           which is not fully implemented in the io-layer.
13530         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
13531
13532 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
13533
13534         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
13535         threads-types.h: more API cleanups.
13536
13537 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
13538
13539         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
13540         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
13541         threadpool.c, threads.c: first pass at the exported API cleanup.
13542
13543 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
13544
13545         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
13546
13547 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13548
13549         * icall.c: added internalGetHome.
13550
13551 2004-06-14  Dick Porter  <dick@ximian.com>
13552
13553         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
13554         possible to return successfully when '.' or '..' were the only
13555         entries in a directory, but were skipped.  The MonoIOStat was not
13556         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
13557         Fixes bug 59574.
13558
13559 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
13560
13561         * reflection.c: make binaries run on .Net 1.1 by default.
13562
13563 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13564
13565         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
13566
13567 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
13568
13569         * marshal.c: keep track of struct size with explicit layout
13570         (bug #59979).
13571
13572 2004-06-12  Martin Baulig  <martin@ximian.com>
13573
13574         * mono-debug-debugger.c: Comment out a debugging g_message().
13575
13576 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
13577
13578         * reflection.c, reflection.h: do not free custom attrs that are cached.
13579         * icall.c: use braces to make code clearer.
13580
13581 2004-06-11  Martin Baulig  <martin@ximian.com>
13582
13583         * class.h (MonoInflatedField): New type.
13584         (MonoClassField): Replaced `MonoType *generic_type' with
13585         `MonoInflatedField *generic_info'.
13586
13587         * icall.c
13588         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
13589
13590 2004-06-11  Martin Baulig  <martin@ximian.com>
13591
13592         * reflection.c (mono_image_create_method_token): Correctly encode
13593         varargs methods.
13594
13595 2004-06-11  Martin Baulig  <martin@ximian.com>
13596
13597         * metadata.c (mono_metadata_parse_method_signature): When parsing
13598         a MethodDef which has VarArgs, also set sentinelpos if we don't
13599         have any parameters.
13600
13601 2004-06-11  Martin Baulig  <martin@ximian.com>
13602
13603         * verify.c (mono_method_verify): In CEE_CALL, use
13604         mono_method_get_signature() to get the method's signature, unless
13605         we're a PInvoke method.
13606
13607 2004-06-10  Jackson Harper  <jackson@ximian.com>
13608
13609         * assembly.c: Use <path>/lib/mono/gac for the extra paths
13610         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
13611         logical name as the supplied path is just a prefix to the gac not
13612         the direct path to it.
13613         
13614 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
13615
13616         * reflection.c: make the token for a created method match
13617         the token of the MethodBuilder it was created from
13618         (IKVM requires this behaviour now).
13619
13620 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
13621
13622         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
13623         reflection.c, socket-io.c: leak fixes.
13624
13625 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
13626
13627         * icall.c: handle sentinel pos in vararg methods in position different
13628         from 0.
13629
13630 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13631
13632         * culture-info-tables.h: freshly generated.
13633
13634 2004-06-09  Martin Baulig  <martin@ximian.com>
13635
13636         * loader.c (mono_get_method_constrained): Call `mono_class_init
13637         (constrained_class)'.   
13638
13639 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
13640
13641         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
13642         any methods. Fixes #59629.
13643
13644 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
13645
13646         * culture-info-tables.h: reflecting locale-builder updates.
13647
13648 2004-06-08  Dick Porter  <dick@ximian.com>
13649
13650         * object.h:
13651         * locales.c: Fixed compile warnings, including a real bug in
13652         CompareInfo_internal_compare.
13653         
13654 2004-06-08  Dick Porter  <dick@ximian.com>
13655
13656         * locales.c
13657         (ves_icall_System_Globalization_CompareInfo_internal_index):
13658         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
13659         Double-check the resuls of usearches, because ICU currently
13660         ignores most of the collator settings here.  Fixes bug 59720.
13661         
13662 2004-06-08  Dick Porter  <dick@ximian.com>
13663
13664         * locales.c
13665         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
13666         Fix memory leak and segfault-causing typo.  No idea how this one
13667         lasted so long without being noticed.
13668
13669 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
13670
13671         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
13672         any methods. Fixes #59629.
13673
13674 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13675
13676         * assembly.c:
13677         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
13678         own the critical section before). Removed dead code (that's done
13679         in the preload hook).
13680
13681         (mono_assembly_load_with_partial_name): call the preload hook.
13682
13683 2004-06-08  Martin Baulig  <martin@ximian.com>
13684
13685         * metadata.c (mono_metadata_signature_alloc): Default
13686         `sentinelpos' to -1.
13687
13688         * reflection.c (mono_image_get_array_token): Likewise.
13689
13690 2004-06-08  Martin Baulig  <martin@ximian.com>
13691
13692         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
13693
13694         * metadata.c (mono_metadata_parse_method_signature): When parsing
13695         a MethodDef which has VarArgs, set sentinelpos.
13696
13697         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
13698         `gint16' since we're using -1 for non-varargs methods.
13699
13700         * reflection.c
13701         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
13702         (method_encode_signature): Added varargs support.
13703         (method_builder_encode_signature): Likewise.
13704         (mono_image_get_varargs_method_token): New static method.
13705         (mono_image_create_method_token): New public method; this is
13706         called via an icall instead of mono_image_create_token() when
13707         calling a varargs method.       
13708
13709 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
13710
13711         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
13712
13713 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
13714
13715         * culture-info-tables.h : Reflecting the latest locale-builder that
13716           fixed empty array representation ({} to {0}).
13717
13718 2004-06-07  Jackson Harper  <jackson@ximian.com>
13719
13720         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
13721         looking up extra gac paths. This allows MONO_GAC_PATH to act
13722         exactly like a prefix.
13723         
13724 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
13725
13726         * reflection.c (mono_reflection_type_from_name): Make a copy of the
13727         type name before modifying it. Fixes #59405.
13728
13729 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
13730
13731         * culture-info.h: added fields for "all datetime patterns".
13732         * locales.c: (  ves_icall_System_Globalization_CultureInfo
13733           _construct_datetime_format ()): fill xxx_patterns fields.
13734         * object.h: added fields for "all datetime patterns" to
13735           MonoDateTimeFormatInfo.
13736         * culture-info-tables.h: reflecting locale-builder updates.
13737
13738 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
13739
13740         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
13741         the event has no add and remove methods. Fixes #59629.
13742
13743 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
13744
13745         * object.c: Fixed possible integer overflow when allocating large
13746         strings.
13747
13748 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
13749
13750         * culture-info-tables.h: reflecting locale-builder updates.
13751
13752 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
13753
13754         * culture-info-tables.h: reflecting locale-builder updates.
13755
13756 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
13757
13758         * culture-info-tables.h: reflecting locale-builder updates.
13759
13760 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
13761
13762         * threads.c: Made Thread.Sleep abortable.
13763
13764 2004-06-02  Martin Baulig  <martin@ximian.com>
13765
13766         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
13767
13768         * debug-mono-symfile.h: Bumped symbol file version number to 37.
13769
13770 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
13771
13772         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
13773
13774 2004-05-30  Jackson Harper  <jackson@ximian.com>
13775
13776         * reflection.c: Do not hardcode assembly versions or public key
13777         tokens anymore. All of this except the corlib section was dead
13778         code anyways.
13779         
13780 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
13781
13782         * object.c (mono_runtime_invoke_array): Automatically create boxed
13783         objects for byref valuetypes if needed. Fixes #59300.
13784         
13785         * object.c (mono_method_return_message_restore): Handle 
13786         MONO_TYPE_OBJECT as well.
13787
13788 2004-05-28  Jackson Harper  <jackson@ximian.com>
13789
13790         * reflection.c: The modified type encoding was causing build
13791         problems. Reverted for now.
13792         
13793 2004-05-28  Jackson Harper  <jackson@ximian.com>
13794
13795         * reflection.c/h: Take an assembly ref so that we dont create
13796         fully qualified names when encoding types in the same assembly as
13797         the custom attribute being emitted.
13798         * appdomain.c: Increment version number.
13799         
13800 2004-05-26  Duncan Mak  <duncan@ximian.com>
13801
13802         * icall.c
13803         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
13804         Set the full version number (major, minor, build, revision).
13805
13806 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
13807
13808         * marshal.c (emit_struct_conv): increment src/dst after blit
13809         (mono_marshal_get_managed_wrapper,
13810         mono_marshal_get_native_wrapper): make sure we have marshalling
13811         info before marshalling params (info computation affects
13812         blittable)
13813
13814         * class.c (class_compute_field_layout): correctly deal with
13815         blittable
13816         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
13817         value types (as per what windows dows by default)
13818         (mono_class_setup_mono_type): System.ValueType is blittable
13819         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
13820         blittable
13821
13822         * marshal.c (mono_marshal_load_type_info): flag types  as
13823         non-blittable if the native layout doesn't match the managed
13824         layout
13825
13826 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13827
13828         * appdomain.c: don't add stuff in the private search path that is
13829         above the application base. If application base is not set, there's
13830         no private search path.
13831
13832 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
13833
13834         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
13835         byref struct arguments in native->managed marshalling.
13836
13837 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
13838
13839         * marshal.c (mono_marshal_get_runtime_invoke): correctly
13840         cache methods using signature (special case for methods
13841         that are value type or string class)
13842         
13843         * image.c (mono_image_close): clean up allocated GSList's
13844         in runtime_invoke_cache.
13845
13846 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13847
13848         * mono-config.c: set the correct path for mono_cfg_dir on windows when
13849         there's no MONO_CFG_DIR environment variable defined.
13850
13851 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13852
13853         * threads.c: windows version must be >= 0x0500 to include OpenThread.
13854
13855 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
13856
13857         * threadpool.c: Really wait for 500ms after the async call, even if the wait
13858           is interrumped.
13859         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
13860           before waiting for it, and call CloseHandle after the wait to unref it.
13861           This will make sure that handles are not disposed too early.
13862
13863 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13864
13865         * appdomain.c:
13866         * appdomain.h:
13867         * icall.c: removed
13868         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
13869         needed now.
13870
13871         * object.c: se the application_base only for the domain that runs
13872         Main. Fixes bug #59216,
13873
13874 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13875
13876         * appdomain.c:
13877         * object.c: only the domain in which Main is run have
13878         SetupInformation.ConfigurationFile set, so moved a few lines from
13879         appdomain.c to object.c.
13880
13881 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13882
13883         * appdomain.c: we tried to load [name].(dll|exe), but according
13884         to bug #57710, we must also try [culture]/[name].(dll|exe) and
13885         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
13886         There's a test case attached to bug #58922.
13887
13888 2004-05-27  Dick Porter  <dick@ximian.com>
13889
13890         * icall.c:
13891         * file-io.c: Implemented icalls for locking and unlocking regions
13892         in a file.
13893         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
13894         FALSE on error (fixes both compiler warning and real bug.)
13895
13896 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
13897
13898         * culture-info-tables.h: reflecting locale-builder updates.
13899
13900           (Added missing ChangeLog entry for 05/26)
13901
13902 2004-05-27  Jackson Harper  <jackson@ximian.com>
13903
13904         * locales.c: Fix some cut and paste errors.
13905         
13906 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13907
13908         * mono-config.c: set the correct path for config. directory on windows.
13909
13910 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13911
13912         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
13913           on win32.
13914
13915 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
13916
13917         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
13918         from pinvoke functions.
13919         
13920         * marshal.c (mono_ftnptr_to_delegate): Implement this.
13921
13922 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13923
13924         * culture-info-tables.h: reflecting locale-builder updates.
13925
13926 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
13927
13928         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
13929         #59086.
13930
13931 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
13932
13933         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
13934         * icall.c: Modified icalls for RNG.
13935         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
13936         Windows (CryptoAPI).
13937
13938 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
13939
13940         * locales.c: Fix build.
13941
13942 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
13943
13944         * culture-info-tables.h: reflecting locale-builder updates.
13945
13946 2004-05-25  Jackson Harper  <jackson@ximian.com>
13947
13948         * locales.c: When creating the current culture use the $LANGs
13949         specific culture. So DateTimeFormat and NumberFormat entries are created.
13950         
13951 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
13952
13953         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
13954         a char array as parameter.
13955
13956 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
13957
13958         * image.c: In mono_image_open(), always use an absolute path name to
13959           look for already loaded images.
13960
13961 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
13962
13963         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
13964         missing in the windows build (like older cygwin include files).
13965
13966 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
13967
13968         * icall.c: Fixed check for possible integer overflow in Buffer_
13969         BlockCopy icall. Replaced comments style // by /* */.
13970
13971 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
13972
13973         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
13974         
13975         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
13976         check after MONO_VTADDR. Fixes pinvoke2.exe.
13977
13978         * marshal.h marshal.c metadata.h: Add beginnings of support for
13979         ftnptr -> delegate marshalling.
13980
13981 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
13982
13983         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
13984         * threads.c: Fix warnings.
13985
13986 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
13987
13988         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
13989         * icall.c: Registered icalls for Suspend and Resume.
13990         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
13991           Thread.Abort.
13992         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
13993         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
13994         * process.c: Use WaitForSingleObjectEx.
13995         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
13996           checkpoints.
13997         * threads.c, threads.h: Make use of new Ex wait methods. Improved
13998           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
13999           for Suspend and Resume. Added new mono_thread_stop, used for stoping
14000           background threads. Added basic support for Abort in Windows.
14001           Start new threads using a managed delegate invoke wrapper. This wrapper
14002           has an interruption checkpoint that is needed since an interruption
14003           can be requested before the thread leaves the unmanaged code that starts 
14004           the thread.
14005         * marshal.c: Added interruption checkpoint after every native call, and
14006           also before managed calls for wrappers called from unmanaged code to
14007           go into managed code.
14008         * object.h: Added new field in MonoThread to keep track of interruption
14009           requests.
14010
14011 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
14012
14013         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
14014         calls.
14015
14016 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14017
14018         * appdomain.c:
14019         * assembly.c:
14020         * gc.c:
14021         * locales.c:
14022         * mono-config.c:
14023         * rand.c: getenv -> g_getenv (windows!)
14024
14025         * process.c: complete_path is also used on non-windows platforms.
14026
14027 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14028
14029         * icall.c: new signature for Process_Start.
14030
14031         * process.[ch]: new signature for Process_Start. If we're on windows
14032         and UseShellExecute is false, we have to search for the program by
14033         ourselves if we don't get a full path.
14034
14035 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
14036
14037         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
14038         marshalling and call CleanUpNativeData if needed. Fixes #58646.
14039
14040 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14041
14042         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
14043         Fixes bug #58373.
14044
14045 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14046
14047         * process.c: use double quotes to quote program name and arguments on
14048         windows. Fixes bug #58575.
14049
14050 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14051
14052         * file-io.c: don't return "." and ".." when using windows Find*File.
14053
14054 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
14055
14056         * marshal.c: Don't pass wrappers to message init because method 
14057         addressed used to lookup metadata. part of remoting[2|3] fix.
14058
14059 2004-05-15  Jackson Harper  <jackson@ximian.com>
14060
14061         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
14062         path is essentially the same as MONO_PATH except that it points to
14063         GACs instead of lib directories.
14064         * loader.h: The user gac is gone so we dont need function to
14065         enable/disable it.
14066         * mono-config.c: user gac option is now gone.
14067         
14068 2004-05-15  Jackson Harper  <jackson@ximian.com>
14069
14070         * culture-info.h: Make defines more consistent, add calendar data
14071         to the culture info table.
14072         * culture-info-tables.h: Add basic calendar data. Basically
14073         everyone gets default gregorian until all the data is
14074         updated.
14075         * locales.c: Use the new consistent defines. Set calendar data for
14076         culture info objects.
14077         * object.h: add a field for calendar data to CultureInfo
14078         
14079 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
14080
14081         * image.c: image->runtime_invoke_cache is keyed on signatures now.
14082         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
14083         a signature.
14084         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
14085         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
14086         an extra param that is the pointer of the method to invoke. The IL for
14087         the invoke method is no longer specific to the method, but to the
14088         signature of the method. Thus, we can share the same code for multiple
14089         methods. This reduces the number of methods that have to be compiled.
14090
14091 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
14092
14093         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
14094
14095         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14096
14097         * icall.c: Optimize Buffer.BlockCopy.
14098
14099 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14100
14101         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
14102         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
14103         quote). Changed them to "MMMM yyyy".
14104
14105 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
14106
14107         * rand.c
14108         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
14109
14110 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
14111
14112         * reflection.h: Updated after changes to managed structures.
14113
14114         * appdomain.c: Bump corlib version.
14115
14116 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14117
14118         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
14119         windows.
14120
14121 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14122
14123         * Makefile.am: link to ../os/libmonoos.la on windows.
14124
14125         * assembly.c:
14126                 -If MONO_DEBUG, warn about non-existing directories in
14127                 MONO_PATH.
14128                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
14129                 compile time variable.
14130                 -Removed init_default_path and call mono_set_rootdir from
14131                 libmonoos.a instead (windows only).
14132
14133         * assembly.h: declare mono_assembly_getrootdir().
14134
14135         * domain.c:
14136         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
14137
14138         * loader.c: s/getenv/g_getenv/
14139
14140 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
14141
14142         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
14143
14144         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
14145
14146         * metadata.h: Add new marshalling conversions.
14147
14148         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
14149         function.
14150
14151         * reflection.c (mono_reflection_get_type): Lookup the type in all
14152         modules of a multi-module assembly. Fixes #58291.
14153
14154 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
14155
14156         * threads.c: Before aborting a background, set the StopRequested
14157         state.  This avoids throwing the Abort exception.
14158         In mono_thread_manage, don't continue with the shutdown until all
14159         aborted threads have actually stopped.
14160
14161 2004-05-10  Jackson Harper  <jackson@ximian.com>
14162
14163         * locales.c: Remove the modifier from culture names.
14164         
14165 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14166
14167         * Makefile.am: monosn is not installed any more. It has been deprecated
14168         in favor of sn.
14169
14170 2004-05-07  Jackson Harper  <jackson@ximian.com>
14171
14172         * locales.c
14173         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
14174         Fix array construction, add bailout if the length is 0.
14175
14176 2004-05-07  Dick Porter  <dick@ximian.com>
14177
14178         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
14179         machine doesn't have a DNS entry.  Patch by Urs Muff
14180         (umuff@quark.com), fixes bug 57928.
14181
14182 2004-05-06  Jackson Harper  <jackson@ximian.com>
14183
14184         * reflection.c: Handle null PublicTokens properly. alloc mem for
14185         assembly names culture so we dont crash when freeing it.
14186         
14187 2004-05-06  Jackson Harper  <jackson@ximian.com>
14188
14189         * assembly.c: Check the usergac when loading with partial names.
14190         
14191 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
14192
14193         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
14194         does nothing for now (not required for Linux/Windows) but the class
14195         library can call it (and a newer or modified runtime could need it).
14196         * icall.c: Registred icall.
14197
14198 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14199
14200         * loader.c: prints a message on module loading error we set MONO_DEBUG
14201         environment variable.
14202
14203 2004-05-05  Jackson Harper  <jackson@ximian.com>
14204
14205         * appdomain.c: Handle PublicKeyToken=null properly.
14206         
14207 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
14208
14209         * environment.c|h: Added icall ves_icall_System_Environment_
14210         GetOSVersionString to get the current OS version as a string.
14211         * icall.c: Registred icall.
14212
14213 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
14214
14215         * object.c: in mono_object_get_virtual_method(), take into account that
14216         non-virtual methods don't have a slot in the vtable. Check needed when
14217         the object is a proxy.
14218
14219 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
14220
14221         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
14222         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
14223
14224         * object.c (mono_class_compute_gc_descriptor): Fix warning.
14225
14226         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
14227         passed when a valuetype is expected.
14228
14229         * object.c (mono_unhandled_exception): Only set the exit code if the
14230         exception happens in the main thread. Fixes thread5.exe.
14231
14232         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
14233         invalid names. Fixes #58047.
14234
14235 2004-05-03  Jackson Harper  <jackson@ximian.com>
14236
14237         * assembly.c: This line was committed accidently and is unneeded.
14238         
14239 2004-05-03  Jackson Harper  <jackson@ximian.com>
14240
14241         * icall.c: Add new icall for Assembly::LoadWithPartialName
14242         * assembly.c/.h: new function that probes the GAC to load partial
14243         assembly names by Paolo Molaro.
14244         
14245 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14246
14247         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
14248         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
14249         (type_get_fully_qualified_name): Added PublicKeyToken when building a
14250         full type name.
14251
14252 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14253
14254         * appdomain.c: fixed check for 'neutral' culture and removed warning.
14255         * reflection.c: fix bug when parsing a full type name and Version is not
14256         the last thing in the string.
14257
14258 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
14259
14260         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
14261         crashes when it is freed.
14262
14263 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14264
14265         * assembly.c: print the compat warning to stderr.
14266
14267 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
14268
14269         * assembly.c (mono_assembly_load_references): Add a compatibility
14270         hack to run old applications that might be still referencing the
14271         3300-based assemblies, only do this for System.xxx.
14272
14273 2004-05-01  Jackson Harper  <jackson@ximian.com>
14274
14275         * appdomain.c: If the culture is neutral we set it to "".
14276         
14277 2004-04-29  Jackson Harper  <jackson@ximian.com>
14278
14279         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
14280
14281 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
14282  
14283         * string-icalls.c: added low overhead function for copying chars
14284         * icall.c: added needed icall for the above function
14285  
14286 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14287
14288         * icall.c: fix return value of get_global_assembly_cache.  Implemented
14289         Environment.GetLogicalDrives.
14290
14291 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
14292
14293         * rand.c: try and talk to egd or prngd
14294         for random bytes if opening devices fail.
14295
14296 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
14297
14298         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
14299         alignment for the type using the native alignment of its members 
14300         instead of using klass->min_align.
14301
14302         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
14303
14304 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14305
14306         * file-io.c:
14307         * socket-io.c: added check for sys/aio.h.
14308
14309 2004-04-28  Dick Porter  <dick@ximian.com>
14310
14311         * threads.c: Don't abort a thread thats already aborting, when
14312         terminating everything.
14313
14314 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14315
14316         * icall.c: added 2 new async calls for Socket.
14317
14318         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
14319         IO on *nix systems.
14320
14321         * threadpool.c: removed unused variable.
14322
14323 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
14324
14325         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
14326
14327 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
14328
14329         * locales.c: put back string_invariant_tolower () and
14330         string_invariant_toupper ().
14331
14332 2004-04-26 David Waite <mass@akuma.org>
14333
14334         * file-io.h:
14335         * socket-io.h:
14336         * threads.h:
14337         * unicode.h: remove comma from end of enumeration declarations
14338
14339 2004-04-26 David Waite <mass@akuma.org>
14340
14341         * debug-mono-symfile.h:
14342         * decimal.c:
14343         * mono_debug.h:
14344         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
14345
14346
14347 2004-04-26  Jackson Harper  <jackson@ximian.com>
14348
14349         * appdomain.c: Increment version number.
14350         
14351 2004-04-26  Jackson Harper  <jackson@ximian.com>
14352
14353         * appdomain.c: Set assembly references public token value when
14354         PublicKeyToken is specified, not the hash_value. Free public token
14355         values when free assembly name data. Previously the public key
14356         token was hex decoded, however we are using hex encoded public key
14357         tokens, so this is not neccasary.
14358         * assembly.c: Lookup assemblies in the gac if their public token
14359         value is set. Add function to allow enabling user gac
14360         lookups. Specify whether or not the assembly was loaded from the
14361         GAC. Compare full assembly names when checking the cache for
14362         assemblies (Temporarily disabled see comment in code). Remove
14363         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
14364         specifies trace-loader they get extra info to stdout on the
14365         loading of assemblies.
14366         * image.h: Add a field for an assembly references public token
14367         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
14368         whether an assembly has been loaded from the GAC.
14369         * image.c: Remove a corlib -> mscorlib name mapping.
14370         * loader.h: Add function to enable/disable the user gac.
14371         * mono-config.c: Check if the usergac is enabled in the config
14372         file.
14373         * icall.c: New icall to determine whether or not an assembly has
14374         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
14375         * tabldefs.h: Add constant for assemblyref flag that specifies a
14376         full public key is used instead of a public token.
14377         * reflection.c: Remove mscorlib -> corlib mappings. Set
14378         PublicTokenValue instead of hash value. This value is a hex
14379         string so it does not need to be expanded.
14380
14381 2004-04-26  Martin Baulig  <martin@ximian.com>
14382
14383         * mono-debug-debugger.c (mono_debugger_initialize): Set
14384         `mono_debugger_initialized' before calling mono_debug_lock().
14385
14386 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
14387
14388         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
14389           InternalToUpper/InternalToLower.
14390         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
14391           removed invariant culture shortcut.  This is now done in managed code.
14392         * locales.c: (string_invariant_toupper/tolower) removed.
14393
14394 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14395
14396         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
14397         Added Poll internal call.
14398
14399         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
14400         call for Poll. Select was too heavy for polling a single socket.
14401
14402         * threadpool.[ch]: added mono_threadpool_cleanup.
14403         * threads.c: use it. Don't use Thread_Abort on windows.
14404
14405 2004-04-23  Martin Baulig  <martin@ximian.com>
14406
14407         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
14408
14409 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
14410
14411         * icall.c: Registred new icalls for key pair protection and added an
14412         icall for Environment.GetFolderPath on Windows.
14413         * security.c|h: Added new icalls for key pair protection.
14414
14415 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14416
14417         * socket-io.c: don't display the non-supported family warning for known
14418         families. Now this is not displayed on windows when checking support
14419         for IPv4/IPv6.
14420
14421 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14422
14423         * class.c: don't display the layout warning for static fields.
14424
14425 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
14426
14427         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
14428         * locales.c, locales.h: Added new icalls for culture-specific
14429         Char.ToLower and Char.ToUpper.
14430
14431 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14432
14433         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
14434         by David Waite.
14435
14436 2004-04-20  Martin Baulig  <martin@ximian.com>
14437
14438         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
14439         of the type name before passing it to mono_reflection_type_from_name().
14440
14441 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
14442
14443         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
14444         encodings here. Fixes #56965.
14445
14446 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
14447
14448         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
14449         fix test on strstr result not that I can see anything that
14450         relies on the result.
14451
14452 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
14453
14454         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
14455         Fixes #57081.
14456
14457         * marshal.c (mono_marshal_get_string_encoding): New helper function.
14458
14459         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
14460         function to determine which marshalling to use for strings. Fixes
14461         #56965.
14462
14463         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
14464
14465         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
14466
14467 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
14468
14469         * icall.c: #include mono-config.h
14470
14471 2004-04-15  Jackson Harper  <jackson@ximian.com>
14472
14473         * culture-info-tables.h: Fix date formats for en-US culture.
14474         
14475 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
14476
14477         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
14478         ThreadPool.SetMinThreads.
14479         * threadpool.c: Implemented ThreadPool.GetMinThreads and
14480         ThreadPool.SetMinThreads.
14481
14482 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
14483
14484         * mono-config.c: also load the .config file in the directory
14485         where the assembly was found.
14486
14487 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
14488
14489         * assembly.c: load per-assembly config files.
14490         * icall.c: decrapified code to get the config dir and moved to
14491         mono-config.c.
14492         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
14493         per-assembly config files. When doing a dll map lookup give precedence
14494         to the per-assembly data.
14495
14496 2004-04-14  Martin Baulig  <martin@ximian.com>
14497
14498         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
14499         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
14500         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
14501
14502         * mono-debugger-debugger.c: While the debugger is locked, remember
14503         whether the symbol tables have changes and send one single
14504         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
14505
14506 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
14507
14508         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
14509
14510         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
14511         function.
14512
14513         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
14514         account when marshalling string arrays. Fixes #56965.
14515
14516 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
14517
14518         * icall.c: Add new icalls mapping for security.
14519         * security.c|h: Add internal calls for WindowsIdentity,
14520         WindowsImpersonationContext and WindowsPrincipal.
14521
14522 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
14523
14524         * class.c: Added comment to ensure the System.MonoDummy class
14525         is removed when no longer necessary
14526
14527 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
14528
14529         * appdomain.c: Pass arguments to the bootstraping exceptions to
14530         minimize JITed methods at boot
14531
14532         * metadata.c (mono_exception_from_name_two_strings): Allow for the
14533         second string to be null.
14534
14535         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
14536         Change the protocol to minimize the JIT methods at startup.  Now
14537         it Returns the internal codepage, if the value of "int_code_page"
14538         is 1 at entry, and we can not compute a suitable code page
14539         number, returns the code page as a string.
14540
14541 2004-04-13  Jackson Harper  <jackson@ximian.com>
14542
14543         * culture-info-tables.h: Fix number of decimal digits for all
14544         english locales.
14545
14546 2004-04-13  Jackson Harper  <jackson@ximian.com>
14547
14548         * icall.c: Clairfy out of sync error message. It is not always
14549         your corlib that is out of sync.
14550
14551 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
14552
14553         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
14554         properties when only the set accessor is overriden. Fixes #55874.
14555
14556 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
14557
14558         * assembly.c (mono_assembly_load_references): Make this thread safe.
14559         Fixes #56327.
14560
14561 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
14562
14563         * monosn.c: Add missing initialization calls.
14564
14565 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
14566
14567         * locales.c:
14568         ves_icall_System_Globalization_CultureInfo_construct_number_format
14569         Fix g_assert so it compiles on fussier compilers re int/ptr
14570         mismatch
14571
14572 2004-04-08  Dick Porter  <dick@ximian.com>
14573
14574         * socket-io.h:
14575         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
14576         53992.  Also rearrange the code so that the internal calls return
14577         an error value and exceptions are thrown from managed code.
14578
14579         * icall.c: Add type info to the socket icalls.
14580
14581 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14582
14583         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
14584         owes me a beer.
14585
14586 2004-04-07  Martin Baulig  <martin@ximian.com>
14587
14588         * class.c (mono_class_from_generic_parameter): Don't default
14589         `klass->parent' to `mono_defaults.object_type'.
14590
14591 2004-04-07  Martin Baulig  <martin@ximian.com>
14592
14593         * reflection.c (mono_reflection_initialize_generic_parameter): Set
14594         `param->pklass->reflection_info'.       
14595
14596 2004-04-07  Jackson Harper  <jackson@ximian.com>
14597
14598         * culture-info-tables.h: Fix date separator symbol.
14599         
14600 2004-04-07  Martin Baulig  <martin@ximian.com>
14601
14602         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
14603         from System.Type to System.MonoType.
14604
14605 2004-04-07  Martin Baulig  <martin@ximian.com>
14606
14607         * reflection.h
14608         (MonoReflectionGenericParam): Added `has_reference_type' and
14609         `has_value_type' fields.
14610
14611         * reflection.c (mono_image_get_generic_param_info): Encode the
14612         correct flags if we have the `class' or `struct' constraint.
14613
14614 2004-04-07  Martin Baulig  <martin@ximian.com>
14615
14616         * reflection.h
14617         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
14618
14619 2004-04-07  Jackson Harper  <jackson@ximian.com>
14620
14621         * appdomain.c: Revert extra patches, just wanted to bump the
14622         version number.
14623         
14624 2004-04-07  Jackson Harper  <jackson@ximian.com>
14625
14626         * Makefile.am: Add culture-info private headers.
14627         * icall.c: Add new icalls for contructing locales.
14628         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
14629         * locales.h: Declare new culture info construction methods.
14630         * object.h: Add new fields used to avoid the CultureMap to
14631         MonoCultureInfo.
14632         * culture-info.h: Definition of structs used in the culture info
14633         tables.
14634         * culture-info-tables.h: Autogenerated tables that contain culture
14635         info data. This file was generated with the locale-builder tool.
14636         * appdomain.c: Incement corlib version number.
14637         
14638 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
14639
14640         * appdomain.c: (mono_runtime_init) move mono_thread_init
14641         to before mono_object_new calls so critical sections
14642         are initialized before use.
14643
14644 2004-04-07  Martin Baulig  <martin@ximian.com>
14645
14646         * icall.c
14647         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
14648         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
14649         (ves_icall_MonoGenericParam_initialize): Removed.
14650         (monogenericparam_icalls): Removed.
14651         (generictypeparambuilder_icalls): Added new table for
14652         System.Reflection.Emit.GenericTypeParameterBuilder.
14653
14654         * reflection.c
14655         (mono_reflection_define_generic_parameter): Removed.
14656         (mono_reflection_initialize_generic_parameter): This is now called
14657         from GenericTypeParameterBuilder's .ctor.
14658
14659 2004-04-06  Martin Baulig  <martin@ximian.com>
14660
14661         * class.c (mono_class_init): Don't inflate nested classes in a
14662         generic instance.
14663         (mono_type_get_name_recurse): Include the generic arguments for
14664         generic instances and generic type declarations.
14665         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
14666         (_mono_class_get_instantiation_name): Removed.
14667         (mono_class_create_generic): Always use `gklass->name' as our name.
14668
14669         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
14670
14671         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
14672         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
14673         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
14674         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
14675         closed generic methods here.
14676
14677         * reflection.c
14678         (mono_reflection_generic_inst_get_nested_types): Removed.
14679         (inflate_mono_method): Copy the generic parameters from the
14680         MonoMethodHeader into out MonoGenericMethod.
14681
14682 2004-04-06  Martin Baulig  <martin@ximian.com>
14683
14684         * row-indexes.h
14685         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
14686
14687         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
14688
14689         * reflection.c (build_compressed_metadata): If we have any entries
14690         in the GenericParam, MethodSpec or GenericParamConstraint tables,
14691         set the header version to 1.1.
14692
14693 2004-04-06  Martin Baulig  <martin@ximian.com>
14694
14695         * class.c (mono_class_init): If we're a generic instance,
14696         initialize our nested classes, too.
14697         (_mono_class_get_instantiation_name): Deal with the new `!%d'
14698         suffix. 
14699
14700 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14701
14702         * process.c: quote the argument passed to the shell on windows.
14703
14704 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
14705
14706         * threads.c (mono_alloc_special_static_data): Allow this to be
14707         called during startup.
14708
14709 2004-04-02  Martin Baulig  <martin@ximian.com>
14710
14711         * icall.c
14712         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
14713
14714 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
14715
14716         * icall.c: Fix build.
14717
14718 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
14719
14720         * Makefile.am: Added security.c|h.
14721         * icall.c: Added icall for get_UserName;
14722         * security.c: New file for security related icalls. Added function
14723         get_UserName for System.Environment (fix #56144).
14724         * security.h: New. Header file for security.c
14725
14726 2004-04-02  Dick Porter  <dick@ximian.com>
14727
14728         * icall.c: Deleted the icalls that were obsoleted some time ago
14729         by the ICU string code, and which were mixed into the icall
14730         rearranging.  Fixes bug 55969.
14731
14732         * string-icalls.h: 
14733         * string-icalls.c: Deleted the code that those icalls reference.
14734
14735 2004-04-01  Martin Baulig  <martin@ximian.com>
14736
14737         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
14738
14739         * class.c (mono_class_from_generic_parameter): Don't set 
14740         TYPE_ATTRIBUTE_INTERFACE.
14741         (my_mono_class_from_generic_parameter): Likewise.
14742
14743 2004-04-01  Martin Baulig  <martin@ximian.com>
14744
14745         * loader.c (find_method): Added an optional `MonoClass *ic'
14746         argument to search in a specific interface.
14747         (mono_get_method_constrained): New public function.
14748
14749 2004-04-01  Martin Baulig  <martin@ximian.com>
14750
14751         * reflection.c (mono_image_get_generic_field_token): Use the
14752         `handleref' cache here.
14753
14754 2004-04-01  Martin Baulig  <martin@ximian.com>
14755
14756         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
14757
14758         * reflection.c (create_generic_typespec): Use the `typespec' hash
14759         here, not the `typeref' one.    
14760
14761 2004-04-01  Martin Baulig  <martin@ximian.com>
14762
14763         * class.c (mono_class_inflate_generic_type): Moved the
14764         functionality into a new static inflate_generic_type() which
14765         returns NULL if it didn't do anything.  Only increment the
14766         `mono_stats.inflated_type_count' if we actually inflated
14767         something.
14768         (mono_class_get_full): Check the classes type to see whether we
14769         need to inflate it; also inflate MONO_TYPE_(M)VAR.
14770
14771 2004-04-01  Jackson Harper  <jackson@ximian.com>
14772
14773         * reflection.c: Set culture for assembly references.
14774         
14775 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
14776
14777         * reflection.[ch], icall.[ch], Fix support for pinning variables.
14778
14779 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14780
14781         * assembly.c:
14782         (do_mono_assembly_open): the critical section also covers
14783         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
14784
14785 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14786
14787         * threads.c:
14788         (mono_manage_threads): abort the background threads when finishing.
14789         Fixes bug #47232.
14790
14791 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14792
14793         * gc.c: only close the done_event handle if there was no timeout.
14794         C-ified comments.
14795
14796 2004-03-30  Martin Baulig  <martin@ximian.com>
14797
14798         * icall.c (icall_entries): It's called "System.Activator", not
14799         "System.Activation".    
14800
14801 2004-03-30  Martin Baulig  <martin@ximian.com>
14802
14803         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
14804         (mono_class_create_from_typespec): Likewise.
14805
14806 2004-03-30  Martin Baulig  <martin@ximian.com>
14807
14808         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
14809         `has_ctor_constraint' and `initialized'.
14810
14811 2004-03-30  Martin Baulig  <martin@ximian.com>
14812
14813         * reflection.c (encode_new_constraint): New static function to add
14814         the constructor constraint attribute to a type parameter.
14815         (encode_constraints): Call encode_new_constraint() if necessary.
14816
14817         * reflection.h
14818         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
14819
14820         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
14821         
14822 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
14823
14824         * reflection.c, icall.c: add support for pinning variables. 
14825
14826 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
14827
14828         * marshal.c (mono_marshal_get_managed_wrapper):
14829         init bool local with zero rather than null.
14830
14831 2004-03-29  Martin Baulig  <martin@ximian.com>
14832
14833         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
14834         the "official" behavior here.
14835         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
14836
14837 2004-03-29  Martin Baulig  <martin@ximian.com>
14838
14839         * icall.c: Reflect latest API changes.
14840
14841 2004-03-29  Martin Baulig  <martin@ximian.com>
14842
14843         * loader.c (mono_get_method_from_token): Also call
14844         mono_metadata_load_generic_params () for abstract and interface
14845         methods; replace the type arguments in the method signature with
14846         the ones which are loaded from the metadata.
14847
14848 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
14849
14850         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
14851         of the lock is not the current thread. MS.NET don't do it, in spite of
14852         what the documentation says. See bug #56157.
14853
14854 2004-03-28  Martin Baulig  <martin@ximian.com>
14855
14856         * class.c (mono_class_init): Don't call init_properties() and
14857         init_events() for generic instances; set `prop->parent' when
14858         inflating properties.
14859
14860         * reflection.c (mono_generic_inst_get_object): Call
14861         `mono_class_init (ginst->klass)'.
14862         (mono_type_get_object): Only create a MonoGenericInst if your
14863         generic type is a TypeBuilder.
14864         (do_mono_reflection_bind_generic_parameters): Only set
14865         `ginst->is_dynamic' if our generic type is a TypeBuilder.
14866
14867 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
14868
14869         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
14870         Fixes #56091.
14871
14872 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14873
14874         * icall.c: added Kill_internal icall.
14875         * process.[ch]: added Kill_internal icall.
14876
14877 2004-03-25  Martin Baulig  <martin@ximian.com>
14878
14879         * class.h (MonoStats): Added `generic_instance_count',
14880         `inflated_method_count', `inflated_type_count' and
14881         `generics_metadata_size'.       
14882
14883 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14884
14885         * reflection.c: no warnings now.
14886
14887 2004-03-25  Martin Baulig  <martin@ximian.com>
14888
14889         * class.c (mono_class_get_full): New public function; does a
14890         mono_class_get(), but also takes a `MonoGenericContext *'.
14891
14892         * loader.c (mono_field_from_memberref): Renamed to
14893         `field_from_memberref', made static and added `MonoGenericContext *'
14894         argument.
14895         (mono_field_from_token): Added `MonoGenericInst *' argument.
14896         (method_from_memberef): Likewise.
14897         (mono_get_method_from_token): Likewise.
14898         (mono_get_method_full): New public function; does a
14899         mono_get_method(), but also takes a `MonoGenericContext *'.
14900
14901         * verify.c (mono_method_verify): Get the method's generic context
14902         and pass it to mono_field_from_token(), mono_get_method_full() and
14903         mono_class_get_full().
14904
14905 2004-03-25  Martin Baulig  <martin@ximian.com>
14906
14907         * class.c (mono_class_inflate_generic_type): Take a
14908         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
14909         `MonoGenericMethod *'.
14910
14911 2004-03-25  Martin Baulig  <martin@ximian.com>
14912
14913         * loader.h (MonoMethodInflated): Store the MonoGenericContext
14914         instead of the MonoGenericMethod here.
14915
14916 2004-03-25  Martin Baulig  <martin@ximian.com>
14917
14918         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
14919         each time we create a new MonoGenericInst, we also create a new
14920         context which points back to us.
14921
14922         * class.c (inflate_method): Use `ginst->context' instead of
14923         creating a new context.
14924
14925         * loader.c (method_from_memberref): Use
14926         `klass->generic_inst->context' instead of creating a new context.
14927
14928 2004-03-25  Martin Baulig  <martin@ximian.com>
14929
14930         * class.h (MonoGenericContext): New struct.
14931         (MonoGenericMethod): Removed `generic_inst'.
14932
14933         * class.c (mono_class_inflate_generic_method): Take a
14934         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
14935
14936 2004-03-25  Martin Baulig  <martin@ximian.com>
14937
14938         * loader.h (MonoMethodInflated): New typedef.
14939
14940         * metadata.h (MonoMethodSignature): Removed `gen_method', make
14941         `generic_param_count' consume just 30 bits, added `is_inflated'
14942         and `has_type_parameters' flags (one bit each).
14943
14944         * class.c (mono_class_inflate_generic_method): Create a
14945         MonoMethodInflated instead of a MonoMethodNormal and set
14946         `is_inflated' in the method signature.
14947
14948         * class.h (MonoGenericMethod): Removed `generic_method'.
14949
14950 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
14951
14952         * image.c: Make sure the name of a MonoImage is always an absolute path.
14953           This fixes bug #54415.
14954
14955 2004-03-24  Martin Baulig  <martin@ximian.com>
14956
14957         * class.c (mono_class_setup_vtable): If we're a generic instance,
14958         use our generic type's vtable size.
14959
14960 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
14961
14962         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
14963         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
14964         problems.
14965
14966 2004-03-23  Martin Baulig  <martin@ximian.com>
14967
14968         * class.h (MonoDynamicGenericInst): Added `int count_events' and
14969         `MonoEvent *events'.
14970
14971         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
14972         (typebuilder_icalls): Added "get_event_info"; calls
14973         mono_reflection_event_builder_get_event_info(). 
14974
14975         * reflection.c (mono_reflection_generic_inst_initialize): Added
14976         `MonoArray *events'.
14977         (mono_reflection_event_builder_get_event_info): New function.
14978
14979 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
14980
14981         * object.h: add mono_type_initialization_init
14982
14983         * object.c (mono_runtime_class_init): 
14984         implement class constructor synchronization rules
14985         to cope with threading issues.  
14986         add mono_type_initialization_init
14987
14988         * appdomain.c (mono_runtime_init): call 
14989         mono_type_initialization_init
14990
14991         * class.h: removing initializing field from MonoVTable
14992
14993 2004-03-23  Martin Baulig  <martin@ximian.com>
14994
14995         * class.c (my_mono_class_from_generic_parameter): Use
14996         `param->name' if it's not NULL. 
14997
14998 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
14999
15000         * class.c: do not insert non-virtual methods in the vtable.
15001         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
15002         that means the method is non-virtual. This never would have
15003         happened before.
15004
15005 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
15006
15007         * profiler.c: Added lock for accessing coverage_hash.
15008
15009 2004-03-22  Martin Baulig  <martin@ximian.com>
15010
15011         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
15012         `method->method->signature->generic_param_count != 0' to make it
15013         work for interface methods.
15014
15015 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15016
15017         * process.c: quote the string passed to the shell using g_shell_quote.
15018
15019 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15020
15021         * threads.c:
15022         (mono_threads_manage): don't remove the finalizer thread and self
15023         from the threads hash table so that mono_thread_manage can be called
15024         more than once.
15025
15026 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15027
15028         * process.c: quote the arguments when UseShellExecute is true. Fixes
15029         bug #55790.
15030
15031 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15032
15033         * threads.c: set mono_thread_detach as a cleanup routine for every
15034         thread. This way it's always executed upon thread termination, either
15035         aborted or finished normally. No more xsp hangs!
15036
15037 2004-03-17  Martin Baulig  <martin@ximian.com>
15038
15039         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
15040         `int count_nested' and a `MonoType **nested'.
15041
15042         * reflection.c (mono_reflection_bind_generic_parameters): Moved
15043         most of the functionality into a new static
15044         do_mono_reflection_bind_generic_parameters() and don't take a
15045         `MonoType *nested_in' argument any more.  Don't compute nested
15046         types here.
15047         (mono_reflection_generic_inst_get_nested_types): New public method
15048         to get nested types.
15049
15050         * class.c (mono_class_create_generic): Set `klass->nested_in' if
15051         we're a nested class.
15052
15053         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
15054         mono_reflection_generic_inst_get_nested_types() to compute the
15055         nested types.
15056
15057 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
15058
15059         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
15060         descriptive error message under windows.
15061         
15062 2004-03-17  Martin Baulig  <martin@ximian.com>
15063
15064         * class.c (dup_type): Added `const MonoType *original' argument;
15065         copy the attrs from the original type.
15066
15067 2004-03-17  Martin Baulig  <martin@ximian.com>
15068
15069         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
15070         `m->generic_inst_cache' here.
15071
15072 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
15073
15074         * exception.h exception.c: Add stack_overflow_exception.
15075
15076 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15077
15078         * threadpool.c:
15079         (overlapped_callback): call SetEvent *after* invoking the callback.
15080         No need to call CloseHandle.
15081
15082 2004-03-16  Martin Baulig  <martin@ximian.com>
15083
15084         * reflection.c (mono_image_get_fieldref_token): Take a
15085         `MonoReflectionField *' instead of a `MonoClassField *' and a
15086         `MonoClass *'; store the `MonoReflectionField *' in the hash.
15087
15088 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15089
15090         * appdomain.c: don't add the culture to the filename we're looking for
15091         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
15092
15093 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15094
15095         * locales.c: don't ignore symbols when doing case insensitive compares.
15096         Thanks Dick! Fixes bug #54046.
15097
15098         * threads.c: surround 'threads' usage with enter/leave in
15099         mono_thread_manage.
15100
15101 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
15102
15103         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
15104         implicitly marshalled as [Out]. Fixes #55450.
15105
15106         (mono_marshal_get_runtime_invoke): Zero out the result if there is
15107         an exception.
15108
15109 2004-03-16  Martin Baulig  <martin@ximian.com>
15110
15111         * class.c (mono_class_from_generic_parameter): Use the actual
15112         parameter name. 
15113
15114 2004-03-16  Martin Baulig  <martin@ximian.com>
15115
15116         * reflection.c (type_get_signature_size): New static function.
15117         Compues the size of the type in a method signature.
15118         (method_get_signature_size): New static function; calls
15119         type_get_signature_size() to compute the actual size of the
15120         method's signature.
15121         (method_encode_signature): Use method_get_signature_size() to get
15122         the signature's size rather than using `nparams * 10'.
15123
15124 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15125
15126         * file-io.h: define here WapiOverlapped on windows. I don't want the
15127         regular OVERLAPPED one.
15128
15129         * file-io.c:
15130         * threadpool.c: somehow, BindIoCompletionCallback is not found.
15131         Disabling AIO on windows.
15132
15133 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15134
15135         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
15136         bug #55385.
15137
15138 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15139
15140         * appdomain.c: upgraded corlib version.
15141
15142         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
15143         and BeginWrite. Allow opening files for asynchrnous operations.
15144
15145         * file-io.h: new struct that maps FileStreamAsyncResult.
15146         * icall.c: added new icalls.
15147         * process.[ch]: support setting child process environment variables
15148         and use the SHELL or COMSPEC when UseShellExecute is true.
15149
15150         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
15151         callback for async. IO is here and also BindHandle.
15152
15153         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
15154         from here.
15155
15156 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
15157
15158         * reflection.c (create_custom_attr): Allow len == 0.
15159
15160         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
15161         computation on big-endian machines.
15162
15163 2004-03-13  Martin Baulig  <martin@ximian.com>
15164
15165         * class.h (MonoGenericInst): Added `int count_ifaces'.
15166
15167         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
15168         `ginst->count_ifaces' instead `klass->interface_count' since we
15169         may get called before the vtable is created.
15170
15171         * loader.c (mono_method_get_param_names): If we're a generic
15172         instance, return and don't initialize the class.
15173
15174         * reflection.c (mono_reflection_setup_generic_class): Don't call
15175         ensure_runtime_vtable().
15176         (mono_reflection_bind_generic_parameters): Set
15177         `ginst->count_ifaces'.
15178
15179 2004-03-11  Jackson Harper <jackson@ximian.com>
15180
15181         * icall.c:
15182         * unicode.c:
15183         * unicode.h: Remove unused System.Char icalls.
15184         
15185 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
15186
15187         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
15188         code when we P/Invoke the first library in Windows.Forms, instead
15189         of when we first open the assembly.
15190
15191         * assembly.c: Drop the lookup from here.
15192
15193 2004-03-10  Martin Baulig  <martin@ximian.com>
15194
15195         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
15196         class for properties, fields and events.  Finally fixes #54945.
15197
15198 2004-03-10  Martin Baulig  <martin@ximian.com>
15199
15200         * metadata.c (mono_metadata_class_equal): New static function;
15201         checks whether two generic instances or two generic parameters are
15202         equal.
15203         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
15204         compare classes.        
15205
15206 2004-03-10  Martin Baulig  <martin@ximian.com>
15207
15208         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
15209
15210         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
15211         argument and write it into the `reflection_info' field.
15212
15213         * icall.c
15214         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
15215         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
15216
15217 2004-03-09  Jackson Harper  <jackson@ximian.com>
15218
15219         * char-conversions.h: use 8 bits for numeric data its all we need
15220         * icall.c: numeric data is only 8 bits now.
15221
15222 2004-03-09  Martin Baulig  <martin@ximian.com>
15223
15224         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
15225
15226         * class.c (init_properties, init_events): Initialize the new
15227         `parent' field.
15228
15229         * reflection.c (typebuilder_setup_properties): Likewise.
15230         (typebuilder_setup_events): Likewise.
15231
15232         * reflection.h (MonoEventInfo): Replaced `parent with
15233         `declaring_type' and `reflected_type'.
15234
15235         * icall.c (ves_icall_get_property_info): Distinguish between
15236         declaring and reflected type.
15237         (ves_icall_get_event_info): Likewise.
15238
15239 2004-03-09  Martin Baulig  <martin@ximian.com>
15240
15241         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
15242         (ves_icall_Type_GetField): Correctly set field->klass.
15243
15244 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
15245
15246         * loader.h: Fix warning.
15247
15248 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
15249
15250         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
15251         library routine if present.  Notice that it will still continue
15252         executing even if its missing, for those working on the Gtk#
15253         edition of Windows.Forms.
15254
15255         * assembly.c (do_mono_assembly_open): If loading the
15256         System.Windows.Forms call mono_loader_wini_init.
15257
15258 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
15259
15260         * class.h: Added MonoRemoteClass struct.
15261         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
15262         function for MonoStrings.
15263         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
15264         Added internal call for getting the proxy type.
15265         * marshal.c: Get the type of transparent proxies from its remote_class.
15266         Added methods that generate the IL for type checks and casts:
15267         mono_marshal_get_isinst, mono_marshal_get_castclass, 
15268         mono_marshal_get_proxy_cancast.
15269         * marshal.h: Declaration of the previous new methods.
15270         * object.c: Added new moethods for creating and updating MonoRemoteClass
15271         instances: mono_remote_class, mono_upgrade_remote_class, 
15272         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
15273         * verify.c: FIx transparent_proxy_fields layout.
15274         * appdomain.c: Bump corlib version.
15275
15276 2004-03-04  Jackson Harper  <jackson@ximian.com>
15277
15278         * icall.c: Add icall to access char conversion tables.
15279         * char-conversions.h: Character conversion tables.
15280         * Makefile.am: Add char-conversions.h private header file.
15281         
15282 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
15283
15284         * appdomain.c (unload_thread_main): Increase unloading timeout to
15285         10 sec as a temporary workaround for Nant problems.
15286
15287 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
15288
15289         * gc.c: Add checks for GC_enable and GC_disable.
15290
15291         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
15292         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
15293         (bug #54988).
15294         
15295 2004-02-27  Martin Baulig  <martin@ximian.com>
15296
15297         * reflection.c (mono_reflection_bind_generic_parameters): Take a
15298         `MonoReflectionType *' instead of a `MonoType *'.
15299
15300 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
15301
15302         * gc.c (run_finalize): Avoid finalizing the object representing the
15303         finalizer thread.
15304         (finalizer_thread): Fix warning.
15305
15306 2004-02-25  Martin Baulig  <martin@ximian.com>
15307
15308         * class.c (_mono_class_get_instantiation_name): Added `int offset'
15309         argument for nested types.
15310         (mono_class_create_generic): Added support for nested generictypes.
15311
15312         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
15313         `GList *nested'.
15314
15315         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
15316
15317         * reflection.c (method_encode_signature): Increase the minimum
15318         value of `size' from 10 to 11.
15319         (mono_reflection_bind_generic_parameters): Take `int type_argc'
15320         and `MonoType **types' arguments instead of the `MonoArray
15321         *types'; added `MonoType *nested_in'.  Recursively instantiate
15322         nested classes. 
15323
15324 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
15325
15326         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
15327         stack_overflow_ex members which are used by exception handling.
15328
15329         * appdomain.c (mono_runtime_init): Initialize the new members.
15330
15331         * gc.c (mono_gc_enable): New helper function.
15332         * gc.c (mono_gc_disable): New helper function.
15333
15334 2004-02-23  Martin Baulig  <martin@ximian.com>
15335
15336         * icall.c: I must have been really stupid - make it actually work
15337         this time ;-)
15338
15339 2004-02-23  Martin Baulig  <martin@ximian.com>
15340
15341         * loader.c (method_from_memberref): Only inflate the method if
15342         it's in another klass.
15343
15344 2004-02-23  Martin Baulig  <martin@ximian.com>
15345
15346         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
15347         (mono_class_init): If we're a generic instance and an interface,
15348         compute `class->interface_id'; also create `class->interfaces'
15349         here and inflate them.
15350
15351         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
15352         `ginst->is_open'.
15353         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
15354
15355         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
15356
15357 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
15358
15359         * reflection.c (method_encode_code): Improved the error message
15360         generated by the exception.
15361
15362 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15363
15364         * icall.c: Martin did not do what he said in the ChangeLog for
15365         2004-02-18, but put back the changes for properties and events.
15366         Commenting those changes out again and adding comment to bug #54518.
15367         
15368         * process.c: removed warning.
15369
15370 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
15371
15372         * marshal.c (emit_struct_conv): Print an error message instead of
15373         asserting when a type does not have the StructLayout attribute.
15374
15375 2004-02-20  Martin Baulig  <martin@ximian.com>
15376
15377         * reflection.c (mono_type_get_object): Also use the cache for
15378         generic instances.
15379         (mono_reflection_bind_generic_parameters): Always compute
15380         `ginst->ifaces'.        
15381
15382 2004-02-20  Martin Baulig  <martin@ximian.com>
15383
15384         * class.h (MonoGenericMethod): Removed `klass'.
15385
15386         * class.c (mono_class_inflate_generic_method): Added `MonoClass
15387         *klass' argument.
15388
15389 2004-02-20  Martin Baulig  <martin@ximian.com>
15390
15391         * reflection.c (method_encode_methodspec): Actually use the
15392         uninflated signature for the memberref.
15393
15394 2004-02-20  Martin Baulig  <martin@ximian.com>
15395
15396         * class.h (MonoGenericMethod): Removed `declaring'.
15397
15398         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
15399         is NULL, compute it here.
15400
15401 2004-02-20  Martin Baulig  <martin@ximian.com>
15402
15403         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
15404
15405         * metadata.c (mono_metadata_generic_inst_hash): New method.
15406         (mono_metadata_generic_inst_equal): New method.
15407
15408         * reflection.c (mono_reflection_bind_generic_parameters): Use the
15409         `klass->image->generic_inst_cache' cache to avoid creating
15410         duplicate MonoGenericInst's.
15411
15412         * class.c (mono_class_inflate_generic_type): Use the cache.
15413
15414 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
15415
15416         * object.c: fixed gc descriptor calculation for embedded valuetypes.
15417
15418 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15419
15420         * icall.c: added Socket.WSAIoctl icall.
15421
15422         * socket-io.[ch]: implemented
15423         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
15424
15425 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
15426
15427         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
15428
15429 2004-02-18  Urs C Muff  <umuff@quark.com>
15430
15431         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
15432         this work on PPC and other big-endian architectures.
15433
15434         * debug-mono-symfile.h: Prepended the names of all the `guint32'
15435         fields with an underscore to make sure they're only accessed by
15436         the read32() macro.
15437
15438 2004-02-18  Martin Baulig  <martin@ximian.com>
15439
15440         * icall.c: Put the klass->refclass changes back for methods and
15441         fields, but not for properties and events.  We're currently not
15442         distinguishing between DeclaringType and ReflectedType for
15443         properties and events, that's what caused the regressions.
15444
15445 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15446
15447         * object.c:
15448         (mono_async_result_new): the handle can be NULL.
15449
15450         * threadpool.c: Use an event instead of a semaphore, don't initialize
15451         it until needed. This saves quite a few semaphores from being created
15452         when using the threadpool.
15453
15454 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
15455
15456         * object.c (mono_string_is_interned_lookup): Fix interning of long
15457         strings. Fixes #54473.
15458
15459         * domain.c (ldstr_equal): Optimize if the two strings are equal.
15460
15461         * icall.c: Revert the klass->refclass changes since they introduce
15462         regressions (bug #54518).
15463
15464 2004-02-18  Martin Baulig  <martin@ximian.com>
15465
15466         * class.c (mono_class_init): If we're a generic instance and don't
15467         come from a TypeBuilder, inflate our members here.
15468         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
15469         (mono_class_create_generic): New public method.
15470         (mono_class_initialize_generic): Removed.
15471         (get_instantiation_name): Renamed to
15472         _mono_class_get_instantiation_name() and made it public.
15473
15474 2004-02-18  Martin Baulig  <martin@ximian.com>
15475
15476         * class.c (mono_class_inflate_generic_type): Clear the new
15477         instance's `nginst->klass' when inflating a generic instance.
15478         (mono_class_is_subclass_of): Added (basic) support for generic
15479         instances.
15480
15481 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
15482
15483         * appdomain.h, domain.c: use a MonoCodeManager instead of a
15484         MonoMempool to hold compiled native code.
15485
15486 2004-02-17  Martin Baulig  <martin@ximian.com>
15487
15488         * class.h (MonoDynamicGenericInst): Added `count_properties' and
15489         `properties'.
15490
15491         * reflection.c (mono_reflection_generic_inst_initialize): Added
15492         `MonoArray *properties' argument.
15493
15494         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
15495
15496 2004-02-17  Martin Baulig  <martin@ximian.com>
15497
15498         * icall.c (ves_icall_Type_GetFields): Renamed to
15499         ves_icall_Type_GetFields_internal() and added a
15500         `MonoReflectionType *rtype' argument; pass it to
15501         mono_field_get_object() to set the field's "reflected" type.
15502         (ves_icall_Type_GetConstructors): Likewise.
15503         (ves_icall_Type_GetEvents): Likewise.
15504         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
15505         argument; pass it to mono_method_get_object() to set the method's
15506         "reflected" type.       
15507
15508 2004-02-17  Martin Baulig  <martin@ximian.com>
15509
15510         * class.h (MonoDynamicGenericInst): New type.
15511         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
15512
15513         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
15514         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
15515         (ves_icall_MonoGenericInst_GetFields): New interncall.
15516
15517         * class.c (mono_class_from_generic): Don't call
15518         mono_class_initialize_generic() if this is a dynamic instance;
15519         ie. it's being created from a TypeBuilder.
15520         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
15521         `class->byval_arg.type'.
15522
15523         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
15524         to `inflate_method' and made static.
15525         (mono_reflection_inflate_field): Removed.
15526         (mono_reflection_generic_inst_initialize): New public method.
15527
15528         * reflection.h (MonoReflectionGenericInst): Removed `methods',
15529         `ctors' and `fields'; added `initialized'.
15530
15531 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
15532
15533         * debug-helpers.c (mono_method_full_name): Fix output for empty
15534         namespaces.
15535
15536 2004-02-12  Martin Baulig  <martin@ximian.com>
15537
15538         * class.h (MonoClassField): Added `MonoType *generic_type'.
15539
15540         * reflection.c (mono_image_get_fieldref_token): Added support for
15541         instantiated generic types.
15542         (field_encode_inflated_field): Removed.
15543         (mono_image_get_inflated_field_token): Removed.
15544         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
15545
15546         * reflection.h (MonoReflectionInflatedField): Removed.
15547
15548 2004-02-12  Martin Baulig  <martin@ximian.com>
15549
15550         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
15551         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
15552
15553         * reflection.c (mono_image_get_methodspec_token): Take a
15554         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
15555         (mono_image_create_token): Check whether we have a
15556         `method->signature->gen_method' and call
15557         mono_image_get_methodspec_token() if appropriate.
15558         (inflated_method_get_object): Removed.
15559         (mono_reflection_bind_generic_method_parameters): Return a
15560         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
15561         (mono_reflection_inflate_method_or_ctor): Likewise.
15562
15563         * reflection.h (MonoReflectionInflatedMethod): Removed.
15564
15565 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
15566
15567         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
15568         for custom valuetype marshalling.
15569
15570         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
15571
15572 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15573
15574         * icall.c: fixed WSAGetLastError_internal name.
15575
15576 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
15577
15578         * threads.c (mono_thread_attach): Allow this to be called multiple
15579         times for a thread.
15580         
15581         * threads.c (build_wait_tids): Do not wait for ourselves.
15582
15583         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
15584         appdomain list is empty.
15585
15586         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
15587         memory returned by mono_string_builder_to_utf16, since it points into
15588         managed memory. Thanks to Bernie Solomon for noticing this.
15589
15590         * icall.c: Add AppDomainSetup icalls.
15591
15592         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
15593
15594         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
15595         types.
15596
15597         * reflection.c (reflection_methodbuilder_to_mono_method): Save
15598         custom attributes to the method_aux struct. Also fix array indexes etc.
15599
15600         * loader.c (mono_method_get_param_names): Make dynamic case work again.
15601         
15602 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
15603
15604         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
15605         (both static and runtime) and reduce startup time.
15606
15607 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
15608
15609         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
15610         AsAny marshalling conversion instead of crashing.
15611
15612         * marshal.c: Fix warnings.
15613
15614 2004-02-09  Martin Baulig  <martin@ximian.com>
15615
15616         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
15617
15618         * reflection.h (MonoReflectionInflatedMethod): Removed the
15619         `declaring' field, it's now in the unmanaged MonoGenericMethod.
15620
15621         * reflection.c (method_encode_methodspec): Removed the `method'
15622         argument; we get it from `gmethod->declaring'.
15623         (inflated_method_get_object): Removed the `declaring' argument.
15624
15625 2004-02-09  Martin Baulig  <martin@ximian.com>
15626
15627         * class.h (MonoGenericMethod): New type.
15628         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
15629         `generic_method'.
15630
15631         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
15632         a `MonoGenericMethod *gen_method' one.
15633
15634         * class.c (mono_class_inflate_generic_type): Take an additional
15635         `MonoGenericMethod * argument.  This is only non-NULL if we're
15636         inflating types for a generic method.   
15637         (mono_class_inflate_generic_signature): Renamed to
15638         inflate_generic_signature() and made static; take a
15639         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
15640         (inflate_generic_header): Take a `MonoGenericMethod *' argument
15641         instead of a `MonoGenericInst *' one.
15642         (mono_class_inflate_generic_method): Likewise.
15643
15644         * reflection.c (encode_generic_method_sig): Take a
15645         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
15646         (method_encode_methodspec): Likewise.
15647         (inflated_method_get_object): Likewise. 
15648
15649         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
15650         field with a `MonoGenericMethod *gmethod' one.  
15651
15652 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
15653
15654         * class.h (mono_class_has_parent): add parens to expansion
15655         so you can ! this.
15656
15657 2004-02-08  Martin Baulig  <martin@ximian.com>
15658
15659         * image.h (MonoImage): Removed `generics_cache'.
15660
15661         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
15662         instead of a `MonoType *' argument; removed the `inflate_methods'
15663         argument.  Don't inflate methods here.
15664
15665         * loader.c (find_method): If it's a generic instance, call
15666         mono_class_init() on the `sclass->generic_inst->generic_type'.
15667
15668         * metadata.c (mono_type_size): Make this work on uninitialized
15669         generic instances; call it on the `ginst->generic_type's class.
15670
15671         * reflection.c (mono_reflection_bind_generic_parameters): Call
15672         mono_class_from_generic() to create the `ginst->klass'.
15673
15674 2004-02-08  Martin Baulig  <martin@ximian.com>
15675
15676         * class.h (MonoClass): Changed type of `generic_inst' from
15677         `MonoType *' to `MonoGenericInst *'.
15678
15679 2004-02-08  Martin Baulig  <martin@ximian.com>
15680
15681         * icall.c (ves_icall_Type_BindGenericParameters): Just call
15682         mono_type_get_object(), this is now creating a `MonoGenericInst'
15683         for MONO_TYPE_GENERICINST.
15684         (ves_icall_MonoGenericInst_GetParentType): Likewise.
15685         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
15686
15687         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
15688         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
15689         (inflated_method_get_object): Added `MonoClass *refclass' argument.
15690         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
15691         and reflected type.
15692
15693         * reflection.h (MonoReflectionInflatedMethod): Removed
15694         `declaring_type' and `reflected_type'.
15695
15696 2004-02-08  Martin Baulig  <martin@ximian.com>
15697
15698         * class.h (MonoGenericInst): Added `MonoType *parent' and
15699         `MonoType **ifaces'.
15700
15701         * reflection.h (MonoReflectionGenericInst): Removed `klass',
15702         `parent' and `interfaces'.
15703
15704         * reflection.c (mono_reflection_bind_generic_parameters): Take a
15705         `MonoType *' argument and return a `MonoType *'.
15706
15707         * icall.c
15708         (ves_icall_MonoGenericInst_GetParentType): New interncall.
15709         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
15710
15711 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
15712
15713         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
15714         valuetype marshalling.
15715
15716 2004-02-06  Martin Baulig  <martin@ximian.com>
15717
15718         * class.c
15719         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
15720         (my_mono_class_from_generic_parameter): Likewise.
15721
15722 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
15723
15724         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
15725         contents of the symbol files lazily.
15726
15727         * object.h (MonoThread): Add 'name' and 'name_len' fields.
15728
15729         * threads.h threads.c icall.c: New icalls for getting and setting the
15730         threads name.
15731
15732 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
15733
15734         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
15735         Raise an exception when the domain is not found.
15736
15737 2004-02-03  Martin Baulig  <martin@ximian.com>
15738
15739         * reflection.c (mono_image_get_methodspec_token): Use the
15740         uninflated signature; fixes gen-33.
15741
15742 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
15743
15744         * gc.c threads.c: Make the finalizer thread a normal managed thread so
15745         the finalizer code can use thread functionality.
15746
15747         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
15748         the finalizer thread.
15749
15750         * threads.c: Make some functions more robust.
15751
15752         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
15753
15754         * metadata.h: Add new marshalling conventions.
15755
15756         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
15757         stringbuilder marshalling. Fixes #53700.
15758
15759         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
15760
15761         * reflection.c (mono_image_get_type_info): Save declarative security
15762         info.
15763
15764         * reflection.c (mono_image_get_field_info): Handle uninitialized 
15765         unmanaged fields as well.
15766
15767         * appdomain.c: Bump corlib version.
15768
15769 2004-02-01  Martin Baulig  <martin@ximian.com>
15770
15771         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
15772         method type arguments.  
15773
15774 2004-01-30  Duncan Mak  <duncan@ximian.com>
15775
15776         * marshal.h: Add prototype for
15777         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
15778         and
15779         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
15780         fix the build.
15781
15782 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
15783
15784         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
15785         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
15786
15787 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
15788
15789         * marshal.c (mono_marshal_get_native_wrapper): Add support for
15790         custom marshalling of valuetypes.
15791
15792         * marshal.c: Fix some warnings.
15793
15794 2004-01-29  Martin Baulig  <martin@ximian.com>
15795
15796         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
15797         for generic method parameters.
15798
15799         * reflection.c (method_encode_methodspec): Write the uninflated
15800         signature into the methodspec table.
15801         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
15802         is always the uninflated method.
15803         (reflection_methodbuilder_to_mono_method): Copy the generic
15804         parameters from the MethodBuilder into `header->gen_params'.
15805
15806 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
15807
15808         * class.c (mono_class_from_generic_parameter): Fix warning.
15809
15810 2004-01-27  Martin Baulig  <martin@ximian.com>
15811
15812         * class.c (mono_class_from_generic_parameter): Don't create
15813         `klass->methods' here.  
15814
15815 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
15816
15817         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
15818         extension since it does not work with libraries named lib<FOO>.dll.so.
15819
15820 2004-01-25  Martin Baulig  <martin@ximian.com>
15821
15822         * class.c (mono_class_inflate_generic_type): Added support for
15823         MONO_TYPE_GENERICINST.
15824
15825         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
15826         inflate methods on open constructed types.      
15827
15828 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15829
15830         * object.c: fire ProcessExit event in the root AppDomain after running
15831         Main. Fixes bug #53299.
15832
15833 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
15834
15835         * socket-io.c: include the new socket-wrappers.h header.
15836         Use the wrappers instead of the unix socket functions to make the code
15837         more clear.
15838
15839 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
15840
15841         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
15842
15843         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
15844         Fixes #22532.
15845
15846 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
15847
15848         * reflection.c (mono_image_create_pefile): Handle the case when the
15849         entry point is not a MethodBuilder.
15850
15851         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
15852         field to ReflectionMethod since it is not allways a builder.
15853
15854         * reflection.c (type_get_fully_qualified_name): New helper function to
15855         return the fully qualified name of a type.
15856
15857         * reflection.c (encode_marshal_blob): Always emit the fully qualified
15858         type name for custom marshallers.
15859
15860         * reflection.c (mono_marshal_spec_from_builder): Ditto.
15861
15862         * class.c (mono_class_setup_vtable): If a parent class already 
15863         implements an interface, use the implementing methods from that class.
15864         Fixes #53148.
15865
15866 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15867
15868         * threadpool.c: just return instead of ExitThread to allow for thread
15869         clean up earlier.
15870
15871 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
15872
15873         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
15874         when closing resource modules.
15875
15876         * reflection.c (mono_image_create_pefile): Handle the case when the
15877         entry point is not a MethodBuilder.
15878
15879         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
15880         field to ReflectionMethod since it is not allways a builder.
15881
15882 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
15883
15884         * marshal.c (mono_marshal_get_managed_wrapper): 
15885         mono_marshal_alloc takes native int so CONV_I
15886         the arg for 64bits.
15887
15888 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
15889
15890         * reflection.c (fixup_cattrs): New function to fixup the methoddef
15891         tokens in the cattr table. Fixes #53108.
15892
15893 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15894
15895         * loader.c: don't trim ".dll" before looking up in the config file.
15896         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
15897
15898 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
15899
15900         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
15901         Return the module which contains the resource as well.
15902         (ves_icall_System_Reflection_Module_Close): New icall.
15903
15904         * appdomain.c: Bump corlib version number.
15905
15906         * image.c (mono_image_addref): New public function.
15907
15908         * assembly.c: Call mono_image_addref.
15909
15910         * reflection.c (mono_module_get_object): Increase reference count of 
15911         the image.
15912
15913         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
15914         Fixes #22532.
15915
15916         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
15917         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
15918         proper exceptions on DllImport problems.
15919
15920 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
15921
15922         * class.c, metadata.c: eliminate CSIZE macro.
15923
15924 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
15925
15926         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
15927         * object.h: Added async_callback field in MonoAsyncResult.
15928         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
15929         * verify.c: Added async_callback in MonoAsyncResult layout.
15930
15931 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
15932
15933         * reflection.c (mono_reflection_get_custom_attrs): Add support
15934         for Modules.
15935
15936 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
15937
15938         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
15939         marshalling.
15940         (mono_marshal_method_from_wrapper): Add null pointer check.
15941
15942 2004-01-16  Martin Baulig  <martin@ximian.com>
15943
15944         * debug-mono-symfile.h: Set version number to 36 and reflect
15945         latest symbol writer changes.
15946
15947 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
15948
15949         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
15950         multi-dimensional arrays.
15951         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
15952         (mono_class_from_mono_type): Use bounded_array_class_get.
15953         
15954         * class.c (mono_bounded_array_class_get): New function which takes
15955         a 'bounded' bool argument to distinguish vectors from one dimensional
15956         arrays.
15957
15958         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
15959         bounded_array_class_get if the array has bounds.
15960
15961         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15962         Search modules loaded using AssemblyBuilder:AddModule as well.
15963
15964 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15965
15966         * appdomain.c: increased corlib version.
15967         * filewatcher.c: removed g_print.
15968         * icall.c:
15969         (get_property_info): only allocate what is actually requested.
15970         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
15971
15972 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15973
15974         * Makefile.am: added filewatcher.[ch]
15975         * filewatcher.[ch]: FileSystemWatcher runtime support.
15976         * icall.c: added new FSW icalls.
15977
15978 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
15979
15980         * string-icalls.c: fix stringbuilder regression as suggested by
15981         Iain McCoy <iain@mccoy.id.au>.
15982
15983 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
15984
15985         * process.c (process_read_stringtable_block): Recognize '007f' as
15986         a language neutral stringtable block.
15987
15988 2004-01-12  Patrik Torstensson
15989
15990         * object.h (MonoStringBuilder) : Changed layout to support our
15991         new stringbuilder class.
15992         * marshal.c: Change marshalling to support the new layout of 
15993         string builder.
15994         * appdomain.c: increased version number because new layout of
15995         string builder.
15996
15997 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
15998
15999         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
16000         assembly name as an string instead of an AssemblyName, since it is
16001         easier to extract info from it.
16002
16003         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
16004         the culture subdirectories too. Fixes #52231.
16005
16006 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16007
16008         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
16009         It takes 2 new parameters with an optional name for the method to look
16010         for and case ignoring info.
16011
16012         * threadpool.c: removed unused variable.
16013
16014 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16015
16016         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
16017         It takes 2 new parameters with an optional name for the property to look
16018         for and case ignoring info.
16019         Fixes bug #52753.
16020
16021 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
16022
16023         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
16024         Fix #52451.
16025
16026 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16027
16028         * appdomain.c:
16029         * assembly.c: escape the uri before passing it to g_filename_from_uri.
16030         Fixes bug #52630.
16031
16032 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
16033
16034         * reflection.c: Add support for more than one unmanaged resource.
16035
16036         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
16037         in field->def_value, as done in all other cases.
16038
16039         * reflection.c (mono_reflection_get_custom_attrs): Add support for
16040         TypeBuilders.
16041
16042         * reflection.c (mono_reflection_create_runtime_class): Remove 
16043         errorneous assignment to klass->element_class, since it is already
16044         done in mono_reflection_setup_internal_class.
16045
16046 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16047
16048         * gc.c: added missing LeaveCriticalSection.
16049         * icall.c: indented a couple of lines.
16050         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
16051         if we call EndInvoke inside a callback. Fixes bug #52601.
16052
16053 2004-01-07  Martin Baulig  <martin@ximian.com>
16054
16055         * mono-debug-debugger.h
16056         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
16057
16058 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
16059
16060         * appdomain.c: Use messages in NotImplementedException.
16061
16062         * exception.c (mono_get_exception_not_implemented): Now this takes
16063         a message argument.
16064
16065         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
16066         exception instead of g_asserting an aborting when something is not
16067         implemented.
16068
16069         Add some inline docs.
16070
16071 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
16072
16073         * reflection.h: Update after changes to object layout.
16074
16075         * reflection.c: Implement saving of unmanaged aka win32 resources.
16076
16077         * appdomain.c: Bump version number.
16078
16079         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
16080         Handle missing domains gracefully.
16081
16082 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
16083
16084         * file-io.c : On Windows, there are much more invalid_path_chars.
16085
16086 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
16087
16088         * class.h, object.c: prepare for GetType () speedup.
16089
16090 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
16091
16092         * profiler.c: workaround for --profile null reference exception on
16093           cygwin. Patch by Patrik Torstensson.
16094
16095 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
16096
16097         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
16098         make work for unaligned access.
16099
16100 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
16101
16102         * class.c: small cleanup (class->fields [i] -> field).
16103         * image.c: check address of metadata is valid.
16104
16105 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
16106
16107         * assembly.h assembly.c (mono_assembly_loaded): New public function to
16108         search the list of loaded assemblies.
16109
16110         * reflection.c (mono_reflection_type_from_name): Use 
16111         mono_assembly_loaded instead of mono_image_loaded.
16112
16113         * reflection.c: Fix warnings.
16114
16115 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
16116
16117         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
16118         is dynamic. This is needed since an assembly can contain both dynamic and
16119         non-dynamic images.
16120
16121         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
16122         assembly->dynamic.
16123
16124         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
16125
16126         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
16127         to store modules loaded using AddModule.
16128
16129         * reflection.c (mono_image_fill_file_table): Generalize this so it works
16130         on Modules.
16131
16132         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
16133
16134         * reflection.c (mono_image_fill_export_table_from_module): New function to
16135         fill out the EXPORTEDTYPES table from a module.
16136
16137         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
16138         into a separate function. Also handle loaded non-dynamic modules.
16139
16140         * reflection.c (mono_image_basic_init): Fix memory allocation.
16141
16142         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16143
16144         * assembly.c (mono_assembly_load_references): Make this public.
16145
16146 2003-12-19  Martin Baulig  <martin@ximian.com>
16147
16148         * class.c (mono_class_initialize_generic): Made this static, take
16149         a `MonoGenericInst *' instead of a `MonoClass *'.
16150         (mono_class_from_generic): Call mono_class_initialize_generic()
16151         unless we're already initialized or being called from
16152         do_mono_metadata_parse_generic_inst().
16153
16154         * class.h (MonoGenericInst): Added `initialized' and
16155         `init_pending' flags.
16156
16157         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
16158         `mono_class_init (gklass)' or mono_class_initialize_generic()
16159         here; set `generic_inst->init_pending' while parsing the
16160         `type_argv'.
16161
16162 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
16163
16164         * locales.c: include string.h for memxxx prototypes
16165
16166 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
16167
16168         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
16169         constructor when accessing literal fields.
16170
16171 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
16172
16173         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16174
16175         * reflection.c (assembly_add_resource_manifest): New function to fill
16176         the MANIFESTRESOURCE table.
16177
16178         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
16179
16180         * reflection.h: Update to changes in class layout.
16181
16182         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
16183         Reenable call to mono_runtime_is_shutting_down ().
16184
16185         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
16186         determine if the runtime is shutting down.
16187
16188 2003-12-16  Jackson Harper <jackson@ximian.com>
16189
16190         * icall.c: comment out call to mono_runtime_is_shutting_down to
16191         fix build.
16192         
16193 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
16194
16195         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
16196         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
16197
16198 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
16199
16200         * reflection.c: move definition of swap_with_size
16201         to before its first call
16202
16203 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
16204
16205         * appdomain.c (mono_runtime_is_shutting_down): New public function.
16206
16207         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
16208         icall.
16209
16210         * object.c: Fix warnings.
16211
16212         * icall.c (ves_icall_Type_Get...): Only consider inherited static
16213         members if FlattenHierarchy is set.
16214
16215         * reflection.c (mono_image_add_decl_security): New function to emit
16216         declarative security.
16217
16218         * reflection.h reflection.c: Add support for declarative security.
16219
16220         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
16221         
16222 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
16223
16224         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
16225         
16226         * appdomain.c verify.c: Moved corlib version checking into its own
16227         function in appdomain.c since it needs to create vtables etc.
16228
16229 2003-12-13  Patrik Torstensson <p@rxc.se>
16230
16231         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
16232         instead of unwrapped server.
16233
16234 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
16235
16236         * verify.c (check_corlib): Fix field index.
16237
16238 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
16239
16240         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
16241         GetGacPath icall.
16242
16243 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
16244
16245         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
16246         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
16247         cope with sizeof(size_t) != sizeof(guint32).
16248
16249 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16250
16251         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
16252         in case of failure.
16253
16254 2003-12-10  Mark Crichton <crichton@gimp.org>
16255
16256         * icall.c: removed the GetNonZeroBytes.  We now handle this case
16257         in managed code.
16258
16259         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
16260
16261 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
16262
16263         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
16264         marked as deleted.
16265
16266 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
16267
16268         * verify.c (check_corlib): Handle the case when the version field is 
16269         initialized by a static constructor.
16270
16271 2003-12-08  Patrik Torstensson  <p@rxc.se>
16272
16273     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
16274
16275 2003-12-08  Martin Baulig  <martin@ximian.com>
16276
16277         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
16278         a MonoReflectionGenericParameter, also take the parameter index
16279         and name as arguments.
16280         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
16281         (ves_icall_MonoGenericParam_initialize): New interncall.
16282         (ves_icall_Type_make_byref_type): New interncall.
16283
16284         * reflection.h (MonoReflectionGenericParam): Derive from
16285         MonoReflectionType, not just from MonoObject.  Added `refobj' and
16286         `index' fields.
16287
16288         * reflection.c (mono_reflection_define_generic_parameter): Create
16289         and return a new MonoReflectionGenericParam; don't initialize the
16290         constraints here.
16291         (mono_reflection_initialize_generic_parameter): New public method;
16292         initializes the constraints and creates the `param->pklass'.
16293
16294 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
16295
16296         * reflection.h reflection.c: Use the new fields 'num_types', 
16297         'num_fields' and 'num_methods' to track the number of types etc.
16298
16299         * verify.c (check_corlib): Check corlib version number.
16300
16301 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
16302
16303         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
16304         function works on all methods.
16305
16306 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
16307
16308         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
16309         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
16310         the custom_type_info flag of the transparent proxy.
16311         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
16312         objects that supports IRemotingTypeInfo.
16313         * object.h: Added custom_type_info field in transparent proxy.
16314
16315 2003-12-06  Martin Baulig  <martin@ximian.com>
16316
16317         * class.c (mono_class_create_from_generic): Removed.
16318         (mono_class_from_generic): Check `ginst->klass' before doing
16319         anything else.  This is important to fully support "recursive"
16320         generic types.
16321
16322         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
16323         empty `generic_inst->klass' before doing anything else.
16324
16325 2003-12-06  Dick Porter  <dick@ximian.com>
16326
16327         * verify.c: 
16328         * object.h:
16329         * icall.c:
16330         * locales.c: Use C structs to access class fields.  Don't do a
16331         conversion between MonoString and UChar because both are
16332         platform-endian UTF-16.  Compare now takes startindex and count
16333         parameters.  Add a char overload for IndexOf.  Speed up the
16334         invariant string IndexOf.
16335
16336 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
16337
16338         * Makefile.am (monosn_LDADD): Fix parallel build.
16339
16340 2003-12-04  Martin Baulig  <martin@ximian.com>
16341
16342         * icall.c
16343         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16344         (ves_icall_Type_make_array_type): New interncall.       
16345
16346 2003-12-04  Martin Baulig  <martin@ximian.com>
16347
16348         * locales.c: also change it in the !HAVE_ICU case.
16349
16350 2003-12-04  Dick Porter  <dick@ximian.com>
16351
16352         * icall.c:
16353         * locales.c: construct_compareinfo is now in CompareInfo, not
16354         CultureInfo.
16355
16356 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
16357
16358         * image.c (mono_image_load_file_for_image): Cache loaded images in the
16359         image->files array.
16360
16361         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
16362         table as well.
16363
16364         * assembly.c (mono_assembly_load_references): Only load references
16365         once.
16366
16367         * class.c (mono_class_from_name): Avoid linear search of the 
16368         EXPORTEDTYPE table.
16369
16370         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
16371
16372 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
16373
16374         * image.h (MonoImage): Add 'field_cache' field.
16375
16376         * loader.c (mono_field_from_token): Cache field lookups.
16377         
16378         * reflection.c (mono_module_get_object): Fix name property.
16379
16380         * icall.c (ves_icall_get_enum_info): Update after changes to 
16381         mono_metadata_get_constant_index ().
16382
16383         * icall.c: Get rid of get_type_info icall, use a separate icall for
16384         each type property to avoid needless memory allocations. Fixes #51514.
16385
16386         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
16387         to avoid needless binary searches.
16388
16389         * class.c (class_compute_field_layout): Move the initialization of
16390         field->def_value to mono_class_vtable ().
16391
16392         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
16393         non-corlib types.
16394
16395         * object.c (mono_object_allocate): Make it inline.
16396
16397         * object.c (mono_object_allocate_spec): Make it inline.
16398         
16399 2003-12-02  Dick Porter  <dick@ximian.com>
16400
16401         * locales.c (create_NumberFormat): NumberFormatInfo construction.
16402         Patch by Mohammad DAMT (mdamt@cdl2000.com).
16403
16404 2003-12-01  Dick Porter  <dick@ximian.com>
16405
16406         * threads.c: Fix signature and call in CreateMutex and
16407         CreateEvent.
16408
16409 2003-12-01  Dick Porter  <dick@ximian.com>
16410
16411         * icall.c: 
16412         * locales.c: Implement string compares and searching
16413
16414         * object.h: Add extra Thread field
16415
16416 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
16417
16418         * reflection.c (fixup_method): Add support for MonoCMethod.
16419
16420 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
16421
16422         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
16423
16424         * reflection.c (assembly_name_to_aname): Allow extra characters in
16425         assembly names. Fixes #51468.
16426
16427 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
16428
16429         * exception.c (mono_exception_from_name_domain): New helper function.
16430
16431         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
16432         exception object in the correct domain.
16433
16434         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
16435         formatting + make a copy a the input data.
16436
16437         * loader.c (mono_get_method_from_token): Methods which contain
16438         native code do not have entries in the ImplMap.
16439
16440         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
16441         Thanks to Gonzalo for spotting this.
16442         
16443         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
16444         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
16445
16446         * assembly.h (mono_assembly_load_from): Split the second part of 
16447         assembly loading into a new public function.
16448
16449         * exception.h (mono_get_exception_bad_image_format): New function.
16450
16451 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
16452
16453         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
16454         Enumerate all modules inside a dynamic assembly. Fixes #51293.
16455         
16456         * icall.c: Add new icall for creating dynamic methods.
16457
16458         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
16459
16460         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
16461
16462         * reflection.c (mono_reflection_create_dynamic_method): New icall to
16463         create a dynamic method.
16464
16465         * reflection.c (resolve_object): New helper function.
16466
16467         * reflection.c: Generalize ReflectionMethodBuilder and the functions
16468         which manipulate it so they can also work on dynamic methods.
16469
16470         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
16471         creating the MonoReflectionMethodAux structure if it is not needed.
16472         
16473         * reflection.h verify.c: Update after changes to object layout.
16474
16475         * reflection.c (method_builder_encode_signature): Fix compilation on
16476         gcc 2.95.x.
16477
16478 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
16479
16480         * appdomain.h: Added support for context static fields. Added static_data
16481           field to MonoAppContext and renamed thread_static_fields to a more
16482           generic special_static_fields in MonoAppDomain, since it can now contain
16483           context static fields.
16484         * domain.c: Updated hashtable name.
16485         * object.c: Replaced field_is_thread_static() for a more generic
16486           field_is_special_static() which also checks for context static attribute.
16487           In mono_class_vtable(), added support for static context fields.
16488         * threads.c: Changed methods that manage thread static fields to more
16489           generic methods so they can be reused both for thread and context static
16490           data.
16491         * threads.h: Declared some new methods.
16492
16493 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
16494
16495         * reflection.h: Update after changes to the managed types.
16496
16497         * reflection.c (encode_custom_modifiers): New helper function.
16498
16499         * reflection.c (method_encode_signature): Emit custom modifiers.
16500
16501         * reflection.c (field_encode_signature): Emit custom modifiers.
16502
16503 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
16504
16505         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
16506
16507         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
16508         implementation.
16509
16510         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
16511         icall.
16512
16513         * object.c (mono_field_get_value_object): New function.
16514
16515         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
16516         specific.
16517
16518 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
16519
16520         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
16521         return a preallocated out-of-memory exception instance.
16522
16523         * object.c (out_of_memory): Use the new function.
16524
16525         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
16526         flag is before the custom modifiers. Fixes #49802.
16527
16528 2003-11-16  Martin Baulig  <martin@ximian.com>
16529
16530         * class.c (mono_class_is_open_constructed_type): Implemented the
16531         MONO_TYPE_GENERICINST case.
16532
16533 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
16534
16535         * assembly.c (mono_assembly_fill_assembly_name): New function to
16536         fill out the MonoAssemblyName structure.
16537         (mono_assembly_open): Use the new function.
16538
16539         * icall.c (fill_reflection_assembly_name): New helper function.
16540
16541         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
16542         new function.
16543
16544         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
16545
16546 2003-11-15  Martin Baulig  <martin@ximian.com>
16547
16548         * class.c (mono_class_is_open_constructed_type): New public
16549         function; checks whether a type is an open constructed type,
16550         ie. whether it still contains type parameters.
16551         (mono_class_inflate_generic_type): If we're a type parameter and
16552         the inflated type is also a MONO_TYPE_(M)VAR, return the original
16553         type.
16554
16555         * class.h (MonoGenericInst): Added `guint32 is_open'.
16556
16557         * loader.c (method_from_methodspec): Check whether we're an open
16558         or closed constructed type and set `ginst->is_open'.
16559
16560         * reflection.c (mono_reflection_bind_generic_parameters): Check
16561         whether we're an open or closed constructed type and set
16562         `ginst->is_open'.
16563         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
16564         from open constructed types.
16565
16566 2003-11-15  Martin Baulig  <martin@ximian.com>
16567
16568         * reflection.c (mono_reflection_bind_generic_parameters): If we're
16569         a generic instance (instead of a generic type declaration) with
16570         unbound generic parameters, bind them to our actual types.
16571
16572 2003-11-14  Martin Baulig  <martin@ximian.com>
16573
16574         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
16575
16576         * reflection.c (mono_reflection_bind_generic_parameters): If we're
16577         an interface type, populate `res->interfaces' with instantiated
16578         versions of all the interfaces we inherit.
16579
16580 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
16581
16582         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
16583         when MONO_PATH is set but doesn't contain the install dir.
16584
16585 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16586
16587         * icall.c:
16588         (ves_icall_Type_GetInterfaces): don't return an interface twice when
16589         it's also implemented in base classes. Fixes bug #50927.
16590
16591 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
16592
16593         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
16594         if this method is called from a finalizer. Fixes #50913.
16595
16596 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
16597
16598         * threads.c: Implement VolatileRead/VolatileWrite
16599
16600         * icall.c: Add new icalls for VolatileRead/VolatileWrite
16601
16602 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
16603
16604         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
16605         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
16606         2.95.3.
16607
16608         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
16609         from Peter Ross (pro@missioncriticalit.com).
16610         
16611 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
16612
16613         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
16614
16615 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
16616
16617         * assembly.c (mono_assembly_load_references): Disable check because it
16618         triggers on older corlibs which lots of people have.
16619
16620 2003-11-12  Jackson Harper  <jackson@ximian.com>
16621
16622         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
16623         load corlib.dll if mscorlib.dll is not found.
16624         * assembly.h: Remove corlib name define.
16625         * class.c:
16626         * domain.c:
16627         * image.c: Change corlib name to mscorlib.
16628         
16629 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
16630
16631         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
16632
16633 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
16634
16635         * appdomain.h: Added loader_optimization here to sync with the C#
16636         code, and add disallow_binding_redirects field.
16637
16638 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
16639
16640         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
16641
16642         * reflection.c (mono_image_build_metadata): Fix crash on modules
16643         with no types.
16644
16645         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
16646
16647         * icall.c (ves_icall_get_method_info): Return callingConvention as
16648         well.
16649
16650         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
16651         namespaces from the EXPORTEDTYPE table as well.
16652
16653         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
16654         from all modules inside the assembly.
16655         
16656 2003-11-11  Martin Baulig  <martin@ximian.com>
16657
16658         * reflection.c (mono_reflection_bind_generic_parameters): Make
16659         this work for interfaces.
16660
16661 2003-11-11  Martin Baulig  <martin@ximian.com>
16662
16663         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
16664
16665 2003-11-11  Martin Baulig  <martin@ximian.com>
16666
16667         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
16668         "MonoInflatedMethod" and "MonoInflatedCtor".
16669
16670 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
16671
16672         * reflection.c (resolution_scope_from_image): Use the assembly table
16673         from the manifest module, since other modules don't have it.
16674
16675         * debug-helpers.c (mono_type_full_name): New helper function.
16676
16677         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
16678
16679         * image.c (mono_image_load_file_for_image): New public function which
16680         is a replacement for the load_file_for_image in class.c.
16681
16682         * assembly.c (mono_assembly_load_module): A wrapper for the function
16683         above which does assembly association and reference loading too.
16684
16685         * class.c (mono_class_from_name): Call mono_assembly_load_module.
16686
16687 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16688
16689         * appdomain.c: not all of the attributes for the full assembly name
16690         are required and the order doesn't matter. Fixes bug #50787.
16691
16692 2003-11-10  Dick Porter  <dick@ximian.com>
16693
16694         * locales.c: Use platform-endian UTF16
16695
16696 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
16697
16698         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
16699         
16700 2003-11-10  Martin Baulig  <martin@ximian.com>
16701
16702         * metadata.c
16703         (mono_metadata_load_generic_params): Make this actually work.
16704
16705         * reflection.c (mono_reflection_bind_generic_parameters): If our
16706         parent is a generic instance, pass all the `types' to it, no
16707         matter whether it has the same number of type parameters or not.
16708
16709 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
16710
16711         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
16712
16713         * assembly.c (mono_assembly_load_references): Move the image<->assembly
16714         assignment code to this function so it gets called recursively for all
16715         modules.
16716
16717         * image.c (load_modules): Remove the assembly assignment since it is
16718         now done by mono_assembly_load_references.
16719         
16720         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
16721         Add 'module' argument.
16722         (mono_module_get_types): New helper function.
16723         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
16724
16725 2003-11-08  Martin Baulig  <martin@ximian.com>
16726
16727         * class.c (mono_class_inflate_generic_method): Interface method
16728         don't have a header.
16729
16730         * reflection.c (mono_image_get_methodspec_token): Take an
16731         additional `MonoGenericInst *' argument instead of reading it from
16732         the header; this is necessary to support interfaces.
16733         (mono_image_create_token): Pass the `MonoGenericInst *' from the
16734         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
16735         (inflated_method_get_object): Take an additional `MonoGenericInst *'
16736         argument.
16737
16738         * reflection.h (MonoReflectionInflatedMethod): Added
16739         `MonoGenericInst *ginst'.
16740
16741 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
16742
16743         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
16744
16745 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
16746
16747         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
16748
16749 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
16750
16751         * reflection.c 
16752         (reflection_methodbuilder_from_method_builder):
16753         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
16754         initialize a ReflectionMethodBuilder structure.
16755         (mono_image_get_methodbuilder_token):
16756         (mono_image_get_ctorbuilder_token): New functions to emit memberref
16757         tokens which point to types in another module inside the same assembly.
16758
16759         * reflection.c: Use the new helper functions.
16760         
16761         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
16762
16763         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
16764         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
16765
16766         * reflection.c (resolution_scope_from_image): Emit a moduleref if
16767         neccesary.
16768
16769         * reflection.c (mono_image_build_metadata): Emit metadata only for the
16770         current module. Emit the manifest only for the main module.
16771
16772         * reflection.c (mono_image_create_token): Add assertion when a 
16773         memberref needs to be created.
16774
16775         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
16776
16777         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
16778         larger buffer for the custom attribute blob. Fixes #50637.
16779         
16780 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16781
16782         * threadpool.c: notify listener on async processing handles after
16783         invoking the async callback. Thanks to Zoltan.
16784
16785 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
16786
16787         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
16788         avoid code duplication.
16789
16790         * reflection.h (MonoDynamicImage): New type which is currently unused,
16791         but will be used through the ref.emit code in place of 
16792         MonoDynamicAssembly.
16793
16794         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
16795         object layout.
16796
16797         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
16798         a MonoDynamicImage instead of just a MonoImage.
16799         
16800         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
16801         icalls to ModuleBuilder but keep their semantics, so they will work
16802         with moduleb->assemblyb. This will change later.
16803         
16804 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
16805
16806         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
16807         object layout.
16808
16809         * reflection.c (mono_image_build_metadata): Avoid creation of a default
16810         main module, since it is now done by the managed code.
16811
16812 2003-11-03  Martin Baulig  <martin@ximian.com>
16813
16814         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
16815         `ginst->klass' here.
16816         (method_encode_methodspec): Don't use the `ginst->generic_method's
16817         klass if it's a generic instance, use `ginst->klass' in this case.
16818
16819 2003-11-03  Martin Baulig  <martin@ximian.com>
16820
16821         * reflection.c (mono_image_get_generic_method_param_info):
16822         Removed, use mono_image_get_generic_param_info() instead.
16823         (mono_image_get_type_info): Write the GenericParam table before
16824         the Method table.  This is neccessary because in the GenericParam
16825         table, type parameters of the class (ie. '!0' etc.) must come
16826         before the ones from its generic methods (ie. '!!0' etc).
16827
16828 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
16829
16830         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
16831
16832 2003-11-02  Martin Baulig  <martin@ximian.com>
16833
16834         * reflection.c (create_generic_typespec): Take a
16835         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
16836         the generic parameters from it.
16837
16838 2003-11-02  Martin Baulig  <martin@ximian.com>
16839
16840         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
16841         instead of a `MonoClassField *' since we just need the type.
16842         (create_generic_typespec): New static function.  Creates a
16843         TypeSpec token for a generic type declaration.
16844         (mono_image_get_generic_field_token): New static function.
16845         (mono_image_create_token): If we're a FieldBuilder in a generic
16846         type declaration, call mono_image_get_generic_field_token() to get
16847         the token.
16848
16849 2003-11-02  Martin Baulig  <martin@ximian.com>
16850
16851         * reflection.h
16852         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
16853         `MonoReflectionGenericInst *declaring_type' and
16854         `MonoReflectionGenericInst *reflected_type' fields.
16855
16856         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
16857         `MonoReflectionGenericInst *declaring_type' and a
16858         `MonoReflectionGenericInst *reflected_type' argument instead of a
16859         single `MonoReflectionGenericInst *type' one.  Set
16860         `res->declaring_type' and `res->reflected_type' from them.
16861         (mono_reflection_inflate_field): Likewise.      
16862
16863 2003-11-02  Martin Baulig  <martin@ximian.com>
16864
16865         * class.c (mono_class_setup_vtable): Don't store generic methods
16866         in the vtable.  
16867
16868 2003-11-02  Martin Baulig  <martin@ximian.com>
16869
16870         * reflection.h (MonoReflectionGenericInst): Added
16871         `MonoReflectionType *declaring_type'.
16872
16873         * reflection.c (mono_reflection_bind_generic_parameters): Use
16874         `if (tb->parent)' instead of `klass->parent'.
16875
16876 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
16877
16878         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
16879         with an empty ASSEMBLY table.
16880
16881         * reflection.c (mono_image_build_metadata): Avoid using the same loop
16882         variable in the inner and outer loops.
16883
16884 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
16885
16886         * metadata.h (mono_metadata_make_token): Put parentheses around macro
16887         argument.
16888
16889         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
16890         
16891         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
16892         icalls. Instead, do everything in managed code. This is needed since
16893         it is hard to restore the original domain etc. in unmanaged code in the
16894         presence of undeniable exceptions.
16895
16896         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
16897         New icalls to push and pop appdomain refs.
16898
16899 2003-10-31  Martin Baulig  <martin@ximian.com>
16900
16901         * class.c (inflate_generic_type): Renamed to
16902         mono_class_inflate_generic_type() and made it public.
16903
16904         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
16905         New interncall.
16906
16907         * loader.c (mono_field_from_memberref): Also set the retklass for
16908         typespecs.
16909
16910         * fielder.c (mono_image_get_inflated_field_token): New static
16911         method; creates a metadata token for an inflated field.
16912         (mono_image_create_token, fixup_method): Added support for
16913         "MonoInflatedField".
16914         (fieldbuilder_to_mono_class_field): New static function.
16915         (mono_reflection_inflate_field): New public function.
16916
16917         * reflection.h
16918         (MonoReflectionGenericInst): Added `MonoArray *fields'.
16919         (MonoReflectionInflatedField): New typedef.     
16920
16921 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
16922
16923         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
16924         for Solaris and other platforms without s6_addr16
16925
16926 2003-10-30  Martin Baulig  <martin@ximian.com>
16927
16928         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
16929         argument instead of two.
16930         (mono_class_inflate_generic_signature): Likewise.
16931         (inflate_generic_header): Likewise.
16932         (mono_class_inflate_generic_method): Likewise.  In addition, if
16933         `ginst->klass' is set, it becomes the new `method->klass'.
16934
16935         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
16936         field.
16937
16938         * reflection.c (encode_generic_method_sig): Write a 0xa as the
16939         first byte. [FIXME]
16940         (method_encode_methodspec): If we have generic parameters, create
16941         a MethodSpec instead of a MethodRef.
16942         (fixup_method): Added support for "MonoInflatedMethod" and
16943         "MonoInflatedCtor".
16944         (mono_image_create_token): Added support for "MonoInflatedMethod"
16945         and "MonoInflatedCtor".
16946         (inflated_method_get_object): New static function; returns a
16947         managed "System.Reflection.MonoInflatedMethod" object.
16948         (mono_reflection_bind_generic_method_parameters): Return a
16949         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
16950         (mono_reflection_inflate_method_or_ctor): Likewise.
16951         (mono_image_get_generic_method_param_info): Initialize unused
16952         fields to zero.
16953         (mono_image_get_generic_param_info): Likewise.
16954
16955         * reflection.h (MonoReflectionInflatedMethod): New public
16956         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
16957         "S.R.MonoInflatedCtor" classes.
16958
16959         * loader.c (method_from_memberref): If we're a TypeSpec and it
16960         resolves to a generic instance, inflate the method.
16961
16962 2003-10-28  Dick Porter  <dick@ximian.com>
16963
16964         * object.c (mono_runtime_run_main): Convert command-line arguments
16965         into utf8, falling back to the user's locale encoding to do so.
16966
16967 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
16968
16969         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
16970         at this time.
16971
16972         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
16973
16974         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
16975         up icalls at method definition time. Partially fixes #33569.
16976
16977 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
16978
16979         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
16980         marshalling of arrays. Fixes #50116.
16981
16982         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
16983
16984         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
16985         points to a vtable in the dying appdomain.
16986
16987         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
16988         listeners into unmanaged code inside the lock.
16989
16990         * object.c (mono_class_vtable): Turn off typed allocation in non-root
16991         domains and add some comments.
16992
16993 2003-10-25  Martin Baulig  <martin@ximian.com>
16994
16995         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
16996
16997         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
16998
16999         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
17000         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
17001         currently parsing.  Create the generic class and store it in
17002         `generic_inst->klass' before parsing the type arguments.  This is
17003         required to support "recursive" definitions; see mcs/tests/gen-23.cs
17004         for an example.
17005         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
17006         to support recursive typespec entries.
17007
17008         * class.c (mono_class_setup_parent): If our parent is a generic
17009         instance, we may get called before it has its name set.
17010         (mono_class_from_generic): Splitted into
17011         mono_class_create_from_generic() and mono_class_initialize_generic().
17012
17013 2003-10-25  Martin Baulig  <martin@ximian.com>
17014
17015         * icall.c (ves_icall_Type_BindGenericParameters): Return a
17016         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
17017         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
17018         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
17019
17020         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
17021         (create_typespec): Likewise.
17022         (mono_reflection_bind_generic_parameters): Return a
17023         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
17024         (mono_reflection_inflate_method_or_ctor): New public function.
17025
17026         * reflection.h (MonoReflectionGenericInst): New typedef.        
17027
17028 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
17029
17030         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
17031         inside the domain lock. Fixes #49993.
17032         
17033         * object.c (mono_class_vtable): When typed allocation is used, 
17034         allocate vtables in the GC heap instead of in the mempool, since the
17035         vtables contain GC descriptors which are used by the collector even
17036         after the domain owning the mempool is unloaded.
17037
17038         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
17039
17040         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
17041         reflect what it does. Also invalidate mempools instead of freeing
17042         them if a define is set.
17043
17044         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
17045         of the appdomain.
17046         
17047         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
17048         hold the finalizable objects in this domain.
17049
17050         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
17051         appdomain.
17052
17053         * appdomain.c (mono_domain_set): New function to set the current
17054         appdomain, but only if it is not being unloaded.
17055
17056         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
17057         appdomain which is being unloaded.
17058         
17059         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
17060         unloading of the root appdomain.
17061
17062         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
17063         icall to execute a method in another appdomain. Intended as a 
17064         replacement for InternalSetDomain, which can confuse the code 
17065         generation in the JIT.
17066
17067         * appdomain.c (mono_domain_is_unloading): New function to determine
17068         whenever an appdomain is unloading.
17069
17070         * appdomain.c (mono_domain_unload): New function to correctly unload
17071         an appdomain.
17072
17073         * assembly.c (mono_assembly_load_references): Check that an assembly
17074         does not references itself.
17075
17076         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
17077         domain manually, it asks the finalizer thread to do it, then waits for
17078         the result. Also added a timeout.
17079
17080         * icall.c: Register the new icalls.
17081
17082         * threads.h threads.c: Export the mono_gc_stop_world and 
17083         mono_gc_start_world functions.
17084         
17085         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
17086         function to fill out the mempool with 0x2a.
17087
17088 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
17089
17090         * reflection.h (MonoReflectionMethodAux): New structure to store
17091         information which is rarely used, thus is not in the MonoMethod
17092         structure.
17093
17094         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
17095         store the aux info.
17096
17097         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
17098         and marshalling info into the aux structure.
17099
17100         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
17101         from the aux structure.
17102
17103         * loader.c (mono_method_get_param_names): Retrieve the param names from
17104         the aux structure.
17105         
17106 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
17107
17108         * exception.h exception.c: Add AppDomainUnloadedException && fix 
17109         warning.
17110
17111 2003-10-21  Dick Porter  <dick@ximian.com>
17112
17113         * socket-io.c
17114         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
17115         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
17116
17117 2003-10-21  Martin Baulig  <martin@ximian.com>
17118
17119         * reflection.c (mono_reflection_bind_generic_parameters):
17120         `klass->parent' is NULL for interfaces.
17121
17122 2003-10-21  Martin Baulig  <martin@ximian.com>
17123
17124         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17125
17126 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
17127
17128         * exception.c (mono_exception_from_name_msg): New helper function for
17129         creating exceptions and initializing their message field.
17130
17131         * exception.c: Simplify functions using the new helper.
17132
17133         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
17134         New function.
17135
17136         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
17137         mono_raise_exception, since otherwise gcc doesn't generate the function
17138         epilog for raise_exception, confusing the stack unwinding in the JIT.
17139         Fixes #45043.
17140
17141         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
17142         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
17143         Fixes #49499.
17144
17145 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17146
17147         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
17148         utf8.
17149
17150 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
17151
17152         * icall.c: Removed GetUninitializedObject method because
17153           AllocateUninitializedClassInstance does the same.
17154
17155 2003-10-18  Martin Baulig  <martin@ximian.com>
17156
17157         * class.c (inflate_generic_signature): Renamed to
17158         mono_class_inflate_generic_signature() and made it public.
17159         (my_mono_class_from_generic_parameter): New static function; if we
17160         don't already have the generic parameter's MonoClass, create a
17161         very simple one which is just used internally in the runtime and
17162         not passed back to managed code.
17163
17164         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
17165
17166         * metadata.h (MonoMethodSignature): Moved the
17167         `MonoGenericParam *gen_params' to the MonoMethodHeader.
17168         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
17169
17170         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
17171         ves_icall_MonoMethod_GetGenericArguments(); this is now an
17172         interncall on the MonoMethod class, not on MethodInfo.
17173         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
17174         calling mono_reflection_bind_generic_method_parameters() directly.
17175
17176         * loader.c (mono_method_get_signature): If this is a MethodSpec;
17177         return the already computed `method->signature'.
17178         (method_from_methodspec): New static function to load a method
17179         from a MethodSpec entry.
17180         (mono_get_method_from_token): Call the new method_from_methodspec()
17181         for MethodSpec tokens.  
17182         (mono_get_method_from_token): If we're a generic method, load the
17183         type parameters.
17184
17185         * reflection.c (mono_image_get_memberref_token): Allow
17186         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
17187         table.
17188         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
17189         (mono_image_create_token): First check whether it's a generic
17190         method (so we'd need to create a MethodSpec), then do the other
17191         two alternatives.
17192         (mono_reflection_bind_generic_method_parameters): Return a
17193         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
17194         called directly from the interncall.
17195
17196 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
17197
17198         * reflection.c (load_public_key): Move loading of the public key
17199         into managed code.
17200
17201         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
17202
17203         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
17204         fields.
17205
17206         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
17207         culture, hash_alg and public_key. Fixes #49555.
17208
17209 2003-10-17  Martin Baulig  <martin@ximian.com>
17210
17211         * class.h (MonoGenericInst): Moved this declaration here and added
17212         `MonoMethod *generic_method'.
17213
17214         * icall.c
17215         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
17216         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
17217
17218         * metadata.c (mono_metadata_type_equal): Two types of
17219         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
17220         index; ie. don't compare the address of the `MonoGenericParam'
17221         structure.
17222         (mono_metadata_load_generic_params): Removed the `MonoMethod
17223         *method' argument.
17224
17225         * metadata.h (MonoGenericInst): Moved declaration to class.h.
17226         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
17227
17228         * reflection.c (method_encode_signature): Encode the number of
17229         generic parameters.
17230         (encode_generic_method_sig): New static function.
17231         (method_encode_methodspec): New static function; creates an entry
17232         in the MethodSpec table for a generic method.
17233         (mono_image_get_methodspec_token): New static function.
17234         (mono_image_create_token): Call mono_image_get_methodspec_token()
17235         for generic methods.
17236         (mono_reflection_bind_generic_method_parameters): New public
17237         function.  Instantiates a generic method.
17238
17239 2003-10-16  Martin Baulig  <martin@ximian.com>
17240
17241         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
17242         *gen_params' here from MonoMethodHeader.
17243
17244         * metadata.c (mono_metadata_parse_method_signature): If we have
17245         generic parameters, initialize `method->gen_params' and then set
17246         the correct `type->data.generic_param' in all the parameters.
17247
17248 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
17249
17250         * threads.c (mono_threads_get_default_stacksize): New function to 
17251         return the default stacksize.
17252
17253         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
17254         termination of the finalizer thread, since the previous method had
17255         race conditions. Fixes #49628.
17256
17257         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
17258         as for the other managed threads.
17259
17260 2003-10-16  Martin Baulig  <martin@ximian.com>
17261
17262         * class.c (inflate_generic_signature): Copy `generic_param_count'
17263         and `gen_params'.
17264
17265         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
17266         New interncall.
17267
17268         * metadata.c (mono_metadata_parse_method_signature): Actually set
17269         the `method->generic_param_count' here.
17270         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
17271
17272 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
17273
17274         * object.h: Add a new field to TypedRef to simplify the implementation
17275         of the REFANY opcodes in the JIT.
17276
17277         * icall.c: Make use of the new field.
17278
17279         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
17280         dynamically.
17281
17282 2003-10-15  Martin Baulig  <martin@ximian.com>
17283
17284         * class.c (mono_class_from_gen_param): Renamed to
17285         mono_class_from_generic_parameter() and moved most of the
17286         functionality from mono_reflection_define_generic_parameter()
17287         here; ie. we create a "real" class here.
17288         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
17289         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
17290         previously been called.
17291
17292         * class.h (MonoGenericParam): Moved the declaration of this struct
17293         here from metadata.h and added `MonoMethod *method'.
17294
17295         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
17296         interncall.
17297
17298         * loader.c (mono_get_method_from_token): If we have any generic
17299         parameters, call mono_metadata_load_generic_params() to read them
17300         from the MONO_TABLE_GENERICPAR.
17301
17302         * metadata.c (mono_metadata_load_generic_params): Added
17303         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
17304
17305         * metadata.h (MonoMethodSignature): Replaced
17306         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
17307         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
17308
17309         * reflection.c (mono_reflection_define_generic_parameter): Moved
17310         most of the functionality into the new
17311         mono_class_from_generic_parameter(); set the `method' field if
17312         we're a method parameter.       
17313
17314 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
17315
17316         * marshal.c (emit_struct_conv): if native size is 0
17317         emit no code.
17318
17319 2003-10-14  Martin Baulig  <martin@ximian.com>
17320
17321         * icall.c: The generics API has changed in the spec since it was
17322         added to System.Type; these modifications make it match the spec
17323         again.
17324         (ves_icall_Type_GetGenericParameters): Renamed to
17325         `ves_icall_Type_GetGenericArguments'.
17326         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
17327         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
17328         `ves_icall_MonoType_get_HasGenericArguments'.
17329         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
17330         `ves_icall_MonoType_get_IsGenericParameter'.
17331         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
17332         this is no interncall anymore.
17333         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
17334         `ves_icall_TypeBuilder_get_IsGenericParameter'.
17335
17336 2003-10-14  Martin Baulig  <martin@ximian.com>
17337
17338         * reflection.c (mono_reflection_bind_generic_parameters): Also
17339         inflate generic methods if we're reading the class from IL.
17340
17341 2003-10-13  Martin Baulig  <martin@ximian.com>
17342
17343         * reflection.c (mono_reflection_define_generic_parameter): This
17344         method isn't called directly from the icall anymore; take a
17345         `MonoReflectionAssemblyBuilder *' so we can use this for type and
17346         method generic parameters.
17347         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
17348         (method_builder_encode_signature): Encode generic parameters.
17349         (mono_image_get_method_info): Write generic params to the
17350         MONO_TABLE_GENERICPARAM table.
17351
17352         * reflection.h (MonoReflectionMethodBuilder): Added
17353         `MonoArray *generic_params'.
17354
17355         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
17356
17357         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
17358         wrapper for mono_reflection_define_generic_parameter().
17359         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
17360
17361 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
17362
17363         * marshal.h: Add missing function to fix build.
17364
17365         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
17366         the SetLastError pinvoke attribute.
17367
17368         * marshal.c (mono_marshal_set_last_error): New helper function called
17369         by the generated code.
17370         
17371         * marshal.c (mono_mb_emit_branch): New helper function.
17372
17373         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
17374
17375         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17376         classes as parameters and return values of delegates. Fixes #29256. 
17377
17378 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
17379
17380         * locales.c: use gint32 in non HAVE_ICU case
17381
17382 2003-10-11  Martin Baulig  <martin@ximian.com>
17383
17384         * mono-debug.c (mono_debug_add_method): Added a workaround for
17385         bug #48591.
17386
17387 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
17388
17389         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
17390         delegates passed to native code must use the STDCALL calling 
17391         convention. Fixes #35987.
17392
17393 2003-10-10  Martin Baulig  <martin@ximian.com>
17394
17395         * class.c (inflate_generic_type): If we're inflating for a generic
17396         type instance (and not for a generic method), return
17397         MONO_TYPE_MVAR unchanged.
17398
17399 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17400
17401         * string-icalls.c: Join ignores null strings in the source array.
17402         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
17403         * threads.c: GetAvailableTheads is slightly more accurate.
17404
17405 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
17406
17407         * threads.h threads.c : add mono_threads_set_default_stacksize
17408         and pass default to CreateThread calls.
17409
17410 2003-10-09  Dick Porter  <dick@ximian.com>
17411
17412         * icall.c:
17413         * locales.h:
17414         * locales.c: Internal calls for constructing CultureInfo and
17415         related objects from libicu (if its available.)
17416
17417 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
17418
17419         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
17420
17421 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17422
17423         * threadpool.c: added an argument to async_invoke_thread that is the
17424         item to process, pass the MonoAsyncResult to the thread start function
17425         when creating a new thread. This way we don't need to acquire any lock
17426         when we're creating a new thread. Readded a semaphore for faster
17427         response times (instead of that Sleep i added).
17428
17429 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
17430
17431         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
17432         get daylight change dates better on Windows, fix handling
17433         of platforms without tm_gmtoff.
17434
17435 2003-10-06  Martin Baulig  <martin@ximian.com>
17436
17437         * class.c (inflate_generic_method): Renamed to
17438         mono_class_inflate_generic_method() and made public.
17439         (mono_class_init): Don't inflate the generic methods here.
17440         (mono_class_from_generic): Added `gboolean inflate_methods'
17441         argument.  Inflate the methods here.
17442
17443         * loader.c (mono_method_get_param_names): Ignore instances of
17444         generic types for the moment.
17445
17446         * reflection.c (fixup_method): Added support for inflated methods.
17447         (mono_image_create_token): Use mono_image_get_methodref_token()
17448         for inflated methods.
17449         (mono_custom_attrs_from_param): Ignore instances of generic types
17450         for the moment.
17451         (mono_reflection_bind_generic_parameters): New public function.
17452         Moved all the functionality from
17453         ves_icall_Type_BindGenericParameters() here and added support for
17454         dynamic types.
17455         (mono_reflection_define_generic_parameter): Initialize
17456         `klass->methods' here.
17457
17458         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
17459         functionality into mono_reflection_define_generic_parameter().
17460         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
17461         TypeBuilder, return that TypeBuilder.
17462
17463 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17464
17465         * appdomain.c: removed mono_delegate_semaphore.
17466
17467         * threadpool.c:
17468         (mono_thread_pool_add): moved hash table creation inside and the thread 
17469         creation outside of the critical region.
17470         (mono_thread_pool_finish): removed obsolete code.
17471         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
17472         continue or exit the thread depending on the queue.
17473
17474 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
17475
17476         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
17477         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
17478         handle more bool marshalling options
17479
17480 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
17481
17482         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
17483         arrays of structs. Also add a more descriptive error message when
17484         a structure member is marshalled as LPArray.
17485
17486 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
17487
17488         * marshal.c (mono_marshal_get_native_wrapper): Add support for
17489         marshalling arrays of complex types. Fixes #29098. Also remove an
17490         usused and incomplete function.
17491
17492 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
17493
17494         * gc.c: report heap_size - free_bytes as total memory allocated
17495         (bug#49362).
17496
17497 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
17498
17499         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
17500         fix timezone handling problems on Windows.
17501         
17502         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
17503         asserts when the year is outside the range handled by ms the functions.
17504
17505         * class.c (setup_interface_offsets): If the class is an interface,
17506         fill out its interface_offsets slot.
17507
17508 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17509
17510         * threadpool.c: mark threadpool threads as background.
17511
17512 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
17513
17514         * decimal.c - define DECINLINE to nothing if not using GCC
17515
17516 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
17517
17518         * assembly.c: More refcount fixes.
17519
17520 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17521
17522         * string-icalls.c: if we're not trimming, return the same string.
17523         When not splitting, don't create a new string.
17524
17525 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17526
17527         * image.c:
17528         (mono_image_open): increment the ref_count inside the critical section.
17529
17530 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
17531
17532         * image.c (mono_image_open): Fix reference counting bug.
17533
17534 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
17535
17536         * marshal.c (mono_marshal_type_size) struct alignment changed for 
17537         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
17538         64bits. Avoid leak in mono_marshal_get_native_wrapper when
17539         mono_lookup_pinvoke_call throws.        
17540
17541 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
17542
17543         * reflection.c (mono_reflection_parse_type): Fix #49114.
17544
17545         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
17546         temporary workaround for cygwin header problem.
17547
17548         * object.c (mono_object_isinst): Synchronize this with the code
17549         generated by the JIT for casts.
17550
17551 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
17552
17553         * reflection.c (encode_type): Fix #38332.
17554
17555 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
17556
17557         * marshal.c (mono_marshal_method_from_wrapper): New function to return
17558         the original method from the wrapper method.
17559
17560 2003-09-25  Martin Baulig  <martin@ximian.com>
17561
17562         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
17563         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
17564         (ves_icall_Type_get_IsGenericInstance): New interncall.
17565
17566 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
17567
17568         * object.c: fix cast warning in big endian code.
17569
17570 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
17571
17572         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
17573         
17574 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17575
17576         * assembly.c: don't call check_env from mono_assembly_load. It's
17577         already done once in mono_assemblies_init and may cause headaches when
17578         multiple threads are loading assemblies.
17579
17580 2003-09-19  Martin Baulig  <martin@ximian.com>
17581
17582         * reflection.c (mono_reflection_define_generic_parameter): Don't
17583         allocate `klass->methods', set `klass->flags' to
17584         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
17585
17586 2003-09-18  Martin Baulig  <martin@ximian.com>
17587
17588         * class.c (mono_class_init): Don't create `class->methods' if it's
17589         already initialized.
17590
17591         * metadata.c (mono_metadata_load_generic_params): Make this
17592         actually work.
17593
17594         * reflection.c (mono_reflection_define_generic_parameter): Set
17595         parent class and interfaces from the constraints.
17596
17597         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
17598         to keep this struct in sync with the declaration in TypeBuilder.cs.
17599
17600 2003-09-17  Martin Baulig  <martin@ximian.com>
17601
17602         * metadata.h (MonoType): Replaced the data's `int type_param'
17603         field with `MonoGenericParam *generic_param'.
17604         (MonoGenericParam): Added `MonoClass *klass'.
17605
17606         * class.c (mono_class_from_gen_param): Removed the
17607         `MonoImage *image' and `int type_num' arguments.
17608
17609         * metadata.c (mono_metadata_parse_generic_param): New static
17610         method; creates a MonoGenericParam which just contains the index.
17611         (do_mono_metadata_parse_type): Call
17612         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
17613         MONO_TYPE_MVAR.
17614
17615         * reflection.c (mono_image_typedef_or_ref): Generic type
17616         parameters may be in the same assembly, but never use a typedef
17617         for them.
17618         (mono_reflection_define_generic_parameter): We're now creating a
17619         "real" class for the type parameter; it's now safe to call
17620         mono_class_from_mono_type() on the class'es type, it'll do the
17621         right thing.
17622
17623 2003-09-16  Martin Baulig  <martin@ximian.com>
17624
17625         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
17626         `symfile->range_entry_size' and `symfile->class_entry_size' here;
17627         the `symfile' data structure must be fully initialized before it
17628         gets added to the table.
17629
17630 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
17631
17632         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
17633
17634         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
17635         class init trampolines.
17636
17637 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
17638
17639         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
17640         to the built-in profiler to turn off time and allocation profiling
17641         respectively.
17642
17643 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
17644
17645         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
17646         g_direct_equal.
17647
17648         * debug-helpers.c (mono_method_full_name): Print the wrapper type
17649         in human readable form.
17650
17651 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
17652
17653         * reflection.c icall.c: Fixed warnings.
17654
17655         * image.c (load_class_names): Use a temporary hash table to hold the
17656         namespaces in order to avoid doing many string comparisons.
17657
17658         * image.h: Fix typo.
17659
17660         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
17661         Pass NULL instead of g_direct_equal to the GHashTable constructor 
17662         since the NULL case is short-circuited inside g_hash_table_lookup, 
17663         leading to better performance.  
17664
17665         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
17666         obtain the first custom attribute for a given index. Depends on the
17667         CustomAttribute table being sorted by the parent field.
17668
17669         * reflection.c (mono_custom_attrs_from_index): Use the new function 
17670         for better performance.
17671
17672 2003-09-07  Martin Baulig  <martin@ximian.com>
17673
17674         * class.c (mono_class_init): If we're a generic instance, inflate
17675         all our methods instead of loading them from the image.
17676         (mono_class_from_generic): Set `class->methods = gklass->methods'.
17677
17678 2003-09-07  Martin Baulig  <martin@ximian.com>
17679
17680         * mono-debug-debugger.c: Added support for constructors.
17681
17682 2003-09-06  Martin Baulig  <martin@ximian.com>
17683
17684         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
17685         New interncall.
17686
17687         * reflection.c (mono_reflection_setup_generic_class): Call
17688         ensure_runtime_vtable() to create the vtable.
17689
17690 2003-09-05  Martin Baulig  <martin@ximian.com>
17691
17692         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
17693         MONO_TYPE_MVAR.
17694
17695 2003-09-04  Martin Baulig  <martin@ximian.com>
17696
17697         * reflection.c (mono_reflection_define_generic_parameter): Generic
17698         parameters start with zero.
17699
17700 2003-09-04  Martin Baulig  <martin@ximian.com>
17701
17702         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17703
17704         * reflection.h (MonoReflectionGenericParam): New typedef.
17705         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
17706         the generic parameters from the managed TypeBuilder.
17707
17708         * reflection.c (mono_reflection_define_generic_parameter): New function.
17709         (mono_reflection_create_runtime_class): Encode generic parameters.
17710         (mono_reflection_setup_generic_class): New function; this is
17711         called after adding adding all generic params to the TypeBuilder.
17712         (encode_type): Added MONO_TYPE_VAR.
17713
17714 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
17715
17716         * class.h class.c (mono_class_needs_cctor_run): Moved this method
17717         here from the JIT.
17718
17719         * assembly.h assembly.c: Moved the AOT loading code into an assembly
17720         load hook.
17721
17722 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
17723
17724         * reflection.h reflection.c class.h class.c: Delete duplicate 
17725         definition of mono_type_get_name () from reflection.c and export the
17726         one in class.c.
17727
17728         * class.c: Class loading fixes from Bernie Solomon 
17729         (bernard@ugsolutions.com).
17730
17731         * reflection.c: Endianness fixes from Bernie Solomon 
17732         (bernard@ugsolutions.com).
17733         
17734 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
17735
17736         * assembly.h assembly.c: Define a file format version for AOT
17737         libraries.
17738         
17739         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
17740
17741         * appdomain.h (MonoJitInfo): New field to determine whenever the
17742         code is domain neutral.
17743         
17744 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
17745
17746         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
17747
17748 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
17749
17750         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
17751         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
17752         Avoid caching the result since strings must be domain specific. Fixes
17753         #48050.
17754
17755 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
17756
17757         * marshal.c (mono_marshal_init): Make this callable multiple times
17758         since it is hard to find a correct place to call it.
17759
17760         * object.c (mono_runtime_class_init): Execute static constructors in
17761         the correct appdomain.
17762
17763         * image.c (build_guid_table): Handle the case when multiple images have
17764         the same GUID.
17765
17766 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17767
17768         * icall.c: added a couple of icalls for System.Web.
17769
17770 2003-08-28  Martin Baulig  <martin@ximian.com>
17771
17772         * icall.c (ves_icall_Type_BindGenericParameters): Use
17773         `klass->generic_inst' instead of `&klass->byval_arg' in the
17774         mono_type_get_object() call.  The returned type must be
17775         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
17776
17777 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
17778
17779         * NOTES: New file.
17780
17781         * object.c (mono_class_proxy_vtable): Make it thread safe.
17782
17783         * pedump.c: Fix warning.
17784
17785         * object.c appdomain.h: Get rid of metadata_section. 
17786         It is no longer needed and it was causing deadlocks with domain->lock.
17787
17788         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
17789
17790 2003-08-26  Martin Baulig  <martin@ximian.com>
17791
17792         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
17793
17794 2003-08-26  Martin Baulig  <martin@ximian.com>
17795
17796         * pedump.c (main): Call mono_metadata_init(),
17797         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
17798         and mono_loader_init().
17799
17800 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
17801
17802         * loader.h: Add missing include to fix build.
17803
17804         * image.h: mono_image_load_references is no more.
17805
17806         * assembly.c: Reworked assembly loading to make it really thread safe.
17807         After these changes, the assembly returned by mono_assembly_open is
17808         fully initialized, i.e. all its references assemblies are loaded.
17809
17810         * assembly.c (mono_image_load_references): Renamed to 
17811         mono_assembly_load_references, and made private, since clients no
17812         longer need to call it.
17813
17814         * class.c: Removed calls to mono_assembly_load_references, since it was
17815         a source of deadlocks.
17816
17817         * loader.h loader.c class.h class.c: Protect data structures using a 
17818         new lock, the loader lock.
17819
17820         * class.c (mono_class_setup_vtable): Create temporary hash tables and
17821         GPtrArrays only when needed.
17822
17823         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
17824         into empty structures by mcs. Fixes pinvoke7.cs.
17825         
17826         * domain.c (mono_init): Call a new initialization function.
17827
17828         * appdomain.c (mono_runtime_init): Call the new initializer function
17829         of the marshal module.
17830
17831         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
17832         inserted into empty structures by mcs. Fixes pinvoke7.cs.
17833
17834         * marshal.h marshal.c: Added locks around the wrapper caches to make
17835         this module thread safe.
17836
17837         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
17838         this argument. Fixes pinvoke1.exe.
17839
17840 2003-08-25  Lluis Sanchez <lluis@ximian.com>
17841
17842         * object.h: Added call_type field to MonoMethodMessage and the corresponding
17843         enumeration of values. Removed fields to store remote call output values in
17844         MonoAsyncResult. Not needed any more.
17845         * object.c: Initialize call_type and async_result fields in mono_message_init.
17846         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
17847         dispatching the message.
17848         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
17849         async call to finish. To do it use a message with EndInvoke call type.
17850
17851 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
17852
17853         * loader.h loader.c (mono_method_hash_marhal_info): New function which
17854         determines whenever a method has marshalling info.
17855
17856 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17857
17858         * assembly.c: fix the build on windows.
17859
17860 2003-08-22 Lluis Sanchez <lluis@ximian.com>
17861
17862         * object.cs: Fixed bug #47785.
17863
17864 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
17865
17866         * string-icalls.c (StringReplace): If their are no occurances of
17867         the old string found return a reference to the supplied
17868         string. This saves some memory and matches MS behavoir.
17869         
17870 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17871
17872         * socket-io.c: fixed compilation for systems that define AF_INET6
17873         and don't define SOL_IP/SOL_IPV6.
17874
17875 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
17876
17877         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
17878         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
17879
17880         * rawbuffer.c rawbuffer.h: Make this module thread safe.
17881
17882         * domain.c: Make this module thread safe.
17883
17884         * domain.c (mono_init): Call new initialization function.
17885
17886         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
17887         reference types too. Fixes #38812.
17888
17889         * image.c (mono_image_init): Fixed warnings.
17890
17891         * class.c (mono_class_from_typeref): Handle assembly load failure
17892         correctly.
17893
17894         * appdomain.c (add_assemblies_to_domain): Handle the case when
17895         the references of an assembly are not yet loaded.
17896
17897         * metadata.c image.c assembly.c: Moved initialization of global
17898         variables to a separate function called at startup since lazy 
17899         initialization of these variables is not thread safe.
17900         
17901         * image.c assembly.c: Made this module thread safe by adding locks in 
17902         the appropriate places.
17903
17904         * domain.c (mono_init): Call the new initialization functions of the
17905         three modules.
17906
17907 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
17908
17909         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
17910           make a direct call. It is proxy's work to make the call asynchronous.
17911           mono_delegate_end_invoke(): If the targe is a proxy, just collect
17912           the return values.
17913         * object.cs: mono_method_call_message_new(): read AsyncResult and
17914           state object from parameters list, if this info is requested.
17915         * object.h: Added fields to store remote call output values in
17916           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
17917
17918 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17919
17920         * object.h: add needed fields to MonoThread.
17921         * threads.c, threads.h: allow registering a function to cleanup data
17922         allocated per thread by the JIT.
17923
17924 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17925
17926         * loader.h: portability fix by Bernie Solomon
17927         * <bernard@ugsolutions.com>.
17928
17929 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
17930
17931         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
17932         return a MonoArray. This simplifies the code and also ensures that
17933         the cache allways contains an object reference as a value.
17934
17935         * icall.c (ves_icall_get_parameter_info): Simplified using the new
17936         function.
17937
17938 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17939
17940         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
17941         fixes a problem with byte ordering when getting the address family for
17942         a socket.
17943
17944 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
17945
17946         * .cvsignore: Added monosn.
17947
17948         * reflection.h reflection.c loader.c: Added support for parameter
17949         marshalling to dynamically created types. Fixes #47295.
17950
17951 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
17952
17953         * rand.c: remove useless warnings.
17954
17955 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
17956
17957         * class.c: implemented ldtoken for methods and fieldrefs.
17958
17959 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17960
17961         * threadpool.c: when mono_async_invoke was called, no one took care of
17962         monitoring the queue. So if the method invoked took some time and we
17963         got new async invoke requests after 500 ms (the thread created waited
17964         that long in WaitForSingleObject), the new async invoke was not called
17965         until the previous one finished.
17966
17967         This is fixed now. Thanks to Totte for helping with it.
17968
17969 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17970
17971         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
17972
17973 2003-08-11  Martin Baulig  <martin@ximian.com>
17974
17975         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
17976
17977 2003-08-06  Martin Baulig  <martin@ximian.com>
17978
17979         * mono-debug-debugger.c: Added support for static fields,
17980         properties and methods.
17981
17982 2003-08-06  Martin Baulig  <martin@ximian.com>
17983
17984         * mono-debug-debugger.c: Don't store the MonoString's vtable to
17985         make this work for applications with multiple application domains.
17986
17987 2003-08-04  Martin Baulig  <martin@ximian.com>
17988
17989         * mono-debug-debugger.c: Completely reworked the type support; the
17990         most important thing is that we're now just using one single
17991         `MonoType' instance per type.
17992
17993 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
17994
17995         * mono-endian.h, mono-endian.c, icall.c: Added icall
17996         ves_icall_System_Double_AssertEndianity to assert double word endianity
17997         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
17998
17999 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18000
18001         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
18002         support, icalls and fixes.
18003
18004 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
18005
18006         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
18007         classes that are a punctuation character in .NET is not the same a
18008         g_unichar_ispunct.
18009
18010 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18011
18012         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
18013
18014 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
18015
18016         * icall.c: Add new MemCopy internalcall.
18017         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
18018         Simplified code; It is not necessary to handle all the cases here,
18019         as the C# code takes care of it.  Only handle the case of the name
18020         resource embedded into the assembly.
18021
18022         Changed signature to return the data pointer and the size of the
18023         data. 
18024
18025 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
18026
18027         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
18028         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
18029
18030 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
18031
18032         * socket-io.c: ignore EINTR error in select.
18033
18034 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
18035
18036         * class.h, class.c: removed unused subclasses field in MonoClass.
18037
18038 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
18039
18040         * icall.c: improve fix of get_base_definition(). If the parent class
18041           doesn't have the mehod, look at the parent of the parent.
18042         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
18043           to check if a parameter is an in or out parameter
18044           (PARAM_ATTRIBUTE_IN is not set by default).
18045           mono_method_return_message_restore(): Use mono_class_value_size to
18046           get the size of a value type. mono_type_stack_size (parameterType)
18047           does not return the correct value if parameterType is byRef.
18048           mono_load_remote_field(), mono_load_remote_field_new(),
18049           mono_store_remote_field(), mono_store_remote_field_new():
18050           raise exception if the remote call returns an exception.
18051
18052 2003-07-28  Martin Baulig  <martin@ximian.com>
18053
18054         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
18055         method.  This is a wrapper around mono_runtime_invoke() which
18056         boxes the instance object if neccessary.
18057
18058 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18059
18060         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
18061         metadata.h, row-indexes.h, verify.c: first cut of generics support.
18062
18063 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18064
18065         * icall.c: disable mcs bug workaround.
18066
18067 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
18068
18069         * object.c (mono_runtime_class_init): Take the metadata_section
18070         mutex before obtaining the domain mutex.
18071
18072         * appdomain.h: Added definition of metadata_section mutex here. 
18073
18074         * object.c: define metadata_mutex here.
18075
18076 2003-07-24  Ravi Pratap  <ravi@ximian.com>
18077
18078         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
18079         fixed.
18080
18081 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
18082
18083         * reflection.c: Fix bug #46669
18084
18085 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18086
18087         * exception.c:
18088         * exception.h:
18089         * icall.c:
18090         * object.h: fill in the type name for TypeLoadException.
18091
18092 2003-07-23  Ravi Pratap  <ravi@ximian.com>
18093
18094         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
18095         relationship between TypeBuilders while compiling corlib) and bug
18096         45993 (Array types returned from the runtime while compiling
18097         corlib were from the loaded corlib).
18098
18099 2003-07-22  Martin Baulig  <martin@ximian.com>
18100
18101         * mono-debug-debugger.c: Reworked the type support a bit more;
18102         distinguish between types and classes.
18103
18104 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
18105
18106         * icall.c: add IsArrayImpl icall.
18107
18108 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
18109
18110         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
18111         initializing real_size only once. Also fix bug #46602.
18112
18113 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
18114
18115         * object.c: Renamed mono_metadata_section to metadata_section.
18116
18117 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
18118
18119         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
18120           empty array if the type is an array. Fixed.
18121           ves_icall_MonoMethod_get_base_definition: if the base method
18122           is abstract, get the MethodInfo from the list of methods of
18123           the class.
18124         * reflection.c: ParameterInfo.PositionImpl should be zero-based
18125           and it was 1-based. Fixed in mono_param_get_objects.
18126
18127 2003-07-20  Martin Baulig  <martin@ximian.com>
18128
18129         * mono-debug.h: Set version number to 31.
18130         (mono_debug_init): Added `MonoDomain *' argument.
18131
18132         * mono-debug-debugger.c: Reworked the type support; explicitly
18133         tell the debugger about builtin types; pass the `klass' address to
18134         the debugger.
18135
18136 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
18137
18138         * image.c: Allow new metadata tables to be loaded without a
18139         warning. Also update the warning message to give the new constant value.
18140                 
18141 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
18142
18143         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
18144         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
18145         array type representation changes.
18146
18147 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
18148
18149         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
18150         on Environment.Exit () call.
18151
18152 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
18153
18154         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
18155         requires a matching corlib.
18156
18157 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
18158
18159         * Changelog: My editor decided to add a CR to each line. Sorry about that.
18160           Committed again without the CRs.
18161         
18162 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
18163
18164         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
18165           getting it from the "this" socket instance. Did not work
18166           if the socket is a subclass of Socket.
18167           Also fixed bug #35371.
18168
18169 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
18170
18171         * metadata.c: fixed size for TypedByRef.
18172         * loader.c: when searching for a method, consider the vararg amrker.
18173         * unicode.c, decimal.c: constify some arrays.
18174
18175 2003-07-15  Dick Porter  <dick@ximian.com>
18176
18177         * socket-io.c: Fixed compilation for gcc < 3.2.
18178
18179         Fixed compilation for machines that don't have AF_INET6 (thanks to
18180         Bernie Solomon <bernard@ugsolutions.com> for that part.)
18181
18182         Fixed compile warnings.
18183         
18184         Fixed formatting and line endings.
18185
18186 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
18187
18188         * socket-io.h:
18189         * socket-io.c: Added IPv6 support.
18190
18191 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
18192
18193         * class.c (mono_class_is_assignable_from): New function to implement
18194         the is_assignable_from logic. Used by mono_object_isinst, 
18195         Type::IsAssignableFrom () and the interpreter.
18196
18197         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
18198         Object, even interfaces.
18199         
18200         * object.c (mono_object_isinst): Implement in terms of 
18201         is_assignable_from.
18202
18203         * icall.c (ves_icall_type_is_assignable_from): New icall.
18204
18205 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
18206
18207         * domain.c (foreach_domain): fix compiler warning.
18208
18209 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
18210
18211         * image.c (load_metadata_ptrs): use g_strndup because strndup is
18212         not available on all plattforms
18213
18214 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
18215
18216         * image.h image.c: Store the metadata version string in MonoImage.
18217         * icall.c: New icall to retrieve the image version.
18218         * reflection.c (create_dynamic_image): Fill in the image version field
18219         * reflection.c (build_compressed_metadata): Use the image version
18220         from the image structure.
18221
18222 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18223
18224         * appdomain.c: modified comment.
18225         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
18226         That will be its last iteration when mono_gc_cleanup is called from
18227         mono_runtime_cleanup and before the domain is unloaded.
18228
18229         Fixes bug #45962.
18230
18231 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
18232
18233         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
18234         attributes.
18235
18236 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18237
18238         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
18239         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
18240         Bernie Solomon <bernard@ugsolutions.com>.
18241
18242 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
18243
18244         * object.c, object.h: provide mono_object_new_fast() for faster
18245         allocation in some special cases.
18246
18247 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
18248
18249         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
18250         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
18251
18252 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
18253
18254         * threadpool.c: fix leaks.
18255
18256 2003-07-01  Dick Porter  <dick@ximian.com>
18257
18258         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
18259         using MonoGHashTables.  Fixes threadpool bug posted to list.
18260
18261 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
18262
18263         * image.h, image.c: added support to load an assembly from a byte array.
18264         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
18265         assembly bundle support.
18266
18267 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
18268
18269         * threadpool.c (mono_thread_pool_add): keep a reference to the
18270         AsyncResult to prevent GC
18271
18272 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
18273
18274         * class.c: leak fix.
18275
18276 2003-06-25  Dick Porter  <dick@ximian.com>
18277
18278         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
18279         for the async object, the WaitHandle object will close the handle.
18280         Fixes bug 45321.
18281
18282 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
18283
18284         * class.c: in mono_array_class_get (), lookup from the hash with the
18285         same type we insert: this works around a bug in
18286         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
18287         lluis. The real fix will have to wait for after the release.
18288
18289 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
18290
18291         * icall.c: fix memory leak when getting type members.
18292
18293 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
18294
18295         * reflection.c: added more pubtoken special cases.
18296
18297 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
18298
18299         * class.c: handle field offset correctly when class size
18300         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
18301
18302 2003-06-20  Martin Baulig  <martin@ximian.com>
18303
18304         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
18305         *image' field.
18306
18307 2003-06-20  Martin Baulig  <martin@ximian.com>
18308
18309         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
18310
18311 2003-06-20  Martin Baulig  <martin@ximian.com>
18312
18313         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
18314         just distinguish between variables in registers and variables at
18315         an offset relative to a register.
18316
18317 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18318
18319         * icall.c: #ifdef out latest changes until mcs is fixed.
18320
18321 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
18322
18323         * icall.c: return members in metadata order.
18324
18325 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
18326
18327         * icall.c: avoid infinite loop in GetTimeZoneData.
18328
18329 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
18330
18331         * icall.c: added Marshal.Prelink/All icalls.
18332
18333 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
18334
18335         * object.c, object.h: fix warnings and do some overflow checking
18336         when creating arrays.
18337
18338 2003-06-17  Dick Porter  <dick@ximian.com>
18339
18340         * file-io.h:
18341         * file-io.c: File attributes need to be tweaked slightly when
18342         passed from the managed to the w32 world.
18343
18344 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
18345         * profiler.h profiler-private.h profiler.c: Rework last patch
18346         based on suggestion by Paolo.
18347         
18348 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
18349
18350         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
18351         instruction level coverage data collection.
18352         * profiler.h profiler.c (: Added new callback function which can be
18353         used by the profiler to limit which functions should have coverage
18354         instrumentation.
18355         * profiler.c (mono_profiler_load): Call g_module_build_path to
18356         generate the file name of the profiler library.
18357
18358 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18359
18360         * profiler.c, profiler.h, profiler-private.h: added basic block 
18361         coverage profiling API.
18362
18363 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
18364
18365         * reflection.c (mono_reflection_create_runtime_class): Add support
18366         for events in dynamically generated code.
18367
18368         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
18369         not allocated.
18370
18371 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
18372
18373         * icall.c: when getting timezone info, return reasonable values if we
18374         can't get the actual data.
18375
18376 2003-06-14  Dick Porter  <dick@ximian.com>
18377
18378         * threads.c (start_wrapper): Remove the reference to the thread
18379         object in the TLS data, so the thread object can be finalized.
18380         This won't be reached if the thread threw an uncaught exception,
18381         so those thread handles will stay referenced :-( (This is due to
18382         missing support for scanning thread-specific data in the Boehm GC
18383         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
18384
18385 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
18386
18387         * reflection.c: ensure streams and tables are first allocated with
18388         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
18389
18390 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18391
18392         * icall.c: fixed GetElementType for byrefs (bug# 44792).
18393
18394 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
18395
18396         * reflection.c (mono_reflection_create_runtime_class): Add support for
18397         properties to dynamically created classes.
18398         * reflection.c: Fix a few places where non-MonoObjects were inserted
18399         into the tokens hashtable.
18400
18401 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
18402
18403         * object.c: some support to handle out of memory exceptions.
18404
18405 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
18406
18407         * marshal.c (mono_marshal_get_native_wrapper): support reference
18408         return types
18409
18410 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
18411
18412         * object.h, object.c: more portability stuff from Bernie Solomon.
18413         Unexport mono_object_allocate(). Added mono_object_unbox ().
18414         Set exitcode when an unhandled exception is thrown.
18415
18416 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
18417
18418         * marshal.c (mono_marshal_get_native_wrapper): use custom
18419         marshaler for return types.
18420
18421 2003-06-10  Dick Porter  <dick@ximian.com>
18422
18423         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
18424         ip_mreq is available
18425
18426 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
18427
18428         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
18429         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
18430         by Bernie Solomon <bernard@ugsolutions.com>.
18431
18432 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
18433
18434         * gc.c (mono_gc_init): Avoid error message on shutdown when
18435         GC_DONT_GC=1 is used.
18436
18437         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
18438         New icall to return the GUID of a module.
18439
18440 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
18441
18442         * class.c: ensure instance size always includes the parent's size
18443         even whem class size is set explicitly (fixes bug#44294).
18444
18445 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
18446
18447         * profiler.h, profiler.c: made the simple profiler thread-safe,
18448         get more accurate timing info. Allow the loading of an
18449         externally-developed profiler module.
18450
18451 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
18452
18453         * marshal.c (mono_marshal_get_native_wrapper): improved
18454         class/byref arguments.
18455         (mono_marshal_get_native_wrapper): better string marshaling support.
18456
18457 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
18458
18459         * class.c: ensure .pack and .size are handled correctly and
18460         simplified layout of static fields.
18461
18462 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
18463
18464         * appdomain.c
18465         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
18466
18467         * loader.c (mono_lookup_pinvoke_call): look for modules in the
18468         current directory (fix bug 44008)
18469
18470 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
18471
18472         * marshal.c (mono_marshal_get_native_wrapper): started support for
18473         custom marshalers.
18474         (mono_delegate_to_ftnptr): consider marshalling specifications
18475
18476 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
18477
18478         * reflection.c, reflection.h: emit custom marshal info.
18479
18480 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18481
18482         * object.c: free the GError.
18483         * icall.c: added CloseEvent_internal.
18484         * threads.[ch]:
18485         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
18486         call.
18487
18488 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
18489
18490         * loader.c (mono_method_get_signature): Add support for dynamic
18491         assemblies.
18492
18493 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
18494
18495         * reflection.c: fixed bug #43905.
18496
18497 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
18498
18499         * class.c, domain.c, icall.c, metadata.h, object.h: support for
18500         handling TypedReference and ArgIterator.
18501         * loader.c, loader.h: added function to get signature at call site.
18502
18503 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
18504
18505         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
18506         data readonly. Buglets and warning fixes. Some MethodSpec support.
18507
18508 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
18509
18510         * class.h, class.c, object.c: remove relative numbering support.
18511
18512 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
18513
18514         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
18515         free the string, until we get a chance to fix Gtk#
18516
18517 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18518
18519         * marshal.c: revert last patch.
18520
18521 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
18522
18523         * icall.c: updates for new mono_class_vtable() not calling
18524         the type constructor anymore.
18525
18526 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
18527
18528         * object.h, object.c: separate vtable creation from type
18529         initialization. Make running the .cctor thread safe.
18530
18531 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
18532
18533         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
18534
18535 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
18536
18537         * loader.c (mono_get_method): consider calling convention
18538
18539 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
18540
18541         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
18542         to return the invisible global type for a module.
18543
18544         * reflection.c (mono_image_build_metadata): Emit global fields too.
18545
18546 2003-05-20  Peter Williams  <peterw@ximian.com>
18547
18548         * loader.c (mono_lookup_internal_call): Add a few newlines.
18549
18550 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
18551
18552         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
18553         literal strings.
18554
18555         * appdomain.c (set_domain_search_path): Recalculate search path when
18556         AppDomainSetup.PrivateBinPath changes.
18557
18558         * object.c (mono_class_compute_gc_descriptor): It turns out some
18559         parts of the class libs (like System.Thread) holds pointers to
18560         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
18561         to treat native int a pointer type here.
18562         
18563 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
18564
18565         * appdomain.h, domain.c: add hashtable for jump target resolution.
18566
18567 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
18568
18569         * reflection.h reflection.c icall.c: Added new icalls 
18570         GetManifestResourceInfoInternal, GetModulesInternal and support
18571         infrastructure.
18572
18573 2003-05-16  Dick Porter  <dick@ximian.com>
18574
18575         * icall.c:
18576         * file-io.h:
18577         * file-io.c: Implement System.IO.MonoIO::GetTempPath
18578
18579 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
18580
18581         * object.c: mono_store_remote_field: little fix to previous patch.
18582
18583 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
18584
18585         * class.c: add constructors to array classes.
18586         * icall.c: special case array construction for InternalInvoke (),
18587
18588 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
18589
18590         * class.h class.c reflection.c object.c: Added support for field
18591         defaults in dynamically generated classes.
18592
18593 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
18594
18595         * reflection.c: properly encode charset for ddlimport.
18596
18597 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
18598
18599         * threads.c: allow compiling without GC.
18600
18601 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
18602
18603         * appdomain.h, object.c, object.h, threads.c, threads.h: added
18604         handling of thread static data.
18605
18606 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18607
18608         * reflection.h, reflection.c: added mono_custom_attrs_free ().
18609
18610 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
18611
18612         * class.c (mono_array_class_get): always set the serializable flags
18613         (mono_array_class_get): always set the SEALED attribute for array types
18614
18615 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
18616
18617         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
18618         attributes (fix for bug 42021).
18619
18620 2003-05-12  Dick Porter  <dick@ximian.com>
18621
18622         * gc.c: Don't run finalizers when the finalizer thread is
18623         finishing up, because the default domain has already been
18624         destroyed.
18625
18626 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
18627
18628         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
18629         value is null, we should throw an exception.   This is slightly
18630         different than the other conventions used for the constructor.
18631
18632 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18633
18634         * socket-io.c: fixed windows build.
18635
18636 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18637
18638         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
18639
18640 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
18641
18642         * object.c (mono_string_new_wrapper): Compatibility fix for MS
18643         compilers.
18644
18645 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
18646
18647         * class.c (mono_class_layout_fields): Add experimental GC aware
18648         auto layout facility. Requires class library changes to work correctly.
18649
18650         (mono_class_setup_vtable): Avoid overriding explicit interface
18651         method implementations. Fixes iface3.exe test.
18652
18653         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
18654         object reference.
18655         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
18656         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
18657
18658         * metadata.h: Add new type classification macro which determines
18659         whenever the type holds an object reference.
18660
18661 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
18662
18663         * marshal.c (mono_marshal_get_native_wrapper): cleanups
18664
18665 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
18666
18667         * gc.c (finalizer_thread): Work around a GC bug.
18668
18669 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
18670
18671         * marshal.c (emit_struct_conv): allow unions
18672
18673         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
18674
18675 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
18676
18677         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
18678
18679 2003-05-06  Martin Baulig  <martin@ximian.com>
18680
18681         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
18682
18683 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18684
18685         * socket-io.c:
18686         (Select_internal): allow NULLs, don't create arrays if not needed.
18687         Coupled with Socket.cs changes.
18688
18689         * threadpool.c:
18690         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
18691         register a finalizer for it that will close the semaphore handle. This
18692         fixes the leak and make Lupus' test run with > 4080 loops.
18693
18694 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
18695
18696         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
18697         Jerome Laban (bug #42287)
18698
18699 2003-05-02  Martin Baulig  <martin@ximian.com>
18700
18701         * debug-mono-symfile.h
18702         (MonoSymbolFile): Moved declaration into mono-debug.h.
18703         (MonoDebugMethodJitInfo): Likewise.
18704         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
18705         argument.
18706         (_mono_debug_address_from_il_offset): Take a
18707         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
18708
18709         * mono-debug.h
18710         (MonoDebugDomainData): New struct.
18711         (mono_debug_get_domain_data): New function.
18712         (mono_debug_add_method): Take an additional `MonoDomain *'
18713         argument.
18714         (mono_debug_source_location_from_address): Likewise.
18715         (mono_debug_il_offset_from_address): Likewise.
18716         (mono_debug_address_from_il_offset): Likewise.
18717
18718 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
18719
18720         * reflection.c: one more check for null type in custom attrs.
18721
18722 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18723
18724         * reflection.c: avoid warning (comparison is always false due to limited
18725         range of data type).
18726
18727 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18728
18729         * icall.c: throw an exception in Type.GetField if the argument 'name'
18730         is NULL.
18731
18732 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
18733
18734         * reflection.c: fixed handling of enums in named arguments to custom
18735         attributes (bug #42123).
18736
18737 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
18738
18739         * reflection.c: use the right array element type and handle
18740         a null for a Type argument, too.
18741
18742 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
18743
18744         * reflection.c: handle arrays as arguments to custom attributes.
18745
18746 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
18747
18748         * reflection.c: handle a string value in a custom attr
18749         ctor that takes an object.
18750
18751 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
18752
18753         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
18754         (fix bug #42063)
18755
18756 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
18757
18758         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
18759
18760 2003-04-27  Martin Baulig  <martin@ximian.com>
18761
18762         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
18763         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
18764         MONO_DEBUGGER_EVENT_BREAKPOINT.
18765         (mono_breakpoint_trampoline_code): Removed.
18766         (mono_debugger_event_handler): The last argument is now a
18767         `guint32'.
18768         (mono_debugger_insert_breakpoint_full): Removed the
18769         `use_trampoline' argument.
18770         (mono_debugger_method_has_breakpoint): Likewise.
18771         (mono_debugger_trampoline_breakpoint_callback): Renamed to
18772         mono_debugger_breakpoint_callback(); take the method and
18773         breakpoint number as arguments.
18774
18775 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
18776
18777         * metadata.c: fix off by one when loading parameters attributes.
18778
18779 2003-04-24  Martin Baulig  <martin@ximian.com>
18780
18781         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
18782
18783 2003-04-24  Martin Baulig  <martin@ximian.com>
18784
18785         * mono-debug-debugger.c: Moved all code which interacts with the
18786         Mono Debugger here.
18787
18788         * debug-mono-symfile.c: This code now just deals with the symbol
18789         file itself, the debugger code is now in mono-debug-debugger.c.
18790
18791 2003-04-23  Martin Baulig  <martin@ximian.com>
18792
18793         * mono-debug.c (mono_debug_source_location_from_il_offset):
18794         New method; like mono_debug_source_location_from_address(), but
18795         takes an IL offset instead of a machine address.
18796
18797 2003-04-23  Martin Baulig  <martin@ximian.com>
18798
18799         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
18800         `line' field; this is now computed by the debugger.
18801
18802 2003-04-23  Martin Baulig  <martin@ximian.com>
18803
18804         * mono-debug.[ch]: New files.  This is the new debugging interface.
18805
18806         * mono-debug-debugger.[ch]: New files.  Moved all code which
18807         interacts with the Mono Debugger here.
18808
18809 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
18810
18811         * domain.c (mono_init): initialize mono_defaults.monitor_class
18812
18813 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
18814
18815         * reflection.c (method_encode_code): Add a spicy exception to help
18816         future compiler authors.
18817
18818 2003-04-21  Martin Baulig  <martin@ximian.com>
18819
18820         * icall.c
18821         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18822         Make this work with relative pathnames; g_filename_to_uri() needs
18823         an absolute filename.
18824
18825 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
18826
18827         * icall.c: Track name changes in Object and ValueType.
18828
18829 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
18830
18831         * metadata.c (mono_type_stack_size): size should be a multiple of
18832         sizeof (gpointer)
18833
18834 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18835
18836         * gc.c:
18837         (internal_domain_finalize): moved into mono_domain_finalize. No need
18838         to create another thread because the finalizers will be run in the
18839         finalizer thread.
18840         
18841         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
18842         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
18843         to be run (MS does this too).
18844
18845 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
18846
18847         * object.c (mono_class_compute_gc_descriptor): Update comment.
18848
18849         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
18850
18851         * image.h: Add synchronized wrapper cache.
18852
18853         * image.c (do_mono_image_open): Initialize cache.
18854
18855         * reflection.c (create_dynamic_mono_image): Initialize cache.
18856
18857 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18858
18859         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
18860         ves_icall_System_Buffer_ByteLengthInternal.
18861
18862 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
18863
18864         * reflection.c: setup klass->nested_in earlier. Allow
18865         a dash in the assembly name.
18866
18867 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
18868
18869         * metadata.c (mono_type_to_unmanaged): dont access
18870         type->data.klass for MONO_TYPE_OBJECT
18871         (mono_type_to_unmanaged): consider System.Delegate class
18872
18873 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
18874
18875         * class.c: just setup supertypes in the proper place instead of
18876         initializing the full element class for arrays.
18877
18878 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
18879
18880         * class.c: ensure the element class of arrays is initialized.
18881         Setup the supertype info for array classes, too.
18882
18883 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
18884
18885         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
18886
18887 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18888
18889         * Makefile.am: re-added -m option when running cygpath. This way,
18890         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
18891         separator.
18892         * mono-config.c: same codepath for locating mono config file for WIN32
18893         and the rest.
18894         * assembly.c: if mono_assembly_setrootdir is called, don't override
18895         the value set.
18896
18897 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18898
18899         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
18900         MONO_ASSEMBLIES variable.
18901
18902 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
18903
18904         * icall.c: added Assembly::GetNamespaces() icall.
18905
18906 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18907
18908         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
18909
18910 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
18911
18912         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
18913         * object.c: fixed bug in the construction of vtable for proxies
18914
18915 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
18916
18917         * object.c (mono_array_new): Mark mono_array_new as an icall.
18918
18919 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18920
18921         * class.c: fixed test for public method when overriding interfaces.
18922         Closes bug #40970.
18923
18924 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
18925
18926         * appdomain.h, domain.c: added mono_domain_foreach() to
18927         be able to access the currently loaded appdomains.
18928         * object.c: make string interning work across sppdomains.
18929         Mark some functions for use as icalls.
18930
18931 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
18932
18933         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
18934
18935         * reflection.h reflection.c: Allocate long living data using 
18936         GC_MALLOC_ATOMIC so the collector does not need to scan it.
18937
18938         * reflection.c: Double the allocation size in streams instead of
18939         increasing it, to prevent unneccesary copying on large assemblies.
18940         
18941         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
18942         creation if the assembly does not have the Run flag set.
18943
18944 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
18945
18946         * class.h: avoid the C++ keywords in header files (Jerome Laban
18947         spotted and fixed this).
18948
18949 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18950
18951         * object.c:
18952         (mono_unhandled_exception): fill in the arguments for the
18953         UnhandledException event. Only trigger that event for the default
18954         domain (as MS does).
18955
18956 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
18957
18958         * object.c: Improve typed allocation stuff based on suggestions from
18959         Paolo. Also turn it on if the GC library supports it.
18960
18961 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
18962
18963         * object.c object.h class.h: Added experimental typed allocation
18964         facility using the interfaces in gc_gcj.h.
18965
18966         * os/gc_wrapper.h: Added new include files.
18967         
18968 2003-04-03  Martin Baulig  <martin@ximian.com>
18969
18970         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
18971         which is not yet enabled by default.
18972
18973         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
18974         functions.
18975         (mono_gc_lock, mono_gc_unlock): New static functions.
18976
18977         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
18978         functions; stop/start the world for the garbage collector.  This
18979         is using the windows API; we need to complete the SuspendThread()/
18980         ResumeThread() implementation in the io-layer to make this work on Unix.
18981         (mono_gc_push_all_stacks): New public function; tells the garbage
18982         collector about the stack pointers from all managed threads.
18983
18984 2003-04-03  Martin Baulig  <martin@ximian.com>
18985
18986         * object.h (MonoThread): Added `gpointer stack_ptr'.
18987
18988         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
18989
18990 2003-04-03  Martin Baulig  <martin@ximian.com>
18991
18992         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
18993
18994 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
18995
18996         * reflection.c (typebuilder_setup_fields): Initialize field.first and
18997         field.last.
18998
18999 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
19000
19001         * loader.c (mono_lookup_internal_call): Report the corlib that is
19002         out of sync.
19003
19004 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
19005
19006         * icall.c (ves_icall_type_GetTypeCode): fixed check for
19007         System.DBNull (it's class not valuetype).
19008
19009 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
19010
19011         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
19012         if the array method was already assigned a token (fixes bug#40646).
19013
19014 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
19015
19016         * reflection.c (mono_reflection_get_type): Attempt type resolve even
19017         if no assembly is given.
19018
19019 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
19020
19021         * metadata.h: Added the new tables.
19022
19023         * row-indexes.h: Added definitions for new tables.
19024
19025         * metadata.c: Add schemas for new tables, and add support for
19026         computing the sizes of them.
19027
19028         * class.c: Update for handling the new type cases.
19029
19030 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
19031
19032         * metadata.h (MONO_TYPE_IS_VOID): new macro
19033
19034 2003-03-31  Martin Baulig  <martin@ximian.com>
19035
19036         * threads.h (MonoThreadCallbacks): Added `thread_created'.
19037
19038         * threads.c (mono_thread_new_init): Call `thread_created' in the
19039         mono_thread_callbacks.
19040
19041 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
19042
19043         * loader.h: added marshalbyrefobject_class to mono_defaults
19044         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
19045         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
19046           generation of output parameters.
19047           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
19048         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
19049           contextbound and the target object belongs to the context of the caller.
19050         * object.h: added context and unwrapped_server variables in MonoRealProxy.
19051         * object.c: Implemented support for interfaces and abstract classes
19052           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
19053           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
19054
19055 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
19056
19057         * class.h class.c (mono_class_is_subclass_of): New function.
19058         
19059         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
19060         routines for most common case (calls from ArrayList::ToArray).
19061
19062         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
19063         routine so programs which call Environment::Exit() can be profiled.
19064
19065         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
19066         Added MONO_ARCH_SAVE_REGS.
19067
19068         * icall.c (ves_icall_type_is_subtype_of): Use new function.
19069
19070 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
19071
19072         * blob.h: Add a couple of new MonoType types definitions.
19073
19074         * tabledefs.h: Add a couple of new call convs.
19075
19076 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
19077
19078         * reflection.h (MonoReflectionDynamicAssembly): track changes in
19079         the layout of the class.
19080
19081         * reflection.c (alloc_table): double the size on overflow to avoid
19082         unnecessary copying.
19083
19084         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
19085         avoid filling out metadata tables and blobs. Also set mb->ilgen to
19086         null so it can be garbage collected.
19087         
19088 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
19089
19090         * reflection.c (mono_reflection_get_type): Return the resolved type
19091         only if it is in the assembly we searched.
19092
19093         * reflection.c (ensure_runtime_vtable): Initialize method slots.
19094
19095         * class.c (mono_class_setup_vtable): Set the slot of the overriding
19096         method.
19097
19098 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19099
19100         * appdomain.c:
19101         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
19102         the right one is 'file:///blah', but MS allows it.
19103         * assembly.c:
19104         (mono_assembly_open): allow 'file://blah'
19105
19106         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
19107
19108 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
19109
19110         * socket-io.c: fixes bug #40310.
19111
19112 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
19113
19114         * reflection.c (mono_reflection_parse_type): handle deeply nested
19115         types correctly.
19116
19117         * reflection.c (mono_image_create_token): Use unique token values
19118         since they will be put into a hash table.
19119
19120         * class.c (mono_class_setup_vtable): If a method occurs in more than
19121         one place in the vtable, and it gets overriden, then change the
19122         other occurances too.
19123
19124         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
19125         object as return type.
19126
19127 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
19128
19129         * icall.c: Deleted "ToString" implementation for double and float
19130         because they are full implemented in managed code.
19131
19132 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
19133
19134         * reflection.c, reflection.h: implemented and exported functions
19135         to retrieve info about custom attributes.
19136
19137 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19138
19139         * appdomain.c: moved Uri handling to assembly.c
19140         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
19141         work when using a file Uri in *nix and windows.
19142
19143         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
19144         GetReferencedAssemblies.
19145
19146 2003-03-18  Dick Porter  <dick@ximian.com>
19147
19148         * icall.c: Rename a couple of internal calls
19149
19150         * threads.c: Set the thread state to Stopped when a thread exits.
19151         Fixes bug 39377.
19152
19153 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
19154
19155         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
19156         New icall.
19157
19158         * object.c (mono_class_vtable): fix warning.
19159
19160 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
19161
19162         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
19163
19164         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
19165         memory.
19166         (method_encode_clauses): Create exception info structures in the right
19167         order.
19168         (mono_reflection_setup_internal_class): Initialize supertypes field.
19169
19170         * class.c object.c: Handle interfaces which implement other interfaces 
19171         correctly.
19172
19173         * class.h class.c: Move the supertypes array initialization code into 
19174         a separate function so it can be used for dynamic types too. Also call
19175         it earlier, in mono_class_init(), since it can be used before the
19176         type is initialized.
19177
19178 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19179
19180         * Makefile.am:
19181         * assembly.c:
19182         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
19183
19184         * appdomain.c:
19185         * appdomain.h:
19186         * marshal.c:
19187         * object.c: remove warnings.
19188
19189 2003-03-13  Martin Baulig  <martin@ximian.com>
19190
19191         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
19192         (MonoDebugLexicalBlockEntry): New types.
19193
19194         * debug-mono-symfile.c
19195         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
19196
19197 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19198
19199         * process.c: ret can be any non-zero value accroding to MS doc.
19200
19201 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
19202
19203         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
19204         fixing a warning for a miss-used prototype, would have cause
19205         random memory corruption.
19206
19207 2003-03-07  Martin Baulig  <martin@ximian.com>
19208
19209         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
19210         getting really annoying ....
19211
19212 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
19213
19214         * reflection.c (fixup_method): added support for array methods.
19215
19216 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
19217
19218         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
19219         (pointed out by Michael Adams).
19220
19221 2003-03-04  Dick Porter  <dick@ximian.com>
19222
19223         * icall.c: Temporarily reverted the Double and Single ToString()
19224         change, because it broke nunit.
19225
19226 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
19227
19228         * object.h, threads.h: make include files compatible with C++
19229         (patch by Jerome Laban <jlaban@wanadoo.fr>).
19230
19231 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
19232
19233         * icall.c: Erased ToString helper functions for Double and Single.
19234         Now, that implementations ar all in managed code (Double and Single
19235         Formatters).
19236
19237 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
19238
19239         * appdomain.c: Added method for initializing the default context of
19240         a domain. Added internal call for getting the default context.
19241         * appdomain.h: Added context variable in MonoDomain struct.
19242         * domain.c: mono_domain_set also sets the default context of the domain
19243         * icall.c: Mapped internal method InternalGetDefaultContext.
19244         * object.c: mono_object_get_virtual_method returns always a remoting
19245         wrapper if the object is a transparent proxy.
19246         mono_runtime_invoke_array: when creating an object by calling the
19247         constructor, if the created object is a proxy, then the constructor should
19248         be called using the a remoting wrapper.
19249
19250 2003-03-03  Dick Porter  <dick@ximian.com>
19251
19252         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
19253         variable so it compiles on solaris.  Problem spotted by
19254         Christopher Taylor <ct@cs.clemson.edu>
19255
19256 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19257
19258         * appdomain.c:
19259         (get_info_from_assembly_name): don't leak value.
19260
19261         * icall.c:
19262         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
19263         result.
19264
19265 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
19266
19267         * assembly.c: export mono_image_load_references ().
19268         * class.c: handle function pointers. mono_class_from_name() now
19269         supports nested type names directly.
19270
19271 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
19272
19273         * reflection.h reflection.c: Encode already created dynamic methods 
19274         and fields correctly as a DEF instead of a REF.
19275
19276         * reflection.c: Get rid of the force_ref argument to 
19277         mono_image_typedef_or_ref since it was wrong in the first place.
19278
19279         * string-icalls.c: add error checking to string constructors according
19280         to the MSDN docs.
19281
19282         * reflection.c: Emit types in the order their TypeBuilders were 
19283         created. Previously, a new table index was assigned to each type before
19284         the tables were emitted. This was wrong because the signature blob
19285         might already refer to a type by its original table index.
19286
19287 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
19288
19289         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
19290         change.
19291         
19292 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19293
19294         * Makefile.am: make assemblies dir have \ instead of / on windows.
19295
19296 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
19297
19298         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
19299         iterate over the NESTEDCLASS table using a linear search since the
19300         table is not guaranteed to be sorted by the secondary key.
19301
19302         * class.c (mono_class_create_from_typedef): fixed up call to
19303         mono_metadata_nesting_typedef.
19304         
19305 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
19306
19307         * marshal.c (mono_string_to_byvalstr): clear the memory as
19308         suggested by Jerome Laban <jlaban@wanadoo.fr>
19309
19310 2003-02-26  Dick Porter  <dick@ximian.com>
19311
19312         * process.c: Cope with padding in .rsrc blocks
19313
19314 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
19315
19316         * metadata.h: reverted the filter_len change, it breaks reflection
19317         
19318 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
19319
19320         * metadata.h: added a new field to store the filter_len
19321         
19322
19323 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
19324
19325         * reflection.c: handle custom attributes for types and members
19326         created with Reflection.Emit (bug#38422).
19327
19328 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
19329
19330         * reflection.c: define RTSpecialName automatically for constructors for
19331         compatibility with MS.NET.
19332
19333         * reflection.c (mono_reflection_create_runtime_class): initialize
19334         nested_in field of dynamically created classes.
19335
19336 2003-02-22  Martin Baulig  <martin@ximian.com>
19337
19338         * debug-mono-symfile.h: Incremented version number.
19339
19340 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
19341
19342         * object.h icall.c process.c: fix warnings.
19343
19344 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
19345
19346         * appdomain.h appdomain.c:
19347         (mono_domain_try_type_resolve): split the 
19348         name_or_tb argument into a name and a tb argument.
19349         (mono_domain_has_type_resolve): new function to check whenever the
19350         application has registered a TypeResolve event handler.
19351         
19352         * icall.c reflection.h reflection.c: move the type resolve logic into
19353         mono_reflection_get_type () so it will be invoked when 
19354         Assembly::GetType () is called.
19355
19356         * reflection.c:
19357         (mono_reflection_get_type): renamed to get_type_internal.
19358         (mono_reflection_get_type): fixed type name generation so it works 
19359         for nested types too.
19360         (mono_reflection_get_type): call has_type_resolve () to avoid the 
19361         costly type name generation if there is no resolve event handler.
19362
19363 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
19364
19365         * class.c, image.c: load exported types from file references.
19366
19367 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
19368
19369         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
19370           used to cache the managed methods used to create proxies and make 
19371           remote invocation of methods.
19372         * class.h: Added in MonoVTable a flag to indicate that a class needs 
19373           to be remotely created.
19374         * object.c: Modified the method mono_class_vtable(). It now initializes 
19375           the remote flag of the vtable. Modified mono_object_new_specific(), 
19376           so now it checks the remote flag.
19377         * icall.c: Added a couple of internal methods, one for enabling instance 
19378           creation interception for a type, and one for creating objects bypassing
19379           the remote check.
19380
19381 2003-02-18  Martin Baulig  <martin@ximian.com>
19382
19383         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
19384         New interncall to get a method's metadata token.
19385
19386         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
19387         New interncall for the debugger.
19388
19389 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
19390
19391         * class.c (mono_class_setup_vtable): allocate supertype array
19392
19393 2003-02-18  Martin Baulig  <martin@ximian.com>
19394
19395         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
19396
19397 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19398
19399         * reflection.c:
19400         (assembly_name_to_aname): jump over unknown properties (i've found
19401         something like: 'type, assembly, version=xxx, custom=null, public...',
19402         so now will ignore custom=null and still get the rest of the values).
19403
19404 2003-02-17  Dick Porter  <dick@ximian.com>
19405
19406         * threads.c: Have Thread.Start() wait for a semaphore to signal
19407         that the thread has set up all its local data.  This fixes bug
19408         34323, where Abort() raced the new thread's TLS data.
19409
19410         Also removes the handle_store() call from start_wrapper, because
19411         threads are now always created suspended and there is no longer a
19412         race between the parent and child threads to store the info.
19413
19414 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
19415
19416         * image.c: explain the #- heap issue in a message, hopefully
19417         avoiding FAQs on mono-list.
19418
19419 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19420
19421         * icall.c:
19422         (GetEntryAssembly): if the domain has not invoked
19423         AppDomain.ExecuteAssembly yet, return the assembly of the default
19424         AppDomain.
19425
19426 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
19427
19428         * class.c (mono_ldtoken): make it work in dynamic assemblies.
19429
19430 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
19431
19432         * metadata.c, reflection.c: simple speedup to type hash
19433         and equals code.
19434
19435 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
19436
19437         * image.c, image.h, class.c, assembly.c: move module loading
19438         to MonoImage. When loading metadata, consider alignemnet from
19439         the start of metadata, not from the metadata address in memory.
19440
19441 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
19442
19443         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
19444         AssemblyBuilder objects. Factored out custom attribute creation into
19445         a separate function.
19446         (create_custom_attr): new function to create custom attributes.
19447
19448 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
19449
19450         * Makefile.am: Got tired of typing the full pathname to pedump.
19451         Until there is another option, am installing this.
19452
19453 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
19454
19455         * class.c (class_compute_field_layout): always set field->parent 
19456         (mono_ldtoken): use mono_defaults.fieldhandle_class;
19457
19458 2003-02-11  Dick Porter  <dick@ximian.com>
19459
19460         * threads-types.h:
19461         * monitor.c: Rewrote Monitor, making lock much faster and
19462         Pulse/Wait work as specified.  Also uses much fewer handles, and only
19463         creates them as needed.
19464
19465         * exception.c: Added SynchronizationLockException
19466
19467         * threads.c: Deleted old Monitor implementation.  The new one is
19468         in a new file.
19469
19470 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
19471
19472         * class.c: handled TypedReference type code. Set the correct size for
19473         class data. Setup interface_offsets for interface classes, too.
19474
19475 2003-02-09  Martin Baulig  <martin@ximian.com>
19476
19477         * debug-mono-symfile.h: Reflect latest symbol writer changes.
19478
19479 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
19480
19481         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
19482         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
19483         * object.c: fixed mono_object_get_virtual_method () for interfaces.
19484         * verify.c: check for code that runs after the end of the method.
19485
19486 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
19487
19488         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
19489         "System.Math::Round2".
19490         * sysmath.h: Added Floor, Round and Round2 definitions.
19491         * sysmath.c: Modified certain functions that were not 100% compliant
19492         with MS.NET (math precision) and added the implementation of Floor,
19493         Round and Round2.
19494
19495 2003-02-07  Martin Baulig  <martin@ximian.com>
19496
19497         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
19498
19499 2003-02-07  Martin Baulig  <martin@ximian.com>
19500
19501         * debug-mono-symfile.c: Reflected latest symwriter changes.
19502         (mono_debug_create_mono_symbol_file): Removed.
19503         (mono_debug_open_mono_symbol_file): Take an argument which
19504         specifies whether to create a dynamic symbol file.
19505
19506 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
19507
19508         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
19509
19510 2003-02-05  Martin Baulig  <martin@ximian.com>
19511
19512         * reflection.c (mono_image_build_metadata): Make this public,
19513         protect it against being called multiple times, don't create
19514         resources and don't build the compressed metadata here.
19515         (mono_image_create_pefile): Do this here.
19516
19517         * icall.c
19518         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
19519
19520 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19521
19522         * socket-io.c: fixed bug #36322.
19523
19524 2003-02-06  Piers Haken <piersh@friskit.com>
19525
19526         * appdomain.[ch]:
19527         * class.h:
19528         * debug-mono-symfile.c:
19529         * icall.c:
19530         * loader.c:
19531         * mono-config.c:
19532         * monosn.c:
19533         * reflection.c:
19534         * socket-io.c: warning cleanups
19535
19536 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
19537
19538         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
19539         function. works like remoting invoke, but does a check for the Proxy first.
19540
19541 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
19542
19543         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
19544
19545 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
19546
19547         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
19548         array of pointers.
19549         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
19550         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
19551
19552         * object.c (mono_store_remote_field_new): used by the new jit
19553         instead of mono_store_remote_field
19554         (mono_load_remote_field_new): used by the new jit
19555         instead of mono_load_remote_field
19556
19557 2003-02-05  Patrik Torstensson
19558
19559         * appdomain.c: changed unload to take the domain id instead
19560         of domain
19561         
19562         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
19563
19564
19565 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19566
19567         * appdomain.c: don't look for assemblies in ApplicationBase if
19568         PrivateBinPathProbe is set.
19569
19570 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19571
19572         * object.c: make the first argument in main_args contain the absolute
19573         path to the assembly. Fixes bug #37511.
19574
19575 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19576
19577         * icall.c: get correct UTC offset for countries not using daylight
19578         time saving. Fixes bug #30030.
19579
19580 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19581
19582         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
19583         and 1 are the family).
19584
19585 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
19586
19587         * icall.c (ves_icall_InternalExecute): removed wrong assertion
19588
19589         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
19590
19591 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
19592
19593         * reflection.c: added support for SignatureHelper tokens, which is
19594         needed by the Calli opcode.
19595
19596         * reflection.h: track changes to SignatureHelper class.
19597
19598         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
19599
19600 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19601
19602         * appdomain.c: fixed loading assemblies from PrivateBinPath.
19603
19604 2003-02-03  Patrik Torstensson
19605         * appdomain.[c|h], domain.c : 
19606          - Added support for getting a domain via domain id
19607          - Support for setting and getting domain from System.AppDomain 
19608            (used in cross appdomain channel)
19609          - Added support for get/set for a MonoAppContext on a thread 
19610            (Context class in System.Runtime.Remoting.Contexts),
19611          - Removed hack in Get/SetData and ExecuteAssembly.
19612         
19613         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
19614         the managed world to get control when a proxy is created.
19615
19616         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
19617         
19618 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
19619
19620         * icall.c
19621         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
19622         Populate the codebase field as well.
19623
19624 2003-02-02  Martin Baulig  <martin@ximian.com>
19625
19626         * debug-mono-symfile.c
19627         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
19628         (mono_debug_symfile_add_method): Allow interncalls.
19629
19630 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19631
19632         * icall.c: throw parse exception if strtod fails or the string is empty.
19633
19634 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
19635
19636         * marshal.c: handle object type separately from defined
19637         class types.
19638
19639 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
19640
19641         * marshal.c: handle NATIVE_LPSTR for strings when it's
19642         explicitly specified.
19643
19644 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
19645
19646         * reflection.c, reflection.h, icall.c: setup the reflection
19647         handle cache for ModuleBuilders and AssemblyBuilders.
19648
19649 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
19650
19651         * reflection.c (reflection_methodbuilder_to_mono_method): set
19652         pinvoke flag
19653
19654 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19655
19656         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
19657
19658 2003-01-29  Dick Porter  <dick@ximian.com>
19659
19660         * threads.c: No need for the fake_thread kludge now that Thread
19661         doesn't run a class constructor
19662         
19663 2003-01-29  Dick Porter  <dick@ximian.com>
19664
19665         * threads.c: Use g_direct_hash instead of the rather bogus
19666         g_int_hash
19667
19668 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
19669
19670         * marshal.c (mono_marshal_get_native_wrapper): add check for null
19671         (fix pinvoke12.exe)
19672         (mono_marshal_get_struct_to_ptr): generate valid IL code
19673         (mono_marshal_get_ptr_to_struct): generate valid IL code
19674         (*): correctly set sig->pinvoke, we need to memdup the signature
19675         to do that
19676
19677 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
19678
19679         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
19680         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
19681
19682 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
19683
19684         * profiler.c: provide more callers information.
19685
19686 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
19687
19688         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
19689
19690         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
19691
19692         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
19693
19694 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19695
19696         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
19697         exception instead of going into an infinite loop on dates which it 
19698         can't yet handle.
19699
19700         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
19701         out-of-range exception if needed.
19702
19703         * class.c (mono_class_setup_vtable): allow a virtual method to provide
19704         an implementation for an interface method and to override an inherited
19705         method at the same time. 
19706         Imagine a scenario when a virtual method is used to override a
19707         virtual abstract method in a parent class, and this same method 
19708         provides an implementation for an method inherited from an interface. 
19709         In this case, the interface resolution code will set im->slot, which 
19710         means that the virtual method override pass will skip this method 
19711         which means a pointer to the abstract method inherited from the parent
19712         will remain in the vtable of this non-abstract class.
19713
19714         * class.c: (mono_class_setup_vtable): continue search for a real 
19715         method if only an abstract method is found.     
19716
19717 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
19718
19719         * reflection.c: add size to encoding for ByValStr and ByValArray
19720         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
19721
19722 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19723
19724         * class.c (mono_class_setup_vtable): pass the override info as an
19725         argument.
19726
19727         * class.c (mono_class_setup_vtable): set the slot of overriding methods
19728         correctly.
19729         
19730         * reflection.c (ensure_runtime_vtable); add support for method 
19731         overrides.
19732         
19733 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19734
19735         * reflection.c (resolution_scope_from_image): Hack to work to work with
19736         dynamic assemblies.
19737
19738         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
19739         added a 'force_ref' argument to force this function to allways return 
19740         a TypeRef. This is needed by mono_image_get_memberref_token ().
19741         
19742 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19743
19744         * reflection.c (mono_image_get_type_info): interfaces really don't have
19745         a parent.
19746
19747         * reflection.c (mono_image_basic_init): fill out missing fields of
19748         image structure.
19749
19750         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
19751         dynamic assemblies. This is required so dynamic assemblies show up in
19752         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
19753         Type::GetType() etc. This is consistent with MS behaviour.
19754
19755         * image.c image.h reflection.c: add newly created classes to the name 
19756         cache so mono_class_get () will find them.      
19757
19758 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19759
19760         First part of changes to get IKVM.NET running under mono.
19761         
19762         * appdomain.h, appdomain.c: added new function 
19763         mono_domain_try_type_resolve() which will emit TypeResolve events. 
19764         This function will call AppDomain::DoTypeResolve to do the actual work.
19765
19766         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
19767         moved existing code dealing with dynamic tokens to a new function 
19768         called mono_reflection_lookup_dynamic_token (). This function will 
19769         raise TypeResolve events when appropriate. Since reflection.c is not 
19770         part of libmetadata, a new hook function called 
19771         mono_lookup_dynamic_token() is added to class.c which will call this.
19772
19773         * assembly.h assembly.c: make the invoke_load_hook function public,
19774         so it can be called for dynamic assemblies.
19775
19776         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
19777
19778         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
19779         type isn't found.
19780
19781         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
19782         MonoGHashTable, since it contains pointers to objects which the GC 
19783         needs to track.
19784
19785         * assembly.c (search_loaded): remove unused variable.
19786         
19787 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
19788
19789         * object.c: fixed issue exposed by gcc-generated IL programs
19790         that use RVA data for pointers.
19791
19792 2003-01-25  Martin Baulig  <martin@ximian.com>
19793
19794         * threads.c (start_wrapper): Moved the initialization of
19795         `start_func' above the mono_new_thread_init() call to which we
19796         pass it as argument.
19797
19798 2003-01-24  Martin Baulig  <martin@ximian.com>
19799
19800         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
19801         the MonoThread pointer.
19802
19803 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
19804
19805         * icall.c: Rename `PowImpl' to Pow.
19806
19807 2003-01-23  Dick Porter  <dick@ximian.com>
19808
19809         * threads.c (start_wrapper): Create a Thread object if needed, so
19810         the Main() thread can do the class initialisation in a subthread
19811         that has been set up to allow managed code execution.
19812
19813         Pass the thread ID instead of the MonoThread pointer to the thread
19814         start and attach callbacks.  This change is required, because the
19815         jit thread start callback must be called _before_ the Thread
19816         object can be created.
19817         
19818         (mono_thread_init): Removed much object creation code that is no
19819         longer needed.  No managed code is called from here now.
19820
19821         * object.c (mono_runtime_exec_managed_code): Create a subthread
19822         for Main, and call back to the runtime to use it.
19823         Set the exit code when Main exits.
19824
19825         * gc.c: Make sure domain finalisation happens in a subthread.
19826         Re-enable threaded GC, fixing bug 31333 (again).
19827
19828         * environment.c: System.Environment internall calls (so far just
19829         ExitCode is here, the others are still in icall.c)
19830
19831         * appdomain.c (mono_runtime_cleanup): All threads running managed
19832         code should have finished before mono_runtime_cleanup() is
19833         reached, so no need to clean up threads.
19834
19835 2003-01-22  Martin Baulig  <martin@ximian.com>
19836
19837         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
19838         `gpointer func' arguments.      
19839         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
19840         but added `MonoThread *thread' argument.
19841         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
19842
19843         * threads.c (mono_new_thread_init): Added `gpointer func' argument
19844         and pass it to the mono_thread_start_cb callback.
19845         (mono_install_thread_callbacks): New public function to install a
19846         set of callbacks which are set by the debugger.
19847         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
19848
19849 2003-01-22  Martin Baulig  <martin@ximian.com>
19850
19851         * Makefile.am: Install debug-mono-symfile.h.
19852
19853 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
19854
19855         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
19856
19857 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
19858
19859         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
19860         * class.c (mono_ptr_class_get): correctly set access levels of pointers
19861         (mono_array_class_get): correctly set access levels of arrays
19862
19863 2003-01-20      Patrik Torstensson
19864         * image.h (MonoAssemblyName): changed major, minor, build, revision
19865         from signed to unsigned.
19866
19867 2003-01-20  sean kasun <skasun@azstarnet.com>
19868
19869         * reflection.c (load_cattr_value): Now this handles
19870         MONO_TYPE_SZARRAY.  Fixes bug #35629
19871
19872 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
19873
19874         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
19875         integer value
19876
19877 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19878
19879         * decimal.c: fixed bug #26056.
19880
19881 2003-01-17  Martin Baulig  <martin@ximian.com>
19882
19883         * gc.c: Raise an ExecutionEngineException instead of using g_error().
19884
19885 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19886
19887         * exception.[ch]:
19888         (mono_get_exception_type_initialization): new function.
19889
19890         * object.c: throw a TypeInitializationException when an exception is
19891         thrown invoking the class constructor.
19892
19893 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19894
19895         * reflection.c: fixed attribute reading.
19896
19897 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19898
19899         * icall.c:
19900         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
19901         provided, look for the type in the calling assembly and then in
19902         mscorlib; if the assembly name is provided, only try that one.
19903
19904 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
19905
19906         * object.c: register the vtable before there is a chance it's
19907         queried again recursively.
19908
19909 2003-01-13  Duncan Mak  <duncan@ximian.com>
19910
19911         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
19912         gc-internal.h. 
19913         
19914 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
19915
19916         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
19917
19918 2003-01-11  Martin Baulig  <martin@ximian.com>
19919
19920         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
19921         this to 20 for the release.
19922
19923 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
19924
19925         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
19926
19927         * loader.c (mono_method_get_marshal_info): bug fix
19928
19929         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
19930         structures with explicit layout
19931
19932 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
19933
19934         * profiler.c: made the output more readable (and sorted). 
19935         Added caller information for the allocation profiler.
19936
19937 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
19938
19939         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
19940
19941 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19942
19943         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
19944         to get value types.
19945         
19946 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
19947
19948         * object.c, profiler.h, profiler.c, profiler-private.h:
19949         Added object allocation profiler.
19950
19951 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
19952
19953         * reflection.h, reflection.c: handle global methods.
19954         Compress blob entries.
19955
19956 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
19957
19958         * marshal.c: fix compilation.
19959
19960 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
19961
19962         * loader.c (mono_method_get_marshal_info): impl.
19963
19964         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
19965
19966 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19967
19968         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
19969         for reference types.
19970
19971 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
19972
19973         * loader.c: fixed off by one error in loaded parameter names.
19974
19975 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
19976
19977         * marshal.c (mono_marshal_get_icall_wrapper): like
19978         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
19979         instead of a MonoMethod.
19980
19981 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19982
19983         * decimal.c: fixed bug #36537.
19984
19985 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
19986
19987         * marshal.c: throw a missing method exception if a
19988         P/Invoke method is not found.
19989
19990 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
19991
19992         * icall.c: allow a null this for constructors.
19993
19994 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
19995
19996         * icall.c: raise the proper exceptions if the arguments to the
19997         internal Invoke are incorrect.
19998
19999 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
20000
20001         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
20002
20003 2003-01-03  Martin Baulig  <martin@ximian.com>
20004
20005         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20006
20007 2002-12-31  Martin Baulig  <martin@ximian.com>
20008
20009         * debug-mono-symfile.c: Completely rewrote the type section.
20010         Instead of using individual malloc()ed fields, we use one big
20011         continuous memory area and offsets into this area.
20012         See the comments in the source code for details.
20013
20014 2002-12-30  Martin Baulig  <martin@ximian.com>
20015
20016         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
20017
20018 2002-12-30  Martin Baulig  <martin@ximian.com>
20019
20020         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
20021         line number table in this data blob instead of using an external
20022         pointer.
20023
20024 2002-12-28  Martin Baulig  <martin@ximian.com>
20025
20026         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
20027
20028 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
20029
20030         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
20031         as a boxed return type.
20032
20033 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
20034
20035         * appdomain.c
20036         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
20037         g_build_filename to properly get separators on the filename created.
20038
20039         * object.h: Small change, introduce MonoMarshalByRefObject to
20040         track the layout of that structure in the C# universe as we make
20041         changes there.
20042
20043 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
20044
20045         * object.c: removed assert to allow static fields on interfaces.
20046         * loader.c: a TypeSpec may be used for any type, not just arrays.
20047
20048 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20049
20050         * class.c, class.h: added mono_class_array_element_size ().
20051         Ignore static methods in interfaces.
20052
20053 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20054
20055         * threads.c: fixed the build under cygwin.
20056
20057 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
20058
20059         * reflection.c: handle nullref constants. Allocate keys for
20060         reflection handles with the GC.
20061
20062 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20063
20064         * threads.c, threads.h: added mono_thread_get_abort_signal()
20065         to get a suitable signal for thread abort.
20066
20067 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20068
20069         * metadata.c: fix handling of ExportedType table.
20070
20071 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20072
20073         * icall.c: added WriteWindowsDebugString internal call.
20074
20075 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20076
20077         * reflection.h: added fields to match C# implementation.
20078
20079 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20080
20081         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
20082
20083 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
20084
20085         * gc.h, gc-internal.h: Rename header for GC internal calls to
20086         gc-internal.h from gc.h as to not clash with Boehm GC having its
20087         header installed as <gc.h> in outside include paths.
20088         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
20089         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
20090
20091 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20092
20093         * icall.c: assign minor, build and revision in FillName.
20094
20095 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
20096
20097         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
20098         Added support for running code generated by Reflection.Emit.
20099
20100 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20101
20102         * appdomain.c: check for NULL argument in LoadFrom.
20103
20104 2002-12-10  Dick Porter  <dick@ximian.com>
20105
20106         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
20107
20108 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20109
20110         * appdomain.c: fix buglet when building exe file name.  Handle full
20111         assembly name (needed after latest changes to AssemblyName).
20112         * image.c:
20113         (mono_image_close): free some hashtables.
20114
20115 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
20116
20117         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
20118         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
20119         on some systems (redhat 7.3) 
20120
20121 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
20122
20123         * threads.c: delete the critical section of a sync block,
20124         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
20125
20126 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
20127
20128         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
20129
20130 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20131
20132         * appdomain.[ch]: handle the assembly preload event to try loading the
20133         assemblies using the paths we have in the current domain.
20134
20135         * assembly.[ch]: created an assembly preload hook that is called to try
20136         loading the assembly by other means that the ones provided here.
20137
20138         * domain.c: initialize the domain search path.
20139
20140         From now on, assemblies (TODO: except corlib and System) are loaded
20141         according to these rules when using mono_assembly_load ():
20142
20143                 1. It tries to load the assembly from the ApplicationBase
20144                 of the current domain appending .dll and .exe (TODO: have to
20145                 try loading from name/name.dll and name/name.exe).
20146
20147                 2. It tries the search path specified in PrivateBinPath for the
20148                 current domain (if any).
20149
20150                 3. Previous behavior.
20151
20152 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
20153
20154         * icall.c: implemented GetInterfaceMap() related icall.
20155         * domain.c, loader.h: load MethodInfo in mono_defaults.
20156
20157 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20158
20159         * gc.c: disable the finalizer thread for now, untill all the issues
20160         with it are resolved.
20161
20162 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20163
20164         * string-icalls.c: handle embedded nulls in string ctor when the
20165         length is specified.
20166
20167 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20168
20169         * class.c: look for explicit interface implementation in parent
20170         classes, too.
20171
20172 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
20173
20174         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
20175
20176 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
20177
20178         * gc.c: protect handles with a critical section.
20179
20180 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20181
20182         * icall.c:
20183         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
20184         parameters. If no assembly specified, try getting the type from all
20185         the assemblies in the current domain, else, load the assembly and get
20186         the type from it.
20187
20188 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20189
20190         * marshal.c: applied patch from Aleksey Demakov that fixes
20191         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
20192
20193 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20194
20195         * icall.c: fixed get_location.
20196
20197 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
20198
20199         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
20200         declarations to make it work with older gcc. 
20201
20202         * loader.c (mono_get_method): set signature->pinvoke for native calls
20203
20204 2002-11-20  Dick Porter  <dick@ximian.com>
20205
20206         * threads.c (mono_thread_init): Set the main thread's handle
20207
20208 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
20209
20210         * gc.c: allow compilation without GC support. Changed to match the
20211         mono coding style.
20212
20213 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20214
20215         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
20216
20217 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
20218
20219         * reflection.c: set a public key token on the core assemblies.
20220
20221 2002-11-18  Dick Porter  <dick@ximian.com>
20222
20223         * threads.c: Split out some thread initialisation so that other
20224         files can set the start callback function.
20225
20226         * gc.c: Run finalisers in a separate thread, to avoid stack
20227         overflow.  Fixes bug 31333.
20228
20229         * appdomain.c: Set up GC finalisation thread.
20230
20231         * reflection.c: 
20232         * object.c: 
20233         * domain.c: Use gc.h macros for GC_malloc
20234         
20235 2002-11-15  Dick Porter  <dick@ximian.com>
20236
20237         * threadpool.c: 
20238         * threads.c:
20239         * appdomain.c: Removed mono_runtime_init_with_attach(),
20240         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
20241         merging the extra parameter with the existing function.  Removed
20242         unneeded code in mono_thread_attach().
20243
20244 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
20245
20246         * image.c (mono_image_loaded_by_guid): a method to get loaded
20247         images by guid. 
20248         (load_metadata_ptrs): we store the guid as string.
20249
20250 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
20251
20252         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
20253
20254         * metadata.c (mono_guid_to_string): imported method form Zoltan
20255         Varga (slightly modified)
20256
20257         * assembly.c (mono_assembly_open): load precompiled code
20258
20259         * loader.h (MonoMethod): we store the method token for use in the
20260         aot compiler. 
20261
20262 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20263
20264         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
20265         the hook function called when an assembly is loaded.
20266         
20267         * domain.c: Modified file.
20268         (mono_domain_assembly_load): removed hash table insertion of assemblies.
20269
20270         Fixes bug #33196.
20271
20272 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
20273
20274         * reflection.c: Map PEFileKind to the value expected by the WinNT
20275         image loader. 
20276
20277 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20278
20279         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
20280         Read until the buffer is filled completely.
20281
20282 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20283
20284         * icall.c: implemented MonoType.InternalGetEvent ().
20285
20286 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20287
20288         * appdomain.c: implemented InitAppDomainSetup. Delayed
20289         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
20290         the entry_assembly.
20291
20292         * assembly.c: base_dir is now an absolute path ending with
20293         G_DIR_SEPARATOR.
20294
20295         * icall.c: modified get_location according to the above changes.
20296
20297         * object.c: init AppDomain.SetupInformation for the default domain after
20298         we have the entry assembly.
20299
20300         * domain.c: when unloading a domain, setup = NULL.
20301
20302 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
20303
20304         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
20305
20306 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
20307
20308         * object.h, object.c: introduced mono_object_get_virtual_method ()
20309         to lookup the method invoked on an object when a callvirt is done on
20310         a method.
20311         * icall.c: make MethodInfo::Invoke() always do a virtual call.
20312
20313 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20314
20315         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
20316         current domain when loaded an assembly and failed to load it.
20317
20318         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
20319
20320 2002-10-31  Dick Porter  <dick@ximian.com>
20321
20322         * icall.c: 
20323         * file-io.h: 
20324         * file-io.c: Return the error status in a parameter, as the
20325         GetLastError() value has long since been blown away if we try and
20326         look it up in a subsequent internal call invocation.  Delete the
20327         GetLastError() internal call, because it's useless.
20328
20329 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
20330
20331         * class.[ch]: added cast_class to fix bug 29517
20332
20333 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
20334
20335         * marshal.c: create valid IL code in the filter clause:
20336         the new JIT is less forgiving:-)
20337
20338 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20339
20340         * icall.c: removed get_property internal call.
20341
20342 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
20343
20344         * appdomain.h domain.c: Added an ID to appdomains.
20345         
20346         * threads.c threads.h icall.c: Implement icall
20347         Thread:GetDomainID(), and remove unused icall 
20348         CurrentThreadDomain_internal.
20349
20350 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20351
20352         * icall.c: Don't recurse through the base types in GetConstructor.
20353         Fixes bug #32063. 
20354
20355 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20356
20357         * mempool.h, mempool.c: added mono_mempool_empty() and
20358         mono_mempool_stats().
20359
20360 2002-10-23  Dick Porter  <dick@ximian.com>
20361
20362         * file-io.c: 
20363         * file-io.h: 
20364         * icall.c: Added MonoIO.GetFileType internal call
20365
20366 2002-10-17  Dick Porter  <dick@ximian.com>
20367
20368         * appdomain.c (mono_runtime_cleanup): Don't signal the async
20369         delegate semaphore before waiting for all threads to finish,
20370         because new threads can also call async delegates.  Fixes bug
20371         32004.
20372
20373         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
20374         of 3 seconds, in case another async job is queued.  (This part is
20375         needed because the bug fix reintroduced the 3s exit lag.)  This
20376         makes the mono_runtime_shutdown flag superfluous.
20377
20378 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20379
20380         * reflection.c: include ehader size in method section headers.
20381         Really check for suplicated modules entries.
20382
20383 2002-10-17  Martin Baulig  <martin@gnome.org>
20384
20385         * debug-mono-symfile.c: Added back support for locals.
20386
20387 2002-10-14  Martin Baulig  <martin@gnome.org>
20388
20389         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
20390         MONO_TYPE_VOID.
20391
20392 2002-10-14  Martin Baulig  <martin@gnome.org>
20393
20394         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
20395         mono_class_get() instead of looking in the class cache. 
20396
20397 2002-10-13  Martin Baulig  <martin@gnome.org>
20398
20399         * debug-mono-symfile.c: Set version number to 28, include the
20400         signature in method names.
20401
20402 2002-10-13  Martin Baulig  <martin@gnome.org>
20403
20404         * debug-mono-symfile.h: Set version number to 27.
20405
20406 2002-10-11  Martin Baulig  <martin@gnome.org>
20407
20408         * gc.c: Don't register/unregister NULL pointers as disappearing links.
20409
20410 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20411
20412         * metadata.c, metadata.h: added helper function to allocate signatures.
20413
20414 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20415
20416         * icall.c: added internal call to get the location of machine.config.
20417
20418 2002-10-08  Martin Baulig  <martin@gnome.org>
20419
20420         * debug-mono-symfile.c: Ignore classes with a pending init for the
20421         moment.
20422
20423 2002-10-03  Dick Porter  <dick@ximian.com>
20424
20425         * threads.c: Freebsd pthread_t is a pointer
20426
20427 2002-10-03  Dick Porter  <dick@ximian.com>
20428
20429         * socket-io.c: Implemented GetHostName_internal
20430
20431 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20432
20433         * mono-config.c:
20434         (mono_config_parse_file): don't leak the text.
20435
20436 2002-10-02  Martin Baulig  <martin@gnome.org>
20437
20438         * debug-mono-symfile.c: Added support for methods.
20439
20440 2002-10-01  Martin Baulig  <martin@gnome.org>
20441
20442         * debug-mono-symfile.c: Don't emit methods and line numbers for
20443         the dynamic symbol file, just write the type table.  We can easily
20444         have an external helper program which creates a symbol file for an
20445         IL file.        
20446
20447 2002-10-01  Dick Porter  <dick@ximian.com>
20448
20449         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
20450         Only add the handle to the cleanup array when we're about to
20451         launch the thread.  Bug 31425 deadlocked when the test was run on
20452         mono under w32.
20453
20454 2002-10-01  Martin Baulig  <martin@gnome.org>
20455
20456         * debug-mono-symfile.c: Added support for properties.
20457
20458 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20459
20460         * reflection.c: unaligned store fix from Mark Crichton
20461         <crichton@gimp.org>.
20462
20463 2002-09-27  Martin Baulig  <martin@gnome.org>
20464
20465         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
20466         New interncall.
20467
20468 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20469
20470         * assembly.h, assembly.c: use a sane API to hook into the assembly
20471         loading process instead of a useless special-purpouse hack
20472         (ngen needs a hook, too, for example).
20473
20474 2002-09-27  Dick Porter  <dick@ximian.com>
20475
20476         * threads.c (mono_thread_init): Call GetCurrentProcess() so
20477         io-layer can set up some process handle info.  Not needed on w32,
20478         but doesn't hurt either.
20479
20480         * process.c: Pass the program name in the second parameter to
20481         CreateProcess, so the path is searched.  Include the working
20482         directory. Implemented process name, process enumeration, and some
20483         process detail internal calls.
20484         
20485         * icall.c: Added internal calls for process lookup, and some
20486         process details
20487
20488 2002-09-26  Martin Baulig  <martin@gnome.org>
20489
20490         * assembly.c (mono_install_open_assembly_hook): New global
20491         function to install a function to be invoked each time a new
20492         assembly is loaded.
20493         (mono_assembly_open): Run this callback function if set.
20494
20495         * debug-mono-symfile.c: Put back line numbers for the dynamic
20496         symbol file and also record the .il file as source file.  This
20497         allows us to install the temporary symbol file as `file.dbg' just
20498         like a compiler-generated one.
20499
20500 2002-09-26  Nick Zigarovich <nick@chemlab.org>
20501
20502         * Corrected typo in gc.c (BOHEM vs BOEHM).
20503
20504 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20505
20506         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
20507         GetProperties. Also avoid calling g_slist_length in GetProperties and
20508         GetMethods.
20509
20510 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20511
20512         * reflection.c: avoid unaligned stores (bug spotted by
20513         Mark Crichton  <crichton@gimp.org>).
20514
20515 2002-09-25  Martin Baulig  <martin@gnome.org>
20516
20517         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
20518         instead of guint64 for addresses and added prologue/epilogue info.
20519
20520 2002-09-25  Martin Baulig  <martin@gnome.org>
20521
20522         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
20523         store line number info.  For the dynamic symbol file, we only need
20524         to provide the JIT generated dynamic line number info for the dynamic
20525         symbol file.
20526
20527 2002-09-25  Martin Baulig  <martin@gnome.org>
20528
20529         * debug-mono-symfile.h: Incremented version number.
20530
20531 2002-09-24  Martin Baulig  <martin@gnome.org>
20532
20533         * class.c (mono_debugger_class_init_func): New global function
20534         pointer variable.
20535         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
20536         call it.
20537
20538         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
20539         function.  This is called via the mono_debugger_class_init_func
20540         hook to add all types to the dynamic type table.
20541         (ves_icall_MonoDebugger_GetType): New interncall to get a class
20542         from its metadata token.
20543
20544         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
20545         New interncall for the debugger.
20546
20547 2002-09-24  Nick Drochak <ndrochak@gol.com>
20548
20549         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
20550         before using it in case it is null.
20551         
20552 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20553
20554         * metadata.c: allow custom modifiers in local var signatures
20555         (bug spotted by Zoltan Varga).
20556
20557 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20558
20559         * class.c: deal with the <Module> class that may have a NULL vtable.
20560         Eliminate warnings.
20561
20562 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20563
20564         * image.c, image.h: more strong name helpers.
20565         * monosn.c: more work: convert pem keys to cryptoapi format.
20566
20567 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20568
20569         * string-icalls.c: speedup IndexOf.
20570
20571 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20572
20573         * icall.c: updates from Zoltan.2.Varga@nokia.com.
20574
20575 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
20576
20577         * icall.c: cleanup: use mono_object_domain ().
20578
20579 2002-09-23  Martin Baulig  <martin@gnome.org>
20580
20581         * debug-mono-symfile.c: Improved type support.
20582
20583 2002-09-22  Martin Baulig  <martin@gnome.org>
20584
20585         * debug-mono-symfile.c: Added support for reference types and strings.
20586
20587 2002-09-22  Martin Baulig  <martin@gnome.org>
20588
20589         * debug-mono-symfile.c: Started to work on the type table.
20590
20591 2002-09-21  Martin Baulig  <martin@gnome.org>
20592
20593         * debug-mono-symfile.c: Largely reworked the symbol table format.
20594         The symbol table is now incrementally updated each time a new
20595         method is added.  We're now also using our own magic and version
20596         so that you don't need to recompile all your classes if the
20597         dynamic table changes.
20598         (mono_debug_update_mono_symbol_file): Removed.
20599         (mono_debug_symfile_add_method): New function to add a method.
20600
20601 2002-09-21  Martin Baulig  <martin@gnome.org>
20602
20603         * icall.c
20604         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
20605         New interncall.
20606
20607         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
20608         New interncall to get a method from its metadata token.
20609
20610 2002-09-21  Martin Baulig  <martin@gnome.org>
20611
20612         * debug-mono-symfile.c: Create type table.
20613
20614 2002-09-20  Martin Baulig  <martin@gnome.org>
20615
20616         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
20617
20618 2002-09-20  Martin Baulig  <martin@gnome.org>
20619
20620         * debug-mono-symfile.c: Provide information about params and locals.
20621
20622 2002-09-20  Martin Baulig  <martin@gnome.org>
20623
20624         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
20625         New interncall.
20626
20627         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
20628         interncall to get a method from its metadata token.
20629
20630 2002-09-20  Martin Baulig  <martin@gnome.org>
20631
20632         * debug-mono-symfile.c: Added a few checks for method->header
20633         being non-NULL.  This should never happen, but for the moment
20634         let's use a g_warning() rather than a g_assert().
20635
20636 2002-09-19  Mark Crichton  <crichton@gimp.org>
20637
20638         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
20639         even if support for it isn't present.  Added an #ifdef to fix this.
20640
20641         * socket-io.c: Added checks back for Solaris support.
20642
20643 2002-09-19  Martin Baulig  <martin@gnome.org>
20644
20645         * debug-mono-symfile.c (read_string, write_string): Reflect latest
20646         changes in the symbol file format.
20647
20648 2002-09-18  Martin Baulig  <martin@gnome.org>
20649
20650         * debug-mono-symfile.c: Set version number to 21.
20651
20652 2002-09-18  Dick Porter  <dick@ximian.com>
20653
20654         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
20655         on netbsd.  Fixes bug 30051.
20656
20657 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20658
20659         * reflection.c:
20660         (set_version_from_string): little fix.
20661
20662 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20663
20664         * monosn.c, Makefile.am: added strong name utility.
20665         * reflection.h, reflection.c: implemented delayed signing,
20666         locale, version and hash id assembly attributes.
20667
20668 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20669
20670         * loader.c, metadata.c: load param attributes in signatures.
20671
20672 2002-09-16  Martin Baulig  <martin@gnome.org>
20673
20674         * debug-mono-symfile.c: Added string table with all method names.
20675
20676 2002-09-14  Martin Baulig  <martin@gnome.org>
20677
20678         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
20679         fast method lookup.
20680
20681 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20682
20683         * reflection.c: record the public key token of referenced assemblies.
20684
20685 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20686
20687         * image.c, image.h: added functions to get the strong name and the
20688         public key of an assembly.
20689         * pedump.c: use them.
20690
20691 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
20692
20693         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
20694
20695 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
20696
20697         * marshal.c (mono_marshal_get_managed_wrapper): Added
20698         MONO_TYPE_BOOLEAN 
20699
20700 2002-09-11  Martin Baulig  <martin@gnome.org>
20701
20702         * gc.c: Call GC_unregister_disappearing_link() on all links when
20703         finalizing them, this is necessary to aviod a crash in boehm's
20704         finalize handler.
20705
20706 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20707
20708         * gc.c: handle GetTarget for finalized objects spotted and fixed by
20709         nick@chemlab.org.
20710
20711 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
20712
20713         * icall.c: implemented MonoType::Module.
20714         * reflection.c, reflection.h: mono_module_get_object () from
20715         Tomi Pakarinen <tomi.pakarinen@welho.com>.
20716
20717 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20718
20719         * icall.c: ignore overridden methods in GetMethods ().
20720         Fix for FieldInfo::SetValue().
20721         * object.c: handle float/double in runtime invoke.
20722
20723 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20724
20725         * object.c: allow a constructor to be called again on an object.
20726
20727 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20728
20729         * class.h, class.c: move field layout code to it's own function and
20730         export it. Get an interface id earlier. Move fields in MonoClass
20731         so they are more cache friendly and align the bitfields.
20732         * loader.c: temporary handle get_param_names() for a runtime method.
20733         * reflection.c, reflection.h: more code to handle runtime creation of
20734         types.
20735
20736 2002-09-09  Martin Baulig  <martin@gnome.org>
20737
20738         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
20739         signature with the pinvoke field being set for the actual call.
20740
20741 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20742
20743         * icall.c: removed some unused icalls. Start of map of glib charsets
20744         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
20745
20746 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20747
20748         * debug-helpers.c: break infinite loop (found and fixed by
20749         Holger Arnold <harnold@gmx.de>).
20750
20751 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20752
20753         * icall.c: target may be null in create_delegate.
20754
20755 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20756
20757         * marshal.c: handle a boolean return type.
20758
20759 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20760
20761         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
20762
20763 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20764
20765         * gc.c: fix weakreferences.
20766
20767 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20768
20769         * icall.c: added icall to get default codepage.
20770
20771 2002-09-03  Dick Porter  <dick@ximian.com>
20772
20773         * threads.h: 
20774         * threads.c: Use MonoThread instead of MonoObject where
20775         apropriate.
20776
20777         Store running thread objects in a hash table, so that we have all
20778         the info to hand when waiting for them to finish
20779         (means we don't need OpenThread() any more, so mingw builds should
20780         be fully functional again.)
20781
20782         * verify.c:
20783         * object.h: Added thread ID to MonoThread
20784
20785 2002-09-03  Martin Baulig  <martin@gnome.org>
20786
20787         * icall.c (System.Reflection.Assembly::get_location): New interncall.
20788
20789 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20790
20791         * icall.c: fixed leak in get_temp_path. Thanks lupus.
20792
20793 2002-09-03  Martin Baulig  <martin@gnome.org>
20794
20795         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
20796         argument to store the end address of the disassembled instruction.
20797
20798         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
20799         here from debug-symfile.h.
20800         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
20801         JIT into this struct.
20802         (MonoSymbolFile): Added `char *image_file' field.
20803         (MonoDebugGetMethodFunc): Removed.
20804         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
20805         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
20806         (mono_debug_find_method): New method.
20807
20808         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
20809         create a full symbol file.
20810         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
20811         and static symbol files.
20812         (mono_debug_find_method): The symbol file keeps an internal method hash,
20813         call this to get a MonoDebugMethodInfo from a MonoMethod.
20814
20815         * debug-symfile.[ch]: Removed.
20816
20817 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
20818
20819         * image.c (do_mono_image_open): Remove linker version check.
20820
20821 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
20822
20823         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
20824         wrappers for instance methods.
20825         
20826 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20827
20828         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
20829
20830 2002-08-28  Dick Porter  <dick@ximian.com>
20831
20832         * Makefile.am: Export HOST_CC for w32 builds
20833
20834 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20835
20836         * file-io.c process.c: MonoString are null terminated, no
20837         need for mono_string_to_utf16() anymore.
20838
20839 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20840
20841         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
20842
20843 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
20844
20845         * icall.c, reflection.h: speedup System.MonoType.
20846
20847 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20848
20849         * reflection.c: allow null as the value of a string argument in
20850         custom attributes constructors.
20851
20852 2002-08-27  Martin Baulig  <martin@gnome.org>
20853
20854         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
20855         `trampoline_address' field.
20856
20857 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
20858
20859         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
20860         check (fixes bug #29486) 
20861
20862 2002-08-27  Martin Baulig  <martin@gnome.org>
20863
20864         * debug-mono-symfile.c: Changed the file format in a way that allows us
20865         open it read-only and to use a specially malloced area for all the
20866         dynamic data.  We can now also generate a symbol file on-the-fly if we're
20867         debugging IL code and there is no MCS generated symbol file for it.
20868
20869 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20870
20871         * object.c: added a define for a good string and array
20872         creation speedup (not enabled by default because we need to deal with
20873         the synch stuff).
20874
20875 2002-08-26  Martin Baulig  <martin@gnome.org>
20876
20877         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
20878         function to create a dynamic symbol file.  This is used by the
20879         debugger to create a symbol file for IL code on-the-fly.
20880
20881 2002-08-26  Martin Baulig  <martin@gnome.org>
20882
20883         * loader.c (mono_lookup_pinvoke_call): Include the error message
20884         from g_module_error() in the error message.
20885
20886 2002-08-24  Martin Baulig  <martin@gnome.org>
20887
20888         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
20889         function to update the symbol file.  The symbol file is mmap()ed
20890         writable, but private.  This allows us to install the symbol file
20891         together with the assembly.
20892
20893 2002-08-24  Martin Baulig  <martin@gnome.org>
20894
20895         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
20896         but they can read the new symbol file format which mcs is now creating.
20897
20898         * debug-symfile.c (mono_debug_find_source_location): Moved to
20899         debug-mono-symfile.c; this is now operating on the new symbol file.
20900
20901 2002-08-23  Martin Baulig  <martin@gnome.org>
20902
20903         * debug-helpers.c (mono_method_desc_from_method): New function to get
20904         a MonoMethodDesc from a MonoMethod.
20905
20906 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20907
20908         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
20909         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
20910
20911 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20912
20913         * string-icalls.[ch]: make helper methods static.
20914
20915 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20916
20917         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
20918         types to it and to SetValueInternal.
20919
20920         * object.c: Moved handle_enum label to its proper place. This was the
20921         f... bug! ;-)
20922
20923         This time i compiled mcs and gtk-sharp and they both work.
20924
20925 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20926
20927         * icall.c: reverted partially my previous patch until 
20928         object.c:set_value handles enums correcly.
20929
20930 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20931
20932         * icall.c:
20933         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
20934         (ves_icall_System_Environment_get_MachineName): removed warning when
20935         compiling under cygwin.
20936
20937 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20938
20939         * object.c: fixed field_get_value() for reference types.
20940
20941 2002-08-22  Dick Porter  <dick@ximian.com>
20942
20943         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
20944         Don't free a buffer while it's still needed.  Patch from Jonathan
20945         Liger <Jonathan.liger@wanadoo.fr>
20946
20947 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
20948
20949         * icall.c (ves_icall_System_Environment_get_Platform): Add new
20950         internal call.
20951
20952 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
20953
20954         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
20955         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
20956
20957         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
20958         we call unmanaged code which throws exceptions.
20959
20960 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20961
20962         * appdomain.h: added per-domain entry_assembly.
20963         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
20964         arguments.
20965         * icall.c: Assembly::GetEntryAssembly icall.
20966         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
20967         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
20968
20969 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
20970
20971         * appdomain.h, gc.c: added mono_domain_finalize ().
20972
20973 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20974
20975         * object.c:
20976         (mono_print_unhandled_exception): changed g_warning by g_printerr
20977         because g_log has a 1024 characters limit (yeah, i got a big stack
20978         trace). Don't print exception name, that should be in ToString 
20979         returned string.
20980
20981 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20982
20983         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
20984         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
20985
20986 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20987
20988         * object.c:
20989         (mono_print_unhandled_exception): after previous commit, i realized
20990         that MS calls ToString on the exception. I changed this function to
20991         do that. This way we get stack_trace for free.
20992
20993 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20994
20995         * object.c:
20996         (mono_print_unhandled_exception): invoke Message property instead of
20997         getting 'message' field from Exception. Don't allocate memory for
20998         'trace' and 'message' if not needed.
20999
21000 2002-08-18  Dick Porter  <dick@ximian.com>
21001
21002         * unicode.c: Fix asserts to match Encoder.cs checks
21003
21004 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21005
21006         * marshal.c: fix unaligned store issue and a few wrong
21007         opcode argument types.
21008
21009 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21010
21011         * icall.c: added GetUninitializedObjectInternal internal call.
21012
21013 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
21014
21015         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
21016         to the right domain.
21017
21018 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
21019
21020         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
21021
21022         * class.c (class_compute_field_layout): set blittable to false for Strings
21023
21024         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
21025
21026 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21027
21028         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
21029         first chunk of code to create types at runtime. Code to
21030         handle ReflectedType/DeclaringType. Make reflection handles
21031         domain specific.
21032
21033 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
21034
21035         * class.c: set correct name in arrays.
21036
21037 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
21038
21039         * appdomain.c (mono_domain_transfer_object): make it work with
21040         valuetypes. bug fixes.
21041
21042 2002-08-12  Dick Porter  <dick@ximian.com>
21043
21044         * object.h: Rename some parameters to avoid c++ keywords (Patch
21045         from Joseph Wenninger <kde@jowenn.at>)
21046
21047 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
21048
21049         * icall.c: added icall to implement Assembly.GetFile*.
21050
21051 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21052
21053         * reflection.h, reflection.c: code to embed managed resources.
21054
21055 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21056
21057         * class.c: move all the type size stuff into
21058         class_compute_field_layout().
21059
21060 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21061
21062         * class.c: ensure enums have always the correct instance size.
21063         * unicode.c: remove wrong assert.
21064
21065 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21066
21067         * assembly.c: fix mem corruption issue.
21068         * image.h, image.c: added mono_image_get_resource () to access
21069         managed resources.
21070         * icall.c: implemented Assembly.EntryPoint property and some
21071         Managed Resources related internalcalls.
21072
21073
21074 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21075
21076         * image.c, image.h: impemented mono_image_get_entry_point ().
21077         * appdomain.c: use mono_image_get_entry_point.
21078
21079 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21080
21081         * reflection.c: support the object type argument when loading
21082         custom attributes.
21083
21084 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
21085
21086         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
21087         String as return type.
21088
21089 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
21090
21091         * reflection.c: fix encoding of named args for custom attrs to match
21092         the ms implementation. Read them back when instantiating custom
21093         attributes.
21094
21095 2002-08-02  Radek Doulik  <rodo@ximian.com>
21096
21097         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
21098         by Dietmar as quick fix
21099         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
21100         16 as stack size, used on more places as quick fix before Dietmar
21101         will fix it properly
21102
21103 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
21104
21105         * object.h, object.c: added accessors for fields and properties.
21106
21107 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
21108
21109         * class.c, class.h: made mono_class_get_field_from_name ()
21110         loop on parent types.
21111         Added mono_class_get_property_from_name ().
21112
21113 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21114
21115         * class.c, class.h: move the code to setup the type vtable in its own
21116         function so that it can be reused also for types created at runtime.
21117         Eliminate the "class" identifier from the header file.
21118         * reflection.c: setup the vtable for enums so that we can create
21119         objects for use in SetConstant ().
21120
21121 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
21122
21123         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
21124         instead of the delegate itself as this pointer (bug #28383)
21125
21126 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
21127
21128         * marshal.c (mono_marshal_get_managed_wrapper): added return type
21129         conversions.
21130
21131 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21132
21133         * loader.c: don't set the pinvoke bit on icalls.
21134
21135 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
21136
21137         * debug-helpers.c (mono_method_full_name): only print a number to
21138         indicate wrapper type (so that the output is more readable in traces).
21139
21140 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
21141
21142         * class.c (mono_class_init): include method override patch from Paolo
21143
21144 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
21145
21146         * icall.c: fixed GetTypeCode().
21147
21148 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
21149
21150         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
21151         use real delegate invoke function to make it work with multicast
21152         delegates (fix bug# 28291).
21153
21154 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21155
21156         * object.c: load constant strings.
21157
21158 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21159
21160         * reflection.c: no magic numbers.
21161         * tabledefs.h: security action enum.
21162
21163 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21164
21165         * assembly.c: fix possible memory corruption.
21166
21167 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
21168
21169         * reflection.h, reflection.c: added support for linking resources.
21170         * verify.c: check we have an updated corlib.
21171
21172 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
21173
21174         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
21175         string arrays.
21176         (mono_marshal_string_array): null terminate unmanaged string arrays.
21177         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
21178
21179 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21180
21181         * icall.c: Type.GetType () can now return also types from the
21182         calling assembly.
21183
21184 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
21185
21186         * loader.h, loader.c: stack walking support.
21187         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
21188         GetCallingAssembly.
21189
21190 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
21191
21192         * marshal.c: added optimisations for blittable types 
21193
21194         * class.c (mono_array_class_get): do not set blittable attribute on arrays
21195         (mono_class_setup_mono_type): set blittable attribute for single
21196         and double.
21197
21198         * marshal.c (mono_string_utf8_to_builder): impl.
21199         (mono_string_builder_to_utf8): impl.
21200         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
21201
21202 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
21203
21204         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
21205         (mono_marshal_get_managed_wrapper): impl. byref types
21206
21207 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21208
21209         * icall.c:
21210         (search_method): don't display debug message. 
21211
21212 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
21213
21214         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
21215
21216 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
21217
21218         * appdomain.c: set the missing filename when throwing exception.
21219
21220 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
21221
21222         * metadata.c (mono_type_size): code cleanup
21223         (mono_type_stack_size): removed some test code
21224
21225 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
21226
21227         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
21228         mono_get_exception_file_not_found now.
21229
21230         * exception.c (mono_exception_from_name_two_strings): New version
21231         that will call a constructor with two string arguments. 
21232         (mono_get_exception_file_not_found): New helper routine, used to
21233         report file-not-found errors.
21234
21235 2002-07-20  Dick Porter  <dick@ximian.com>
21236
21237         * process.h:
21238         * process.c: Pass file handles to CreateProcess
21239         
21240         * icall.c:
21241         * file-io.h:
21242         * file-io.c: Implemented CreatePipe
21243
21244 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
21245
21246         * metadata.c (mono_get_param_info): set alignment for value types
21247
21248 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21249
21250         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
21251         Constify mono_domain_assembly_open().
21252         * loader.c: handle null namespace in icalls.
21253
21254 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
21255
21256         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
21257         (emit_str_to_ptr_conv): marshal object as structs
21258
21259         * metadata.c (mono_type_to_unmanaged): marshal object as structs
21260
21261         * marshal.c (mono_marshal_get_runtime_invoke): support value types
21262
21263 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
21264
21265         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
21266         (mono_marshal_get_native_wrapper): we an now return value types
21267
21268 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21269
21270         * verify.c: more checks implemented.
21271
21272 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
21273
21274         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
21275         (fix bug #27695)
21276         (mono_marshal_get_native_wrapper): allow byref arguments
21277         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
21278         impl. PtrToStringXXX methods
21279         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
21280         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
21281         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
21282         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
21283         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
21284
21285 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21286
21287         * reflection.c: fix buglet in parsing an assembly name.
21288
21289 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
21290
21291         * marshal.c (emit_ptr_to_str_conv): first impl.
21292
21293 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
21294
21295         * object.c, class.h: cache the vtable in the class as suggested by
21296         vargaz@freemail.hu (Zoltan Varga).
21297
21298 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21299
21300         * class.h, loader.c: added mono_field_from_token().
21301         * verify.c: first cut of type checking code.
21302
21303 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
21304
21305         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
21306
21307 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
21308
21309         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
21310         (fix bug #27782)
21311         (mono_marshal_get_remoting_invoke): impl.
21312         (mono_delegate_begin_invoke): impl.
21313         (mono_mb_emit_save_args): impl.
21314         (mono_delegate_end_invoke): impl.
21315         (mono_marshal_get_delegate_begin_invoke):
21316         (mono_marshal_get_delegate_end_invoke):
21317         (mono_marshal_get_delegate_invoke): generate a special name for
21318         those methods (including the signature) and associate them whith
21319         the delegate class. 
21320
21321 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
21322
21323         * reflection.[ch]: 
21324         (mono_reflection_type_from_name): now it has a MonoImage parameter
21325         which is used as the default image to search the type in. If the image
21326         is NULL or getting the type from it fails, it defaults to corlib.
21327
21328         * icall.c: changed 1 call to mono_reflection_type_from_name to match
21329         new parameter.
21330
21331 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21332
21333         * reflection.c: update the parameter table index.
21334
21335 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
21336
21337         * domain.c: don't include the mark byte in the string hash.
21338
21339 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
21340
21341         * icall.cs: icall for Type.GetTypeCode ().
21342         * verify: a couple of fixes and disabled local initialization checks.
21343
21344 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
21345
21346         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
21347
21348         * debug-helpers.c (mono_method_full_name): print the type of the
21349         runtime wrapper
21350
21351         * metadata.c (mono_signature_hash): a hash function for signatures
21352         (mono_signature_hash): better hash algorithm
21353
21354         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
21355
21356         * debug-helpers.c (mono_method_full_name): this can now generate
21357         method names with signatures
21358
21359         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
21360         method dont have this pointers.
21361
21362 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21363
21364         * reflection.c: fixup typebuilder tokens.
21365         * image.c: fix buglet.
21366         * marshal.h: remove whitespace.
21367         * metadata.h, metadata.c: reinstate code that was removed.
21368         * verify.c: handle catch directives and fix another couple of bugs.
21369
21370 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
21371
21372         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
21373         (mono_marshal_get_native_wrapper): make it comp. with the old code
21374         (mono_marshal_get_native_wrapper): support boolean
21375         (mono_marshal_get_managed_wrapper): support more types
21376
21377 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
21378
21379         * class.c (class_compute_field_layout): compute class->blittable attribute.
21380
21381 2002-07-09  Dick Porter  <dick@ximian.com>
21382
21383         * threads.c: Make the thread cleaning up cope with threads that
21384         call ExitThread()
21385
21386 2002-07-08  Radek Doulik  <rodo@ximian.com>
21387
21388         * reflection.c (method_encode_code): use non-translated values to
21389         compute finally_start, this fixes exception handling on ppc, yay!
21390
21391         * decimal.h (struct signscale): fix endianess
21392
21393 2002-07-07  Radek Doulik  <rodo@ximian.com>
21394
21395         * reflection.c: swap box_val and not val
21396
21397 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
21398
21399         * reflection.c, reflection.h: handle full assembly info in type name.
21400         Handle Type arguments when loading custom attributes.
21401         * icall.c: updated to use new mono_reflection_type_from_name () method.
21402
21403 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21404
21405         * loader.c:
21406         (method_from_memberref): also print assembly name when method not found.
21407
21408 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21409
21410         * icall.c:
21411         (ves_icall_TypeGetProperties): fixed bug #27473. 
21412
21413 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21414
21415         * reflection.c: display image name and token when cannot find the
21416         .ctor for an attribute.
21417
21418 2002-07-05  Martin Baulig  <martin@gnome.org>
21419
21420         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
21421
21422 2002-07-04  Dick Porter  <dick@ximian.com>
21423
21424         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
21425         compile on mingw.  This will cause mingw builds to not wait for
21426         subthreads to terminate after the main thread does.  I've lodged a
21427         bug with the mingw developers for them to wrap OpenThread().
21428
21429 2002-07-03  Dick Porter  <dick@ximian.com>
21430
21431         * threads.c: Store thread IDs instead of handles, because
21432         GetCurrentThread() returns a pseudohandle and therefore stores
21433         useless values.  mono_thread_cleanup() continues checking the
21434         array of threads until it is empty, to cope with subthreads
21435         spawning new threads after the main thread has finished.
21436
21437         * profiler.h:
21438         * profiler.c:
21439         * profiler-private.h: Pass the thread ID to thread profiler
21440         functions, instead of a handle
21441
21442 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21443
21444         * verify.c: fixes to make it more usable.
21445         * pedump.c: added --verify code to verify IL code in an assembly.
21446
21447 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21448
21449         * reflection.c: turn errors into warnings to allow compiling corlib.
21450
21451 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
21452
21453         * reflection.c: add special cases to compile corlib.
21454
21455 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21456
21457         * reflection.c: handle properties with only a set method.
21458
21459 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21460
21461         * opcodes.h: add enum with opcodes in opval order.
21462
21463 2002-07-01  Dick Porter  <dick@ximian.com>
21464         
21465         * object.h:
21466         * object.c (mono_runtime_run_main): Removed unneeded argument
21467
21468 2002-06-28  Martin Baulig  <martin@gnome.org>
21469
21470         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
21471
21472 2002-06-27  Dick Porter  <dick@ximian.com>
21473
21474         * threads.c: Store the handle in both the parent thread and in the
21475         subthread, to minimise the time between starting a new thread and
21476         storing its ID.
21477
21478 2002-06-26  Dick Porter  <dick@ximian.com>
21479
21480         * appdomain.c (mono_runtime_cleanup): Close the socket library
21481         after all the threads have finished, not before
21482
21483 2002-06-26  Martin Baulig  <martin@gnome.org>
21484
21485         * debug-symfile.c (mono_debug_find_source_location): Added
21486         `guint32 *line_number' argument.  If it's not NULL, store the line number
21487         there and return the file name without the line number.
21488
21489 2002-06-25  Dick Porter  <dick@ximian.com>
21490
21491         * icall.c:
21492         * process.h:
21493         * process.c: Process forking and other support functions
21494
21495 2002-06-25  Dick Porter  <dick@ximian.com>
21496
21497         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
21498         things dont happen when the image is closed.
21499         (mono_image_lookup_resource): Walk the resource section looking
21500         for a particular entry
21501
21502         * cil-coff.h: PE resource section decoding
21503
21504 2002-06-25  Dick Porter  <dick@ximian.com>
21505         
21506         * assembly.h:
21507         * assembly.c: 
21508         (mono_assembly_foreach): Accessor functions to walk the list of
21509         loaded assemblies
21510         (mono_assembly_set_main):
21511         (mono_assembly_get_main): Process methods need to know which
21512         assembly is the "main" one
21513
21514         * object.c (mono_runtime_run_main): Record the main assembly
21515
21516         * debug-helpers.c: Fix typo
21517
21518 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
21519
21520         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
21521         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
21522
21523 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
21524
21525         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
21526
21527 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
21528
21529         * image.c (do_mono_image_open): Initialize reference count,
21530         otherwise we leak the MonoImage.
21531
21532 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
21533
21534         * reflection.c: small tweak to handle self-hosting.
21535
21536 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21537
21538         * reflection.c: fix type name parse code.
21539
21540 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21541
21542         * reflection.c: break out of the loop.
21543         * image.c: special case corlib.
21544
21545 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21546
21547         * reflection.c: add all the custom attrs at the end to ensure the
21548         ctors have been properly initialized when the attributes are defined
21549         in the current assembly.
21550
21551 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21552
21553         * reflection.c: handle correctly multiple-nested types.
21554
21555 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
21556
21557         * row-indexes.h: fix typos.
21558         * reflection.c: adjust for typos and fix method_def_or_ref
21559         encoding in MethodImpl table.
21560
21561 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21562
21563         * reflection.c: fix entry point patching (thanks Serge!).
21564
21565 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
21566
21567         * verify.c: add check for System.Exception
21568
21569 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
21570
21571         * image.c, class.c: minifix for code just c&p'ed.
21572         * reflection.c: warning fix.
21573         * object.h, loader.h, domain.c: load also StringBuilder.
21574
21575 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21576
21577         * marshal.h, marshal.c: some support code to handle complex marshaling.
21578
21579 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21580
21581         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
21582         Better signatures with vtable error dump.
21583
21584 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
21585
21586         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
21587
21588 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
21589
21590         * icall.c (ves_icall_Type_GetField): impl.
21591
21592 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21593
21594         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
21595         to retrieve a marshal description blob for a field or param.
21596
21597 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21598
21599         * reflection.h, reflection.c: change order of nested type emission
21600         to avoid table corruption. The NestedTypes table is sorted.
21601         * icall.c: change order of GetConstructor results to workaround mcs bug.
21602
21603 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21604
21605         * reflection.h, reflection.c: handle field and param marshal
21606         information.
21607
21608 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21609
21610         * icall.c, marshal.c marshal.h: more Marshal class implementation.
21611
21612 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21613
21614         * reflection.c: fix call convention.
21615
21616 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21617
21618         * reflection.h, reflection.c: mono_image_get_memberref_token()
21619         takes a type instead of a class, now. Added
21620         mono_image_get_array_token() to create tokens for the special
21621         multi-dim array methods.
21622
21623 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21624
21625         * assembly.c: handle modules (no assembly table). Split
21626         loading references in its own function.
21627         * class.c: handle moduleref resolution scope.
21628         * image.c, image.h: cache module name in image.
21629
21630 2002-06-07  Martin Baulig  <martin@gnome.org>
21631
21632         * reflection.c (mono_image_get_type_info): Only add a class layout entry
21633         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
21634
21635 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
21636
21637         * icall.c: more signature fixes that used uint instead of int.
21638
21639 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21640
21641         * reflection.c: fixed signature of field refs.
21642
21643 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21644
21645         * class.c, reflection.c: handle typerefs of nested types
21646         (both on read and when writing files).
21647
21648 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
21649
21650         * icall.c: fix method signatures that tried to workaround the previous
21651         typo, d'oh!
21652
21653 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
21654
21655         * debug-helpers.c: fix typo.
21656
21657 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21658
21659         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
21660         rewrote the PE/COFF writing code (our programs are understood by the
21661         ms runtime, now).
21662
21663 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
21664
21665         * gc.c, gc.h, icall.c: weakreference support.
21666
21667 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21668
21669         * Makefile.am, mono-config.c: use $(sysconfdir).
21670
21671 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21672
21673         * icall.c: changed default precision of Double.ToString() to 15.
21674         Fixed memory leak. Unified with Single.ToString.
21675
21676 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
21677
21678         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
21679
21680 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21681
21682         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
21683         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
21684         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
21685         and myself.
21686
21687 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21688
21689         * debug-symfile.c, sysmath.c: yet more compilation fixes.
21690
21691 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21692
21693         * reflection.c, socket-io.c: more compilation fixes.
21694
21695 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21696
21697         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
21698         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
21699         unicode.c: warning and compiler compatibility fixes.
21700
21701 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21702
21703         * class.h, metadata.c: fixed warnings/compilation errors.
21704
21705 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
21706
21707         * Makefile.am, mono-config.c, mono-config.h: configuration file
21708         support routines.
21709         * loader.c, loader.h: make Dll mapping configurable at runtime in the
21710         config file. Export methods to insert and lookup mappings.
21711
21712 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
21713
21714         * reflection.c: handle types and boxed objects in custom attr
21715         constructors.
21716
21717 2002-05-30  Martin Baulig  <martin@gnome.org>
21718
21719         * debug-symfile.c
21720         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
21721
21722 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
21723
21724         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
21725         to lookup the implmap row for a P/Invoke method.
21726         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
21727         P/Invoke method from the runtime on an as needed basis.
21728
21729 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
21730
21731         * metadata.c (mono_metadata_parse_signature): impl.
21732
21733 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21734
21735         * class.c: handle .pack directive.
21736
21737 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21738
21739         * object.c: initialize static fields with RVA data.
21740
21741 2002-05-25  Martin Baulig  <martin@gnome.org>
21742
21743         * debug-symfile.c
21744         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
21745
21746 2002-05-24  Martin Baulig  <martin@gnome.org>
21747
21748         * debug-symfile.c
21749         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
21750         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
21751         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
21752
21753 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21754
21755         * object.c: special case string ctros in invoke.
21756         * gc.c: silly whitespace changes.
21757
21758 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
21759
21760         * threadpool.[ch]: impl. a threadpool that can
21761         be used by mint and mono.
21762
21763 2002-05-22  Martin Baulig  <martin@gnome.org>
21764
21765         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
21766         The first argument is now a `MonoReflectionModuleBuilder *', the return
21767         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
21768         `methods' field to get the method builder.  The `token' argument is the
21769         unfixed token.
21770
21771         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
21772         invalid characters instead of g_assert_not_reached()ing.  This seems
21773         to be the behaviour of mscorlib.
21774
21775 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
21776
21777         * object.c (mono_runtime_invoke_array): applied patch from Rachel
21778         Hestilow to fix bug #25104
21779
21780 2002-05-21  Martin Baulig  <martin@gnome.org>
21781
21782         * debug-symfile.c (mono_debug_find_source_location): New function.
21783         Looks up an IL offset in the line number table and returns the source
21784         location as a string.
21785
21786 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21787
21788         * icall.c:
21789         (mono_double_ToStringImpl): changed %f by %g until we have something
21790         better.
21791
21792 2002-05-21  Nick Drochak  <ndrochak@gol.com>
21793
21794         * icall.c : Use different name for Math.Pow's icall.  Needed to check
21795         parameters first in C#.
21796
21797 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21798
21799         * icall.c, reflection.h: added icall to get info about an event.
21800
21801 2002-05-20  Radek Doulik  <rodo@ximian.com>
21802
21803         * object.c (mono_value_box): don't use memcpy for boxing on BIG
21804         endian
21805         (mono_value_box): don't use memcpy for small sizes on
21806         architectures with unaligned access
21807
21808 2002-05-20  Martin Baulig  <martin@gnome.org>
21809
21810         * reflection.c (mono_reflection_setup_internal_class): Don't crash
21811         if `tb->parent == NULL'.
21812         (mono_reflection_create_internal_class): New function.  This is
21813         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
21814         for enum types.
21815
21816         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
21817         New interncall.
21818
21819 2002-05-19  Martin Baulig  <martin@gnome.org>
21820
21821         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
21822         argument to get the length, don't default to the array length.
21823
21824 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
21825
21826         * assembly.c (mono_assembly_setrootdir): New function used to
21827         override the MONO_ASSEMBLIES directory.
21828
21829 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21830
21831         * icall.c: ValueType_GetHashCode() initialize local var.
21832
21833 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21834
21835         * reflection.c: sort custom attributes table.
21836
21837 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21838
21839         * reflection.c: support named args in custom attributes (write support).
21840
21841 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
21842
21843         * reflection.c: fix finally position calculation.
21844
21845 2002-05-15  Radek Doulik  <rodo@ximian.com>
21846
21847         * reflection.c: fixed endianess at many places
21848
21849         * icall.c (ves_icall_InitializeArray): comment out debug msg
21850
21851 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
21852
21853         * object.c (mono_unhandled_exception): new function to handle
21854         unhandled exceptions.
21855         (mono_unhandled_exception): call the UnhandledException event.
21856         (mono_runtime_delegate_invoke): impl.
21857
21858 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
21859
21860         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
21861         returns the RVA, not the direct pointer to the data. Handle the case
21862         when the class size is fixed.
21863
21864 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21865
21866         * reflection.c: fix some endianess issues.
21867
21868 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
21869
21870         * object.c (mono_runtime_invoke): is now able to catch exceptions.
21871
21872         * threads.c (mono_thread_init): added a callback which is invoked
21873         at thread start.
21874
21875 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
21876         
21877         * icall.c: make GetHashCode return non-negative values.
21878
21879 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
21880
21881         * object.c, icall.c, gc.c: revert to address-based hashcode.
21882
21883 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
21884
21885         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
21886
21887 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21888
21889         * icall.c, class.c: special case <Module>.
21890
21891 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
21892
21893         * icall.c: fix bug in GetNow().
21894
21895 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
21896
21897         * object.c (mono_runtime_class_init): make sure that we call all
21898         static class constructors.
21899
21900 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21901
21902         * reflection.c: sort methodsemantics table.
21903
21904 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21905
21906         * reflection.h, reflection.c: honour init locals setting.
21907
21908 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
21909
21910         * icall.c: copied Double ToStringImpl for Single ToStringImpl
21911
21912 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21913
21914         * reflection.c: support ContructorBuilders in attribute blob creation.
21915
21916 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21917
21918         * reflection.c: some changes to build a binary that can be run
21919         directly in windows.
21920
21921 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
21922
21923         * loader.c: print a big message when an icall can't be found.
21924
21925 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21926
21927         * string-icalls.c: fix bug 24248.
21928
21929 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
21930
21931         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
21932         icall.c, reflection.h: separate assembly loading by pathname and by
21933         assembly name. Use the MONO_PATH env var to search for assemblies.
21934
21935 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21936
21937         * assembly.c, image.h: add some support for assemblies
21938         with multiple modules.
21939         * class.c, class.h: export mono_class_from_typeref().
21940         * loader.c: remove duplicated code and use mono_class_from_typeref(),
21941         instead.
21942
21943 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21944
21945         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
21946         documentation says (the ECMA one is correct).
21947
21948 2002-05-02  Dick Porter  <dick@ximian.com>
21949
21950         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
21951         Don't name the synchronisation mutex.
21952
21953 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
21954
21955         * rand.c
21956         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
21957         Make the prototypes match.
21958         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
21959         Same.
21960
21961         * icall.c
21962         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
21963         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
21964         all systems have tm.tm_zone, so use strftime() with %Z to print
21965         the timezone abreviation into a temp string.
21966
21967         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
21968         rather than mono_array_addr() on a MonoString on Big Endian
21969         machines.
21970
21971 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
21972
21973         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
21974         fix bug 24041
21975
21976 2002-04-30  Dick Porter  <dick@ximian.com>
21977
21978         * socket-io.c: Cope with SOCKET being an integer rather than a
21979         pointer now.
21980
21981         * threads.c: Added Thread_free_internal, to deal with thread
21982         handle cleanup.  Moved calls to handle_store() and handle_remove()
21983         to start_wrapper(), so each can only be called once.  Allocate
21984         synchronisation blocks with GC_malloc(), and use GC finalisation
21985         to close the handles.
21986
21987         * icall.c: added System.Threading.Thread::Thread_free_internal
21988
21989 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21990
21991         * icall.c: support Environment.Exit, CommandLineArgs().
21992
21993 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21994
21995         * object.c, object.h: added mono_runtime_run_main () and
21996         mono_runtime_get_main_args () for use in System.Environment.
21997
21998 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21999
22000         * gc.c: fix thinko, enable actual finalization since the jit is now
22001         fixed.
22002
22003 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22004
22005         * gc.c, object.c: take into account that an object may be offset wrt the address
22006         returned by GC_malloc().
22007
22008 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
22009
22010         * image.c: handle files without entries in the assembly table (modules).
22011
22012 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
22013
22014         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
22015         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
22016         allowed to be null when it's System.Object class setup.
22017
22018 2002-04-27  Martin Baulig  <martin@gnome.org>
22019
22020         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
22021         if `tb->parent == NULL' rather than crashing.
22022
22023 2002-04-28  Nick Drochak  <ndrochak@gol.com>
22024
22025         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
22026         calling acos() where asin() should have been called.
22027
22028 2002-04-26  Martin Baulig  <martin@gnome.org>
22029
22030         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
22031         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
22032         there's a subdirectory called `System', but we don't want to read that
22033         subdirectory as an assembly.
22034
22035 2002-04-25  Martin Baulig  <martin@gnome.org>
22036
22037         * debug-symfile.c: Reflect latest MonoString changes.
22038
22039 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22040
22041         * rand.c, rand.h: instance method icalls need to have an explicit
22042         this pointer as first argument in the C implementation.
22043
22044 2002-04-25  Nick Drochak <ndrochak@gol.com>
22045
22046         * icall.c: Fix typo in map for GetNonZeroBytes
22047
22048 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22049
22050         * string-icalls.c : String does now passes unit tests without any 
22051         errors, the following changes has been made:
22052         
22053         Implemented replace methods.
22054         Renaming of methods to (try) follow the standard.
22055         Fixed compare ordinal
22056         Made all memory allocated directly to function instead of via icall function.
22057         Small performance fix in is_in_array function
22058                         
22059  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
22060
22061         c (mono_string_Internal_ctor_charp_int_int):
22062         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
22063         sindex < 0, throw ArgumentOutOfRangeException instead of
22064         ArgumentNullException.
22065
22066         Added new check for length == 0, however
22067         I need to make it return String.Empty from the C code.
22068         
22069         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
22070         that calculate the length for us here.
22071         
22072         (mono_string_Internal_ctor_sbytep_int_int): Replaced
22073         mono_string_new_utf16 with mono_string_new, since value is utf8.
22074
22075 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22076
22077         * object.c: register the object for finalization if needed.
22078         Allocate one more char in the string for the terminating 0 char.
22079
22080 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22081
22082         * class.c, class.h, image.c: check if a type implemenst a destructor.
22083         Use the proper key for array class lookups.
22084         * icall.c: register the icalls in the System.GC class.
22085         * gc.c, gc.h: GC-related functions and icalls.
22086
22087 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22088
22089         * icall.c:
22090         * socket-io.c:
22091         * unicode.c: free some strings gotten from mono_string_to_utf8 and
22092         changed a couple of free () by g_free ().
22093
22094         * decimal.c: one-liner in the comments for decimal2string ().
22095
22096 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22097
22098         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
22099
22100 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
22101
22102         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
22103         * object.c (mono_runtime_invoke_array) : handle null in params
22104
22105 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22106
22107         * string-icalls.c: fixed bug in split (one off bug)
22108
22109 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22110
22111         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
22112         * icalls.c: added String::Equals as internal method
22113
22114 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
22115
22116         * threads.c: fixed bug in the double interlocked functions
22117
22118 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
22119
22120         * threads.c: implemented all of the new interlocked icalls.
22121         * string-icalls.c: fix a bug in insert.
22122         * icalls.c: added the icalls for interlocked, removed old string functions.
22123         
22124 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
22125
22126         * loader.c: fix off-by-one error when reading argument names.
22127
22128 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22129
22130         * profiler.c: win32 counter implementation (untested).
22131         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
22132         (the latter needs testing and more complete impl. from win32 folks).
22133
22134 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
22135
22136         * object.c: mono_array_new_full workaround mono_array_class_get
22137         problem.
22138
22139 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22140
22141         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
22142         * object.h (mono_string_chars): Changed casting type.
22143
22144 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22145
22146         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
22147                            method signatures to use gunichar2 instead of gint16.
22148
22149 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
22150
22151         * object.h, object.c: domain-specific versions of mono_object_new and
22152         mono_array_new.
22153
22154 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
22155
22156         * object.c: changed String layout
22157
22158         * string-icalls.c (mono_string_Internal_ctor_chara): added
22159         internal string constructors.
22160
22161 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
22162
22163         * threads.c: pass 'this' to the thread start routine.
22164
22165 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22166
22167         * string-icalls.c: fix IndexOf and LastIndexOf. Now
22168         InternalCompareStr don't call twice mono_string_cmp_char for the last
22169         character. Improved performance in mono_string_cmp_char.
22170
22171 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22172
22173         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
22174         code into its own library: libmonoruntime.
22175
22176 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
22177
22178         * object.h, object.c: changed array format so that szarrays do not
22179         require a bounds structure.
22180         * icall.c, appdomain.c: support for new szarray format.
22181
22182 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
22183
22184         * metadata.c: compare also the retuns type when comparing signatures:
22185         we didn't do this as an optimization since really overloaded methods
22186         must differ also in the arguments, but this doesn't work with
22187         low-level IL code (or when using explicit conversion operators: see
22188         bug#23498 for an example).
22189
22190 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22191
22192         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
22193
22194 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
22195
22196         * icall.c: make MonoType::GetElementType its own icall.
22197
22198 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22199
22200         * icall.c: remove MonoMethod_get_Name().
22201         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
22202         object.
22203
22204 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22205
22206         * string-icalls.c: optimized a few methods.
22207
22208 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22209
22210         * icall.c: added all new string internal calls
22211         * string-icalls.c: added, new string internal call implementation.
22212         * object.c: added mono_string_new_size for allocating a string a size
22213
22214 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
22215
22216         * object.c (mono_object_isinst): use the same code as in the
22217         optimized x86 version.
22218
22219 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22220
22221         * profiler.c: TSC-based timer code (faster and more accurate).
22222         Not hooked up in configure, yet (set USE_X86TSC to 1).
22223
22224 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
22225
22226         * profiler.c, profiler.h: track time spent compiling methods.
22227         * threads.c: track thread creation/destruction.
22228
22229 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
22230
22231         * profiler.c, profiler.h, profiler-private.h: profiling interface
22232         and sample implementation. Moved here so that it can be used also by
22233         the jit.
22234
22235 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
22236
22237         * reflection.c, reflection.h: keep types and other handles separate in
22238         the hash tables for referred tokens. Add guid for modules.
22239
22240 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22241
22242         * assembly.c: fix bugs found with valgrind.
22243         * metadata.h, metadata.c: added mono_metadata_guid_heap().
22244
22245 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
22246
22247         * threads: added icall support for getting current domain for
22248                    the thread.
22249  
22250 2002-04-13  Martin Baulig  <martin@gnome.org>
22251
22252         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
22253         (MonoDebugVarInfo): Added `index' field for register based addresses.
22254         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
22255         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
22256         `MonoDebugVarInfo *params' and `guint32 this_offset' with
22257         `MonoDebugVarInfo *this_var'.
22258
22259         * debug-symfile.c (relocate_variable): New static function to write
22260         a location description for a local variable or method parameter.
22261
22262 2002-04-12  Martin Baulig  <martin@gnome.org>
22263
22264         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
22265         stack offset and begin/end scope address of a local variable.
22266         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
22267         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
22268         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
22269
22270         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
22271         Added new relocation types for start/end scope of a local variable.
22272
22273 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22274
22275         * object.h: add mono_object_domain() macro.
22276         * reflection.c: handle typespecs.
22277         * icall.c: MonoMethod::get_Name() implementation.
22278
22279 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22280
22281         * icall.c: String::GetHashCode() icall implementation.
22282
22283 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22284
22285         * icall.c: String::IndexOfAny icall.
22286         * object.c, object.h: make array->max_length more useful.
22287         Intrduced mono_object_class() and mono_string_length() macros.
22288
22289 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22290
22291         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
22292         instead of g_unichar_isdigit.
22293
22294 2002-04-11  Nick Drochak  <ndrochak@gol.com>
22295
22296         * icall.c: Implement a simple Double.ToString().
22297
22298 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
22299
22300         * appdomain.h: only io-layer.h is supposed to be included.
22301         * icall.c: explicitly import environ. Fix warning.
22302
22303 2002-04-10  Nick Drochak  <ndrochak@gol.com>
22304
22305         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
22306                 return true even if it's not Daylight Savings time.
22307                 Only return false for the case where the function isn't
22308                 implemented for a plaform (read Windows).
22309
22310 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22311
22312         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
22313         data with a mutex.
22314
22315 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
22316
22317         * mempool.c (mono_mempool_alloc): only use g_malloc when
22318         absolutely necessary.
22319
22320 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
22321
22322         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
22323
22324         * class.c (mono_class_vtable): use domain mempool to allocate vtable
22325         (mono_class_proxy_vtable): use domain mempool
22326
22327 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22328
22329         * appdomain.h, appdomain.c: split initialization that requires the
22330         execution engine support into mono_runtime_init().
22331
22332 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
22333
22334         * class.c (mono_class_init): don't include vtable inside MonoClass
22335         to save some memory, gather some statistics.
22336         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
22337
22338 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22339
22340         * icall.c: internalcall implementation for ValueType.Equals().
22341
22342 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
22343
22344         * object.c (mono_message_init): moved 
22345         (mono_runtime_exec_main): new arch. independent impl.
22346         (mono_runtime_invoke_array): new method - like
22347         mono_runtime_invoke, but you can pass an array of objects.
22348         (mono_remoting_invoke): new arch. independent impl.
22349         (mono_message_invoke): new arch. independent impl.
22350         (mono_runtime_class_init): new arch. independent impl.
22351         (mono_runtime_object_init): new arch. independent impl.
22352
22353 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22354
22355         * metadata.c, object.c, reflection.c: documented the exported
22356         functions.
22357
22358 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
22359
22360         * icall.c: simpler code to pass the assembly builder data to corlib.
22361         Implement GetNestedTypes() internalcall.
22362
22363 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22364
22365         * class.c: warn if a type can't be loaded.
22366
22367 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
22368
22369         * image.h: typedef MonoImageOpenStatus
22370         * types.h: removed unused file
22371         
22372 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
22373
22374         * icall.c: Enum_ToObject accepts enum value arguments.
22375
22376 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22377
22378         * class.c: move initialization of properties, events and nested
22379         classes, so that they happen for interfaces, too.
22380
22381 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22382
22383         * icall.c: cleanup some ugly casts in Array_SetValue*.
22384
22385 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22386
22387         * icall.c: the values array fro enums is of the correct type, now.
22388         Implement (correctly) getFullName instead of assQualifiedName for
22389         MonoType.
22390         * reflection.h, reflection.c: added mono_type_get_name ().
22391
22392 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22393
22394         * assembly.c, image.h: for each MonoImage, record from wich assembly
22395         it was loaded.
22396         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
22397         Make Type.Assembly work.
22398
22399 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
22400
22401         * debug-symfile.h: use char* instead of gpointer to avoid
22402         unnecessary casts.
22403
22404         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
22405
22406         * icall.c (ves_icall_InternalExecute): impl. FielSetter
22407         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
22408
22409 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
22410
22411         * icall.c (mono_message_init): impl. (code cleanup)
22412         (ves_icall_InternalExecute): impl. FieldGetter
22413
22414         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
22415         defined we call all (non-static)methods through the vtable. 
22416
22417 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
22418
22419         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
22420         finalizer even though the memory is still referenced (and the chunk of
22421         memory is not freed).
22422
22423 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
22424
22425         * assembly.c: fix brokeness.
22426
22427 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
22428
22429         * class.c: kill some warnings. Check explicit interface method
22430         implementation also without considering the namespace.
22431         Load also literal strings in static class data.
22432
22433 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
22434
22435         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
22436         (default_assembly_name_resolver): Make the resolver take the
22437         "base" directory where the assembly was originally defined, so we
22438         can load DLLs that are in the same directory as the assembly that
22439         is being referenced.
22440
22441 2002-03-28  Dick Porter  <dick@ximian.com>
22442
22443         * file-io.h: 
22444         * file-io.c:
22445         * socket-io.c: 
22446         * unicode.h: 
22447         * unicode.c: Warning cleanups
22448
22449 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
22450
22451         * object.h, reflection.h: use the correct type instead of MonoObject.
22452
22453 2002-03-28  Martin Baulig  <martin@gnome.org>
22454
22455         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
22456         (mono_debug_update_symbol_file): Initialize classes if necessary.
22457
22458 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
22459
22460         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
22461         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
22462
22463 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
22464
22465         * assembly.h: fix function prototype.
22466         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
22467         * mono-endian.h: use const cast.
22468
22469 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
22470
22471         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
22472
22473 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
22474
22475         * loader.c: don't assert when a typeref can't be loaded, give
22476         a chance to the runtime to trow an exception instead.
22477         * loader.h: fix warning.
22478
22479 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
22480
22481         * class.c (mono_class_proxy_vtable): added proxy support
22482
22483 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
22484
22485         * icall.c: removed last of PAL calls, added System.Environment
22486         * file-io.h, file-io.c: MonoIO implementation
22487         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
22488
22489 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
22490
22491         * appdomain.c: do not use the byte marker in ldstr table lookup.
22492         * debug-helpers.c: allow two ':' to separate class and method name.
22493         * object.c: allocate arrays bounds with the GC, too.
22494         * verify: add a few more checks.
22495
22496 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
22497
22498         * reflection.c: output also literal strings. Allocate parameter data
22499         with GC_malloc() (thanks, Martin, for catching this!).
22500
22501 2002-03-26  Martin Baulig  <martin@gnome.org>
22502
22503         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
22504         include the `this' offset in the `param_offsets'.
22505
22506 2002-03-25  Martin Baulig  <martin@gnome.org>
22507
22508         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
22509         mono_debug_get_class() function to get the classes. Added new
22510         relocation types for arrays and strings.
22511         (mono_debug_get_class): New static function to search in all
22512         referenced assemblies for a metadata token.
22513
22514         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
22515
22516 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
22517
22518         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
22519         hold gc-allocated objects. Make the string heap a stream like the
22520         others. Removed duplicated code when writing stream info.
22521         Added asserts to catch possible buffer overflows. Set the sorted map
22522         for tables that need sorting. Added some documentation.
22523
22524 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
22525
22526         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
22527         for interned strings and vtables.
22528
22529 2002-03-24  Martin Baulig  <martin@gnome.org>
22530
22531         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
22532         it in the array since it was created with g_slist_prepend().
22533
22534 2002-03-24  Martin Baulig  <martin@gnome.org>
22535
22536         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
22537         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
22538         (mono_debug_method_from_token): Renamed to
22539         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
22540         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
22541
22542         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
22543         relocation types.
22544
22545         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
22546
22547 2002-03-24  Martin Baulig  <martin@gnome.org>
22548
22549         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
22550         (mono_debug_method_from_token): New func.
22551
22552         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
22553         New interncall, calls mono_debug_local_type_from_signature().
22554         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
22555         calls mono_debug_method_from_token().
22556
22557 2002-03-23  Martin Baulig  <martin@gnome.org>
22558
22559         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
22560         specifies the number of bytes to be converted, not the array size.
22561         Return the number of chars, not the number of bytes.
22562         (ves_icall_iconv_get_chars): The `byteCount' argument
22563         specifies the number of bytes to be converted, not the array size.
22564
22565 2002-03-23  Martin Baulig  <martin@gnome.org>
22566
22567         * reflection.h (MonoReflectionSigHelper): New type.
22568
22569         * reflection.c (mono_reflection_sighelper_get_signature_local),
22570         (mono_reflection_sighelper_get_signature_local): New functions.
22571
22572         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
22573         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
22574         interncalls.
22575
22576 2002-03-23  Martin Baulig  <martin@gnome.org>
22577
22578         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
22579         is_writeable is set.
22580         (mono_raw_buffer_update): New function to write the modified map
22581         back to disk.
22582
22583         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
22584
22585         * debug-symfile.c (mono_debug_update_symbol_file): Call
22586         mono_raw_buffer_update() when done writing.
22587
22588 2002-03-23  Martin Baulig  <martin@gnome.org>
22589
22590         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
22591
22592         * debug-symfile.c: Added support for arguments and local variables.
22593
22594 2002-03-23  Dick Porter  <dick@ximian.com>
22595
22596         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
22597         protected by ifdefs, hence breaking the w32 build.
22598
22599 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22600
22601         * object.c: implement is_interned() the right way.
22602
22603 2002-03-21  Martin Baulig  <martin@gnome.org>
22604
22605         * debug-symfile.[ch]: New files to handle debugging information
22606         files. There's also support to dynamically update these symbol
22607         files to include machine dependent information.
22608
22609 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
22610
22611         * threads.c (mono_thread_create): new function to create thread
22612         from C
22613
22614 2002-03-20  Martin Baulig  <martin@gnome.org>
22615
22616         * icall.c (ves_icall_InternalInvoke): Create a new object if the
22617         method is a constructor.
22618         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
22619         points to ves_icall_InternalInvoke().
22620
22621 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
22622
22623         * file-io.c: Flush shouldn't throw exceptions.
22624
22625 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
22626
22627         * file-io.c: FileStream flush support; FileSetLength now
22628         restores file pointer.
22629
22630 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
22631
22632         * class.c: set image for pointer classes.
22633
22634 2002/03/19  Nick Drochak <ndrochak@gol.com>
22635
22636         * sysmath.c: Forgot one.
22637
22638 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
22639
22640         * sysmath.c: Avoid redefining existing names.
22641
22642 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
22643
22644         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
22645         handled by runtime as icall rather than dllimport from libm.so
22646         * file-io.c, file-io.h: fixed handle argument type.
22647
22648 2002-03-18  Dick Porter  <dick@ximian.com>
22649
22650         * reflection.c (mono_image_get_type_info): rename interface to
22651         iface, because of "#define interface struct" on windows.
22652
22653 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
22654
22655         * class.c, class.h: rename and export mono_ptr_class_get().
22656         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
22657         * reflection.c, reflection.h, icall.c: better/saner type name
22658         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
22659         method signatures.
22660
22661 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
22662
22663         * class.c (mono_class_init): removed hardcoded GHC_SLOT
22664
22665         * icall.c (ves_icall_InternalInvoke): impl.
22666
22667 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
22668
22669         * reflection.c: output the interface map table, too.
22670
22671 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
22672
22673         * class.c (class_compute_field_layout): separate computation of 
22674         static field layout
22675
22676 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
22677
22678         * icall.c: added System.Buffer support.
22679         * file-io.c: moved file icalls from PAL to FileStream.
22680
22681 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
22682
22683         * icall.c (ves_icall_System_Object_GetHashCode): impl.
22684
22685 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
22686
22687         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
22688
22689 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22690
22691         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
22692
22693 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
22694
22695         * debug-helpers.{c,h}: moved here from monograph some useful functions
22696         to locate a method by name/signature in a class or image. Included
22697         also a small and flexible IL disassembler.
22698
22699 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
22700
22701         * reflection.c: fixup tokens in methods with small header size, too.
22702
22703 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
22704
22705         * object.c (mono_string_to_utf8): remove assert(!error), instead
22706         print a warning. 
22707
22708 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
22709
22710         * icall.c: update to the new mono_Array_class_get interface.
22711
22712 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
22713
22714         * appdomain.c, object.c: Boehm-GC enable.
22715         * icall.c: make get_data_chunk() support split data requests.
22716         Ensure a class is initialized in more cases. Return only the first
22717         property found in GetProperties() or the compiler gets confused. 
22718         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
22719         * reflection.h, reflection.c: add fixup mechanism for field and method
22720         tokens. Initialize assembly->typeref in a single place. Output
22721         properties after events. Support custom attributes for events, too.
22722         Typo fix for paramter custom attrs.
22723
22724 2002-03-07  Martin Baulig  <martin@gnome.org>
22725
22726         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
22727
22728 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
22729
22730         * class.c (mono_array_class_get): fix. for multi. dim. arrays
22731
22732 2002-03-06  Martin Baulig  <martin@gnome.org>
22733
22734         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
22735         non-zero lower bounds. See testcases #F10-#F13.
22736
22737 2002-03-05  Martin Baulig  <martin@gnome.org>
22738
22739         * exception.c (mono_get_exception_argument_out_of_range): New exception.
22740
22741         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
22742         ves_icall_System_Array_GetValue(), only calculate the absolute array position
22743         here.
22744         (ves_icall_System_Array_SetValue): Likewise.
22745         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
22746         as argument and does the actual work. This function is used when copying a
22747         multi-dimensional array.
22748         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
22749         now do all the widening conversions of value types.
22750         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
22751
22752 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22753
22754         * class.c: remove some magic numbers and use the smbolic names,
22755         instead. Added init_events() to load event info at class init time.
22756         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
22757         and mono_metadata_methods_from_event().
22758         * reflection.h, reflection.c: added support for writing out the evnets
22759         related information.
22760
22761 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
22762
22763         * reflection.h, icall.c: use a different method (GetInterfaces)
22764         to gather interface info and add isbyref, isprimitive and
22765         ispointer to the ves_icall_get_type_info() return value.
22766
22767 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
22768
22769         * class.h: stared adding support for events.
22770         * icall.c: split find_members implementation. Added debug icall to get
22771         the address of an object.
22772         * reflection.c: handle TypeBuilders in mono_type_get_object().
22773
22774 2002-03-01  Martin Baulig  <martin@gnome.org>
22775
22776         * icall.c (ves_icall_System_Array_GetLength): This must throw an
22777         ArgumentOutOfRangeException(), not an ArgumentException().
22778         (ves_icall_System_Array_GetLowerBound): Likewise.
22779         (ves_icall_System_Array_GetValue): Improved argument checking.
22780         (ves_icall_System_Array_SetValue): Improved argument checking.
22781
22782 2002-03-01  Martin Baulig  <martin@gnome.org>
22783
22784         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
22785         called with invalid arguments rather than just dying with g_assert().
22786         (ves_icall_System_Array_SetValue): Likewise.
22787         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
22788         raise a NotImplementedException instead.
22789         (ves_icall_System_Array_GetLength): Added argument checking.
22790         (ves_icall_System_Array_GetLowerBound): Added argument checking.
22791
22792 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
22793
22794         * object.h (mono_assert): new macros mono_assert and
22795         mono_assert_not_reached
22796
22797 2002-02-28  Martin Baulig  <martin@gnome.org>
22798
22799         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
22800         and "System::String::IsInterned" to "System::String::_IsInterned".
22801
22802 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
22803
22804         * icall.c: remove hacks for typebuilder. Added icall to create a
22805         modified type from a tybebuilder.
22806         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
22807         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
22808         to create a backing MonoClass for a TypeBuilder.
22809
22810 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22811
22812         * class.c, class.h: more refactoring of class init.
22813         Export mono_class_setup_mono_type() and mono_class_setup_parent().
22814
22815 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
22816
22817         * marshal.c, marshal.h: start of marshaling interface.
22818
22819 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
22820
22821         * icall.c: fix order in assembly qualified name icall.
22822
22823 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
22824
22825         * class.c: do not free str, since we store it in the hash table.
22826         * reflection.h: add label field to MonoILExceptionInfo.
22827         * reflection.c: handle references to more than one assembly. Handle
22828         case when there isn't a module created in the assembly.
22829
22830 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
22831
22832         * class.c: Fix typo. Start refactoring of class init code.
22833
22834 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
22835
22836         * appdomain.c: exit with 1 on error.
22837         * class.c: we already have the name in MonoClassField.
22838         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
22839         MonoStreamHeader instead of an offset of image->raw_metadata.
22840
22841 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
22842
22843         * appdomain.c (mono_init): Be even more descriptive about the error.
22844
22845 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
22846
22847         * appdomain.c: give the user an informative message when corlib can't
22848         be loaded.
22849
22850 2002-02-26  Martin Baulig  <martin@gnome.org>
22851
22852         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
22853         New icall to get the time zone data.
22854
22855 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22856
22857         * reflection.c: set virtual and raw size of section correctly.
22858         * threads.c: transfer domain information to newly created threads.
22859
22860 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
22861
22862         * class.c: when instancing a class in a domain, load the default
22863         vaules for static fields from the constant table. Fix System.Enum to
22864         not be an enum.
22865         * icall.c: implement Object::GetType() internalcall. Implemented
22866         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
22867         Fixed checking of binding flags in find_members().
22868         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
22869         * reflection.c: handle enumerations when writing to the constant
22870         table. Use a different object cache for types.
22871
22872
22873 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
22874
22875         * object.c (mono_object_isinst): fix for arrays
22876
22877         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
22878
22879 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
22880
22881         * object.c: don't use mprotect ()  and fix intern pool hash table
22882         lookup for big endian systems.
22883
22884 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
22885
22886         * icall.c: change type_is_subtype_of () signature.
22887
22888 2002-02-21  Mark Crichton  <crichton@gimp.org>
22889
22890         * rand.c, rand.h: Added random number generator for
22891         System.Security.Cryptography classes.
22892
22893         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
22894
22895         * icall.c: Added System.Security.Cryptography calls.
22896
22897 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
22898
22899         * class.c, icall.c, metadata.c: better support for pointer types.
22900         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
22901         * reflection.c: Add support for getting custom attrs for properties
22902         and simplify some code.
22903
22904 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
22905
22906         * icall.c: change getToken () and add custom attribute GetBlob()helper
22907         method.
22908         * reflection.h: add custom attrs array to the reflection builder structures.
22909         * reflection.c: encode and emit custom attributes for all the relevant
22910         reflection objects. Cache fieldref and methodref tokens. Change
22911         mono_image_create_token() interface to take a MonoDynamicAssembly.
22912         More complete custom attributes decoder. Load custom attributes for
22913         Assembly, Field, Method and Constructor objects, too. Make the
22914         returned array an Attribute[] one, not object[]. Added
22915         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
22916         custom attribute constructor.
22917
22918 2002-02-20  Dick Porter  <dick@ximian.com>
22919
22920         * icall.c:
22921         * rawbuffer.c:
22922         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
22923         problem code out for now).
22924
22925 2002-02-19  Radek Doulik  <rodo@ximian.com>
22926
22927         * object.c (mono_ldstr): use hash table to avoid multiple swapping
22928
22929 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
22930
22931         * icall.c: register the GetCustomAttributes method.
22932         * object.c, object.h: add mono_string_new_len ().
22933         * reflection.h, reflection.c: added mono_runtime_invoke(),
22934         mono_install_runtime_invoke(). Added
22935         mono_reflection_get_custom_attrs () to load custom attributes and
22936         create the attribute objects.
22937
22938 2002-02-19  Dick Porter  <dick@ximian.com>
22939         * threads-dummy-types.c:
22940         * threads-dummy-types.h:
22941         * threads-dummy.c:
22942         * threads-dummy.h:
22943         * threads-pthread-types.c:
22944         * threads-pthread-types.h:
22945         * threads-pthread.c:
22946         * threads-pthread.h:  Deleted obsolete files
22947
22948 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
22949
22950         * class.c (mono_class_vtable): runtime init the class when we
22951         allocate static class data.
22952
22953         * icall.c (ves_icall_System_Array_SetValue): check for null values.
22954
22955         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
22956         and String - but we will need generic marshalling support in the
22957         future. 
22958         (mono_init): set the domain name in a ms compatible way
22959
22960         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
22961         String[].
22962
22963 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
22964
22965         * object.c (mono_array_clone): use alloca() instead of g_malloc  
22966         for sizes
22967
22968         * appdomain.c (mono_domain_unload): impl.
22969
22970 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
22971
22972         * appdomain.c, object.c: fix intern pool implementation.
22973         * class.c: fix alignment code.
22974
22975 2002-02-16  Radek Doulik  <rodo@ximian.com>
22976
22977         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
22978         and s2 > s1, just copy lower bytes to be compatible with little
22979         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
22980         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
22981
22982         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
22983         force big_endian to be 1 for big endian machines 
22984         (ves_icall_iconv_new_decoder): ditto
22985
22986 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
22987
22988         * socket-io.c (convert_sockopt_level_and_name): If the system
22989         doesn't define SOL_IP or SOL_TCP, get them by hand using
22990         getprotobyname() and caching the values (because this could be a
22991         slow operation).
22992         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
22993         Use the appropriate struct when the system does support it. Ie,
22994         not all systems have struct ip_mreqn so use struct ip_mreq when
22995         appropriate.
22996
22997 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
22998
22999         * reflection.c: handle finally clauses.
23000
23001 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
23002
23003         * socket-io.c: use g_snprintf() instead of snprintf.
23004
23005 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
23006
23007         * reflection.c (mono_param_get_objects): Cast second argument to
23008         mono_method_get_param_names to a const char** to silence the
23009         compiler warning.
23010
23011         * appdomain.c (mono_domain_assembly_open): Put parens around the
23012         truth statement in the for-loop.
23013
23014         * unicode.c (iconv_convert): Got rid of a compiler warning about
23015         int i being unused when the system has a new iconv.
23016         (iconv_get_length): Same.
23017
23018         * image.c (load_class_names): Cast the second argument to
23019         g_hash_table_insert() to char* to hush compiler warnings about the
23020         arg being a const.
23021         (mono_image_open): Same here.
23022
23023         * socket-io.c: Don't conditionally include sys/filio.h or
23024         sys/sockio.h here anymore since we now get them from
23025         io-layer/io-layer.h
23026         (inet_pton): If the system doesn't support inet_aton, implement
23027         using inet_addr and also #define INADDR_NONE if it isn't defined
23028         by the system.
23029
23030 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
23031
23032         * metadata.c, metadata.h: added function to get packing and size info
23033         of a typedef.
23034         * reflection.h, reflection.c: handle field RVA data. Save info about
23035         the table layout if needed. Assign typedef indexes to all the types
23036         before dumping the info about them to avoid forward reference problems.
23037
23038 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
23039
23040         * socket-io.c (convert_sockopt_level_and_name): ifdef
23041         SO_ACCEPTCONN because it is not defined on my system (old debian)
23042
23043 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23044
23045         * opcode.c: use stddef.h to get NULL.
23046
23047 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
23048
23049         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
23050         for FIONBIO, FIONREAD and SIOCATMARK.
23051         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
23052         define INADDR_NONE and besides, inet_addr() is deprecated and
23053         should not be used. Use inet_pton() instead - it also has the
23054         added bonus that it can easily handle IPv6 addresses as well.
23055         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
23056
23057 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
23058
23059         * decimal.c: remove _MSC_VER conditional.
23060
23061 2002-02-13  Dick Porter  <dick@ximian.com>
23062
23063         * socket-io.c: 
23064         * icall.c: Internal calls for Blocking, Select, Shutdown,
23065         GetSocketOption and SetSocketOption
23066
23067 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23068
23069         * assembly.cs: better resolver: use it instead of some kludgy
23070         code.
23071
23072 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
23073
23074         * reflection.c: the best way to speed-up the compiler is to avoid
23075         infinite loops.
23076
23077 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
23078
23079         * class.c (mono_class_vtable): changed the object layout
23080         (obj->vtable->class). 
23081         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
23082
23083 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23084
23085         * assembly.c: look for assemblies in the assembly dir, too.
23086
23087 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23088
23089         * class.c: fix thinko in mono_class_from_type().
23090
23091 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23092
23093         * exception.h, exception.c: added TypeLoadException.
23094         * object.h, object.c: added mono_array_clone ().
23095         * icall.c: handle throwOnError in AssemblyGetType().
23096         Added Array.Clone().
23097         * opcode.h, opcode.c: use a single value for the opcode val.
23098         Compile fix for non-gcc compilers.
23099
23100 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
23101
23102         * opcodes.c, opcodes.h: export interesting info about opcodes.
23103
23104 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
23105
23106         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
23107         icalls. 
23108
23109         * class.c (class_compute_field_layout): set element_class for enums
23110         (mono_class_create_from_typedef): set element_class for normal classes
23111
23112         * icall.c (ves_icall_System_Enum_get_value): impl.
23113
23114         * class.c (mono_class_create_from_typedef): do not set valuetype
23115         flag for System.ValueType and System.Enum
23116
23117 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
23118
23119         * unicode.c (iconv_convert): fix big endian problem.
23120
23121 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
23122
23123         * class.c: add asserts if we are ever going to scribble over memory.
23124         * socket-io.c: not all systems have AF_IRDA defined.
23125
23126 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
23127
23128         * class.c (class_compute_field_layout): do not consider static
23129         fields to compute alignment
23130
23131 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
23132
23133         * appdomain.c (mono_appdomain_get): impl.
23134         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
23135
23136 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
23137
23138         * icall.c: ignore "file://" prefix when loading an assembly.
23139
23140 2002-01-23  Dick Porter  <dick@ximian.com>
23141
23142         * socket-io.c:
23143         * icall.c:
23144         * Makefile.am: Added socket support
23145
23146 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
23147
23148         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
23149         code back.  This should return the assemblies that are loaded by
23150         the runtime on behalf of an application domain. 
23151
23152         The current implementation is still broken, it just returns every
23153         assembly loaded, but until we get real applications domain this
23154         will do.
23155
23156 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
23157
23158         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
23159         AppDomain object.
23160
23161 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
23162
23163         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
23164         the mono_class_from_name lookup.
23165         (ves_icall_get_parameter_info): ditto.
23166         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
23167         method.
23168         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
23169
23170 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
23171
23172         * class.c: load also nested classes on class init.
23173         System.ValueType instance methods gets passed boxed
23174         values, unless methods in derived classed that get a pointer to the
23175         data.
23176         * icall.c: use better name parsing code in GetType().
23177         * image.c, image.h: add mono_image_loaded ().
23178         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
23179         * reflection.c, reflection.h: added mono_reflection_parse_type().
23180
23181 2002-01-22  Veronica De Santis <veron78@interfree.it>
23182
23183         * icall.c : Added mapping of internal calls for Manual and Auto reset events
23184         * threads.c : Added the implementation of internal calls for events
23185         * threads.h : Added prototypes of internal calls for events
23186         
23187 2002-01-21  Radek Doulik  <rodo@ximian.com>
23188
23189         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
23190
23191 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
23192
23193         * class.c (mono_class_init): set min_align to 1 (instead of 0)
23194         (mono_class_value_size): use min_align
23195
23196 2002-01-20  Dick Porter  <dick@ximian.com>
23197
23198         * threads.h:
23199         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
23200         so it compiles on w32.
23201
23202 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
23203
23204         * metadata.c (mono_type_stack_size): impl.
23205
23206         * class.c (mono_class_get_field): impl. memberref token
23207
23208 2002-01-16 Veronica De Santis <veron78@@interfree.it>
23209
23210         * icall.h : Added the internal calls mapping for CreateMutex_internal
23211                     and ReleaseMutex_internal.
23212         * threads.h : Added the prototype of mutexes internal calls.
23213         * threads.c : Added the implementations of mutexes internal calls.
23214
23215 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
23216
23217         * metaparse.h: removed unused file.
23218         * reflection.c, reflection.h: added stream_data_align () function 
23219         to align data in streams and keep stream aligned. Add support for
23220         exception support in method headers.
23221
23222 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
23223
23224         * unicode.c: make iconv_convert () return the number of bytess written
23225         in the output buffer.
23226
23227 2002-01-15  Dick Porter  <dick@ximian.com>
23228         * threads.c: Make the runtime's idea of infinite timeouts coincide
23229         with the class library's
23230
23231         Fix a particularly egregious bug in mono_thread_cleanup(). That
23232         code was so utterly bogus it must have been written on a Monday.
23233
23234 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
23235
23236         * reflection.h: add subtypes field to TypeBuilder.
23237         * reflection.c: encode constants for literal fields.
23238         Handle subtypes. Fix user string token (and add a zero byte)
23239         at the end.
23240         
23241 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
23242
23243         * class.c (mono_class_init): bug fix: assign slot numbers for
23244         abstract methods.
23245
23246 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23247
23248         * reflection.c: don't try to output a code RVA for abstract methods.
23249         Small fixes for method header format. Output parameter info to the
23250         ParamDef table. Save method overriding info to MethodImpl table.
23251         Fix property support. Allow typedef.extends to be a type in the
23252         building assembly.
23253         * verify.c: fix off-by-one error.
23254
23255 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
23256
23257         * class.c: fix mono_class_from_mono_type () for szarray types.
23258         Remove unused cache check in mono_class_from_type_spec().
23259         * icall.c: *type_from_name () functions handle simple arrays and byref.
23260         * reflection.c: handle byref and szarray types. Handle methods without
23261         body (gets P/Invoke compilation working). Handle types and fields in
23262         get_token ().
23263         * reflection.h: add rank to MonoTypeInfo.
23264
23265 2002-01-10  Dick Porter  <dick@ximian.com>
23266
23267         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
23268         internal calls
23269
23270 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
23271
23272         * icall.c: initialize class in type_from_handle ().
23273         Loop also in parent classes for get_method ().
23274         * reflection.c: properly encode class and valuetype types.
23275         Start on encoding TypeBuilder types. Handle fieldrefs.
23276         Use correct length when registering a user string.
23277         Handle ConstructorBuilder and MonoMethod in get_token ().
23278         Make mono_type_get_object () aware of cached types.
23279         * object.c: back out change to mono_string_new ().
23280
23281 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
23282         * object.c: mono_string_new should return a NULL when the string 
23283         passed in is NULL -- not try to deference it.
23284         
23285 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
23286
23287         * icall.c: hack to make IsSubType work for TypeBuilders.
23288         * reflection.c: emit constructors before methods.
23289         Retrieve param names in mono_param_get_objects().
23290
23291 2002/01/05  Nick Drochak  <ndrochak@gol.com>
23292
23293         * Makefile.am: fix list of headers and sources so automake 1.5
23294         doesn't complain. Removed \# at end of list.
23295
23296 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
23297
23298         * reflection.c: get token for a method ref. Set return type of
23299         constructor to void.
23300         * loader.c: debug message.
23301         * class.c: typo fix.
23302
23303 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
23304
23305         * icall.c: fix array init with rank > 1. FindMembers
23306         loops in parent class as well.
23307         * image.c: do not insert nested types in name cache.
23308         * reflection.c: warning fix.
23309         * reflection.h: add override method (for interface impl).
23310
23311 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
23312
23313         * metadata.c: fix customattr decoding.
23314
23315 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
23316
23317         * rawbuffer.cs: Added native Win32 implementation, avoids using
23318         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
23319
23320 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
23321
23322         * class.c: make the low-level routines handle the cache.
23323
23324 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
23325
23326         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
23327
23328 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
23329
23330         * class.c: fix mono_array_element_size() for objects.
23331         * class.h, class.c: add properties to MonoClass and load them
23332         at init time.
23333         * icall.c: check with isinst() when assigning a value to an array
23334         instead of requiring the classes to match exactly.
23335         Implemented icall for System.Type::GetType().
23336         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
23337         enums. Handle bindingflags when looking for methods and fields.
23338         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
23339         and mono_metadata_methods_from_property().
23340         * reflection.h, reflection.c: added structures for propreties,
23341         parameters and enums. Implemented mono_property_get_object() and
23342         mono_param_get_objects().
23343
23344 2001-12-18  Dick Porter  <dick@ximian.com>
23345
23346         * file-io.c: Use mono_string_to_utf16() instead of
23347         mono_string_chars()
23348
23349         * object.c: Added mono_string_to_utf16(), which copies the non
23350         NULL-terminated MonoString into a new double-null-terminated
23351         buffer.
23352
23353 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
23354
23355         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
23356
23357 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
23358
23359         * file-io.c: raise exceptions if handle is invalid.
23360
23361 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
23362
23363         * assembly.c: yet another check for mscorlib.
23364         * class.c, class.h: load nesting info for classes.
23365         * icall.c: many new functions to support the Reflection classes.
23366         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
23367         * reflection.h, reflection.c: mono_image_create_token(),
23368         mono_assembly_get_object(), mono_type_get_object(),
23369         mono_method_get_object(), mono_field_get_object(): methods to return
23370         objects that parallel the C representation of assemblies, types,
23371         methods, fields.
23372
23373 2001-12-11  Dick Porter  <dick@ximian.com>
23374
23375         * icall.c:
23376         * file-io.c: Internal calls for file IO.
23377
23378 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
23379
23380         * tabledefs.h: missing FileAttributes.
23381         * verify.h, verify.c: use is_valid_string () to simplify and check for
23382         valid strings more correctly. Fix warnings and speeling.
23383         Check more tables: Filed, File, ModuleRef, StandAloneSig.
23384         Check code: branches, maxstack, method calls.
23385
23386 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
23387
23388         * object.c (mono_object_allocate): removed static, so that the jit
23389         can allocate value types.
23390
23391         * icall.c (ves_icall_System_DateTime_GetNow): impl.
23392
23393 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
23394
23395         * class.c: init enum types right away and register the
23396         token->MonoClass map in mono_class_create_from_typedef ().
23397         * verify.h, verify.c: first cut of the verifier.
23398         * pedump.c: add --verify switch to verify metadata tables.
23399         * tabledefs.h: add some missing enums.
23400
23401 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
23402
23403         * class.c (mono_install_runtime_class_init): impl.
23404         (mono_class_init): renamed mono_class_metadata_init to
23405         mono_class_init, also removed the metadata_inited flag
23406
23407         * object.c (mono_object_isinst): use faster algorithm
23408
23409 2001-11-30  Radek Doulik  <rodo@ximian.com>
23410
23411         * mono-endian.h: reverted last change
23412         added function prototypes
23413
23414         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
23415         add mono-endian.c back
23416
23417         * mono-endian.c: returned back, as Paolo pointed out, it's needed
23418         for unaligned access, I've mistaked it with endianess. I am
23419         sorry.
23420         (mono_read16): fix reverted endianess
23421         (mono_read64): ditto
23422         (mono_read32): ditto
23423
23424 2001-11-30  Dick Porter  <dick@ximian.com>
23425
23426         * exception.c: Implement mono_exception_from_name()
23427
23428 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
23429
23430         * metadata.h, metadata.c: remove params_size and locals_size and their
23431         calculation from the metadata code: they are only usefult to the
23432         interp.
23433
23434 2001-11-29  Radek Doulik  <rodo@ximian.com>
23435
23436         * object.c (mono_ldstr): swap bytes here, it's probably not the
23437         best place, but works for me now, I'll redo it once I know mono
23438         better, also note that I add PROT_WRITE and don't reset back, also
23439         note that it's only affects big endians, so x86 should be OK
23440
23441         * mono-endian.h (read16): use just glib macros for both endians
23442
23443         * mono-endian.c: removed as glib macros are used in in
23444         mono-endian.h so we don't need to care about endianess for read
23445         macros as glib does that for us already
23446
23447 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
23448
23449         * class.h, class.h: take minimum alignment into consideration so
23450         that the fields of a class remain aligned also when in an array.
23451
23452 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
23453
23454         * loader.h, loader.c: add mono_method_get_param_names().
23455         * class.c: 0-init class fields.
23456
23457 2001-11-26  Dick Porter  <dick@ximian.com>
23458
23459         * icall.c:
23460         * threads-types.h:
23461         * threads.c: New file that handles System.Threading on all platforms
23462
23463         * object.c: 
23464         * object.h: Remove the synchronisation struct from MonoObject,
23465         replace it with a pointer that gets initialised on demand
23466
23467         * Makefile.am: Replace all the system-specific threading code with
23468         a single file that uses the new wrapper library
23469
23470 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
23471
23472         * class.c, class.h: add mono_install_trampoline() so that the runtime
23473         can register a function to create a trampoline: removes the ugly
23474         requirement that a runtime needed to export arch_create_jit_trampoline.
23475         * object.h, object.c: added mono_install_handler() so that the runtime
23476         can install an handler for exceptions generated in C code (with
23477         mono_raise_exception()). Added C struct for System.Delegate.
23478         * pedump.c: removed arch_create_jit_trampoline.
23479         * reflection.c: some cleanups to allow registering user strings and
23480         later getting a token for methodrefs and fieldrefs before the assembly
23481         is built.
23482         * row-indexes.h: updates and fixes from the new ECMA specs.
23483
23484 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
23485
23486         * class.h, class.c: add enum_basetype field to MonoClass.
23487         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
23488         to get index in the constant table reated to a field, param or
23489         property.
23490         * reflection.h, reflection.c: handle constructors. Set public-key and
23491         version number of the built assembly to 0.
23492         * row-indexes.h: update from new ECMA spec.
23493
23494 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
23495
23496         * class.h, class.c: add a max_interface_id to MonoClass.
23497         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
23498         since it's used to do that. Added mono_type_type_from_obj().
23499         Make GetType() return NULL instead of segfaulting if the type was not
23500         found. Handle simple arrays in assQualifiedName.
23501         * object.h: add a struct to represent an Exception.
23502         * reflection.c: output call convention in method signature.
23503         Add code to support P/Invoke methods and fixed offsets for fields.
23504
23505 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
23506
23507         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
23508         the value.
23509         * icall.c: use mono_array_addr instead of array->vector: fixes the
23510         reflection image writing.
23511         * reflection.c: init call convention byte to 0 in method signature.
23512         Encode the property signature. Don't output property-related methods
23513         twice. Really process the properties for a type (don't cast a field to
23514         a property, my mom always told me that).
23515         Fix 64 bit issues in pointer alignment in a different and more
23516         readable way.
23517
23518 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
23519
23520         * loader.h: Removed type class from MonoDefaults, added monotype
23521
23522         * loader.c: Loaded MonoType, removed loading of Type
23523
23524         * icall.c (my_mono_new_object): Now returns a System.MonoType,
23525         and fills in System.Type._impl with a RuntimeTypeHandle rather
23526         than the actual MonoClass *
23527
23528         (ves_icall_type_from_handle): change from type_class to
23529         monotype_class
23530
23531         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
23532         implemented
23533
23534         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
23535         implemented
23536
23537         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
23538
23539         (ves_icall_System_Reflection_Assembly_GetType): implemented
23540
23541         (ves_icall_System_MonoType_assQualifiedName): implemented
23542
23543         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
23544
23545 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
23546
23547         * assembly.c (mono_assembly_open): Implement a cache for the
23548         assemblies. 
23549
23550         (mono_assembly_close): only destroy the assembly when the last
23551         reference is gone.
23552         
23553 2001-11-09  Dick Porter  <dick@ximian.com>
23554
23555         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
23556
23557 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
23558
23559         * class.c (mono_class_metadata_init): bug fix: compute the right slot
23560
23561 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
23562
23563         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
23564         from Martin Weindel.
23565         * object.h: add mono_string_chars ().
23566
23567 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
23568
23569         * reflection.c (build_compressed_metadata): Eliminates warnings
23570         and uses 64-bit clean code.
23571
23572         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
23573         (mono_type_equal): Change signature to eliminate warnings.
23574
23575 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
23576
23577         * icall.c, loader.c: remove the internalcall array constructors.
23578         Changes to match the new MonoArray structure.
23579         * object.h, object.c: an array object doesn't allocate an extra
23580         vector. Add mono_array_new_full () to create jagged arrays easily.
23581
23582 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
23583
23584         * metadata.h, metadata.c: add mono_metadata_field_info () to
23585         retreive all the info about a field from vairous tables.
23586         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
23587         * class.h, class.c: augment MonoClassField with more info.
23588         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
23589         policy and load a field's RVA if needed.
23590
23591 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
23592
23593         * class.c (mono_class_metadata_init): create a trampoline for all
23594         virtual functions instead of actually compiling them.
23595
23596 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
23597
23598         * class.h, class.c: include name in MonoClassField.
23599         * class.c: fix fundamental type of System.Object and System.String.
23600         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
23601         tokens in ldtoken.
23602         * icall.c: remove internalcalls for the Reflection stuff that is now
23603         done in C# code.
23604         * loader.c: mono_field_from_memberref () implementation.
23605         * mono-endian.c: thinko (s/struct/union/g).
23606         * object.c, object.h: make the mono_string_* prototypes actually use
23607         MonoString instead of MonoObject.
23608         * reflection.c, reflection.h: updates for changes in the reflection
23609         code in corlib: we use C structures that map to the actual C# classes.
23610         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
23611         fat method header if needed and use the info from the ILGenerator for
23612         methods. Handle fields in types. Misc fixes.
23613
23614 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
23615
23616         * class.c (mono_class_metadata_init): bug fix: always allocate
23617         space for static class data
23618
23619 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
23620
23621         * class.c (mono_compute_relative_numbering): use relative
23622         numbering to support fast runtime type checks.
23623
23624 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
23625
23626         * class.c (mono_class_create_from_typeref): added debugging output
23627         to print class name when MonoDummy is returned instead of real class
23628
23629 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
23630
23631         * class.c (mono_class_metadata_init): interface offset table now
23632         contains pointers into the vtable - this is more efficient for the jit
23633
23634 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
23635
23636         * class.c (mono_class_metadata_init): use a temporary vtable (the
23637         old algorithm only worked for the interpreter, but not for the jit)
23638
23639 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
23640
23641         * loader.c (method_from_memberref): use mono_class_get to get the
23642         class of an array instead of using System.Array directly.
23643         (mono_get_method): also add MEMBERREF methods to the method cache
23644         which usefull for arrays.
23645
23646 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
23647
23648         * pedump.c (arch_compile_method): added to compute vtable entry
23649
23650         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
23651         number of interfaces.
23652         
23653         * class.h: merged MonoArrayClass into MonoClass
23654
23655         * class.c (mono_class_create_from_typedef): compute the vtable size and
23656         allocate space to include the vtable inside MonoClass
23657         (mono_class_metadata_init): initialize the vtable
23658
23659 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
23660
23661         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
23662         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
23663         * image.c: endian fixes by Laurent Rioux.
23664         * object.h, object.c: rename MonoStringObject to MonoString and
23665         MonoArrayObject to MonoArray. Change some function names to conform to
23666         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
23667         guint16* as first argument, so don't use char*.
23668         Provide macros to do the interesting things on arrays in a portable way.
23669         * threads-pthread.c: updates for the API changes and #include <sched.h>
23670         (required for sched_yield()).
23671         * icall.c: updates for the API changes above.
23672         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
23673         platforms that need them.
23674
23675 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
23676
23677         * class.c: set the correct type for all the fundamental
23678         type when loading the class.
23679
23680 2001-10-05  Dick Porter  <dick@ximian.com>
23681
23682         * threads-pthread.c (pthread_mutex_timedlock): Simple
23683         compatibility version for C libraries that lack this call.
23684
23685 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
23686
23687         * class.c: MonoTypes stored in MonoClass are stored as
23688         fundamental MonoTypes when the class represents a
23689         fundamental type (System.Int32, ...).
23690         The TypeHandle return by ldtoken is a MonoType*.
23691         * icall.c: ves_icall_get_data_chunk () write out all the
23692         PE/COFF stuff. Implement ves_icall_define_method (),
23693         ves_icall_set_method_body (), ves_icall_type_from_handle ().
23694         * image.c: properly skip unknown streams.
23695         * loader.h, loader.c: add type_class to mono_defaults.
23696         * metadata.c, metadata.h: export compute_size () as
23697         mono_metadata_compute_size () with a better interface.
23698         Typo and C&P fixes.
23699         * pedump.c: don't try to print the entry point RVA if there is no entry point.
23700         * reflection.c, reflection.h: many cleanups, fixes, output method
23701         signatures and headers, typedef and typeref info, compress the metadata
23702         tables, output all the heap streams, cli header etc.
23703         * row-indexes.h: typo fixes.
23704
23705 2001-10-04  Dick Porter  <dick@ximian.com>
23706
23707         * object.h: Add a synchronisation mutex struct to MonoObject
23708
23709         * object.c (mono_new_object): Initialise the object
23710         synchronisation mutexes
23711
23712         * icall.c: System.Threading.Monitor internal calls
23713         
23714         * threads-pthread.h:
23715         * threads-pthread.c: System.Threading.Monitor internal calls
23716
23717         * threads-types.h: New file, includes the system-specific thread
23718         structures
23719         
23720         * threads-pthread-types.h:
23721         * threads-pthread-types.c: New files, handle pthread-specific
23722         synchronisation types
23723
23724         * threads-dummy-types.h: 
23725         * threads-dummy-types.c: New files of dummy support for
23726         thread-specific types
23727
23728         * metadata.c:
23729         * image.c:
23730         * pedump.c: include mono-endian.h not endian.h
23731         
23732         * Makefile.am: More threads files.
23733         Name mono-endian.h not endian.h
23734
23735 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
23736
23737         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
23738         stuff and implement a few more bits.
23739         * icall.c: a field needs to be dereferenced twice. Do not use the same
23740         name for two variables in the same scope.
23741         * image.c, image.h: cleanups.
23742
23743 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
23744
23745         * class.c (mono_class_metadata_init): bug fix: compute the right size
23746
23747 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
23748
23749         * icall.c: implemented some of the Reflection internalcalls.
23750         * image.c, image.h: start writing out the PE/COFF image.
23751         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
23752         that does the reverse than decode_blob_size ().
23753         * object.c: use mono_metadata_encode_value (). Move here
23754         temporary implementation of mono_string_to_utf8 ().
23755         * rawbuffer.c: make malloc_map static.
23756
23757 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
23758
23759         * metadata.c: fix type comparison for arrays.
23760         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
23761         Added a couple of new classes to monodefaults.
23762         * icall.c: added a couple of Reflection-related internalcalls.
23763         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
23764         Added a byval_arg MonoType to MonoClass.
23765
23766 2001-09-28  Dick Porter  <dick@ximian.com>
23767
23768         * icall.c:
23769         * threads-pthread.h: 
23770         * threads-pthread.c: Implemented internal calls for
23771         LocalDataStoreSlot operations.  Applied mutexes around all shared
23772         data.  Reworked the thread creation and Start() operations to
23773         avoid a race condition.
23774         
23775         * threads-dummy.h:
23776         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
23777
23778 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
23779
23780         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
23781
23782 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
23783
23784         * class.c, loader.c: warn and return NULL instead of erroring out.
23785         * icall.c: added System.AppDomain::getCurDomain().
23786         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
23787
23788 2001-09-25  Dick Porter  <dick@ximian.com>
23789
23790         * threads-pthread.h:
23791         * threads-pthread.c: Implemented timed thread joining and added
23792         System.Threading.Thread::Join_internal internal call
23793
23794         * icall.c: Added System.Threading.Thread::Join_internal internal call
23795
23796         * threads-dummy.h:
23797         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
23798
23799 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
23800
23801         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
23802         mono_string_intern () to implement the semantics of the ldstr opcode
23803         and the interning of System.Strings.
23804         * icall.c: provide hooks to make String::IsIntern and String::Intern
23805         internalcalls.
23806
23807 2001-09-23  Dick Porter  <dick@ximian.com>
23808
23809         * threads-dummy.c: 
23810         * threads-dummy.h: New files of dummy threading routines
23811
23812         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
23813         support code based on system specifics
23814
23815         Rename PTHREAD_LIBS to THREAD_LIBS
23816         
23817 2001-09-23  Dick Porter  <dick@ximian.com>
23818
23819         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
23820         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
23821         internal calls.
23822         (mono_thread_init): Set up a Thread object instance to return when
23823         the main thread calls Thread.CurrentThread
23824         (mono_thread_cleanup): Wait for all subthreads to exit
23825
23826         * icall.c: New internal calls for System.Threading.Thread::Sleep
23827         (including Schedule) and CurrentThread
23828
23829         * threads.h: New file, to insulate thread-specific stuff from the
23830         rest of the code
23831
23832 2001-09-21  Dick Porter  <dick@ximian.com>
23833
23834         * threads-pthread.h: 
23835         * threads-pthread.c: New file, for handling pthreads-style
23836         threading support.  Start() now starts a new thread and executes
23837         the ThreadStart delegate instance.
23838
23839         * icall.c: Added the internalcall for
23840         System.Threading.Thread::Start_internal
23841
23842         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
23843
23844 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
23845
23846         * loader.c: work around the different signatures for delegates
23847         constructors csc generates in compiled code vs the ones compiled in mscorlib.
23848
23849 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
23850
23851         * class.h, class.c: add mono_class_get_field_from_name ().
23852         * *: Fix C comments and other ANSI C issues.
23853
23854 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
23855
23856         * endian.h, assembly.c: fix some endianness issues.
23857
23858 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
23859
23860         * loader.h, load.c: add delegate_class to mono_defaults.
23861         Handle runtime provided methods in mono_get_method ().
23862
23863 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
23864
23865         * loader.c (mono_get_method): use pinvoke for internal call
23866
23867         * icall.c: use pinvoke for internal call
23868
23869         * loader.c (method_from_memberref): set the method name
23870
23871 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
23872
23873         * metadata.c: help the compiler generate better code for
23874         mono_class_from_mono_type ().
23875
23876 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
23877
23878         * class.c (mono_class_metadata_init): delayed computing of the
23879         class size to mono_class_metadata_init ()
23880
23881 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
23882
23883         * class.c, class.h: add an interfaces member to MonoClass.
23884         * image.c, image.h: add assembly_name field to MonoImage
23885         from the assembly table.
23886         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
23887
23888 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
23889
23890         * class.c: Handle Array in mono_class_from_mono_type ().
23891         * metadata.c, pedump.c: some endian fixes.
23892
23893 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
23894
23895         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
23896         * metadata.c: fix small problem introduced with the latest commit.
23897
23898 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
23899
23900         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
23901         We don't need a MonoMetadata pointer anymore to compare signatures in
23902         mono_metadata_signature_equal (), update callers.
23903         Reduced memory usage an number of allocations for MonoMethodHeader and
23904         MonoMethodSignature.
23905
23906 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
23907
23908         * metadata.c: added compare for szarray.
23909
23910 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
23911
23912         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
23913         and add a couple more types to it and mono_defaults. Give an hint on
23914         classes that need implementing in our corlib and are referenced
23915         in mscorlib.
23916
23917 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
23918
23919         * class.h, class.c: keep track if a class is also an Enum.
23920         * loader.c: Implement a couple more types for use in libffi
23921         marshalling. Gives better diagnostics when failing to dlopen
23922         a library. Set method->klass for P/Invoke methods, too.
23923
23924 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
23925
23926         * class.c, class.h: add a MonoType this_arg to MonoClass that
23927         represents a pointer to an object of the class' type that
23928         can be used by the interpreter and later the type cache.
23929         Add best guess alignment info for valuetype objects.
23930
23931 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
23932
23933         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
23934         into MonoType: one less level of indirection and allocation and
23935         simplifies quite a bit of code. Added cache for MonoTypes that are
23936         used frequently, so that we don't need to allocate them all the time.
23937
23938 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
23939
23940         * class.c (mono_class_create_from_typedef): System.Enum is also a
23941         value type, although it does not derive from System.ValueType
23942         (maybe a bug in the ms compiler?)
23943
23944         * metadata.c (mono_type_size): return the right size for value types
23945
23946         * loader.c (mono_get_method): only initialize method header if not abstract
23947
23948         * class.c (mono_class_from_mono_type): use mono_default values. 
23949
23950 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
23951
23952         * *: use MonoClass pointers instead of <type_tokens>
23953         
23954         * class.h: new flag: metadata_inited.
23955
23956         * class.c (mono_class_metadata_init): impl.
23957         (mono_class_instance_size): impl.
23958         (mono_class_data_size): impl.
23959
23960 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
23961
23962         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
23963         MonoClass now has the name and name_space fields. 
23964         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
23965         mono_get_method () takes and optional MonoClass as argument.
23966         Removed mono_typedef_from_name() and added mono_class_token_from_name()
23967         instead that takes advantage of a map from class names to typedef
23968         tokens in MonoImage.
23969
23970 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
23971
23972         * metadata.c: zero is not a valid alignment boundary.
23973         Merge MONO_TYPE_VOID in default decoding code.
23974
23975 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
23976
23977         * image.h: merged MonoMetadata into MonoImage
23978
23979         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
23980         identify the type of elements.
23981
23982 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
23983
23984         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
23985         * cil-coff.h: split MonoMSDOSHeader and add size info.
23986         * image.c: add some consistency checks.
23987         * metadata.c: fix row size computation: one programmer
23988         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
23989         add explanation for the locator routine.
23990         Fix decoding of size in method header.
23991         
23992 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
23993
23994         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
23995         (g_concat_dir_and_file): Bring g_concat_dir_and_file
23996         function from gnome-libs.  This uses the right path separator
23997         based on the OS, and also works around a bug in some systems where
23998         a double slash is not allowed. 
23999         (default_assembly_name_resolver): Use g_concat_dir_and_file
24000         (mono_assembly_open): ditto.
24001
24002 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
24003
24004         * metadata.c (mono_metadata_signature_equal): impl.
24005
24006         * *: void is now a realy MonoType (instead of using NULL)
24007         
24008         * metadata.c (do_mono_metadata_parse_type): use
24009         mono_metadata_parse_type to parse void value.
24010
24011 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
24012
24013         * metadata.c, metadata.h: in the signature and method header store
24014         only the space required for holding the loca vars and incoming arguments.
24015
24016 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
24017
24018         * metadata.c (do_mono_metadata_parse_type): treat void like any
24019         other type (instead of assigning NULL);
24020
24021 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
24022
24023         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
24024
24025 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
24026
24027         * image.c (do_mono_image_open): added a cache for arrays.
24028
24029 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24030
24031         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
24032         decode a single column from a row in a metadata table and changes
24033         to take advantage of it in the typedef locator (gives a nice speed up).
24034         Store offset info for function params.
24035
24036 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
24037
24038         * image.h (MONO_IMAGE_IS_CORLIB): removed 
24039
24040 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
24041
24042         * assembly.c: how could mono_assembly_close () had ever worked?
24043         * metadata.c, metadata.h: provide offset info for local vars.
24044         Implement mono_type_size () to take care of alignment as well
24045         as size (it was mono_field_type_size in cli/class.c before).
24046
24047 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
24048
24049         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
24050
24051         * assembly.h (CORLIB_NAME): set to corlib.dll
24052
24053         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
24054
24055 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
24056
24057         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
24058         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
24059         tokentype.h: massive namespace cleanup.
24060
24061 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
24062
24063         * metadata.h, metadata.c: decode exception clauses when parsing method header.
24064
24065 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
24066
24067         * metadata.c (mono_metadata_free_type): added check for type !=
24068         NULL (void) before calling mono_metadata_free_type()
24069
24070 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
24071
24072         * metadata.h, row_indexes.h: added header with enumerations to use
24073         to index in the columns from tables in metadata and to decode coded
24074         tokens: we should start using this instead of embedding magic numbers
24075         all over the code.
24076
24077 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
24078
24079         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
24080         Move metadata_t info from cli_image_info_t to MonoImage, where
24081         it's easily accessible. Changed all the uses accordingly.
24082         Added the method and class caches to MonoImage.
24083         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
24084         and mono_metadata_decode_value () signature to be more consistent
24085         with the other parse functions (and simplify code). Taken advantage
24086         of zero-length array allocation with GCC. Removed reduntant (and
24087         wrong) MonoFieldType struct and use MonoParam instead. Changed
24088         mono_metadata_parse_field_type () to use common code for parsing.
24089         Added mono_metadata_typedef_from_field () and
24090         mono_metadata_typedef_from_method () to lookup a typedef index from a
24091         field or method token.
24092         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
24093
24094 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
24095
24096         * metadata.c (mono_metadata_parse_field_type): Implement. 
24097         (do_mono_metadata_parse_type): Split engine from
24098         mono_metadata_parse_type, so that we can create smaller structures
24099         for things that just have one pointer to the MonoType (look at
24100         the MonoFieldType)
24101
24102 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
24103
24104         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
24105         as Jan Gray found out, it is incorrect. 
24106
24107 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
24108
24109         * assembly.c: Implement asssembly loading.  This loads an image
24110         and loads all the referenced assemblies.  Come to think of it, we
24111         could always do lazy loading of the assemblies. 
24112
24113         * image.c (mono_image_open): Keep loaded images in a hashtable.
24114
24115         * image.h (MonoImage): Add reference count.
24116
24117 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
24118
24119         * assembly.c (mono_assembly_open): Keep track of the file name in
24120         case the assembly has no ASSEMBLY table.
24121
24122         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
24123         from get.c here.
24124
24125 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
24126
24127         * metadata.c, metadata.h: decode local vars in method header
24128         parse function. Change callers accordingly.
24129
24130 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
24131
24132         * metadata.h, cil-coff.h: protect against multiple inclusion.
24133         Added some new structures to hold information decoded from metadata:
24134         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
24135         and relevant decoding/free functions.
24136         * metadata.c: implement decoding functions. Add warning for out of bounds
24137         index in mono_metadata_locate(). Implement mono_get_method () to retreive
24138         all the info about a method signature and invocation. Remove check on
24139         uninitialized local var in parse_mh() and fix memory leak.
24140
24141 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
24142
24143         * metadata.h: More macros.
24144
24145         * tokentype.h: New file.
24146
24147 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
24148
24149         * assembly.c: added a consistency check and initialize
24150         some structures with g_new0().
24151         * metadata.c: fixed a couple more bugs in table size computation
24152         and add other checks for out-of bound access to metadata.
24153
24154 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
24155
24156         * metatada.c: fix bugs computing table sizes. Spew a
24157         warning when index in string heap is out of bounds.
24158
24159 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
24160
24161         * metadata.h: Add a couple of macros to manipulate tokens. 
24162
24163 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
24164
24165         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
24166         cli_section_tables).
24167
24168 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
24169
24170         * metadata.c (mono_metadata_user_string): New function, provides
24171         access to the UserString heap. 
24172
24173 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
24174
24175         * metadata.c: Add inline documentation.
24176
24177 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
24178
24179         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
24180         files. 
24181
24182 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
24183
24184         * typeattr.h: New file, TypeAttribute flags. 
24185
24186 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
24187
24188         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
24189         mono_assembly_ensure_section): Section loading code.
24190         (load_section_tables): Load the sections.
24191
24192         * mono/metadata/metadata.c (mono_metadata_locate_token,
24193         mono_metadata_locate): Functions to locate the information
24194         definition given a token or a table and an index.
24195         (mono_metadata_compute_table_bases): New.
24196         (compute_size): New function to compute the sizes of the various
24197         tables.
24198
24199         * mono/metadata/metadata.h: Finish listing the different index
24200         types. 
24201
24202         * mono/metadata/pedump.c: Improve to dump new information.
24203
24204 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
24205
24206         * mono/metadata/metadata.c: Entered all the tables matching
24207         Beta2. 
24208
24209         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
24210
24211
24212