699e0ea7c3f1e050f995b222068ba93c8991c2af
[mono.git] / mono / metadata / ChangeLog
1 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
2
3         * marshal.c: Remove some code which is now in method-builder.c.
4
5 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
6
7         * method-builder.c: New file, extraction of the method builder functionality 
8         from marshal.c.
9
10         * marshal.c: Move the mb functions into method-builder.c.
11
12         * marshal.h marshal.c: Export some mono_mb_... functions.
13
14         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
15
16         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
17         the caller.
18
19         * class.c (mono_class_get_full): Check the token type in the dynamic case.
20
21         * loader.c (mono_field_from_token): Ditto.      
22
23         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
24         type as well.
25         
26         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
27         Fixes #342565.
28
29         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
30         a helper function for setting it.
31
32         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
33
34         
35         * assembly.c: Significally simplify code now that referenced assemblies are 
36         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
37
38         * threads.h: Don't include  the internal threads-types.h header file. Fixes
39         #349952.
40
41 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
42
43         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
44         instructions that were target of branches or are at protected block boundaries.
45
46         * verify.c (in_same_block): handle filter clauses.
47
48         * verify.c (is_valid_branch_instruction): added. checks the target of
49         instructions br or brtrue/false.
50
51         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
52         binary branch instructions such as beq and bge.
53
54         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
55         and made it pin the instruction as been part of the exception block.
56
57         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
58         of in_same_block.
59
60         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
61         of in_same_block.
62
63         * verify.c (do_ret): ret from a protected block is unverifiable and
64         not invalid.
65
66         * verify.c (do_static_branch): verify br and br.s instructions.
67
68         * verify.c (merge_stacks): add extra param to support detection
69         of branches in the middle of instructions.
70         
71         * verify.c (mono_method_verify): verify branches and exception blocks
72         that target the middle of instructions. Proper verification of br and br.s.
73
74 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
75
76         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
77         skip_visibility field.
78         (reflection_methodbuilder_from_dynamic_method): Ditto.
79
80         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
81         registrations. Fixes #348193.
82
83         * threads.h: Move the internal mono_thread_get_pending_exception () to
84         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
85
86 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
87
88         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
89         icall registration. Fixes #348193.
90
91         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
92         for corlib classes into object. Fixes #349621.
93
94 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
95
96         * icall.c (property_accessor_nonpublic): new function to determine
97         whether an accessor allows a property to be considered non-public.
98         Returns false for private accessor(s) from parent class, and internal
99         accessor(s) from parent on 2.0 profile (and higher).
100         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
101         to determine whether property should be included if NonPublic flag
102         is set. Fixes bug #349078.
103
104 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
105
106         * verify.c (init_stack_with_value): added.
107
108         * verify.c (mono_method_verify): extracted common
109         code for exception initialization into init_stack_with_value.
110
111         * verify.c (mono_method_verify): initialize the exception
112         for handler clauses as well.
113
114         * verify.c (mono_method_verify): fix the exception clause
115         ordering rules, it should use handler end offset and not
116         start offset.
117
118 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
119
120         * rawbuffer.c: remove useless warning.
121
122 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
123
124         * threads.h, threads-types.h: move functions to the correct header
125         (fixes bug#349952).
126
127 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
128
129         * verify.c (mono_method_verify): proper verification
130         of exception handling clauses ranges and fallthru in
131         and out of protected blocks.
132
133 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
134
135         * verify.c (mono_method_verify): fixed compilation issue.
136
137 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
138
139         * verify.c (mono_method_verify): a printf slipped in, changed
140         to use verifier debug macro.
141
142 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
143
144         * verify.c (is_correct_leave): check for filter clauses.
145
146         * verify.c (do_filter): added.
147
148         * verify.c (mono_method_verify): property verification of leave.
149
150
151 2007-12-18  Mark Probst  <mark.probst@gmail.com>
152
153         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
154         Win32 build, until we figure out how to do the proper thing on
155         Win32.
156
157 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
158
159         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
160         by the previous patch.
161         
162         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
163         the assembly resolve handler for refonly assemblies.
164
165 2007-12-17  Mark Probst  <mark.probst@gmail.com>
166
167         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
168         Make sure only one thread is allowed to commence shutdown, and
169         don't allow new threads to be started once shutdown is in
170         progress.
171
172 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
173
174         * verify.c (is_correct_endfilter): added.
175
176         * verify.c (is_unverifiable_endfilter): added.
177
178         * verify.c (do_endfilter): added.
179
180         * verify.c (mono_method_verify): property verification of endfilter
181         and fixed a corner case or endfinally.
182
183 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
184
185         * verify.h: new flags to support fail fast of unverifiable code and
186         do non-strict verification. Non-strict verification is required to
187         have MS runtime compatibility. There are a huge amount of unverifiable
188         code that it accepts as verifiable. The strict mode verifies the code
189         as the specs says.
190         Non-strict mode will be required in cases where code needs to be
191         accepted as verifiable but fails under strict mode.
192
193         * pedump.c: added support to fail fast and non-strict verification.
194
195         * verify.c: added support for both fail fast and non-strict verification.
196
197 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
198
199         * verify.c (is_correct_endfinally): added.
200
201         * verify.c (mono_method_verify): property verification of endfinally.
202
203 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
204
205         * verify.c (in_any_block): check for filter clauses.
206
207         * verify.c (is_correct_rethrow): added.
208
209         * verify.c (mono_method_verify): property verification of rethrow.
210
211         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
212
213 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
214
215         * verify.c (do_throw): added.
216
217         * verify.c (mono_method_verify): property verification of throw
218
219 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
220
221         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
222         assemblies. Fixes #346425.
223
224 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
225
226         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
227         FieldBuilders.
228
229         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
230
231         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
232         prevent asserts when this is called with a token which might not be valid.
233
234         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
235         lookup_dynamic_token_class with valid_token == FALSE.
236
237         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
238
239         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
240
241         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
242         
243 2007-12-10  Mark Probst  <mark.probst@gmail.com>
244
245         * gc.c: Don't delay threadpool thread finalization unless Mono is
246         shutting down.
247
248 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
249
250         * threads.c: turn an assert into a non-fatal warning.
251
252 2007-12-09  Robert Jordan  <robertj@gmx.net>
253
254         * icall.c (GetVirtualMethod): Add missing argument validation.
255
256 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
257
258         * verify.c (do_cast): added.
259
260         * verify.c (mono_method_verify): property verification of castclass and isinst.
261
262
263 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
264
265         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
266
267         * verify.c (do_stelem): added.
268
269         * verify.c (mono_method_verify): property verification of stelem.X.
270
271 2007-12-07  Mark Probst  <mark.probst@gmail.com>
272
273         * class.c, class-internals.h: Introduce an environment variable
274         (MONO_GENERIC_SHARING) through which the extent of generic code
275         sharing can be controlled (share all classes, share only corlib
276         classes, or share nothing).
277
278         * object.c: Only create runtime generic context for classes for
279         which sharing is enabled.
280
281 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
282
283         * verify.c (do_ldelem): refactor it to work with ldelem.any.
284
285         * verify.c (mono_method_verify): property verification of ldelem.any.
286
287 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
288
289         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
290         added ldelem.X opcodes.
291
292         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
293
294         * verify.c: proper verification of ldelem.X 
295
296 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
297
298         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
299
300 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
301
302         * verify.c (mono_method_verify): null literal requires special handling,
303         the value pushed on stack need to be flagged as so.
304
305         * verify.c (do_ldelema): Verify ldelema properly.
306
307 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
308
309         * verify.c: Verify ldlen properly.
310
311 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
312
313         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
314         to the target object's type. Fixes #346160.
315
316 2007-12-05  Dick Porter  <dick@ximian.com>
317
318         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
319         Solaris needs the same workaround as BSD-derived systems.  Fixes
320         bug 323524, patch by Burkhard Linke
321         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
322
323 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
324
325         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
326         handle to use when error dialog is shown; otherwise, update mask
327         to show no error dialog when an error occurs.
328
329 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
330
331         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
332
333         * class.c (mono_class_get_field_default_value): New helper function to initialize
334         field->def_type and field->data.
335
336 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
337
338         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
339         the general one.
340
341         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
342
343         * marshal.c: Avoid depending on delegate->method_info being set.
344
345         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
346         
347         * object.c (mono_delegate_ctor): Set delegate->method.
348
349         * object-internals.h (struct _MonoDelegate): Add 'method' field.
350
351         * appdomain.c: Bump corlib version.
352
353 2007-11-27  Raja R Harinath  <harinath@gmail.com>
354
355         * metadata.c (mono_generic_inst_equal_full): Short-circuit
356         equality check if we're comparing canonicalized MonoGenericInsts.
357
358 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
359
360         * class.c (generic_array_methods): Call mono_class_setup_methods () before
361         accessing class->methods.
362
363 2007-11-22  Dick Porter  <dick@ximian.com>
364
365         * threads.c: Ensure that the synch_cs is set before trying to use
366         it.
367
368 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
369
370         * profiler.c: r89126 broke the statistial profiler, unbreak.
371
372 2007-11-22  Martin Baulig  <martin@ximian.com>
373
374         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
375
376         * mono-debug.c
377         (mono_debug_debugger_version): Bump to 3.
378         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
379         -> mono_debugger_class_initialized().
380
381         * mono-debug-debugger.c
382         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
383
384         * class.c
385         (mono_debugger_start_class_init_func): Removed.
386         (mono_debugger_class_loaded_methods_func): Added.
387         (mono_class_setup_methods): Call it here.
388
389 2007-11-22  Martin Baulig  <martin@ximian.com>
390
391         * mono-debug.c
392         (mono_debug_add_delegate_trampoline): New public method.
393         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
394
395         * mono-debug.h
396         (MonoSymbolTable): Added `global_data_table'.
397         (MonoDebuggerTypeKind): Removed.
398
399 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
400
401         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
402         these methods.
403
404         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
405         
406 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
407
408         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
409
410 2007-11-20  Martin Baulig  <martin@ximian.com>
411
412         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
413
414         * mono-debug-debugger.c
415         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
416         (mono_debugger_remove_breakpoint): Likewise.
417         (mono_debugger_check_breakpoints): Likewise.
418         (mono_debugger_register_class_init_callback): New public method.
419         (mono_debugger_remove_class_init_callback): Likewise.
420         (mono_debugger_add_type): Likewise.
421
422         * mono-debug-debugger.h
423         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
424
425 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
426
427         * class.c: more interface implementations needed for the
428         array enumerator (fixes bug #341112).
429
430 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
431
432         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
433         fix ParamName of ArgumentNullExceptions.
434
435 2007-11-17  Miguel de Icaza  <miguel@novell.com>
436
437         * reflection.c (mono_reflection_encode_sighelper): Generate the
438         modopts and modreqs.   I have a useless test that crashes monodis,
439         but that shows the code working.
440
441 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
442
443         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
444         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
445
446 2007-11-15  Dick Porter  <dick@ximian.com>
447
448         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
449         When joining a thread, it's the thread that's calling Join that
450         gets WaitSleepJoin state not the target.  Fixes the standalone
451         test case in bug 334740, and hopefully the whole bug too.
452
453 2007-11-15  Dick Porter  <dick@ximian.com>
454
455         * process.c: Read file version info from the files pointed at by
456         process modules, not the current process.  Fixes bug 315969.
457
458         Use windows typedef names in some places to fix warnings on the
459         windows build.
460
461 2007-11-15  Mark Probst  <mark.probst@gmail.com>
462
463         * image.c, metadata-internals.h: Added a generic_class_cache hash
464         to MonoImage for looking up generic classes when sharing generics.
465
466 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
467
468         * sgen-gc.c: warning cleanups.
469
470 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
471
472         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
473         inherited properties.
474
475 2007-11-14  Mark Probst  <mark.probst@gmail.com>
476
477         * object.c, class-internals.h: Added more information to the
478         runtime generic context.
479
480 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
481
482         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
483         instead of just the target method. Generalize the abstract method handling to
484         handle any non-static method.
485
486         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
487         mono_marshal_get_delegate_invoke () signature change.
488
489 2007-11-13  Mark Probst  <mark.probst@gmail.com>
490
491         * class.c, class-internals.h: Made
492         mono_type_get_basic_type_from_generic () public.  Fixed member
493         access check for shared generics.
494
495         * loader.c: Don't insert field into field cache if it's part of a
496         non-inflated generic class.
497
498         * domain.c, domain-internals.h: The generic sharing context is now
499         part of the jit info data structure.  Added two accessor
500         functions.
501
502 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
503
504         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
505         the array Get/Set/Address methods, since the JIT inlines them.
506
507         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
508
509         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
510         (mono_image_init): Initialize runtime_invoke_direct_cache.      
511
512         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
513         mono_marshal_get_delegate_invoke signature change.
514
515         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
516         an additional argument. Add support for invoking abstract methods.
517
518         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
519
520         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
521
522 2007-11-09  Mark Probst  <mark.probst@gmail.com>
523
524         * class.c: Do field layout for open generic classes as well.
525
526 2007-11-09  Mark Probst  <mark.probst@gmail.com>
527
528         * gc.c, gc-internal.h: Don't finalize threadpool threads with
529         other objects, because the threadpool is still around.  Put them
530         in a list instead and after finalizing all other objects in the
531         root domain shut down the thread pool and then finalize the
532         threads.  Fixes bug #337383.
533
534         * threads.c, thread-types.h: New mono_thread_create_internal()
535         function for marking a thread with the threadpool flag before it
536         started.  Set synch_cs to NULL after freeing it.
537
538         * threadpool.c: Mark threadpool threads before they start.
539
540 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
541
542         * reflection.h, reflection.c: don't export random functions
543         and lazy load dbnull and missing objects.
544
545 2007-11-07  Jonathan Chambers <joncham@gmail.com>
546
547         * class.c: Initialize COM types if COM interfaces
548         are present (not just COM classes).
549         
550         Code is contributed under MIT/X11 license.
551
552 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
553         * reflection.c:
554         create_dynamic_mono_image: hook module profiler events (dynamic case).
555         mono_image_basic_init: hook assembly profiler events (dynamic case).
556
557 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
558         * profiler.c:
559         simple_appdomain_unload: completely terminate the profiler
560         instead of only processing the statistical samples.
561         simple_shutdown: make sure this is really called exactly once,
562         even in multithreaded applications, and always listen to
563         appdomain events.
564         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
565         here, the "[un]load" functions will do it.
566         Fixes bugs #333791 and #325261.
567
568 2007-11-07  Geoff Norton  <gnorton@novell.com>
569
570         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
571         rather than depend on __APPLE__.
572
573 2007-11-07  Mark Probst  <mark.probst@gmail.com>
574
575         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
576
577 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
578
579         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
580         UTF16 MonoString. Fix the crash from bug #335488
581
582 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
583
584         * marshal.c: Correct (for non-Win32 OS) length != size in 
585         mono_string_from_bstr. Fix #339530.
586
587 2007-11-06  Geoff Norton  <gnorton@novell.com>
588
589         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
590         to succeed
591
592 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
593
594         * process.c: Added run-time GetProcessId API detection for Windows.
595
596 2007-11-04  Miguel de Icaza  <miguel@novell.com>
597
598         * reflection.c  (mono_param_get_objects): If a parameter has the
599         attribute [System.Runtime.InteropServices.Optional] we should
600         set the DefaultValue of the ParameterInfo to be
601         System.Reflection.Missing instead of DBNull.
602
603         See bug #339013.
604
605         (mono_get_reflection_missing_object): New method,
606         returns the System.Reflection.Missing.Value singleton instance.
607
608 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
609
610         * culture-info-table.h : regenerated.
611
612 2007-11-02  Jonathan Chambers <joncham@gmail.com>
613
614         * icall.c: Use GetEnvironmentStrings on windows
615         so we are using the same environment block as 
616         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
617         #333740.
618         
619         Code is contributed under MIT/X11 license.
620
621 2007-10-31  Martin Baulig  <martin@ximian.com>
622
623         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
624
625         * mono-debug-debugger.h
626         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
627
628 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
629
630         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
631         classes.
632
633 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
634
635         * culture-info-table.h : regenerated.
636
637 2007-10-30  Robert Jordan  <robertj@gmx.net>
638
639         * icall-def.h, icall.c:
640         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
641
642         Code is contributed under MIT/X11 license.
643
644 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
645
646         * class.c (mono_class_setup_vtable): Find the inflated methods in the
647         inflated class instead of inflating them again.
648         
649         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
650         dynamic case.
651
652         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
653         Call setup_supertypes () after klass->parent is set.
654         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
655
656         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
657         for inflated instances of not yet created dynamic generic classes.
658         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
659         times from inflated_method.
660         (methodbuilder_to_mono_method): Ditto.
661
662 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
663
664         * gc.c: code cleanup and removed old untested option of not creating the
665         finalizer thread.
666
667 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
668
669         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
670         creating a jump trampoline for dynamic methods.
671
672 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
673
674         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
675         generic TypeBuilders when called from another method of the same type (bug #335131).
676
677
678 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
679
680         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
681         doesn't seem to work perfectly.
682         
683         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
684         called multiple times.
685         (methodbuilder_to_mono_method): Ditto.
686         (resolve_object): Inflate FieldBuilder's.
687
688 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
689
690         * string-icalls.c, string-icalls.h, appdomain.c: patch from
691         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
692         RemoveEmptyEntries in the string.Split implementation (bug #322375).
693
694 2007-10-26  Dick Porter  <dick@ximian.com>
695
696         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
697         Thread initialisation changes
698
699 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
700
701         * verify.c: fix compatibility check between arrays and System.Array
702
703 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
704
705         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
706         too. Fixes #336999.
707
708 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
709
710         * object.c (mono_value_box): Use typed allocation here.
711
712 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
713
714         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
715         trampoline instead of compiling the method right away.
716
717         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
718
719 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
720
721         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
722         related fields for dynamic classes. Fixes #334493.
723
724 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
725
726         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
727         
728         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
729
730         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
731         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
732
733         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
734
735         * reflection.c (create_generic_typespec): Initialize klass->generic_container
736         if needed.
737         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
738
739 2007-10-18  Jonathan Chambers <joncham@gmail.com>
740
741         * marshal.c: Use correct key when removing item
742         from ccw_hash.
743         
744         Code is contributed under MIT/X11 license.
745
746 2007-10-17  William Holmes  <billholmes54@gmail.com>
747
748         *marshal.c: Adding a case to marshal booleans to U1
749
750         Code is contributed under MIT/X11 license.
751
752 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
753
754         * class.c (mono_class_from_name): Search the modules compromising dynamic
755         assemblies. Fixes #331601.
756
757 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
758
759         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
760         exception if the type name contains an assembly component. Fixes #334203.
761
762         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
763         modules inside dynamic assemblies. Fixes #334200.
764         
765         * reflection.c: Set image->public_key and image->public_key_length;
766
767         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
768         fields.
769
770         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
771         
772 2007-10-16  Mark Probst  <mark.probst@gmail.com>
773
774         * metadata.c: Implemented correct comparing of generic classes.
775         An inflated generic class can be equal to a non-inflated one if it
776         is inflated with generic type variables as type arguments.  Fixes
777         bug #333798.
778
779 2007-10-15  Dick Porter  <dick@ximian.com>
780
781         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
782         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
783         81646.
784
785         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
786         instead of a monitor lock.  This means that monitor_try_enter and
787         co can set the thread state safely.
788         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
789         thread_interrupt_requested, so interrupt actually works.
790
791         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
792         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
793         state accessor function
794
795 2007-10-15  Martin Baulig  <martin@ximian.com>
796
797         * mono-debug.h
798         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
799         the debugger with the current runtime.
800
801 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
802
803         * object.c, object-internals.h: added the ability to set a single
804         trampoline for all the slots in a vtable.
805
806 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
807
808         * marshal.c: deal with a possible race condition during multicast
809         delegate invocation.
810
811 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
812
813         * class.c: ensure value type methods don't have the synchronized
814         flag set.
815
816 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
817
818         * string-icalls.c, string-icalls.h: reverted unapproved patch that
819         breaks the build.
820
821 2007-10-11  Joel Reed  <joelwreed@comcast.com>
822
823         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
824         to take an options parameter so that empty entries can be removed during
825         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
826
827 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
828
829         * marshal.c: make sure we don't store the signature from a dynamic
830         method into the runtime invoke cache (bug #327189).
831
832 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
833
834         * marshal.c: make sure the wrapper methods are properly initialized.
835
836 2007-10-11  Mark Probst  <mark.probst@gmail.com>
837
838         * metadata.c, metadata-internals.h: Generalized
839         mono_type_stack_size() to mono_type_stack_size_internal() which
840         takes an additional argument specifying whether it allows open
841         types.
842
843 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
844
845         * verify.c (do_invoke_method): handle typedbyref params
846         correctly and check for unverifiable return values.
847
848         * verify.c (do_newobj): fix a warning.
849
850 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
851
852         * verify.c: don't tread typedbyref as allways unverifable,
853         so uses, like (ld/st)loc.0 are valid. verify for the cases
854         that it matters, like boxing related operations.
855
856 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
857
858         * verify.c: add verification of the newobj opcode. verification
859         of delegate instantation still missing due ldftn and virldftn not
860         pushing the function type on stack
861
862 2007-10-08  Mark Probst  <mark.probst@gmail.com>
863
864         * class-internals.h: Runtime generic context data structure
865         definition.
866
867         * object.c: Initialization of runtime generic context at runtime
868         vtable creation time.
869
870 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
871         * class.c (mono_class_create_from_typedef,
872         mono_class_from_generic_parameter, mono_ptr_class_get,
873         mono_fnptr_class_get, mono_bounded_array_class_get)
874         * domain.c (mono_domain_create, mono_domain_free)
875         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
876         * image.c (do_mono_image_load, mono_image_close):
877         Hooked up load-unload profiler events.
878
879 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
880
881         * domain.c: track statistics about the actual amount of native code
882         allocated.
883
884 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
885
886         * class.c: the valuetype enumerators don't have the additional
887         supertypes interfaces.
888
889 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
890
891         * class.c: need more interfaces setup for the IEnumerator<T>
892         object created for arrays (tests/ienumerator-interfaces.2.cs).
893
894 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
895
896         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
897
898 2007-10-05  Alp Toker  <alp@atoker.com>
899
900         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
901         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
902         #315863.
903
904 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
905
906         * verify.c (verify_type_compatibility_full): verification of
907         compatibility improved, validates correctly non-strict checks between
908         native int and I4 types different than (unsigned)int32.
909
910         * verify.c (do_store_indirect): added, do all verification of
911         ldind.X opcodes. 
912
913         * verify.c (get_load_indirect_mono_type): renamed to
914         get_indirect_op_mono_type, as it now returns the MonoType for 
915         ldind.X and stind.X opcodes.
916
917 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
918
919         * reflection.c: Fix the encoding of generic type definition for
920         TypeBuilders.
921
922         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
923         mono_image_typedef_or_ref but allows to specify if typespec lookups should
924         be made. Typespec check is done prior to typeref cache lookup.
925
926         * reflection.c (mono_image_typedef_or_ref): now just delegate to
927         mono_image_typedef_or_ref_full.
928
929         * reflection.c (encode_generic_class): encode the generic class
930         directly instead of calling encode_type.
931
932         * reflection.c (encode_type): encode the generic type definition
933         MonoClass as a generic instantiation.
934
935         * reflection.c (create_typespec): cache typespec tokens in
936         the assembly->typespec cache. Don't create typespec for a generic
937         instance MonoClass. Create typespec for the generic type defintion.
938
939         * reflection.c (create_generic_typespec): encode the generic
940         class directly instead of calling encode_type.
941
942         * reflection.c (mono_image_create_token): encode the generic
943         type definition not using a typespec for MonoType instances.
944
945
946 2007-10-04  Raja R Harinath  <rharinath@novell.com>
947
948         Fix #328812
949         * class.c (mono_image_init_name_cache): Don't return nested
950         'protected internal' classes.
951         (mono_class_from_name_case): Likewise.
952
953 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
954
955         * icall-def.h, icall.c : get_bundled_machine_config() is now the
956           common function used by both DefaultConfig in System.dll and
957           InternalConfigurationHost in System.Configuration.dll.
958
959 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
960
961         * class.c: automatically add to vectors only a few essential explicit
962         generic interfaces. The rest of the interfaces that arrays should
963         provide are currently implicitly added (but still not lazily, see the
964         design in the discussion of bug#325495 for the details of what is
965         needed for that). Additionally, implicit interfaces are assigned the
966         same vtable slot as the explicit interfaces (as they are compatible):
967         this enables huge memory savings since we don't need to instantiate
968         as many memthods and as large vtables anymore. Also, Since
969         GetEnumerator<T> returns an instance of a type that is required to
970         support a similarly large set of interfaces as arrays, we add
971         implicit interfaces and interface offset sharing support to those
972         types, too. This change adds all the required interfaces so that
973         the anonarray.cs test case in the bug report works (we don't add
974         all the interfaces to arrays of arrays 3-level deep and more because
975         of the memory requirements explained in the bug and since they are much
976         less common: the lazy-loading support will enabled them to work, too).
977
978 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
979
980         * verify.c (merge_stacks): major clean up, all type compatibility
981         checks are done by verify_type_compatibility. This fix my earlier lack
982         of understanding of the CLR type system and merge_stacks no longer looks
983         scary.
984
985         * verify.c: fixed some bad spelling.
986
987 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
988
989         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
990         a given stack slock.
991         
992         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
993         verify_type_compatibility_full. This removed a near indentical function and fixed
994         handling of Int32 and IntPtr across all opcodes.
995
996 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
997
998         * class.c: only vectors have the additional generic interfaces.
999
1000 2007-10-01  Jonathan Chambers <joncham@gmail.com>
1001
1002         * mono-config.c: Use g_strcasecmp instead of
1003         strcasecmp like everywhere else to fix
1004         compilation with MSVC.
1005         
1006         Code is contributed under MIT/X11 license.
1007
1008 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1009
1010         * object.c, object-internals.h: refactored the IMT code to enable
1011         building a single slot at a time and lazily creating the IMT trampolines
1012         and thunks.
1013
1014 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
1015
1016         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
1017
1018         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
1019         Fixes #328501.
1020         
1021 2007-09-29  Raja R Harinath  <harinath@gmail.com>
1022
1023         * loader.c (method_from_methodspec): Rearrange to avoid
1024         un-necessary exposition.  Don't assert out if the method's
1025         declaring type is a generic type definition.
1026
1027 2007-09-28  Martin Baulig  <martin@ximian.com>
1028
1029         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
1030
1031 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
1032
1033         * class-internals.h: optimize field layout of MonoClass to
1034         requires less cachelines at runtime and save a few bytes on 64 bit
1035         systems.
1036
1037 2007-09-28  Jb Evain  <jbevain@novell.com>
1038
1039         * reflection.c: when encoding type names in custom attributes,
1040         if the type is a closed generic type, its generic arguments
1041         have to be serialized as AssemblyQualifiedName, so that when
1042         they are deserialized, it's possible to re-create them properly.
1043         Fixes #329450.
1044
1045
1046 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
1047
1048         * object.c, class-internals.h: added delegate-creation counter.
1049
1050 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
1051
1052         * class.c: cleanup of the code that synthetizes interfaces for
1053         arrays in 2.0: saves quit a bit of corlib mempool memory.
1054         Code to fix bug #325495 ifdeffed out for now until the issues
1055         with memory usage and O(n^2) behaviour are fixed.
1056
1057 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1058
1059         * marshal.c: when possible, do not duplicate the name of the methods
1060         in the method builder and in the generated MonoMethod.
1061
1062 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
1063         * verify.c: added support for type checking ldind_* opcodes.
1064
1065 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
1066
1067         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
1068         which is used to distinguish the fully open instantiation of a TypeBuilder
1069         with the rest. This temporary hack is required to restore the property that
1070         the fully open instantiation is the same type of the generic type definition.
1071
1072         * class-internals.h (mono_generic_class_is_generic_type_definition):
1073         new function as part of the internal API.
1074
1075         * class.c (inflate_generic_type): return NULL when the generic inst is
1076         fully open. The fully open generic type is now the same as the generic type
1077         definition for non TypeBuilder types.
1078
1079         * class.c (mono_generic_class_get_class): removed assert since it is
1080         no longer valid, gklass->cached_class can point to the generic type definition.
1081
1082         * class.c (mono_generic_class_is_generic_type_definition): new.
1083
1084         * metadata.c (mono_generic_class_hash): added is_tb_open field
1085         to the hash calculation.
1086
1087         * metadata.c (free_generic_class): if the generic class is associated
1088         with the generic type definition, its field will come from the mempool and
1089         must not be freed.
1090
1091         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
1092         new, this function identifies the corner case of a TypeBuilder fully open
1093         instantiation.
1094
1095         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
1096         for lookup. Set gclass->cached_class to be the container class in case of
1097         the fully open instantiation of non TypeBuilder types.
1098
1099         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
1100         to compare generic classes.
1101
1102         * reflection.c (method_encode_methodspec): remove assert that
1103         no longer is valid.
1104
1105         * reflection.c (mono_reflection_generic_class_initialize): add
1106         an aditional assert to ensure the proper type is used.
1107
1108 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
1109
1110         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
1111         to enjoy it.
1112
1113 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
1114
1115         * verify.c (push_arg): Fixed support for ldarga
1116         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
1117         MonoType used as first arg in case of instance calls.
1118
1119 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
1120
1121         * verify.c: Support for verifying VAR and MVAR types, 
1122
1123 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
1124
1125         * icall.c (ves_icall_get_property_info): Set the reflected type of the
1126         accessors correctly.
1127
1128 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
1129
1130         * threads.c: support OSX and other systems in
1131         mono_thread_get_stack_bounds (bug #328026).
1132
1133 2007-09-25  Martin Baulig  <martin@ximian.com>
1134
1135         * mono-debug.h
1136         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
1137
1138 2007-09-24  Martin Baulig  <martin@ximian.com>
1139
1140         * mono-debug.h
1141         (MonoDebugClassEntry): Moved the definition of this struct into
1142         mono-debug.c to make it private.
1143
1144         * mono-debug.c
1145         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
1146         type table per symbol file, we don't need to store the symfile id
1147         any longer.
1148
1149 2007-09-24  Martin Baulig  <martin@ximian.com>
1150
1151         Create one type table per symbol file, since a `MonoClass *' gets
1152         invalid when its image is unloaded.
1153
1154         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
1155         (MonoDebugHandle): Added `type_table'.
1156
1157 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1158
1159         * mempool.c, mempool.h: added mono_mempool_new_size () API
1160         to be able to specify a smaller initial size for the pool.
1161         Adjusted the code to slowly increase pool size before using
1162         the previous default size.
1163         * image.c: use a small initial size for image mempools.
1164
1165 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
1166
1167         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
1168         Fixes ##320990.
1169
1170         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
1171         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
1172
1173 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
1174
1175         * metadata.c (mono_type_create_from_typespec): Remove an invalid
1176         free. Fixes #327438.
1177
1178 2007-09-21  Raja R Harinath  <harinath@gmail.com>
1179
1180         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
1181         generic instantiations, etc.
1182         <MONO_TYPE_ARRAY>: Likewise.
1183
1184 2007-09-21  Martin Baulig  <martin@ximian.com>
1185
1186         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
1187         these structs were never defined.
1188         (MonoDebugHandle): Removed the `_priv' field, it was never used.
1189
1190 2007-09-21  Martin Baulig  <martin@ximian.com>
1191
1192         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
1193
1194 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
1195
1196         * image.c: removed the guid hash tables: we can get the same info
1197         without the additional memory usage hit (partially fixes also bug #327052).
1198
1199 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
1200
1201         * profiler.h, profiler-private.h, profiler.c: add a new profiler
1202         event to handle unloading methods. After the event is called, the
1203         corresponding MonoMethod* must be considered invalid.
1204         * loader.c (mono_free_method): call the new mono_profiler_method_free
1205         event.
1206
1207 2007-09-20  Mark Probst  <mark.probst@gmail.com>
1208
1209         * domain-internals.h: New flag in MonoJitInfo which marks shared
1210         generic methods.  New hash table (shared_generics_hash) in
1211         MonoDomain to keep track of shared generic methods.  Prototypes
1212         for functions to register and lookup shared generic methods.
1213
1214         * domain.c: Support for registering and looking up shared generic
1215         methods via a hash table (shared_generics_hash) in MonoDomain.
1216
1217         * class-internals.h: New exception to signal failure of shared
1218         compilation of a generic method.  New counters for generics
1219         sharing in MonoStats.
1220
1221 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
1222
1223         * image.c, metadata-internals.h: don't keep a file descriptor open
1224         for loaded assemblies (bug#325988).
1225
1226 2007-09-19  Raja R Harinath  <rharinath@novell.com>
1227
1228         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
1229         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
1230         use the corresponding datatypes.
1231         (type_in_image): Update to changes.
1232         (CleanForImageUserData): Simplify.
1233         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
1234         Avoid quadratic behaviour in handling the "stolen" list by
1235         separating the filter predicate out, and by prepending the stolen
1236         items rather than appending them.
1237         (steal_ginst_in_image): Likewise.
1238         (mono_metadata_clean_for_image): Update to changes.
1239
1240 2007-09-19  Martin Baulig  <martin@ximian.com>
1241
1242         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
1243
1244 2007-09-19  Martin Baulig  <martin@ximian.com>
1245
1246         * mono-debug.c (mono_debug_cleanup): Don't call
1247         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
1248
1249 2007-09-19  Raja R Harinath  <harinath@gmail.com>
1250
1251         Fix crash on 'make run-test' in mcs/errors
1252         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
1253         Avoid more potential allocations in mono_class_from_mono_type.
1254         (ginst_in_image): Update to changes.
1255         (gclass_in_image): Rearrange slightly.
1256
1257 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
1258
1259         * class.c (mono_class_init): Move the code that sets up class->methods to 
1260         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
1261
1262         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
1263         canonical instance of an inflated generic signature.
1264         (mono_type_create_from_typespec): Remove an invalid free.
1265
1266         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
1267
1268 2007-09-18  Marek Habersack  <mhabersack@novell.com>
1269
1270         * domain-internals.h: added a declaration of the
1271         mono_assembly_load_full_nosearch internal function.
1272
1273         * assembly.c (mono_assembly_load_with_partial_name): use
1274         mono_try_assembly_resolve return value properly.
1275         (mono_assembly_load_full_nosearch): copied the function body from
1276         mono_assembly_load_full, without the code to invoke assembly
1277         search hooks.
1278         (mono_assembly_load_full): calls the above new function and if the
1279         assembly is not resolved, invokes the search hooks.
1280
1281         * appdomain.c (mono_runtime_init): restore the global postload
1282         assembly search handlers.
1283
1284 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
1285
1286         * class.c (mono_class_init): Make sure class->methods and class->properties
1287         are never NULL in the generics case.
1288
1289         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
1290
1291 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
1292
1293         * metadata.c (free_generic_class): Disable some code to fix the build.
1294
1295         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
1296
1297         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
1298         from the image mempool.
1299
1300         * metadata.c (free_generic_class): Free more data from the inflated class.
1301
1302         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
1303
1304         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
1305         mempool.
1306         (mono_type_create_from_typespec): Ditto.
1307
1308         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
1309         MonoImage to the caller.
1310         (mono_init_internal): Save the opened image in a global variable.
1311         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
1312
1313         * reflection.c (resolve_object): Fix a leak.
1314
1315         * metadata.c: Fix the freeing of data in the generics caches.
1316         
1317         * metadata.c (free_generic_inst): Comment this out to fix the build.
1318         (free_generic_class): Ditto.
1319
1320         * metadata.c: Free cached generic methods, instantinations and classes when
1321         they are removed from the caches.
1322         (mono_metadata_free_type): Free the type itself.
1323
1324         * class.c: Free the result of mono_class_inflate_generic_type () in a few
1325         places.
1326
1327 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1328
1329         * boehm-gc.c: restrict managed allocs to __thread supporting
1330         architectures.
1331
1332 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
1333
1334         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
1335         (mono_generic_class_get_class): Fix a leak.
1336
1337         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
1338         mono_metadata_free_type ().
1339         (mono_metadata_inflate_generic_inst): Fix a leak.
1340
1341 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
1342
1343         * mono-debug.c (free_header_data): Fix a leak missed earlier.
1344
1345         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
1346         mempool.
1347
1348         * mono-debug.c (mono_debug_close_image): Fix call to 
1349         g_hash_table_remove ().
1350
1351 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
1352
1353         * icall-def.h: redirect all the string ctor to the managed
1354         CreateString () methods.
1355         * string-icalls.c, string-icalls.h: removed dead code for string
1356         ctors and icalls.
1357
1358 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
1359
1360         * mono-debug.c: Fix memory leaks.
1361
1362 2007-09-14  Jonathan Chambers <joncham@gmail.com>
1363
1364         * threads-types.h: Implement mono_hazard_pointer_set and 
1365         mono_hazard_pointer_clear macros using do/while(0) to fix
1366         compilation with MSVC.
1367         
1368         Code is contributed under MIT/X11 license.
1369
1370 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
1371
1372         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
1373         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
1374
1375 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1376
1377         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
1378         icalls.
1379
1380 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1381
1382         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
1383         managed-code allocated as well.
1384
1385 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
1386
1387         * class.c (mono_class_is_assignable_from): Add support for generic variance.
1388
1389 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1390
1391         * boehm-gc.c: fixed the build after the AOT changes.
1392
1393 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
1394
1395         * wrapper-types.h: Add an ALLOC wrapper type.
1396
1397         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
1398         reference managed allocator methods.
1399
1400 2007-09-12  Marek Safar  <marek.safar@gmail.com>
1401
1402         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
1403         of Type array and not MonoType, a fix suggested by Hari.
1404         
1405 2007-09-12  Jonathan Chambers <joncham@gmail.com>
1406
1407         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
1408         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
1409         
1410         Code is contributed under MIT/X11 license.
1411
1412 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
1413
1414         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
1415
1416 2007-09-12  Marek Habersack  <mhabersack@novell.com>
1417
1418         * image.c (do_mono_image_open): if assembly file fails to open and
1419         MONO_IOMAP is in effect, try to find the path in a
1420         case-insensitive way.
1421
1422         * appdomain.c (mono_runtime_init): do not install postload hooks -
1423         tests show that MS.NET doesn't use anything of that sort to
1424         trigger the AppDomain.AssemblyResolve event.
1425         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
1426         made non-static.
1427         (mono_runtime_init): init portability helpers here.
1428
1429         * assembly.c (mono_assembly_load_with_partial_name): if other   
1430         attempts fail, trigger the AppDomain.AssemblyResolve event handler
1431         to resolve the assembly.
1432
1433         * domain-internals.h: added mono_try_assembly_resolve and marked
1434         it as internal.
1435
1436 2007-09-11  Jb Evain  <jbevain@novell.com>
1437
1438         * object-internals.h (MonoReflectionDynamicMethod): add
1439         a `MonoReflectionType *owner` field. The owner is used
1440         * reflection.c:
1441         (mono_reflection_create_dynamic_method): use the owner of the dynamic
1442         method as the class declaring the dynamic method.
1443         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
1444         dynamic method to the declaring type of the methodbuilder.
1445
1446 2007-09-11  Mark Probst  <mark.probst@gmail.com>
1447
1448         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
1449         rules for calling methods via reflection.
1450
1451 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
1452
1453         * reflection.c (resolve_object): Add support for MonoGenericClass. 
1454         Inflate MonoType's.
1455
1456 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
1457
1458         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
1459         provide a managed method that does fast allocations without needing
1460         a managed->unmanaged transition. Boehm GC implementation currently
1461         enabled for ptrfree objects on sane architectures.
1462
1463 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
1464
1465         * marshal.c, marshal.h: exported a couple of useful functions and
1466         added mono_mb_get_label () to easily handle backward branches.
1467
1468 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
1469
1470         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
1471
1472 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
1473
1474         * loader.c (find_method): Fixed the regression introduced while
1475         fixing bug #81466.
1476
1477 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
1478
1479         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
1480         well.
1481         
1482         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
1483         icall.c reflection.c: Pass a MonoGenericContext argument to 
1484         mono_lookup_dynamic_token ().
1485
1486         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
1487         #82744.
1488         
1489 2007-09-09  Robert Jordan  <robertj@gmx.net>
1490
1491         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
1492         for generic methods.
1493
1494         * object.c (mono_object_get_virtual_method): Handle generic methods.
1495         Fixes bug #78882.
1496
1497         Code is contributed under MIT/X11 license.
1498
1499 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1500
1501         * image.c: fix locking in mono_image_load_file_for_image ().
1502
1503 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
1504
1505         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
1506         used only as a cache: added an icall to fill it.
1507
1508 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
1509
1510         * reflection.h: exposed mono_reflection_free_type_info
1511         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
1512         since mono_reflection_bind_generic_parameters makes a copy of it.
1513         * reflection.c (free_type_info): subinfos should be freed.
1514         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
1515         made non static.
1516         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
1517         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
1518         this fixes #82695 and #81726.
1519    
1520
1521 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
1522
1523         * process.h, process.c:  added support for user profile/info in
1524           ProcessStartInfo. For now only Windows works.
1525
1526 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
1527
1528         * metadata.c: consider the generic arguments when comparing
1529         signatures (bug #82614).
1530
1531 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
1532
1533         * cil-coff.h, image.c: updated assembly loader to cope with the
1534         PE32+ 64 bit file format.
1535
1536 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
1537
1538         * assembly.c, class.c, domain.c, loader.c: remove useless
1539         inclusion of cil-coff.h.
1540
1541 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
1542
1543         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
1544         if interface is marked with CoClassAttribute. 
1545    
1546         Code is contributed under MIT/X11 license.
1547
1548 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1549
1550         * sgen-gc.c: ensure no object from the to space is copied again or finalized
1551         if it's seen twice in major collections.
1552
1553 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
1554
1555         * sgen-gc.c: big objects are not copied to the gray area, but they
1556         need to be considered for scanning, too, if they are brought alive
1557         by an object ready for finalizations or a survived one.
1558
1559 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
1560
1561         * sgen-gc.c: properly account the number of disappearing links when
1562         they are nullified.
1563
1564 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
1565
1566         * sgen-gc.c: share the code to scan the registered roots between the
1567         different types of collections.
1568
1569 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
1570
1571         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
1572
1573 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
1574
1575         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
1576         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
1577
1578 2007-08-28  Mark Probst  <mark.probst@gmail.com>
1579
1580         * security-manager.c (mono_security_manager_get_methods):
1581         LinkDemandSecurityException now has 2 arguments instead of 3.
1582
1583 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
1584
1585         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
1586         platforms which need it.
1587
1588 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
1589
1590         * sgen-gc.c: unregister thread data structures with a pthread_key_t
1591         dtor.
1592
1593 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
1594
1595         * threads.c: free the thread static data on thread exit.
1596
1597 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
1598
1599         * class.c: walk the hierarchy to find the generic definition for
1600         a class (fixes runtime part of bug #82498).
1601
1602 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
1603
1604         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
1605         ...
1606
1607         * image.c (mono_image_close): Here. Hopefully fixes #82510.
1608
1609 2007-08-24  Mark Probst  <mark.probst@gmail.com>
1610
1611         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
1612
1613 2007-08-24  Robert Jordan  <robertj@gmx.net>
1614
1615         * appdomain.c: don't perform the ':'->';' substitution on Win32.
1616
1617 2007-08-24  Jb Evain  <jbevain@novell.com>
1618
1619         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
1620         for byref types.
1621
1622 2007-08-24  Mark Probst  <mark.probst@gmail.com>
1623
1624         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
1625         #82286.
1626
1627 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
1628
1629         * assembly.c: Fix a warning.
1630         
1631 2007-08-23  Marek Habersack  <mhabersack@novell.com>
1632
1633         * appdomain.c: parse the <runtime> section looking for the probing
1634         element with the 'privatePath' attribute, which sets additional
1635         directories in which the runtime should look for assemblies.
1636
1637 2007-08-23  Robert Jordan  <robertj@gmx.net>
1638
1639         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
1640         Fixes #82499.
1641
1642 2007-08-23  Martin Baulig  <martin@ximian.com>
1643
1644         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
1645         _mono_debug_init_corlib() and remove it from the header file.
1646
1647 2007-08-23  Martin Baulig  <martin@ximian.com>
1648
1649         * mono-debug-debugger.c
1650         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
1651         don't notify the debugger about it.
1652
1653         * mono-debug-debugger.h
1654         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
1655
1656 2007-08-23  Robert Jordan  <robertj@gmx.net>
1657
1658         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
1659         Code is contributed under MIT/X11 license.
1660
1661 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
1662
1663         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
1664
1665 2007-08-22  Martin Baulig  <martin@ximian.com>
1666
1667         * mono-debug.c: Store debugging info on a per-domain basis and
1668         free it on domain unload.  Add support for unloading symbol files.
1669
1670         * mono-debug.h
1671         (MonoDebugList): New typedef.
1672         (MonoSymbolTable):
1673         - add `data_tables and `type_table'.
1674         - replace 'symbol_files' and `num_symbol_files' with a
1675           `MonoDebugList *'.
1676         (mono_debug_data_table): Removed.
1677         (mono_debug_list_add): New public function.
1678         (mono_debug_list_remove): New public function.
1679         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
1680         (mono_debug_init_2_memory): Renamed into
1681         mono_debug_open_image_from_memory().
1682         (mono_debug_close_image): New public function.
1683         (mono_debug_domain_create): Likewise.
1684         (mono_debug_domain_unload): Likewise.
1685         (MONO_DEBUGGER_VERSION): Bump to 60.
1686
1687         * mono-debug-debugger.h
1688         (MonoDebuggerEvent):
1689         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
1690         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
1691         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
1692         - rename `THREAD_CREATED' and `THREAD_EXITED' into
1693           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
1694         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
1695           meaning.
1696         (mono_debugger_add_symbol_file): Removed.
1697         (mono_debugger_add_type): Removed.
1698         (mono_debugger_lookup_type): Removed.
1699         (mono_debugger_lookup_assembly): Removed.
1700
1701         * domain.c
1702         (mono_domain_create): Call mono_debug_domain_create().
1703         (mono_init_internal): Call mono_debug_init_corlib().
1704
1705         * assembly.c
1706         (mono_assembly_close): Call mono_debug_close_image().
1707
1708 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
1709
1710         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
1711         mmap call.
1712
1713 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1714
1715         * sgen-gc.c: ensure section->pin_queue_end is initialized
1716         correctly when non pinning objects in the section have been found.
1717
1718 2007-08-22  Marek Habersack  <mhabersack@novell.com>
1719
1720         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
1721         containing a list of directories separated by ':'. MSDN docs say
1722         the directories should be separated with ';'. Part of a bugfix for
1723         bug #81446
1724
1725 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
1726
1727         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
1728         it should MonoType and not MonoClass.
1729
1730 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
1731
1732         * culture-info-table.h : regenerated.
1733
1734 2007-08-20  William Holmes  <billholmes54@gmail.com>
1735
1736         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
1737          to call ReplaceFile Kernel32 on windows or in io-layer.
1738         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
1739         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
1740          as an internal call.
1741
1742         Code is contributed under MIT/X11 license.
1743
1744 2007-08-20  Jb Evain  <jbevain@novell.com>
1745
1746         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
1747         and MONO_EXCEPTION_FIELD_ACCESS.
1748
1749         * debug-helpers.[c|h]: new mono_field_full_name function.
1750
1751 2007-08-20  Mark Probst  <mark.probst@gmail.com>
1752
1753         * class.c: Removed class_security_level() and moved it to
1754         security-core-clr.c.
1755
1756         * security-core-clr.c, security-core-clr.h: class_security_level()
1757         is now public and renamed to mono_security_core_clr_class_level().
1758         It also looks for security attributes in the classes a class is
1759         nested in.
1760
1761 2007-08-20  Mark Probst  <mark.probst@gmail.com>
1762
1763         * security-core-clr.c, security-core-clr.h: CoreCLR security
1764         utility functions.
1765
1766         * Makefile.am: Added security-core-clr.[ch].
1767
1768         * security-manager.c, security-manager.h: Functions and enum for
1769         setting and getting the security mode.
1770
1771         * class.c: CoreCLR security checks.
1772
1773 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
1774
1775         * icall-def.h, process.c, process.h: implemented icall to get
1776         user/system processor times.
1777
1778 2007-08-17  Mark Probst  <mark.probst@gmail.com>
1779
1780         * domain.c, threads.c, class-internals.h, domain-internals.h: New
1781         reader-lock-free jit_info_table.
1782
1783 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
1784
1785         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
1786
1787         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
1788
1789         * object-internals.h (MonoException): Add missing _data member.
1790
1791 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
1792
1793         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
1794         checking that only methods with matching qname or fqname are picked
1795         from implemented interfaces.
1796
1797 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1798
1799         * verify.c (do_newarr):added, do type verification of
1800         newarr ops, push the right value on the eval stack.
1801         * verify.c (mono_method_verify): use do_newarr
1802
1803
1804 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1805
1806         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
1807         factored the common code into get_boxable_mono_type, which
1808         is now using mono_type_get_full, this fixed byref related tests.
1809
1810 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
1811
1812         * class.c: added mono_type_get_full, this function has the same
1813         behavior of mono_class_get_full but the returned MonoType has
1814         all metadata of the associated token in case of a typespec token.
1815         * class.c: added mono_type_retrieve_from_typespec, used by 
1816         mono_type_get_full to retrieve the token type.
1817         * class.c (mono_class_create_from_typespec): changed to use
1818         mono_type_retrieve_from_typespec.
1819         * class.c (mono_ldtoken): changed to use mono_type_get_full
1820         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
1821         * class-internals.h: exported mono_type_get_full for internal use.
1822
1823 2007-08-16  Jb Evain  <jbevain@novell.com>
1824
1825         * domain.c (supported_runtimes): add entry for
1826         the 'moonlight' runtime version.
1827
1828 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1829
1830         * verify.c (mono_method_verify): small typo sliped in.  
1831
1832 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1833
1834         * verify.c (do_unbox_value): added, do type verification of
1835         unboxing ops
1836         * verify.c (mono_method_verify): use do_unbox_value
1837
1838
1839 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1840
1841         * verify.c (dump_stack_value): fixed typo, was printing string
1842         instead of object on stack.
1843         * verify.c (do_box_value): moved the byref check up as it leads
1844         to invalid code and should be done earlier.
1845         * verify.c: improved error messages for and ldobj
1846
1847 2007-08-15  William Holmes  <billholmes54@gmail.com>
1848
1849         * marshal.c (emit_marshal_custom): Omit the call to 
1850           marshal_native_to_managed when calling native to managed 
1851           and the argument is specified as an out argument.
1852
1853         Code is contributed under MIT/X11 license.
1854
1855 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
1856
1857         * verify.c: fixed the type checks for generics, function pointers and vectors.
1858         Added type verification for ldobj and ldtoken. The verifier
1859         would segfault if header or signature of a method contained references
1860         to non-existant types.
1861
1862 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
1863
1864         * marshal.c (cominterop_get_ccw): Patch from
1865         Bill Holmes to no walk up interface hierarchy. 
1866         All parent methods should be present in the interface for COM.
1867    
1868         Code is contributed under MIT/X11 license.
1869
1870 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
1871
1872         * marshal.c (emit_marshal_com_interface): Patch from
1873         Bill Holmes to handle COM Interfaces as return values
1874         for native->managed calls.
1875    
1876         Code is contributed under MIT/X11 license.
1877
1878 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
1879
1880         * marshal.c (cominterop_get_idispatch_for_object): Implement
1881         for runtime callable wrappers.
1882    
1883         Code is contributed under MIT/X11 license.
1884
1885 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
1886
1887         * pedump.c (main): changed from mono_init to mono_init_from_assembly
1888         so 2.0 types are accessible
1889
1890
1891 2007-08-13  Miguel de Icaza  <miguel@novell.com>
1892
1893         * domain.c (mono_init_internal): Call mono_assembly_load_friends
1894         once we load mscorlib.   Due to the order in which we initialize,
1895         the mono_assembly_load_full routine that loads mscorlib did not
1896         load friends.   We now load it once we load the
1897         mono_defaults.internals_visible_class class. 
1898
1899         * assembly.c: Expose the mono_load_friend_assemblies method.
1900
1901 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
1902
1903         * verify.c: improved the handling of boxing, better
1904         type checking for unary ops and conversion. Fix bug
1905         regarding managed pointer compatibility checking
1906
1907 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
1908
1909         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
1910
1911         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
1912
1913 2007-08-09  Raja R Harinath  <rharinath@novell.com>
1914
1915         * reflection.c (dup_type): Remove.
1916         * class.c (dup_type): Remove.
1917         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
1918         instead of the dodgy 'dup_type'.
1919         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
1920         handle the case where 'dup_type' needed the second argument.
1921
1922 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
1923
1924         * domain.c: Fix a warning.
1925
1926 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
1927
1928         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
1929         checking that methods with the same fqname are not overridden
1930         with a method from an ancestor.
1931
1932 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
1933
1934         * threads.c (free_thread_static_data_helper): Avoid a crash if
1935         thread->static_data is not yet set.
1936
1937 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
1938
1939         * marshal.c: Use correct image when emitting
1940         native wrapper for COM calls.
1941    
1942         Code is contributed under MIT/X11 license.
1943
1944 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
1945
1946         * icall-def.h, security.c, security.h :
1947           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
1948
1949 2007-08-07  Martin Baulig  <martin@ximian.com>
1950
1951         * mono-debug-debugger.h
1952         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
1953
1954         * domain.c (mono_domain_free): Call
1955         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
1956
1957 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
1958
1959         * verify.c (check_underflow, check_overflow): error message now returns IL offset
1960         * verify.c (in_same_block): code should test if either offset is inside the clauses
1961         * verify.c (mono_method_verify): push the exception into the eval stack of exception
1962         and filter blocks
1963
1964 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
1965
1966         * image.c (mono_image_close): Fix a leak.
1967
1968         * object.c (mono_runtime_invoke_array): Avoid using alloca.
1969
1970         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
1971
1972 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
1973
1974         * domain.c, threads.c, threads-types.h: fix memory retention issue
1975         with thread static variables not being cleared on domain unload.
1976         Reuse thread static slots after domain unload.
1977
1978 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
1979
1980         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
1981         nullable type.
1982
1983         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
1984         now done in mono_runtime_invoke_array.
1985
1986         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
1987         receiver is a nullable type.
1988
1989         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
1990         generic parameter.
1991
1992 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
1993
1994         * marshal.c: Implement COM Objects as return type for 
1995         managed->unmanaged calls. Added Release calls for COM Object
1996         out/return values in managed->unmanaged calls.
1997
1998         Code is contributed under MIT/X11 license.
1999
2000 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
2001
2002         * threads.h, threads-type.h: move the hazard pointer declarations
2003         to the private header.
2004
2005 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
2006
2007         * file-io.c, appdomain.c: memory leak fixes.
2008
2009 2007-08-02  Dick Porter  <dick@ximian.com>
2010
2011         * socket-io.c
2012         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
2013         SO_REUSEADDR setting into io-layer/sockets.c.
2014
2015 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
2016
2017         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
2018         from Object when called on a generic parameter. Fixes #82211.
2019
2020 2007-08-01  Dick Porter  <dick@ximian.com>
2021
2022         * file-io.c (convert_share): Test FileShare values bit-by-bit.
2023         Fixes bug 79250 yet again.
2024
2025 2007-07-30  Martin Baulig  <martin@ximian.com>
2026
2027         Merged the `debugger-dublin' branch.
2028
2029         * mono-debug.h
2030         (MonoDebugDataTable): New typedef.
2031         (MonoDebugMethodAddressList): New typedef.
2032         (MonoDebugWrapperData): Removed.
2033         (MonoDebugSymbolTable): Removed `current_data_table',
2034         `current_data_table_size', `current_data_table_offset'.
2035         (MonoDebugDataItemType): Moved into mono-debug.c.
2036         (MonoDebugMethodJitInfo): Remove `address'.
2037         (mono_debug_data_table): New global variable.
2038         (mono_debug_lookup_method_addresses): New public function.
2039         (mono_debug_find_method): Take a `MonoMethod *', not a
2040         `MonoDebugMethodInfo *'.
2041
2042         * mono-debug.c: Drop support for the old symbol tables.
2043
2044 2007-06-28  Martin Baulig  <martin@ximian.com>
2045
2046         * mono-debug.c (mono_debug_debugger_version): New public variable.
2047
2048 2007-07-31  William Holmes  <billholmes54@gmail.com>
2049
2050         * metadata.c Changed mono_type_create_from_typespec to not insert
2051           the type into the hash map until after
2052           do_mono_metadata_parse_type has completed.
2053         Fixes Bug #82194
2054         Code is contributed under MIT/X11 license.
2055
2056 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
2057
2058         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
2059         generic parameter. Fixes #82211.
2060
2061 2007-07-27  Jb Evain  <jbevain@novell.com>
2062
2063         * pedump.c (dump_metadata, dump_metadata_header): dump
2064         versions contained in the metadata header.
2065
2066 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2067
2068         * threads.c: register small_id_table with the GC.
2069
2070 2007-07-27  Mark Probst  <mark.probst@gmail.com>
2071
2072         * threads.c, threads.h, class-internals.h, object-internals.h:
2073         Hazard pointers, to be used by lock-free parallel algorithms.
2074
2075 2007-07-26  Dick Porter  <dick@ximian.com>
2076
2077         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
2078         routine on non-windows platforms, as I've not managed to think of
2079         a non-kludgy way of doing this.  Finishes off bug 78739.
2080
2081 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
2082
2083         * object.c: properly setup interface_bitmap in proxy vtables.
2084
2085 2007-07-25  Marek Habersack  <mhabersack@novell.com>
2086
2087         * appdomain.c (get_shadow_assembly_location): do not use TickCount
2088         to create unique shadow copy target directories, use the domain's
2089         serial number instead. Each domain gets a unique target directory
2090         that way.
2091
2092         * domain.c (mono_domain_create): added code to increment domain
2093         shadow copy serial number and cache the value in the current
2094         domain structure.
2095
2096         * domain-internals.h (struct _MonoDomain): added a new field -
2097         shadow_serial to hold the serial number used in generation of
2098         shadow-copy directories. This is to make sure that the directory
2099         name is unique for each and every domain created. We avoid a race
2100         condition with overriding assemblies already in use by other app
2101         domains.
2102
2103 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
2104
2105         * class.c (mono_bounded_array_class_get): fixed memory leak when 
2106         binding generic parameters.
2107
2108 2007-07-24  Raja R Harinath  <rharinath@novell.com>
2109
2110         * metadata.c (do_mono_metadata_parse_generic_class): Use
2111         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
2112         error.
2113
2114 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
2115
2116         * loader.c, class-internals.h, reflection.c: removed the per-method
2117         generics hashtable: we use the global one through the call of
2118         mono_class_inflate_generic_method ().
2119
2120 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
2121
2122         * class.c, metadata.c, class-internals.h: introduce yet another
2123         generics global cache for inflated methods (fixes 98% of the perf
2124         issue in bug #81806).
2125
2126 2007-07-23  Raja R Harinath  <rharinath@novell.com>
2127
2128         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
2129         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
2130         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
2131         return a MonoGenericInst containing (a copy) of those types.
2132         (mono_metadata_inflate_generic_inst): Update to changes.
2133         (mono_metadata_parse_generic_inst): Likewise.
2134         (mono_get_shared_generic_inst): Likewise.
2135         * reflection.c (mono_class_bind_generic_parameters): Likewise.
2136         (mono_reflection_bind_generic_method_parameters): Likewise.
2137         * metadata-internals.h: Likewise.
2138         * icall.c (free_generic_context): Kill.
2139         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
2140
2141         * reflection.c (reflection_methodbuilder_to_mono_method): Use
2142         mono_metadata_type_dup.
2143         * marshal.c (mono_mb_create_method): Likewise.
2144
2145         * metadata.c (mono_metadata_type_dup): Rename from
2146         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
2147         MonoImage.  Handle a few more cases, esp. when no mempool is given.
2148         * marshal.c, metadata-internals.h: Update to changes.
2149
2150 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
2151
2152         * class.c: fixed a small leak for array classes and removed warning.
2153
2154 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
2155
2156         * loader.c (mono_method_get_param_token): Make this work on generic methods.
2157         Return 0x8000000 for return parameters. Fixes #82161.
2158
2159 2007-07-21  Marek Habersack  <grendello@gmail.com>
2160
2161         * appdomain.c (get_shadow_assembly_location): append the current
2162         ticks value to the path. Avoids overwriting the same assemblies by
2163         several threads at the same time.
2164
2165 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
2166         and Raja R Harinath  <rharinath@novell.com>
2167
2168         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
2169         Simplify slightly.
2170         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
2171         property for testing if a method is a generic method definition.
2172
2173 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
2174
2175         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
2176
2177 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2178
2179         * verify.c: used function from private branch, reverted to the one in class.h 
2180
2181 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2182
2183         * verify.c: a typo slipped in and the code wont compile
2184
2185 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2186
2187         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
2188         disabled box instruction as it is doing the wrong thing
2189         improved stack dump messages, now it is easier to debug type related issues
2190
2191
2192 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
2193
2194         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
2195
2196 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2197
2198         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
2199         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
2200         grouped with class and valuetype. This change will simply 
2201         the code as it should be handled just like unmanaged pointers.
2202
2203 2007-07-19  Mark Probst  <mark.probst@gmail.com>
2204
2205         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
2206
2207 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
2208
2209         * verify.c: several stack merge issues fixed, reference comparisons now
2210         check the type size. strict type check now works correctly.
2211         added more uses of IS_MANAGED_POINTER macro.
2212         fixed issues pointed by running the test suite against .net.
2213         
2214
2215 2007-07-19  Mark Probst  <mark.probst@gmail.com>
2216
2217         * class.c, loader.c, class-internals.h: Removed the
2218         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
2219         defines.
2220
2221         * icall.c: Better error checking in some internal reflection
2222         methods.
2223
2224 2007-07-18  William Holmes  <billholmes54@gmail.com>
2225
2226         * filewatcher.c : removed unused variable 'filename' in 
2227           ves_icall_System_IO_FSW_SupportsFSW
2228
2229 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
2230
2231         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
2232         obsolete, removed.
2233
2234 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
2235
2236         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
2237         
2238         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
2239
2240 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
2241
2242         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
2243         Implement generics support.
2244         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
2245
2246         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
2247         type_args and method_args arguments.
2248         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
2249         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
2250         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
2251
2252 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
2253
2254         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
2255           It adds a rootimage parameter to mono_reflection_get_type_internal,
2256           adds new function mono_reflection_get_type_with_rootimage and use
2257           the rootimage to resolve the types instead of the current image
2258
2259 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2260
2261         * culture-info-table.h: Forgot to update after r78304.
2262
2263 2007-07-13  Raja R Harinath  <rharinath@novell.com>
2264
2265         * class.c (mono_class_is_open_constructed_type)
2266         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
2267
2268 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
2269
2270         * class.c (mono_bounded_array_class_get):  method fails if used with
2271         an incomplete TypeBuilder enum (no basetype field), fixed it by 
2272         avoiding calculating the size for such array as it cannot be instantiated.
2273         Fix bug #82015
2274
2275 2007-07-12  Raja R Harinath  <rharinath@novell.com>
2276
2277         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
2278         field.
2279         * metadata.c, reflection.c: Update to changes.
2280
2281 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
2282
2283         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
2284         mono_class_is_valid_enum, they are used to valide a enum when loading.
2285         * reflection.c: used new functions to throw TypeLoadException when and
2286         invalid enum is build with TypeBuilder. Fixes #82018
2287   
2288 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
2289
2290         * object.c: forgot commit of mono_class_setup_methods () to access
2291         iface->methods.
2292         * object-internals.h: added a few more handy fields to
2293         MonoIMTCheckItem.
2294
2295 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
2296
2297         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
2298         iface->methods.
2299
2300 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
2301
2302         * class-internals.h, object-internals.h, object.c: IMT-based
2303         interface invocation core from Massimiliano Mantione
2304         (massi@ximian.com) with a reworked arch-specific interface,
2305         bsearch implementation and a few bugfixes and memory savings by me.
2306
2307 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
2308
2309         * class.c (mono_class_create_from_typedef): mono would segfault if 
2310         an enum did not have a __value field. It now throws a TypeLoadException
2311         for such cases. Fix bug #82022
2312
2313 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
2314
2315         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
2316
2317 2007-07-09  Mark Probst  <mark.probst@gmail.com>
2318
2319         * class.c (mono_class_init): If a class is already inited but has
2320         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
2321
2322 2007-07-09  Mark Probst  <mark.probst@gmail.com>
2323
2324         * class.c: Properly handle the case of an unimplemented interface
2325         method.  Fixes: 81673.
2326
2327 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
2328
2329         * class-internals.h, object.c: cleanup patch from massi: use
2330         MonoVTable->interface_bitmap since the vtable interfaces offset array
2331         is going away.
2332
2333 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
2334
2335         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
2336         GetMDStreamVersion icall instead.
2337
2338 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
2339
2340         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
2341         not use mono_dl_build_path() with a full library name: makes
2342         fallbacks to libgaim and libfam work.
2343
2344 2007-07-06  William Holmes  <billholmes54@gmail.com>
2345
2346         * assembly.c: Added a continue statement in probe_for_partial_name when
2347          parse_assembly_directory_name fails.  Fixes : 82002
2348
2349 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
2350
2351         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
2352         and added a verification  for TYPEDBYREF.
2353         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
2354         make native int interchangeable with int32 and some small cleanup and formating.
2355         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
2356         handle byref of byref.
2357         * verify.c (push_local): handle byref of byref.
2358         * verify.c (do_binop): invalid mix of values is unverifiable
2359         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
2360         added visibility checks
2361         * verify.c (field related method): added visibility checks
2362         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
2363
2364 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
2365
2366         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
2367         string.
2368
2369 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
2370
2371         * profiler.c (mono_profiler_load): Fix an off-by-one error.
2372
2373         * marshal.c (emit_marshal_string): When returning a string from managed code,
2374         allways make a copy even for unicode strings. Fixes #81990.
2375
2376 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
2377
2378         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
2379         of byref generic inst types (bug #81997).
2380
2381 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
2382
2383         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
2384         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
2385
2386 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
2387
2388         * marshal.c (emit_marshal_string): Add support for unicode strings in
2389         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
2390
2391 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
2392
2393         * verify.c: field load/store are now verified, missing only access checks now
2394
2395 2007-06-28  Martin Baulig  <martin@ximian.com>
2396
2397         * mono-debug.c (mono_debug_debugger_version): New public variable.
2398
2399 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
2400
2401         * locales.c: When constructing DateTimeFormat or NumberFormat for
2402         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
2403         MonoCultureInfo contructed from the current locale is always
2404         read-only and has UseUserOverride set to true. All MonoCultureInfo
2405         instances returned for GetCultures have both IsReadOnly and
2406         UseUserOverride set to true. Fixes part of bug #81930.
2407
2408 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
2409
2410        * icall-def.h: Update System.__ComObject icalls
2411        * marshal.c: Avoid managed transition (and object creation)
2412        when looking up COM interface in RCW.
2413        * marshal.h: Ditto.
2414        
2415        Code is contributed under MIT/X11 license.
2416
2417 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
2418
2419         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
2420         to avoid crashes during assembly unloading.
2421
2422 2007-06-22  Raja R Harinath  <rharinath@novell.com>
2423
2424         Fix MethodInfo.IsGenericMethodDefinition
2425         * reflection.c (mono_reflection_bind_generic_method_parameters):
2426         Rearrange code to ensure we always uses a generic method definition.
2427         * class.c (mono_class_inflate_generic_method_full): Set
2428         'generic_container' field only for generic method definitions.
2429         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
2430         Use presense of 'generic_container' field as indication of being a
2431         generic method definition.
2432
2433 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
2434
2435         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2436
2437         * object-internals.h: Reflect changes in the layout of the managed Delegate
2438         class.
2439         
2440         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
2441         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
2442         runtime memory used by the dynamic method. Fixes #77146.
2443
2444 2007-06-21  Dick Porter  <dick@ximian.com>
2445
2446         * file-io.h: 
2447         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
2448         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
2449         81767.
2450
2451 2007-06-21  Raja R Harinath  <rharinath@novell.com>
2452
2453         * reflection.c (method_encode_methodspec): Add a tripwire.
2454         * class.c (inflate_generic_type): The fully open generic type is
2455         not the same as the generic type definition.
2456
2457 2007-06-21  Martin Baulig  <martin@ximian.com>
2458
2459         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
2460
2461         * mono-debug-debugger.h
2462         (MonoDebuggerBreakpointInfo): Removed.
2463         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
2464         (mono_debugger_remove_breakpoint): Likewise.
2465         (mono_debugger_breakpoint_callback): Likewise.
2466         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
2467
2468 2007-06-21  Raja R Harinath  <rharinath@novell.com>
2469
2470         * metadata.c (mono_metadata_lookup_generic_class): The fully open
2471         generic type is not the same as the generic type definition.
2472         * class.c (mono_generic_class_get_class): Likewise.
2473
2474 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
2475
2476         * icall.c: The second argument to 
2477         System.Reflection.MethodBase.GetMethodFromHandleInternalType
2478         is a MonoType not a MonoClass.
2479
2480 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
2481
2482         * verify.c: support for function pointers in the verifier
2483
2484 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
2485
2486         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
2487
2488 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
2489
2490         * assembly.c: removed Mono.Data.SqliteClient from the list of
2491         forward-compatible assemblies as it breaks the ABI (bug #81899).
2492
2493 2007-06-19  Raja R Harinath  <rharinath@novell.com>
2494
2495         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
2496         lookup/update with the loader lock.
2497         * reflection.c (mono_class_bind_generic_parameters): No need to
2498         protect mono_metadata_lookup_* with the loader lock.
2499         * class.c (inflate_generic_type): Likewise.
2500         
2501         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
2502         on a generic instantiated type.
2503
2504 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
2505
2506         *verify.c: produce meanfull error messages on verification error
2507         *verify.c: fixed some cases of verification errors reported as validation errors
2508         *pedump.c: fixed the error name array, now it shows validation errors properly
2509         *verify.h: fixed the contant that should be used for verification errors
2510
2511 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
2512
2513         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
2514         for bug #77596, 81858 and 80743 (generics data structures on domain
2515         unload).
2516
2517 2007-06-15  Raja R Harinath  <rharinath@novell.com>
2518
2519         Avoid allocating 'MonoGenericContext' on the heap.
2520         * class-internals (_MonoMethodInflated::context): Make field
2521         inline, not a pointer.
2522         * loader.c (method_from_methodspec): Allocate 'new_context' on the
2523         stack.  Use the context embedded within the inflated method as the
2524         hash key, rather than 'new_context'.
2525         * class.c (inflate_generic_context): Simplify.  Return a struct
2526         rather than allocating on the heap.
2527         (mono_class_inflate_generic_method_full): Update to changes.  Now,
2528         doesn't salt away a copy of the context -- simplifying the
2529         lifetime rules of a 'MonoGenericContext *'.
2530         (mono_method_get_context): Return pointer to embedded context.
2531         (setup_generic_array_ifaces): Allocate temporary context on stack.
2532         * reflection.c (inflate_mono_method): Likewise.
2533         (mono_reflection_bind_generic_method_parameters): Likewise.
2534         Use the context embedded within the inflated method as the hash key.
2535
2536         Avoid a source of allocation of 'MonoGenericContext'.
2537         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
2538         and 'cached_context' fields into embedded 'MonoGenericContext' field.
2539         * class.c: Update to changes.
2540         (mono_generic_class_get_context): Simplify drastically.  Now just
2541         returns a pointer to the field.
2542         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
2543         argument as a const pointer.
2544         (mono_metadata_generic_context_equal): Likewise.
2545         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
2546         Update to changes.
2547
2548 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
2549
2550         * verify.c improved the handling of brtrue/brfalse, factored out common code
2551
2552 2007-06-14  Raja R Harinath  <rharinath@novell.com>
2553
2554         Kill MonoGenericMethod.
2555         * class-internals.h (MonoGenericContext::method_inst): Rename from
2556         'gmethod' and convert to a MonoGenericInst.
2557         (MonoGenericMethod): Remove.
2558         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
2559         * loader.c (method_from_methodspec): Update to changes.  Use a
2560         MonoGenericContext as the key to the hashtable.
2561         * metadata.c (mono_metadata_generic_context_equal): Rename from 
2562         'mono_metadata_generic_method_equal' and take MonoGenericContext.
2563         (mono_metadata_generic_context_hash): Likewise from
2564         'mono_metadata_generic_method_hash'.  Change hash function.
2565         (mono_metadata_load_generic_params): Update to changes.
2566         (mono_get_shared_generic_method): Remove.
2567         * metadata-internals.h (mono_get_shared_generic_method): Remove.
2568         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
2569         (inflate_generic_context): Likewise.
2570         (mono_class_inflate_generic_method_full): Likewise.
2571         (setup_generic_array_ifaces): Likewise.
2572         (mono_class_create_from_typespec): Likewise.
2573         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
2574         (method_encode_methodspec): Update callsite.
2575         (reflection_methodbuilder_to_mono_method): Update to changes.
2576         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
2577         MonoGenericContext as the key to the hashtable.
2578         (inflate_mono_method): Update to changes.
2579
2580         * class-internals.h (MonoGenericMethod::container): Remove.
2581         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2582
2583 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
2584
2585         * profiler-private.h, profiler.c, profiler.h: added API to profile
2586         exception events.
2587
2588 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
2589
2590         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
2591
2592 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
2593
2594         * verify.c: method invocation is now validated, now we verify parameter types on stack.
2595         Fixed overflow and underflow not aborting the verification process.
2596
2597 2007-06-13  Mark Probst  <mark.probst@gmail.com>
2598
2599         * class-internals.h (MonoStats): Added stats entries for dynamic
2600         code allocations.
2601
2602 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
2603
2604         * loader.c (mono_free_method): Free header->locals and header->clauses.
2605
2606         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
2607         dynamic case.
2608
2609         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
2610
2611         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
2612
2613 2007-06-12  Raja R Harinath  <rharinath@novell.com>
2614
2615         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
2616         the tables.
2617
2618 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2619
2620         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
2621
2622 2007-06-11  Raja R Harinath  <harinath@gmail.com>
2623
2624         MonoGenericMethod on a diet
2625         * class-internals.h (_MonoMethodInflated::reflection_info): Move
2626         here ...
2627         (_MonoGenericMethod::reflection_info): ... from here.
2628         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
2629         Update to changes.
2630         * reflection.c (inflate_mono_method): Likewise.
2631         (mono_reflection_bind_generic_method_parameters): Likewise.
2632
2633 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2634
2635         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
2636         *verify.c: factored long ldarg forms to share code with short forms
2637
2638 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2639
2640         *verify.c: fixed code formating factored some duplicate code
2641         into a new function
2642
2643         *verify.h: fixed binary incompatibility introduced earlier
2644
2645         *pedump.c: fixed formating
2646
2647 2007-06-11  Raja R Harinath  <harinath@gmail.com>
2648
2649         Fix assertion when disassembling Mono.C5.dll
2650         * loader.c (method_from_methodspec): Avoid inflating a method
2651         twice with the same context.  If the methodref is inflated, use
2652         the declaring method instead.
2653
2654         * class.c (mono_class_from_generic_parameter): Fix case similar to
2655         bug #81830 handled below, but for method containers.
2656
2657 2007-06-10  Raja R Harinath  <harinath@gmail.com>
2658
2659         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
2660         get_shared_generic_class.  Directly inflate the instance.
2661         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
2662         (inflate_generic_class): Delete.
2663         (get_shared_generic_class): Delete.  Move setting of
2664         'cached_class' and 'cached_context' ...
2665         * metadata.c (mono_metadata_lookup_generic_class): ... here.
2666
2667         * metadata.c (mono_metadata_lookup_generic_class): Change
2668         signature to take the components of a MonoGenericClass rather than
2669         an allocated MonoGenericClass.  Change semantics to be intern-like.
2670         * reflection.c (mono_class_bind_generic_parameters): Update to
2671         changes.  Make locking region tighter.
2672         * class.c (inflate_generic_class): Update to changes.
2673         (get_shared_generic_class): Likewise.
2674         * metadata-internals.h: Likewise.
2675
2676         * reflection.c (mono_class_bind_generic_parameters): Take and
2677         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
2678         (mono_reflection_bind_generic_parameters): Use
2679         'mono_class_bind_generic_parameters' rather than duplicate the code.
2680         * class.c (mono_bounded_array_class_get): Update to changes.
2681         * object-internals.h: Likewise.
2682
2683         * reflection.c (mono_class_bind_generic_parameters): Only support
2684         parameterizing generic type definitions.  Remove support for other
2685         open types.
2686
2687 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
2688
2689         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
2690
2691         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
2692         in the dynamic case.
2693
2694 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
2695
2696         * threads.c: When cleaning up thread, reset the Background bit.
2697         Fixes bug #81720.
2698
2699 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
2700
2701        * metadata.c: Move variable declarations to top of scope.
2702        * verify.c: Move variable declarations to top of scope.
2703
2704        Code is contributed under MIT/X11 license.
2705
2706 2007-06-08  Raja R Harinath  <rharinath@novell.com>
2707
2708         * reflection.c (mono_class_bind_generic_parameters): Replace
2709         open-coded loop with mono_metadata_inflate_generic_inst.
2710
2711         * class.c (get_shared_generic_class): Don't call
2712         mono_get_shared_generic_inst.  Use the container's own
2713         'class_inst'.
2714
2715         * metadata.c (mono_metadata_load_generic_params): Move
2716         initialization of 'context' field here from ...
2717         * class.c (mono_class_create_from_typedef): ... here, and ...
2718         * loader.c (mono_get_method_from_token): ... here.
2719
2720         * class.c (get_shared_generic_class): Rename from
2721         mono_get_shared_generic_class and make static.
2722         (mono_get_shared_generic_inst): Move to metadata.c.
2723         * loader.c (mono_get_shared_generic_method): Likewise.
2724         * class-internals.h, metadata-internals.h: Update to changes.
2725
2726         Fix #81830
2727         * class.c (mono_class_from_generic_parameter): Don't assume a
2728         generic container owner exists.  Generic containers from monodis
2729         don't have any.
2730
2731 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
2732
2733         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
2734         * verify.h: new typedefs to returns the non-verifiable status
2735         * verify.c: initial implementation of generics, stack merging and object compatibility check
2736
2737 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2738
2739         * class.c, image.c, class-internals.h (MonoImage): class_cache is
2740         a MonoInternalHashTable again (fixed bug in internal hash table
2741         code).
2742
2743 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2744
2745         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
2746         MonoInternalHashTable again (fixed bug in internal hash table
2747         code).
2748
2749 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2750
2751         * class.c, image.c, class-internals.h, domain.c,
2752         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
2753         changes.  Have to figure out what makes them break the SWF
2754         regression.
2755
2756 2007-06-04  Mark Probst  <mark.probst@gmail.com>
2757
2758         * class.c, image.c, class-internals.h (MonoImage): class_cache is
2759         a MonoInternalHashTable now.
2760
2761 2007-06-04  Mark Probst  <mark.probst@gmail.com>
2762
2763         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
2764         MonoInternalHashTable now.
2765
2766 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
2767
2768         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
2769         invoke_impl code.
2770
2771         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
2772
2773         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
2774         dependent trampoline.
2775
2776         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2777
2778         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
2779
2780 2007-05-29  Robert Jordan  <robertj@gmx.net>
2781
2782         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
2783
2784 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
2785
2786         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
2787
2788 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
2789
2790        * marshal.c: Fix interface lookup loops for
2791        cominterop_get_com_slot_for_method and 
2792        cominterop_get_method_interface. Only need to lookup
2793        if type is a class, else use interface type method is on.
2794
2795        Code is contributed under MIT/X11 license.
2796
2797 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
2798
2799         * reflection.c: HasSecurity can be present even if no specially 
2800         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
2801         SecurityAttribute). Fix CAS regression tests on buildbot.
2802
2803 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
2804
2805        * appdomain.c: Add configure checks for header files.
2806        * image.c: Add configure checks for header files.
2807        * file-io.c: Add configure checks for header files.
2808        * debug-mono-symfile.c: Add configure checks for header files.
2809        * threadpool.c: Add configure checks for header files.
2810        * console-io.c: Add configure checks for header files.
2811        * profiler.c: Add configure checks for header files.
2812        * rawbuffer.c: Add configure checks for header files.
2813        * icall.c: Add configure checks for header files.
2814        * rand.c: Add configure checks for header files.
2815        * socket-io.c: Add configure checks for header files.
2816
2817        Code is contributed under MIT/X11 license.
2818
2819 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
2820
2821         * reflection.c (mono_custom_attrs_from_builders): Remove the 
2822         assertion as it breaks the build.
2823         
2824         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
2825
2826         * reflection.c (lookup_custom_attr): Make a copy here too.
2827
2828         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
2829         dynamic images.
2830
2831         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
2832         images.
2833
2834         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
2835         info.
2836
2837 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
2838
2839         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
2840         (load_cattr_value): Ditto.
2841
2842 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
2843
2844         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
2845
2846 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
2847
2848         * threads.c: In "start_wrapper", set apartment_state to MTA if
2849         apartment_state is Unknown and we're running on 2.0 profile or
2850         higher.
2851         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
2852         to main method, then set apartment_state to Unknown on 1.0 profile,
2853         and MTA on 2.0 profile.
2854
2855 2007-05-16  Jb Evain  <jb@nurv.fr>
2856
2857         * class-internals.h (MonoDefaults): Add an attribute_class and
2858           customattribute_data_class.
2859         * domain.c (mono_init_internal): Populate them.
2860         * reflection.c: Use them to remove duplicates. Make a vew
2861         MonoClass variables `static'.
2862
2863 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
2864
2865         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
2866         step in implementing IMT, so that all isinst checks now can go
2867         through the bitmap.
2868         This was needed because vtables for TransparentProxy need to look
2869         like the vtable of the "target" class, so they need to point to
2870         its interface bitmap directly.
2871
2872         * object.c: inside "mono_class_create_runtime_vtable" and
2873         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
2874
2875 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
2876
2877         * object-internals.h
2878           culture-info.h : added territory field in MonoCulture and
2879           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
2880         * locales.c : fill territory field above too.
2881         * culture-info-table.h : regenerated.
2882
2883 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
2884
2885         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
2886         Fixes #81599.
2887
2888 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
2889
2890         * object.c: Always initialize apartment, even if 
2891         there is no custom attributes on entry point.
2892         
2893         Code is contributed under MIT/X11 license.
2894
2895 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
2896
2897         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
2898         * metadata.c: If no encoding is set, check for unicode
2899         on class.
2900         
2901         Code is contributed under MIT/X11 license.
2902
2903 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
2904
2905         * threads.c: Handle if mono_thread_current returns NULL 
2906         
2907         Code is contributed under MIT/X11 license.
2908
2909 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
2910
2911         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
2912         in start_wrapper. Added mono_thread_init_apartment_state and
2913         mono_thread_cleanup_apartment_state.
2914         * object.c: Initialize thread apartment state on main thread
2915         by checking for STAThreadAttribute on entry point.
2916         * object-internals.h: Add apartment_state field to MonoThread.
2917         * threads-types.h: Add unmanaged definition of 
2918         System.Threading.ApartmentState, MonoThreadApartmentState.
2919         
2920         Code is contributed under MIT/X11 license.
2921         
2922 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
2923
2924         * class.c: Fix windows build.
2925         * class-internals.h: Fix windows build.
2926         
2927         Code is contributed under MIT/X11 license.
2928
2929 2007-05-08  Robert Jordan  <robertj@gmx.net>
2930
2931         * process.c (CreateProcess_internal):
2932         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
2933         .CreateNoWindow was specified. Fixes #81496.
2934
2935 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
2936
2937         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
2938         step in implementing IMT, replaced it with two compact arrays
2939         (interfaces_packed and interface_offsets_packed) and a bitmap that
2940         is used for isinst checks (interface_bitmap).
2941
2942         * class.c: (compare_interface_ids): compare function to pass to
2943         bsearch when looking for an interface with a given id.
2944         (mono_class_interface_offset): reimplemented using bsearch on
2945         interfaces_packed, getting the offset from interface_offsets_packed.
2946         (print_implemented_interfaces): utility debugging function.
2947         (setup_interface_offsets): reworked to initialize interfaces_packed,
2948         interface_offsets_packed and interface_bitmap.
2949
2950         * object.c: replaced all accesses to "MonoClass.interface_offsets"
2951         with uses of interfaces_packed and interface_offsets_packed.
2952
2953 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
2954
2955         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
2956         mono_class_interface_offset prototype to wrap all accesses to
2957         "MonoClass.interface_offsets".
2958
2959         * class.c: Implemented mono_class_interface_offset, and wrapped all
2960         accesses to "MonoClass.interface_offsets".
2961
2962         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
2963         "MonoClass.interface_offsets".
2964
2965 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
2966
2967         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
2968         GetMethodFromHandle overloads (bug #78637).
2969
2970 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
2971
2972         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
2973         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
2974
2975 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
2976
2977         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
2978         #81498.
2979
2980         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
2981         gracefully.
2982         (mono_custom_attrs_from_index): Ditto.
2983
2984         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
2985         Fixes #81501.
2986
2987 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
2988
2989         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
2990         is now allocated from a mempool.
2991
2992 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
2993
2994         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
2995         caller holds threads_lock, leading to deadlocks. Fixes #81476.
2996
2997 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
2998
2999         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
3000         mono_loader_clear_error () too late. Fixes #81463.
3001
3002 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
3003
3004         * culture-info-table.h : regenerated.
3005
3006 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
3007
3008         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
3009         is missing.
3010
3011 2007-04-25  Dick Porter  <dick@ximian.com>
3012
3013         * Makefile.am: Put the mingw enforced-optimisation back into the
3014         PLATFORM_WIN32 section.
3015
3016 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
3017
3018         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
3019         patch.
3020
3021         * image.c (mono_image_load_module): New API function to load a module reference.
3022
3023         * image.c (load_modules): Load modules lazily. Fixes #80812.
3024
3025         * class.c (mono_class_from_typeref): Use mono_image_load_module.
3026         
3027         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
3028
3029         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
3030         to mono_image_load_module_dynamic.
3031
3032 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
3033
3034         * marshal.c: Fix calling convention for CCW on non-windows
3035         platforms. STDCALL on windows, CDECL everywhere else to work 
3036         with XPCOM and MainWin COM.
3037         
3038         Code is contributed under MIT/X11 license.
3039
3040 2007-04-23  Martin Baulig  <martin@ximian.com>
3041
3042         Fix #80969.
3043
3044         * loader.c
3045         (method_from_memberref): Added `gboolean *used_context' argument.
3046         (mono_get_method_from_token): Likewise.
3047         (mono_get_method_full): Don't insert the method in the cache when
3048         `used_context' is true.
3049
3050 2007-04-23  Raja R Harinath  <rharinath@novell.com>
3051
3052         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
3053
3054         * reflection.c (mono_reflection_bind_generic_parameters): Don't
3055         create new MonoTypes for returned types.
3056         * class.c (mono_generic_class_get_class): Export mono-internal.
3057         * class-internals.h: Update to changes.
3058
3059 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
3060
3061         * threadpool.c, threadpool.h, icall-def.h: patch from
3062         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
3063
3064 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
3065
3066         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
3067         
3068         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
3069
3070         * threads.c (mono_thread_get_stack_bounds): New helper function.
3071
3072         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
3073         Correctly compute stack bounds when attaching. Fixes #81394.
3074
3075 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
3076
3077         * reflection.c: fix handling of doubles in custom attributes
3078         for the arm-fpa format (bug #81368).
3079
3080 2007-04-18  Raja R Harinath  <rharinath@novell.com>
3081
3082         * reflection.c (assembly_add_win32_resources): Mildly relax an
3083         bounds check to let the end pointer point just past the end of the
3084         allocated buffer.  (may fix #81384)
3085
3086 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
3087
3088         * culture-info-table.h : regenerated.
3089
3090 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
3091
3092         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
3093         the thread is aborted early.
3094
3095 2007-04-05  Dick Porter  <dick@ximian.com>
3096
3097         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
3098         FindFirstFile()/FindNextFile() to find entries.  This lets the
3099         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
3100         81038.
3101
3102         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
3103         the parameters of
3104         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
3105
3106 2007-04-04  Martin Baulig  <martin@ximian.com>
3107
3108         * debug-helpers.c
3109         (mono_method_desc_full_match): Add support for nested classes.
3110
3111 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
3112
3113         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
3114
3115 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
3116
3117         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
3118         waiting for too many threads.
3119
3120 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
3121
3122         * environment.c: Fix return value check on uname so we can get the 
3123         executing version on Solaris operating systems.
3124
3125 2007-03-28  Jb Evain  <jbevain@gmail.com>
3126
3127         * class.c (mono_type_get_name_recurse): Complete the
3128         fix for the creation of assembly qualified names for
3129         pointer types. Fixes #81208.
3130
3131 2007-03-27  Dick Porter  <dick@ximian.com>
3132
3133         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
3134         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
3135         changed.
3136
3137         * threads.c
3138         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
3139         the value of ReleaseMutex().
3140
3141 2007-03-27  Dick Porter  <dick@ximian.com>
3142
3143         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
3144         in little-endian order, not network endian, so must be converted
3145         to host endian here.  Fixes bug 80593.
3146
3147 2007-03-22  Jb Evain  <jbevain@gmail.com>
3148
3149         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
3150         qualified names for pointer types. Fixes #81208.
3151
3152 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
3153
3154         * marshal.c: Add support for PreserveSigAttribute. 
3155         
3156         Code is contributed under MIT/X11 license.
3157
3158 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
3159
3160         * process.c: Fix endianness issues. Fixes #81126.
3161
3162         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
3163         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
3164
3165         * image.c (mono_image_lookup_resource): Make this work on big-endian
3166         machines.Change API contract so the caller needs to free the return value.
3167         
3168         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
3169         API change.
3170         
3171 2007-03-14  Martin Baulig  <martin@ximian.com>
3172
3173         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
3174         mono_type_get_desc() as well.
3175
3176 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
3177
3178         * icall.c:  Fix environ access in VS.  
3179         
3180 2007-03-13  Alp Toker  <alp@atoker.com>
3181
3182         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
3183         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
3184         #63841.
3185
3186 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
3187
3188         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
3189         circular references among dynamic methods. Fixes #81091.
3190
3191         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
3192
3193 2007-03-09  Martin Baulig  <martin@ximian.com>
3194
3195         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
3196
3197 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
3198
3199         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
3200         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
3201         
3202         Code is contributed under MIT/X11 license.
3203         
3204 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
3205
3206         * loader.c: Reapply patch for bug #79424.
3207
3208 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
3209
3210         * metadata.c (mono_type_to_unmanaged): Only convert object to
3211         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
3212
3213 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
3214
3215         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
3216         (and incorrectly set) is_reference field from MonoGenericInst.
3217
3218 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
3219
3220         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
3221         a little earlier.
3222
3223         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
3224
3225         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
3226
3227 2007-03-05  Miguel de Icaza  <miguel@novell.com>
3228
3229         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
3230         FileOptions.1 value to mean "temporary", map that to
3231         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
3232
3233         Fixes 80688
3234
3235 2007-03-03  Marek Habersack  <mhabersack@novell.com>
3236
3237         * appdomain.c: implement MS .Net style shadow copying. Copies of
3238         the assemblies are made in a subdirectory of the dynamic base
3239         directory, the assembly names are preserved.
3240         Copy .mdb and .config files along with the assemblies being shadowed.
3241
3242 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
3243
3244         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
3245         (emit_marshal_handleref): Ditto.
3246
3247         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
3248         on Visual C++. Fixes #80671.
3249
3250 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
3251
3252         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
3253         for clone operations.
3254
3255 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
3256
3257         * marshal.c: Fix warnings.
3258
3259 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
3260
3261         * loader.c: allow case-insensitive matching of the dll name
3262         in dllmap handling when prefixed with "i:".
3263
3264 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
3265
3266         * threads.c: Fix #ifdef for dummy_apc function for VS.
3267
3268 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
3269
3270         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
3271
3272 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
3273         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
3274         giving precedence to the methods with a fully qualified name
3275         (InterfaceName.MethodName) when building the interface sections
3276         of the vtable.
3277
3278 2007-02-16  Dick Porter  <dick@ximian.com>
3279
3280         * threadpool.c (append_job): Fix fast-path array handling, so it's
3281         less likely the array will grow exponentially when the load is
3282         heavy.
3283
3284 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
3285
3286         * metadata-internals.h, loader.c: fix dllmap lookup order
3287         for non-function maps, too, and prepare for fallback code.
3288
3289 2007-02-12  Robert Jordan  <robertj@gmx.net>
3290
3291         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
3292         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
3293         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
3294         GlobalFree. Fixes a part of bug #77075.
3295
3296 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
3297
3298         * loader.c: implemented typedef parent in field memberref.
3299
3300 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
3301
3302         * marshal.c: Fix warnings and remember to call Release on
3303         IUnknown of RCW.
3304         
3305         Code is contributed under MIT/X11 license.
3306
3307 2007-02-10  Miguel de Icaza  <miguel@novell.com>
3308
3309         * class-internals.h: Add MonoHandleRef definition, and
3310         handleref_class to mono_defaults. 
3311
3312         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
3313         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
3314
3315         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
3316         (do nothing on this stage)
3317         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
3318         (emit_marshal_handleref): New method, used for argument handling
3319         of HandleRefs. 
3320
3321 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
3322
3323         * class.c (mono_class_setup_parent): Lazily init com types.
3324         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
3325         init com types.
3326         * object.c (mono_remote_class_vtable): Lazily init com types.
3327         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
3328         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
3329         * domain-internals.h: Expose mono_init_com_types.
3330         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
3331         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
3332         Add support for COM Callable Wrapper marshalling.
3333         * marshal.h: Add icall definitions.
3334         * gc.c: Handle freeing of CCWs in finalizer code.
3335         
3336         Code is contributed under MIT/X11 license.
3337
3338 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
3339
3340         * reflection.c: changed all the signature encoding code to use
3341         a variable-sized buffer.
3342
3343 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
3344
3345         * marshal.c: locking fixes: never take the loader lock
3346         or other runtime locks when holding the marshal lock
3347         (fixes bug#80664).
3348
3349 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
3350
3351         * marshal.c: make the delegate function pointer mapping
3352         work for the moving GC.
3353
3354 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
3355
3356         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
3357         for bug #80618.
3358
3359 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
3360
3361         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
3362         gmodule.
3363
3364 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
3365
3366         * threadpool.c: made the code moving-GC safe.
3367
3368 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
3369
3370         * assembly.c, boehm-gc.c, class-internals.h, class.c,
3371         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
3372         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
3373         warning cleanup.
3374         * reflection.c: warning cleanup, some threading and moving GC fixes.
3375
3376 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
3377
3378         * class.c, loader.c: create the needed Set/Get/Address array methods
3379         as well as the .ctors in mono_class_init (), fixes bug #80567.
3380
3381 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
3382
3383         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
3384         we doesn't decrease its alignment. Should fix the sparc build.
3385
3386 2007-01-24  Dick Porter  <dick@ximian.com>
3387
3388         * socket-io.c
3389         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3390         Create the returned object if we need to ignore an unsupported
3391         socket option.  Fixes a segfault reported by Atsushi.
3392
3393 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
3394
3395         * class.c, object.c: restrict GC-tracked fields to
3396         UIntPtr fields used inside corlib, so we provide better
3397         type info to the GC and also allow broken packing as in
3398         bug #80580.
3399
3400 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
3401
3402         * sgen-gc.c: removed duplicated function.
3403
3404 2007-01-19  Miguel de Icaza  <miguel@novell.com>
3405
3406         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
3407         value that means that the value is not supported, but that we
3408         should not return a failure, but instead report this as a
3409         successful operation.
3410
3411 2007-01-19  Raja R Harinath  <rharinath@novell.com>
3412
3413         Fix tests/bug79956.2.il
3414         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
3415         (mono_generic_class_get_class): If the generic definition in an
3416         enum, copy over other fields related to it.
3417
3418 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
3419
3420         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
3421         genericinst enums (bug #79215).
3422
3423 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
3424         * class.c: Fix bug 80307.
3425
3426 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
3427
3428         * image.c: if the file table is not present, try to load
3429         all the modules, since we don't have info about them
3430         having or not metadata (bug #80517).
3431         * assembly.c: allow mono_assembly_load_references () to
3432         work for netmodules.
3433
3434 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
3435
3436         * image.c, metadata-internals.h, object.c: execute module
3437         cctors when running on the 2 runtime if present (bug #80487).
3438
3439 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
3440
3441         * icall.c: optimized InitializeArray() on bigendian.
3442
3443 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
3444
3445         * icall.c: fix for the broken ARM FPA double format.
3446
3447 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
3448
3449         * icall.c: handle endian issues for r4 and r8 types, too, in
3450         the InitializeArray() icall.
3451
3452 2007-01-15  Miguel de Icaza  <miguel@novell.com>
3453
3454         * loader.c (mono_loader_error_prepare_exception): Clear the error
3455         once we have extracted the information from it, do this before we
3456         call into the JIT's class loading mechanisms.
3457
3458         * object.c (mono_class_create_runtime_vtable): Do not clear the
3459         loader error before calling mono_class_get_exception_for_failure
3460         as the loader error is needed inside
3461         mono_class_get_exception_for_failure to throw the error (thinko).
3462
3463         Fixes #80521
3464         
3465 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
3466
3467         * reflection.c: align fields rva data so it's faster to load at
3468         runtime.
3469
3470 2007-01-12  Raja R Harinath  <rharinath@novell.com>
3471
3472         Prepare to simplify GenericMethod handling.
3473         * class-internals.h (mono_method_get_context): New accessor function.
3474         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
3475         rather than directly accessing '->context' field.
3476
3477         * class-internals.h (_MonoGenericParam.method): Move ...
3478         (_MonoGenericContainer): ... here.  Add into union with klass field.
3479         * class.c, icall.c, loader.c, metadata.c, reflection.c:
3480         Update to changes.
3481
3482 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
3483
3484         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
3485         the wrapper type enum and reduce relocations.
3486
3487 2007-01-12  Raja R Harinath  <rharinath@novell.com>
3488
3489         * reflection.c (inflate_mono_method): Reuse method instantiation
3490         from the generic method, if available.
3491
3492 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
3493
3494         * marshal.c (emit_marshal_variant): Fix conv_arg
3495         type in last commit, based on whether parameter is byref.
3496         
3497 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
3498
3499         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
3500         marshalling.
3501         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
3502         MONO_TYPE_OBJECT back for VARIANT support.
3503
3504 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
3505
3506         * marshal.c, marshal.h, icall-def.h: Implement 
3507         Marshal.ReAllocCoTaskMem.
3508
3509 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
3510
3511         * marshal.c: memory retention fixes: use the proper
3512         image cache for runtime_invoke method lookups.
3513
3514 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
3515
3516         * mempool.c: added code to help debug mempool allocations.
3517
3518 2007-01-11  Dick Porter  <dick@ximian.com>
3519
3520         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
3521         support (experimenting with faking it with IP_MTU_DISCOVER for
3522         systems that don't have IP_DONTFRAGMENT.)
3523         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
3524         icall.
3525
3526         * icall-def.h: new System.Net.Sockets.Disconnect icall.
3527
3528         * socket-io.h: Add new fields to MonoSocketAsyncResult
3529         corresponding to the new ones in Socket.cs.
3530
3531 2007-01-11  Raja R Harinath  <rharinath@novell.com>
3532
3533         Fix IronPython regression mentioned in #80249
3534         * metadata.c (do_mono_metadata_parse_generic_class): Clear
3535         'cached_context' field, since it may have been initialized as a
3536         side-effect of metadata parsing.
3537
3538         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
3539         (_MonoGenericClass.cached_class): Move here and rename from lone
3540         remaining field of ...
3541         (_MonoInflatedGenericClass): ... this.  Remove.
3542         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
3543         to changes.
3544
3545         Fix mcs/tests/test-128.cs regression.
3546         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
3547         2007-01-10 change below.
3548         [MONO_TYPE_OBJECT]: Recurse into array case.
3549
3550 2007-01-11  Raja R Harinath  <harinath@gmail.com>
3551
3552         * class-internals.h (mono_get_inflated_generic_class): Remove.
3553         * class.c (mono_get_inflated_generic_class): Remove.
3554         (mono_generic_class_get_class): Rename from
3555         mono_class_create_generic.
3556         (mono_class_from_mono_type) [GENERICINST]: Use it.
3557         * reflection.c, metadata.c: Update to changes.  Use
3558         'mono_class_from_mono_type'.
3559
3560 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
3561
3562         * reflection.c: use passed type when encoding an array element
3563         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
3564
3565 2007-01-09  Robert Jordan  <robertj@gmx.net>
3566
3567         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
3568         result arguments (someDelegate.EndInvoke (unrelatedAres)).
3569         Fixes bug #80392.
3570
3571 2007-01-09  Raja R Harinath  <rharinath@novell.com>
3572
3573         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
3574
3575         * object.c (set_value): Avoid aliasing between type->data.klass
3576         and type->data.generic_class.
3577
3578         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
3579
3580 2007-01-08  Raja R Harinath  <rharinath@novell.com>
3581
3582         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
3583         between type->data.klass and type->data.generic_class.
3584
3585 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
3586
3587         * marshal.c: In MS.NET, StringBuilder objects are not copied by
3588         value in out parameters.
3589
3590 2007-01-08  Raja R Harinath  <rharinath@novell.com>
3591
3592         Simplify invariant for MonoGenericClass::klass field.
3593         * class.c (mono_class_create_generic): Verify 'klass' is null.
3594         * metadata.c (do_mono_metadata_parse_generic_class): Don't
3595         initialize 'klass' field.
3596
3597 2007-01-05  Raja R Harinath  <rharinath@novell.com>
3598
3599         Ongoing work to avoid redundant data and simplify invariants.
3600         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
3601         'generic_class', and change type to a GenericInst.
3602         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
3603         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
3604
3605 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
3606
3607         * class.c : skip io-layer under PLATFORM_WIN32.
3608
3609 2007-01-03  Tor Lillqvist  <tml@novell.com>
3610
3611         Fix #80305: In a bundled executable, look in the bundled exe
3612         assembly to determine the runtime version. Add the possibility to
3613         bundle also the machine.config file.
3614         
3615         * assembly.c (mono_assembly_open_from_bundle): Make
3616         non-static. Allow being called even if we have no bundled
3617         assemblies, and return NULL right away in that case.
3618
3619         * domain-internals.h: Declare mono_assembly_open_from_bundle()
3620         here.
3621
3622         * domain.c (app_config_parse): Take an assembly exe file name as
3623         parameter instead of a config file name. Check for a bundled
3624         config file for that assembly by calling
3625         mono_config_string_for_assembly_file() (see below) before looking
3626         for one in the file system.
3627         (get_runtimes_from_exe): Corrsponding change to call of
3628         app_config_parse().
3629         (get_runtimes_from_exe): Check for bundled assembly exe file first
3630         by calling mono_assembly_open_from_bundle(). If no bundled
3631         assembly exe file is found, call mono_image_open() as before to
3632         look it up in the file system.
3633
3634         * mono-config.c: Add variable bundled_machinec_onfig.
3635         (mono_config_string_for_assembly_file): New function.
3636         (mono_config_for_assembly): Move code snippet that looks for a
3637         bundled assembly .config file into the above new function. Call
3638         it.
3639         (mono_register_machine_config, mono_get_machine_config): New
3640         functions to set and retrieve
3641
3642         * assembly.h: Declare mono_register_machine_config().
3643
3644         * mono-config.h: Declare mono_get_machine_config() and
3645         mono_config_string_for_assembly_file().
3646
3647         * icall.c: No declaration of environ necessary on Win32. It is
3648         declared (as a macro expanding to a function call) in stdlib.h.
3649         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
3650         New internal mono function. Returns the value of
3651         mono_get_machine_config() as a Mono string.
3652
3653         * icall-def.h: Add get_bundled_machine_config().
3654
3655 2007-01-04  Raja R Harinath  <rharinath@novell.com>
3656
3657         Remove redundant field
3658         * class-internals.h (_MonoGenericContext.container): Remove field.
3659         * loader.c (mono_method_get_signature_full): Don't parse a
3660         "container" for a signature parse when the signature is inflated
3661         immediately.
3662         (method_from_methodspec): Likewise, for a generic_inst.
3663         * class.c, metadata.c, reflection.c: Update to changes.
3664
3665 2006-01-04  Raja R Harinath  <rharinath@novell.com>
3666
3667         * class-internals.h (_MonoGenericClass): Rename 'context' field to
3668         'cached_context', and change semantics -- it starts off NULL, and
3669         is initialized on demand.
3670         * class.c (mono_generic_class_get_context): New accessor to
3671         replace 'context' field accesses.
3672         (mono_class_get_context): New helper.
3673         (*): Update to changes.
3674         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
3675
3676 2007-01-03  Miguel de Icaza  <miguel@novell.com>
3677
3678         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
3679         before the memcpy.   Fixes Marshal2 regression.
3680
3681 2007-01-02  Jb Evain  <jbevain@gmail.com>
3682
3683         * blob.h: add a MONO_TYPE_ENUM definition
3684         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
3685         fix the encoding of arrays of enums in custom attributes.
3686
3687         Fixes #79666.
3688
3689 2007-01-01  Miguel de Icaza  <miguel@novell.com>
3690
3691         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
3692         string is null terminated, but only cut the string short if it
3693         overflows the buffer.   
3694         
3695         (mono_string_to_byvalstr): Also fix this routine.   The code here
3696         was not properly terminating a string (it was only terminated
3697         because of the previous catch-all memset). 
3698
3699         I left the memset, because I do not know if applications expect
3700         the runtime to clear this region. 
3701
3702         Fixes #79944.
3703
3704         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
3705         Clear the error before returning to unmanaged code to prevent the
3706         runtime from being confused later on (fixes  80420).
3707         (ves_icall_type_from_name): Always call mono_loader_clear_error
3708         after parsing a type that could have failed.
3709         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
3710
3711         * loader.c (mono_loader_clear_error): Fix indentation.
3712
3713 2006-12-28  Martin Baulig  <martin@ximian.com>
3714
3715         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
3716
3717 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
3718
3719         * reflection.c: patch from Rolf Bjarne Kvinge to fix
3720         getting a token for an EnumBuilder.
3721
3722 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
3723
3724         * reflection.c: be more careful in case resource generation
3725         fails to create the data array.
3726
3727 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
3728
3729         * sgen-gc.c: write barrier for clone and fix unregister handles.
3730
3731 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
3732
3733         * reflection.c: some fixes needed in the generics code for the moving GC.
3734
3735 2006-12-22  Robert Jordan  <robertj@gmx.net>
3736
3737         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
3738         account. Fixes bug #80299.
3739
3740 2006-12-21  Raja R Harinath  <rharinath@novell.com>
3741
3742         Fix WaitHandle usage in delegates.
3743         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
3744         * object.c (mono_wait_handle_new): Use the property set method to
3745         initialize the handle.
3746         (mono_wait_handle_get_handle): New.
3747         * threadpool.c (mono_async_invoke): Use it.
3748         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
3749         Likewise.
3750         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
3751
3752 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
3753
3754         * marshal.c (emit_marshal): Call emit_marshal_variant and
3755         emit_marshal_com_interface when applicable.
3756         (emit_marshal_variant, emit_marshal_com_interface): Add
3757         methods for this case and remove if's from emit_marshal_object.
3758         
3759 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
3760
3761         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
3762
3763 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
3764
3765         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
3766         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
3767         and GlobalFree on Windows. Remove FIXME.
3768
3769 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3770
3771         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
3772         implementation for managed objects.
3773
3774 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
3775
3776         * object.c: implemented code to be used for checking
3777         that no reference field overlaps with non-references.
3778
3779 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3780
3781         * threadpool.c: fix queue code to be compatible with the
3782         moving GC.
3783
3784 2006-12-18  Miguel de Icaza  <miguel@novell.com>
3785
3786         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
3787         in structures by throwing ArgumentNullException.
3788
3789         (emit_marshal_safehandle): Also when they are null parameters.
3790
3791         (emit_marshal_safehandle): Add support for ref
3792         SafeHandles parameters
3793
3794 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3795
3796         * profiler.c: updated to use the mono-dl API instead of
3797         gmodule.
3798
3799 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3800
3801         * profiler.c: updated to use the mono-dl dynamic loading
3802         API instead of gmodule.
3803
3804 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
3805
3806         * profiler.c: use readlink, older versions of glib don't have
3807         g_file_read_link ().
3808
3809 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3810
3811         * profiler.c: try to detect the path to mono if libc fails to provide
3812         a useful name (bug #80286).
3813
3814 2006-12-16  Raja R Harinath  <rharinath@novell.com>
3815
3816         Fix #80242
3817         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
3818         instance, use the generic type definition instead.
3819         (ves_icall_Type_GetNestedTypes): Likewise.
3820         * class.c (mono_class_create_generic): Always set the
3821         nested_classes of a generic instance to NULL, even if the generic
3822         type definition has nested types.
3823
3824 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
3825
3826         * marshal.c (mono_string_from_bstr): Revert previous Windows change
3827         and fix on Linux.
3828         
3829 2006-12-15  Miguel de Icaza  <miguel@novell.com>
3830
3831         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
3832         my arguments were in the wrong order.   I also fixed the Windows
3833         version which seems to have had the same issue.
3834
3835         (mono_free_bstr): On Unix, this is g_free.
3836         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
3837         conversions (for the tests in corlib to pass).
3838
3839 2006-12-14  Miguel de Icaza  <miguel@novell.com>
3840
3841         * marshal.c (emit_ptr_to_object_conv): For now, ignore
3842         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
3843         exception if a ref SafeHandle in a struct has changed).
3844         
3845         (emit_struct_conv): Do not perform layout checks for classes
3846         derived from SafeHandle, as those are specially handled. 
3847
3848         (emit_object_to_ptr_conv): Add support for
3849         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
3850
3851         (emit_marshal_safehandle): Implement conversion of return values
3852         of safehandles (MARSHAL_ACTION_CONV_RESULT).
3853         
3854         * threads.c: WaitHandle now is compiled with two different handles
3855         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
3856         for 2.0.
3857         
3858         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
3859         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
3860         these routines to cope with both kinds of fields.
3861
3862 2006-12-12  Miguel de Icaza  <miguel@novell.com>
3863
3864         * metadata.c (mono_type_to_unmanaged): Handle the case where
3865         type->data.klass is a SafeHandle, and in that case, return the
3866         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
3867         MONO_MARSHAL_CONV_SAFEHANDLE. 
3868
3869 2006-12-11  Miguel de Icaza  <miguel@novell.com>
3870
3871         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
3872         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
3873         calling emit_marshal_object.
3874
3875         (emit_marshal_safehandle): Implement marshalling of
3876         SafeHandle parameters (no ref support yet).
3877
3878         (MarshalAction): Document the defines as I implement
3879         them for SafeHandle.
3880
3881         (emit_marshal_object): indentation police.
3882
3883         * class-internals.h: Define MonoSafeHandle.
3884         Add safehandle_class to MonoDefaults type.
3885
3886         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
3887         list of classes to check for fields. 
3888
3889         * domain.c (mono_init_internal): Add SafeHandle to the list of
3890         mono_defaults loaded.
3891
3892 2006-12-15  Raja R Harinath  <rharinath@novell.com>
3893
3894         Fix #80253
3895         * reflection.c (mono_reflection_bind_generic_parameters): If the
3896         generic type definition is a type builder, ensure that it is fully
3897         initialized before instantiating it.  Kill some dead code.
3898
3899 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
3900
3901         * object.c: clear the loader_error () before loading
3902         more metadata stuff (bug #80258).
3903
3904 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
3905
3906         * icall.c, icall-defs.h: type modifiers icalls for
3907         parameters and properties.
3908
3909 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
3910
3911         * object.c, icall.c: fixed warnings.
3912
3913 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
3914
3915         * marshal.c: fixed a couple of leaks and coding style in a few places.
3916
3917 2006-12-08  Dick Porter  <dick@ximian.com>
3918
3919         * process.c: Cope with NULL ProcessStartInfo arguments on windows
3920         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
3921         80173.
3922
3923 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
3924
3925         * process.c: ProcessStartInfo may have only filename set and
3926         arguments can be NULL.
3927
3928 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3929
3930         * icall.c: fix leak found by Robert Jordan.
3931
3932 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
3933
3934         * marshal.c, marshal.h: generate managed method to access an element
3935         of a multi-dimensional array.
3936
3937 2006-11-30  Paolo Molaro (lupus@ximian.com)
3938
3939         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
3940
3941 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3942
3943         * icall.c: back out GetFields () fix until the serialization code is
3944         fixed to not depend on the incorrect behaviour.
3945
3946 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
3947
3948         * profiler.c: provide defaults if none are set.
3949
3950 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
3951
3952         * Makefile.am, attrdefs.h: new public header file with
3953         constants for attributes for use by embedders.
3954
3955 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
3956
3957         * icall.c: GetFields () fix for bug #80064.
3958
3959 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
3960
3961         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
3962         removed long unused icalls.
3963
3964 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
3965   
3966         * marshal.c: 
3967                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
3968                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
3969                 can be generated without a delegate class.
3970                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
3971         
3972         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
3973
3974 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3975
3976         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
3977         #80069.
3978
3979 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3980
3981         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
3982         icall-def.h: added icalls needed by System.GC.
3983
3984 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
3985
3986         * loader.c: ensure the class in catch clauses is handled
3987         correctly for generics methods (fixes bug#79980).
3988
3989 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
3990
3991         * monitor.h, monitor.c: added mono_locks_dump () function
3992         to help debug deadlocks involving managed locks.
3993
3994 2006-11-13  Dick Porter  <dick@ximian.com>
3995
3996         * file-io.c (get_file_attributes): If the file is a symlink try
3997         and get the stat data for the target, but also add the
3998         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
3999         the specs for the windows symlink support, but will probably have
4000         to be reworked when I have test data from a vista machine.  Fixes
4001         bug 79887.
4002
4003 2006-11-13  Dick Porter  <dick@ximian.com>
4004
4005         * gc.c (mono_domain_finalize): 
4006         * marshal.c (mono_delegate_begin_invoke): 
4007         * threadpool.c (socket_io_init, mono_thread_pool_init)
4008         (mono_thread_pool_finish): 
4009         * monitor.c (mono_monitor_try_enter_internal): 
4010         * threads.c (mono_thread_resume, mono_thread_init)
4011         (mono_thread_suspend_all_other_threads)
4012         (mono_thread_execute_interruption): 
4013         * appdomain.c (mono_domain_unload): Check for NULL error returns
4014         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
4015         75733.
4016
4017 2006-11-11  Miguel de Icaza  <miguel@novell.com>
4018
4019         * process.c
4020         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
4021         Only close the handle if the value of the handle is not
4022         INVALID_HANDLE_VALUE.  This just makes the process a bit more
4023         robust.
4024
4025         Improvement for #75733, so that we do not run into this problem. 
4026
4027         
4028         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
4029         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
4030         internal variables.  Fixes #79462 
4031         
4032
4033 2006-11-09  Dick Porter  <dick@ximian.com>
4034
4035         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
4036         Use poll() not select().  Fixes bug 79397.
4037
4038 2006-11-09  Raja R Harinath  <rharinath@novell.com>
4039
4040         Fix #79872
4041         * assembly.c (mono_assembly_load_from_full): Check that the given
4042         image has an assembly manifest.
4043
4044 2006-11-09  Ankit Jain  <jankit@novell.com>
4045
4046         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
4047         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
4048         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
4049
4050 2006-11-07  Dick Porter  <dick@ximian.com>
4051
4052         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
4053         Put the old resolver behaviour back for pre-2.0 profiles.
4054
4055 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
4056
4057         * threadpool.c: precise GC and locking fixes.
4058
4059 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
4060
4061         * class.c: don't load types that have an explicit unaligned
4062         managed reference. Provide better info in the TypeLoad exception.
4063         Part of the fix for bug #79744.
4064         * object.c: use the correct check for class type load issues.
4065
4066 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
4067
4068         * class.c: enforce alignment of fields with managed references
4069         even when Pack=1 is forced by the user (bug #77788).
4070
4071 2006-11-03  Dick Porter  <dick@ximian.com>
4072
4073         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
4074         If the address reverse lookup fails, return it as the hostname
4075         anyway.  Fixes bug 79721.
4076
4077 2006-11-03  Dick Porter  <dick@ximian.com>
4078
4079         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
4080         Fix build on Windows.
4081
4082 2006-11-02  Dick Porter  <dick@ximian.com>
4083
4084         * icall-def.h: 
4085         * object-internals.h: 
4086         * exception.c (mono_get_exception_thread_interrupted): 
4087         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
4088         Fixes bug 74525.
4089
4090         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
4091         Check for pending Thread.Interrupt.
4092
4093 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
4094         * loader.c: Fixed bug 79684.
4095
4096 2006-10-27  Dick Porter  <dick@ximian.com>
4097
4098         * file-io.c (get_file_attributes): Force symlinks to directories
4099         to be returned as a regular file.  Fixes bug 79733.
4100 2006-10-26  Dick Porter  <dick@ximian.com>
4101
4102         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
4103         CreateFile to open a directory then we need to set the
4104         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
4105
4106 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
4107
4108         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
4109         friends.
4110
4111 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
4112
4113         * sgengc.c: small cleanup of timer code.
4114
4115 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4116
4117         * sgen-gc.c: fix some warnings and start adding support for
4118         complete object removal on domain unload.
4119
4120 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
4121
4122         * assembly.c: build_assembly_name should not consider a version
4123         number without build or revision number invalid. Fixes bug #79715.
4124
4125 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
4126
4127         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
4128         call kernel32 function OutputDebugString directly.
4129         
4130         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
4131         
4132 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
4133
4134         * reflection.c: small cleanup, using a function to insert a MonoString
4135         in the string heap.
4136
4137 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
4138
4139         * reflection.c: moving GC fixes.
4140
4141 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
4142
4143         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
4144         all the objects with finalizers belonging to an unloading appdomain.
4145
4146 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
4147
4148         * sgen-gc.c: added ability to allocate even when the nursery is fully
4149         pinned and fixed a couple of bugs.
4150
4151 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
4152
4153         * threads.h: Revert the last change for now.
4154
4155         * threads.h (mono_thread_get_pending_exception): Rename this to
4156         mono_thread_get_undeniable_exception ().
4157
4158 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
4159
4160         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
4161         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
4162         when fname does not refer to valid assembly. This result in a more
4163         meaningful error message.
4164         * exception.c: added mono_get_exception_bad_image_format2 which 
4165         constructs a BadImageFormatException using the ctor taking a custom
4166         message and the file name. Passing in a NULL msg results in a default
4167         message.
4168         * exception.h: define mono_get_exception_bad_image_format2 function.
4169         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
4170         when file name pointed to an invalid IL image. Use 
4171         mono_get_exception_file_not_found2 to construct FileNotFoundException,
4172         as this results in a more meaningful error message.
4173
4174 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
4175
4176         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
4177         #79465.
4178
4179 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
4180
4181         * metadata.c (mono_type_size): Change the align parameter to guint32 for
4182         consistency with the other _size functions.
4183         (mono_type_stack_size): Ditto.
4184
4185         * class.c object.c icall.c: Fix warnings caused by the above change.
4186
4187         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
4188
4189         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
4190
4191         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
4192
4193 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4194
4195         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
4196         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
4197         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
4198         threadpool.h, threads-types.h: mark more internal functions.
4199
4200 2006-10-11  Dick Porter  <dick@ximian.com>
4201
4202         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
4203         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
4204         reproduce the bug even before applying the fix.)
4205
4206 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
4207
4208         * reflection.c: allow retrieving attributes for arguments in generic
4209         methods (bug #79241).
4210
4211 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
4212
4213         * debug-mono-symfile.c: properly check fopen () result (found by
4214         coverity).
4215
4216 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
4217
4218         * reflection.c: make error message clearer and fixed two
4219         issuelets found by Coverity.
4220
4221 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
4222
4223         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
4224
4225 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4226
4227         * object-internals.h, gc-internal.h, profiler-private.h:
4228         mark internal functions.
4229
4230 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4231
4232         * reflection.c: put data in the text section.
4233         * icall.c: recognize more types in type_from_typename ().
4234         * process.c, marshal.c: added some GC FIXMEs.
4235
4236 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
4237
4238         * loader.c: check for NULL before initializing.
4239
4240 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
4241
4242         * gc.c (finalizer_thread): Use a non-alertable wait here.
4243
4244         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
4245         until the correct solution is found.
4246
4247 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
4248
4249         * reflection.c (mono_module_get_object): Avoid an assert when operating on
4250         modules with no metadata. Fixes #79596.
4251
4252         * image.c (load_metadata_ptrs): Put back the error message when
4253         the #- heap is encountered since the support is not complete yet.
4254
4255 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
4256
4257         * gc.c: do not allow the user to SuppressFinalize () a
4258         delegate because it would leak the trampoline if present.
4259
4260 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
4261
4262         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
4263         PropertyPtr table.
4264
4265 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
4266
4267         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
4268
4269         * metadata.c (mono_metadata_get_param_attrs): Ditto.
4270
4271         * row-indexes.h: Add definitions for *Ptr tables.
4272
4273         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
4274
4275         * metadata.c (mono_metadata_translate_token_index): New helper function to
4276         translate table indexes used in uncompressed metadata.
4277         (mono_metadata_decode_table_row): Ditto.
4278         (mono_metadata_decode_table_row_col): Ditto.
4279
4280         * metadata.c: Add table schema for *Ptr tables.
4281
4282         * class.c loader.c: Use the new helper function to access the affected metadata
4283         tables.
4284         
4285         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
4286         #38532.
4287         
4288 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
4289
4290         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
4291         sequences which can be unbounded in size. Fixes #79583.
4292
4293 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
4294
4295         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
4296         static initialization.
4297
4298         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
4299
4300         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
4301
4302         * domain.c (mono_domain_free): Free up type_init_exception_hash.
4303
4304         * object.c (mono_runtime_class_init): Implement correct semantics when a static
4305         ctor fails, i.e. throw the same exception on subsequent accesses.
4306         
4307 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
4308
4309         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
4310         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
4311         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
4312         Handle marshalling of interfaces and VARIANTs contained in structs.
4313         
4314         Code is contributed under MIT/X11 license.
4315         
4316 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
4317
4318         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
4319         
4320         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
4321         mempool.
4322
4323 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4324
4325         * console-io.c: ignore previous SIGINT handler.
4326
4327 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
4328
4329         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
4330         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
4331         #79460, #79461, #79485.
4332
4333         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
4334
4335         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
4336         #79217.
4337
4338 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
4339
4340         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
4341         could be generated from it.
4342
4343 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
4344
4345         * rand.c: fix read loop to correctly handle EINTR.
4346
4347 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
4348
4349         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
4350         internal calls are defined to keep methods closer to the declaring
4351         type and allow a significant reduction in runtime relocations and
4352         memory usage.
4353
4354 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
4355
4356         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
4357         exception message to have FileNotFoundException use the default
4358         assembly load error message. Fixes bug #79426.
4359         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
4360
4361 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4362
4363         * threadpool.c: (start_thread_or_queue) use the root domain when
4364         creating the thread instead of the async object one.
4365
4366 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
4367
4368         * class.c, object.c, class-internals.h, reflection.c:
4369         for arrays, store element_size inside MonoClass (speedup
4370         for array object creation).
4371
4372 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
4373
4374         * icall.c: fixed CodeBase to use the file name and not the module
4375         name (bug #79365).
4376
4377 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
4378
4379         * mono-debug.c, mono-debug.h: export find_method as
4380         mono_debug_find_method ().
4381
4382 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
4383
4384         * debug-helpers.c, class-internals.h: added a few functions useful
4385         when debugging under gdb.
4386
4387 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4388
4389         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
4390         characters that need special handling.
4391
4392 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
4393
4394         * mono-config.c: make the os/cpu specification more flexible,
4395         allowing lists and negation.
4396
4397 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
4398
4399         * marshal.c: COM Interop fixes. Handle case where method->klass.
4400         is interface. Handle BSTR/MonoString when null. Use CDECL as 
4401         calling convention on non-windows platforms. This is for
4402         compatibility with XPCOM and MainWin COM.
4403         
4404         Code is contributed under MIT/X11 license.
4405         
4406
4407 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
4408
4409         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
4410         correctly. Fixes #79217.
4411
4412         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
4413
4414 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
4415
4416         * mono-config.c: allow both an os and cpu attribute for dllmap
4417         and dllentry elemnets to enable a single config file to be used
4418         for multiple architectures.
4419
4420 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
4421
4422         * loader.c: MonoLoaderError was cleared too soon on load failure.
4423         Fixes bug #79424.
4424
4425 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
4426
4427         * icall.c: use the defining class vtable when accessing a
4428         static field, not a pobblibly derived class.
4429
4430 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
4431
4432         * icall.c string-icalls.c: Remove references to unicode.h.
4433
4434         * unicode.h unicode.c Makefile.am: Remove these unused source files.
4435
4436         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
4437
4438         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
4439         indicating the image where custom marshaller types should be looked up.
4440         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
4441         custom marshallers, instead of corlib. Fixes #79425.
4442
4443 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
4444
4445         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
4446
4447 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
4448
4449         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
4450         Implement Environment.ProcessorCount.
4451         
4452         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
4453         Implement Environment.ProcessorCount.
4454         
4455         * icall.c: 
4456         Add Environment.ProcessorCount icall.
4457         
4458         Patch by Jason McFall.
4459
4460 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4461
4462         * assembly.c: don't append .exe/.dll when the filename already contains
4463         one of those extensions.
4464
4465 2006-09-12  Martin Baulig  <martin@ximian.com>
4466
4467         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
4468         to array interfaces.
4469
4470 2006-09-11  Martin Baulig  <martin@ximian.com>
4471
4472         * reflection.c (mono_image_build_metadata): Create the
4473         MethodImpl's after emitting all types and methods, so we don't
4474         need another fixup pass for them.
4475
4476 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
4477
4478         * class.c (mono_class_from_name_case): Fix regression introduced by the last
4479         change.
4480
4481 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
4482
4483         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
4484         unload.
4485
4486 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
4487
4488         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
4489         args is not set. Fixes #78926.
4490
4491 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
4492
4493         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
4494
4495         * image.c (load_class_names): Move this to class.c, and rename it to 
4496         'mono_image_init_name_cache'.
4497         (load_modules): Fix a warning.
4498
4499         * class.c icall.c image.c: Initialize image->name_cache lazily.
4500
4501         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
4502         on its name using information in the AOT file.
4503
4504         * class.c (mono_class_from_name): Use the new hook function.
4505
4506 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
4507
4508         * reflection.c (mono_param_get_objects): Handle enum default parameter values
4509         correctly.
4510
4511         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
4512         Fixes #79289.
4513         
4514 2006-09-06  Martin Baulig  <martin@ximian.com>
4515
4516         * icall.c (mono_lookup_internal_call): Small fix.
4517
4518 2006-09-05  Raja R Harinath  <rharinath@novell.com>
4519
4520         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
4521         double g_free.
4522
4523 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
4524
4525         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
4526         when --debug is specified.
4527
4528 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
4529
4530         * class.c (setup_generic_array_ifaces): Fix a warning.
4531
4532 2006-09-04  Miguel de Icaza  <miguel@novell.com>
4533
4534         * Temporarily remove the patch to assemly.c that checks the
4535         assembly versions as it breaks our gacutil.
4536
4537 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
4538
4539         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
4540
4541         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
4542         a net 1.0 runtime.
4543
4544         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
4545         created using the default ctor. Fixes #79152.
4546         (mono_string_builder_to_utf16): Ditto.
4547
4548 2006-09-01  Martin Baulig  <martin@ximian.com>
4549
4550         Fix handling of the generic array interfaces.
4551
4552         * class-internals.h
4553         (MonoDefaults): Removed `generic_array_class' and added
4554         `generic_ilist' class.
4555
4556         * class.c
4557         (mono_bounded_array_class_get): Add the new generic array interfaces.
4558         (setup_generic_array_ifaces): New static method; create vtable
4559         entries for each method in the generic array interfaces.
4560
4561         * metadata.c
4562         (select_container): Allow "parent-less" generic methods.
4563
4564         * marshal.c
4565         (mono_marshal_get_generic_array_helper): New public method.
4566
4567         * icall.c
4568         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
4569         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
4570         moved the interncall into System.Array.
4571
4572 2006-09-01  Raja R Harinath  <rharinath@novell.com>
4573
4574         A few more cases of avoiding work on types with ->byref set.
4575         Has the real fix for #79238
4576         * icall.c (is_generic_parameter): New helper.
4577         (ves_icall_Type_GetGenericParameterPosition): Use it.
4578         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
4579         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
4580         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
4581         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
4582         reference types.
4583         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
4584         reference types.
4585         (ves_icall_Type_get_IsGenericInstance): Likewise.
4586         (ves_icall_Type_get_IsGenericType): Likewise.
4587
4588 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
4589
4590         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
4591         class if possible.
4592
4593         * mempool.h (mono_mempool_get_allocated): New helper function.
4594
4595         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
4596         change.
4597
4598         * mempool.c: Fix warnings and the calculation of stats.
4599
4600         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
4601
4602         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
4603
4604         * loader.c (mono_get_method_from_token): Update method_count stat.
4605
4606         * class-internals.h (MonoStats): Add some stats.
4607
4608 2006-08-31 Robert Jordan  <robertj@gmx.net>
4609
4610         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
4611         with managed variants.
4612         All code is contributed under the MIT/X11 license.
4613         
4614 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
4615
4616         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
4617         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
4618
4619         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
4620
4621         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
4622         with cycles in classes.
4623
4624         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
4625
4626         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
4627         missing a [MarshalAs] directive. Fixes #79203.
4628
4629         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
4630         klass->marshal_info. Fixes #79217.
4631
4632 2006-08-30  Martin Baulig  <martin@ximian.com>
4633
4634         Committing a patch from Joachim Ante <joe@otee.dk>:
4635         Add support for binary data symbol stores.
4636
4637         * debug-mono-symfile.c
4638         (mono_debug_open_mono_symbol_file): Renamed into
4639         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
4640         arguments.
4641
4642         * mono-debug.c
4643         (mono_debug_open_image): Added `raw_contents' and `size' args.
4644         (mono_debug_init_2_memory): New public function.
4645
4646 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
4647
4648         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
4649
4650 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4651
4652         * appdomain.c: implement support for ShadowCopyFiles.
4653
4654 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
4655
4656         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
4657         when value is NULL (and should remove CID #51).
4658
4659 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4660
4661         * image.c: moved 2 functions to ../utils.
4662
4663 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
4664
4665         * gc.c: cope with the target object of a GC handle being NULL
4666         (bug #78877).
4667
4668 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
4669
4670         * class.c: recursively check parent's explicit implementations
4671         of interface methods (fixes bug #79125).
4672
4673 2006-08-19  Miguel de Icaza  <miguel@novell.com>
4674
4675         * filewatcher.c: Avoid warnings when building, do not redefine
4676         constants that are defined.
4677
4678         Remove warnings.
4679
4680 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4681
4682         * image.c: don't fail when the link points to an absolute path.
4683
4684 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
4685
4686         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
4687         Fix CID #3.
4688
4689 2006-08-17  Miguel de Icaza  <miguel@novell.com>
4690
4691         * image.c (full_path): A new method used to obtain the actual path
4692         of an assembly even in the presence of symbolic links.  
4693
4694         This is necessary for the case where we are running a binary that
4695         has been GACed, but we are using the "published" path name
4696         ($prefix/mono/1.0/blah.exe) which happens to point to the real
4697         file in the GAC.
4698
4699         This was the source of the failure for the `xsp' command with the
4700         recent AppDomain changes, as far as the runtime was concerned,
4701         there were two different assemblies: $prefix/mono/1.0/blah.exe and
4702         $prefix/mono/gac/blah/version/blah.exe.
4703
4704         (do_mono_image_open): use full path
4705
4706 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4707
4708         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
4709
4710 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
4711
4712         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
4713         domain_id is supplied. Fix CID #241 and corlib's unit tests.
4714
4715 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4716
4717         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
4718         small structures. Fixes #78990.
4719
4720 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
4721
4722         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
4723
4724         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
4725
4726 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4727
4728         * appdomain.c:
4729         * marshal.c: don't load all the assemblies from a domain into newly
4730         created ones. The new domains might have different rules and load
4731         assemblies from different locations. Fixes bug #76757.
4732
4733         Patch by Lluis. Conflicts resolved by Brian Crowell.
4734
4735 2006-08-16  Alp Toker  <alp@atoker.com>
4736
4737         * socket-io.c: First half of the fix for #79084.
4738         Set sa_size to the length of the content, not that of the struct.
4739         Don't add NULL suffix to the content, this should be done in
4740         managed code if needed.
4741
4742 2006-08-14  Raja R Harinath  <rharinath@novell.com>
4743
4744         Fix part of #79012
4745         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
4746         mono_metadata_parse_type returns NULL.
4747
4748 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
4749
4750         * normalization-tables.h : new file for string normalization data.
4751         * locales.c, locales.h, icall.c :
4752           added load_normalization_resource() for string normalization,
4753           and icall as well.
4754         * Makefile.am : added normalization-tables.h to the sources.
4755
4756 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
4757
4758         * marshal.c: Add more helper functions to reduce code duplication and use them
4759         everywhere.
4760
4761 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
4762
4763         * marshal.c: Fix non-x86 stdcall warnings.
4764         
4765         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
4766         them everywhere.
4767
4768 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
4769
4770         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
4771         type check on multi-dimensional arrays. Fixes #79000.
4772
4773 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
4774
4775         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
4776         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
4777         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
4778         * class-internals.h: add is_com_object to class structure.
4779         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
4780         null checks to COM object marshalling. Fix .ctor call on RCW.
4781         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
4782         
4783         All code is contributed under the MIT/X11 license.
4784
4785 2006-08-09  Dick Porter  <dick@ximian.com>
4786
4787         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
4788         racing mono_monitor_allocator_lock() somewhere, so don't delete
4789         the critical section for now.  Found by running and exiting
4790         monodevelop.
4791
4792 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
4793
4794         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
4795         (ves_icall_System_ComObject_FindInterface): Ditto.
4796         (ves_icall_System_ComObject_CacheInterface): Ditto.
4797
4798         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
4799         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
4800
4801 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4802
4803         * threadpool.c: treat pipes from process asynchronous reads as sockets
4804         when reading from them, so we get select/poll or epoll to wait for
4805         data.
4806
4807 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
4808
4809         * loader.c: Fix a typo (CID #233) in the null check.
4810
4811 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
4812
4813         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
4814         Hopefully fixes #78949.
4815         
4816         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
4817         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
4818         bytes. Fixes #78972.
4819
4820 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4821
4822         * filewatcher.c: we need to set errno here.
4823
4824 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4825
4826         * filewatcher.c: let Win32Exception get the error value.
4827
4828 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4829
4830         * filewatcher.c: translate errno into win32 errors for Win32Exception
4831         to know what happened.
4832
4833 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
4834
4835         * threadpool.c: Fix more warnings.
4836
4837         * assembly.c (search_loaded): Fix warnings.
4838
4839         * threadpool.c (mono_thread_pool_finish): Fix warnings.
4840         (mono_async_invoke): Ditto.
4841
4842 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
4843
4844         * object.c (mono_remote_class_vtable): Need to create proxy vtable
4845         entries for __ComObject type in addition to ComImport types.
4846         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
4847         about hash table.
4848         
4849         All code is contributed under the MIT/X11 license.
4850
4851 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
4852
4853         * image.c: avoid tentative loading of modulerefs that contain
4854         no metadata (P/Invoke library names).
4855
4856 2006-07-28  Dick Porter  <dick@ximian.com>
4857
4858         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
4859         mono_loader_lock() somewhere, so don't delete the critical section
4860         for now.  Found by running and exiting monodevelop.
4861
4862 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4863
4864         * filewatcher.c: define the inotify syscalls when we're building on
4865         linux and have sys/syscall.h. The build system might not have support
4866         for inotify but the target system might have it.
4867
4868 2006-07-26  Miguel de Icaza  <miguel@novell.com>
4869
4870         * domain.c: Documentation updates.
4871
4872         * loader.c (mono_free_method): Do not release the method
4873         information if we are being profiled, as profilers will use this
4874         information at shut down to present some data to the user.
4875
4876         This is needed so that the profiler does not crash, as the
4877         profiler tends to keep MonoMethods around, and they might become
4878         invalid if we free these.
4879
4880         (mono_get_method_constrained): Return the original CIL stream
4881         method as well, so verification can be performed against it.
4882
4883 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4884
4885         * filewatcher.[ch]: support for inotify file system watcher.
4886         * icall.c: add new internal calls for the inotify file system watcher.
4887
4888 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4889
4890         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
4891         #78888.
4892
4893 2006-07-20  Dick Porter  <dick@ximian.com>
4894
4895         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
4896         warning.
4897
4898 2006-07-20  Dick Porter  <dick@ximian.com>
4899
4900         * threads.c (start_wrapper): Do the thread cleanup while we still
4901         hold a reference to its object.  Fixes bug 78123.
4902
4903 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
4904
4905         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
4906         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
4907           "managed-to-managed".
4908         * icall.c: Redirect string constructors that take sbyte* to
4909           ves_icall_System_String_ctor_RedirectToCreateString.
4910         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
4911           to CreateString () methods with matching signature.
4912         * reflection.c: Use original security informations for
4913           MONO_WRAPPER_MANAGED_TO_MANAGED.
4914         * security-manager.c: Use original security informations for
4915           MONO_WRAPPER_MANAGED_TO_MANAGED.
4916         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
4917           that is a placeholder and only its address should be used.
4918         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
4919           that is a placeholder and only its address should be used.
4920
4921 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
4922
4923         Begin implementing COM Interop.
4924         * appdomain.c: Increment corlib version.
4925         * class.c: Set ComImport classes' parent to __ComObject.
4926         * loader.c: Mark cominterop methods as such.
4927         * domain.c: Add __ComObject class to MonoDefaults structure.
4928         * image.c: Add 2 hashtables to the image for COM Interop related methods
4929         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
4930         using the mempool allocator
4931         
4932         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
4933         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
4934         declaration for mono_metadata_type_dup_mp.
4935         
4936         * debug-helpers.c: Added strings for two additional wrapper types
4937         * object.c: Create proxy objects for ComImport classes
4938         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
4939         and added __ComObject class to MonoDefaults structure.
4940         
4941         * object-internals.h: Finish MonoRealProxy definition, and add definition of
4942         MonoComInteropProxy and MonoComObject.
4943         
4944         * marshal.c: Added support for COM Interop
4945         (signature_cominterop): Converts managed signature to corresponding
4946         unmanaged COM signature.
4947         (cominterop_get_function_pointer): gets unmanaged function pointer via
4948         COM object vtable
4949         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
4950         (cominterop_get_method_interface): returns interface type that method is defined on
4951         (mono_mb_emit_cominterop_call): emits native call to function pointer
4952         gotten from vtable
4953         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
4954         that matches signature of unmanaged function.
4955         (cominterop_get_native_wrapper): wrapper around adjusted method call.
4956         (cominterop_get_invoke): forwards call from proxy to __ComObject
4957         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
4958         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
4959         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
4960         
4961         * marshal.h: Added Marshal icall declarations.
4962         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
4963         so we can access them in finalizer
4964         
4965 2006-07-14  Dick Porter  <dick@ximian.com>
4966
4967         * object.c (mono_type_initialization_cleanup): Fix a race
4968         condition by temporarily commenting out the critical section
4969         deletion.
4970
4971 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
4972
4973         * reflection.c (create_custom_attr): Fix some warnings.
4974         (create_custom_attr_data): Ditto.
4975         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
4976         types. Fixes #78855.
4977
4978 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
4979
4980         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
4981
4982         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
4983
4984 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
4985
4986         * reflection.c (resolve_object): Add support for DynamicMethod.
4987
4988         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
4989         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
4990
4991 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
4992
4993         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
4994         don't leak GPtrArray's pdata has we have no use (nor free) for it.
4995
4996 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
4997
4998         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
4999         Fixes #77888.
5000
5001 2006-06-30  Raja R Harinath  <rharinath@novell.com>
5002
5003         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
5004         slightly: remove a shadow local variable.
5005
5006 2006-06-29  Raja R Harinath  <rharinath@novell.com>
5007
5008         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
5009         definition that introduces the virtual function slot.
5010         Also fix Coverity #105.
5011
5012 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
5013
5014         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
5015         for dynamic assemblies. Fixes #78724.
5016
5017 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
5018
5019         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
5020         Fixes #78722.
5021
5022 2006-06-21  Martin Baulig  <martin@ximian.com>
5023
5024         * reflection.c
5025         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
5026         fixes #76484.
5027
5028 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
5029
5030         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
5031
5032 2006-06-20  Raja R Harinath  <rharinath@novell.com>
5033
5034         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
5035         nor TYPEREFs.
5036         * class.c (mono_class_create_from_typespec): Add 'context' argument.
5037         Inflate result if necessary.
5038         (mono_class_get_full): Remove old version.  Rename from
5039         'mono_class_get' and add 'context' argument.  Pass it to
5040         ..._create_from_typespec.
5041         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
5042         (mono_ldtoken): Revert change below.
5043
5044 2006-06-20  Martin Baulig  <martin@ximian.com>
5045
5046         * class.c (mono_ldtoken): Don't pass the generic context to
5047         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
5048
5049 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
5050
5051         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
5052         and later freeing it. Fixes #78638.
5053
5054 2006-06-15  Miguel de Icaza  <miguel@novell.com>
5055
5056         * icall.c (mono_class_get_throw): Revert over-zealous error
5057         throwing, the caller for mono_class_get_throw will cope with
5058         errors when classes are not properly initialized already.
5059
5060         The code still copes with loader exceptions though.
5061
5062         Fixes the regression in reftype1 and reftype3 from the CAS tests.
5063         
5064 2006-06-14  Miguel de Icaza  <miguel@novell.com>
5065
5066         Fixes the `make run1' version of RuntimeAbort (to be commited,
5067         source is in Bugzilla).
5068         
5069         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
5070         FALSE on class loading failure instead of returning true.
5071
5072         * class.c (mono_class_create_from_typedef): It is possible for
5073         mono_metadata_interfaces_from_typedef_full to fail if a class is
5074         not found, cope with this.
5075         
5076
5077 2006-06-14  Dick Porter  <dick@ximian.com>
5078
5079         * socket-io.c: 
5080         * process.c: Fix a bunch of signed/unsigned warnings from gcc
5081         4.1.1
5082
5083 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
5084
5085         * culture-info-table.h : oops, forgot to make it nsync with r61548.
5086
5087 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
5088
5089         * icall.c: Another fix for building mono in Visual Studio.
5090
5091 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
5092
5093         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
5094         
5095 2006-06-09  Martin Baulig  <martin@ximian.com>
5096
5097         * debug-mono-symfile.c: Put this back and really fix it this
5098         time. Sorry for all the trouble.
5099
5100 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
5101
5102         * icall.c (mono_class_get_throw): Fix a warning.
5103         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
5104         ReflectionTypeLoadException if needed. Fixes #78606.
5105
5106         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
5107         (mono_class_init): Ditto.
5108
5109         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
5110         ref_only exceptions.
5111         (mono_loader_clear_error): Make this work even if there is no error.
5112
5113 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
5114
5115         * object-internals.h marshal.c marshal.h icall.c: Implement method 
5116         Marshal.GetComSlotForMethodInfo using internal call.
5117
5118 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
5119
5120         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
5121         a function for signalling it.
5122
5123         * class.c (mono_class_from_typeref): Use the new kind of loader error when
5124         a referenced assembly is not found.
5125
5126         * loader.c (mono_loader_error_prepare_exception): Add support for 
5127         LOADER_ERROR_ASSEMBLY. Fix formatting.
5128
5129 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
5130
5131         * domain.c appdomain.c class-internals.h marshal.c: Add support 
5132         for VARIANT marshalling on windows and increment corlib version
5133         since Variant struct was added.
5134
5135 2006-06-03  Miguel de Icaza  <miguel@novell.com>
5136
5137         * debug-mono-symfile.c: Revert Martin's previous patch which broke
5138         stack trace line information:
5139
5140         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
5141         (Martin) when looking up B which is between A and C, return A not C.
5142
5143         Bug is #78573.
5144
5145         Thanks to Alexander Olk for tracking this down.
5146
5147 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
5148
5149         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
5150         
5151         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
5152         avoid clobbering its value.
5153         (mono_string_to_lpstr): Fix a warning on windows.
5154
5155 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
5156
5157         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
5158
5159         * reflection.c loader.c: Removed references to 'dummy' flag.
5160
5161         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
5162
5163         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
5164         it gets GC tracking.
5165
5166         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
5167         GC tracking.
5168         
5169         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
5170
5171         * marshal.c threadpool.c: Update callers of mono_async_result_new.
5172
5173         * appdomain.c: Bump corlib version.
5174
5175 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
5176
5177         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
5178         CEE_STIND_REF when working with object references.
5179
5180 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
5181
5182         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
5183         Fixes #78539.
5184
5185 2006-05-30  Miguel de Icaza  <miguel@novell.com>
5186
5187         * loader.c (method_from_memberref): Fix argument value for
5188         mono_loader_set_error_method_load (I was passing the MonoClass
5189         instead of the class name char *).
5190
5191 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
5192
5193         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
5194         CEE_STIND_REF when working with object references.
5195
5196 2006-05-30  Martin Baulig  <martin@ximian.com>
5197
5198         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
5199         mono_method_full_name() change and replace the ':' with a '.'
5200         here.
5201
5202 2006-05-30  Martin Baulig  <martin@ximian.com>
5203
5204         * debug-mono-symfile.c
5205         (mono_debug_symfile_lookup_location): Fix the algorithm:
5206         when looking up B which is between A and C, return A not C.
5207
5208 2006-05-29  Martin Baulig  <martin@ximian.com>
5209
5210         * mono-debug.h
5211         (MonoDebugMethodInfo): Make the typedef public.
5212         (MonoDebugSourceLocation): New public struct.
5213
5214         * mono-debug.c
5215         (mono_debug_source_location_from_address): Removed.
5216         (mono_debug_source_location_from_il_offset): Removed.
5217         (mono_debug_il_offset_from_address): Removed.
5218         (mono_debug_address_from_il_offset): Removed.
5219         (mono_debug_lookup_method): New public function.
5220         (mono_debug_lookup_source_location): New public function; replaces
5221         the old mono_debug_source_location_from_*() functions; see the
5222         inline documentation.
5223         (mono_debug_free_source_location): New public function.
5224         (mono_debug_print_stack_frame): New public function; see the
5225         inline documentation.
5226
5227         * debug-mono-symfile.c
5228         (mono_debug_find_source_location): Renamed into
5229         mono_debug_symfile_lookup_location(); only take a
5230         `MonoDebugMethodInfo *' and an `offset' argument; added inline
5231         documentation.
5232         (mono_debug_find_method): Renamed into
5233         mono_debug_symfile_lookup_method().
5234
5235 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
5236
5237         * assembly.c (mono_assembly_open_full): Dont overwrite the status
5238         returned by mono_image_open_full ().
5239
5240         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
5241         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
5242         #78517.
5243
5244         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
5245         #78518.
5246
5247 2006-05-27  Miguel de Icaza  <miguel@novell.com>
5248
5249         * class.c (mono_class_from_typeref): handle missing images
5250         earlier, deals with bug #78418.   Refactor code; 
5251
5252         Fix a warning introduced in my previous commit (some stale code
5253         from before I revisited my patch).
5254
5255         * class.c (mono_class_create_from_typedef): On failure, remove the
5256         class from the MonoImage->class_cache as the class is not
5257         initialized;   Fixes the leak pointed out by Paolo.
5258
5259 2006-05-25  Dick Porter  <dick@ximian.com>
5260
5261         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
5262         DeleteCriticalSections until I figure out which one may still be
5263         sometimes locked when mono_thread_cleanup is called.
5264
5265 2006-05-24  Dick Porter  <dick@ximian.com>
5266
5267         * threads.c (mono_thread_cleanup): Move the threading cleanup out
5268         of mono_thread_manage and back into its own function, so it can be
5269         called after the finalizer thread has finished.
5270
5271         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
5272
5273 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
5274
5275         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
5276         Fixes #78495.
5277
5278         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
5279         with non-blittable elements.
5280         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
5281
5282 2006-05-24  Martin Baulig  <martin@ximian.com>
5283
5284         * mono-debug-debugger.h (MonoDebuggerEvent): Added
5285         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
5286
5287         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
5288         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
5289         `mono_debugger_event_handler' to NULL.
5290
5291 2006-05-24  Martin Baulig  <martin@ximian.com>
5292
5293         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
5294
5295 2006-05-24  Martin Baulig  <martin@ximian.com>
5296
5297         * mono-debug-debugger.h
5298         (mono_debugger_create_notification_function): Added
5299         `MonoCodeManager *' argument.
5300
5301 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
5302
5303         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
5304
5305 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
5306
5307         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
5308         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
5309         implementation.
5310
5311 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
5312
5313         * icall.c: precise GC support: objects can't be stored in unmanaged
5314         memory anymore, even if they are kept alive by other references: since
5315         they can move the GC needs to be able to always find them.
5316
5317 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
5318
5319         * object.c: precise GC support for static fields. Support
5320         for moving GCs: write barriers and pinned allocation for interned
5321         strings.
5322
5323 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
5324
5325         * domain.c, domain-internals.h: precise GC support for the MonoDomain
5326         structure.
5327
5328 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
5329
5330         * class.c, gc.c: sgen and precise GC updates.
5331
5332 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
5333
5334         * marshal.h, marshal.c: added write barrier wrapper and precise type
5335         fixes.
5336
5337 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
5338
5339         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
5340         support.
5341
5342 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
5343
5344         * reflection.c: precise and sgen GC updates.
5345
5346 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
5347
5348         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
5349
5350 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
5351
5352         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
5353
5354 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
5355
5356         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
5357         MONO_TYPE_OBJECT. Fixes #78462.
5358
5359 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
5360
5361         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
5362         and blittable types.
5363
5364 2006-05-17  Miguel de Icaza  <miguel@novell.com>
5365
5366         * class.c (mono_class_get_exception_for_failure): Implement parts
5367         of a TODO: if the loader error is set (instead of the class
5368         error), we return a Loader exception that can be properly thrown
5369         elsewhere.
5370
5371         This was exposed by some Winforms 2.0 code that I tried to run
5372         (Atsushi pointed me to it).
5373
5374 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
5375
5376         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
5377         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
5378         
5379         * marshal.c (emit_marshal_vtype): Add limited support for 
5380         UnmanagedType.LPStruct. Fixes #78427.
5381
5382         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
5383         Applied a patch from kangaroo to fix #77523.
5384
5385 2006-05-17  Martin Baulig  <martin@ximian.com>
5386
5387         * threads.c
5388         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
5389         (debugger_thread_created): Removed.
5390         (debugger_thread_exited): Removed.
5391
5392 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
5393
5394         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5395
5396         * object-internals.h (MonoReflectionResource): Sync with managed version.
5397
5398 2006-05-12  Wade Berrier <wberrier@novell.com>
5399
5400         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
5401
5402 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
5403
5404         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
5405         functions try to allocate from the image mempool.
5406
5407 2006-05-12  Dick Porter  <dick@ximian.com>
5408
5409         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
5410
5411 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
5412
5413         * object.c: The FieldGetter and FieldSetter methods require the full
5414         name of the class, not only the name. Fixes bug #78277.
5415
5416 2006-05-11  Miguel de Icaza  <miguel@novell.com>
5417
5418         * loader.c (method_from_memberref): Do not pass the NULL klass to
5419         mono_loader_set_error_() methods.  Pass the non-NULL value
5420         (class). 
5421
5422 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
5423
5424         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
5425         (mono_assembly_close): Null out assembly->image->references after freeing it.
5426
5427         * image.c (mono_image_close): Free image->references.
5428         
5429         * reflection.c (mono_image_basic_init): Fix a small memory leak.
5430
5431 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
5432
5433         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
5434         before checking if it's NULL (g_assert).
5435
5436 2006-05-10  Martin Baulig  <martin@ximian.com>
5437
5438         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
5439         I thought I already killed that two months ago, but now it somehow reappeared.
5440
5441 2006-05-10  Martin Baulig  <martin@ximian.com>
5442
5443         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
5444
5445 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
5446
5447         * reflection.c: Allocate memory for dynamically created methods in the image
5448         mempools.
5449
5450 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
5451
5452         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
5453         don't use the ad pointer before checking if it's NULL (g_assert).
5454
5455 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
5456
5457         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
5458         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
5459
5460         * marshal.c: Allocate all signatures from mempools.
5461
5462         * marshal.c: Allocate some more signatures from mempools.
5463
5464 2006-05-09  Miguel de Icaza  <miguel@novell.com>
5465
5466         * object.c (mono_load_remote_field): The code used to provide a
5467         temporary variable for returning results if the user did not
5468         provide a result pointer.  But our temporary variable was allocted
5469         on the satck.
5470
5471         Fix calling code to always pass a result area.   Coverity ID 103.
5472
5473 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
5474
5475         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
5476         value, not the old. Fixes #78312.
5477         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
5478
5479         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
5480         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
5481         per-image cache.
5482
5483         * assembly.c (mono_assembly_close): Free image->references.
5484
5485         * assembly.c (mono_assembly_names_equal): Fix a warning.
5486         (mono_assemblies_cleanup): Cleanup more global data.
5487
5488         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
5489
5490         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
5491         ptr_cache and image->modules.
5492
5493         * image.c (mono_image_init): Allocate array_cache lazily.
5494         
5495 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5496
5497         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
5498         behavior was changed recently and has bad side effects.
5499
5500 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
5501
5502         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
5503         
5504         * assembly.c (mono_assembly_close): Remove a debug printf.
5505
5506         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
5507
5508         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
5509         to also allow for temporary references between mono_image_open ()/close ().
5510
5511         * domain.c (get_runtimes_from_exe): Add a FIXME.        
5512
5513 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
5514
5515         * marshal.c: Fix support for dynamic methods.
5516
5517         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
5518
5519         * marshal.c (mono_marshal_cleanup): New cleanup function.
5520
5521         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
5522         image mempools.
5523
5524         * class.c (mono_class_init): Fix leaking class->nested_classes.
5525
5526         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
5527
5528         * image.c (mono_image_init): Initialize the new cashes.
5529
5530         * image.c (mono_image_close): Destroy the new cashes.
5531
5532         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
5533
5534         * mempool.c (mono_mempool_strdup): New helper function.
5535
5536         * class-internals.h: Add prototype for mono_loader_unlock ().
5537
5538         * domain.c (mono_jit_info_table_find): Fix a warning.
5539         (mono_debugger_check_runtime_version): Ditto.
5540
5541         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
5542         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
5543         functions to these modules.
5544
5545         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
5546         metadata modules.
5547         
5548         * marshal.c (mono_free_bstr): Fix a warning.
5549
5550         * assembly.c (mono_assembly_open_full): Fix another small leak.
5551
5552         * object.c: Fix some unload leaks in the remoting code.
5553
5554         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
5555         function.
5556
5557         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
5558
5559         * reflection.c: Fix some unload leaks in dynamic assemblies.
5560
5561 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
5562
5563         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
5564         * marshal.h: Add BSTR support on Win32
5565         * icall.c: Add BSTR icalls
5566         * metadata.h: Add BSTR enums
5567
5568 2006-04-28  Miguel de Icaza  <miguel@novell.com>
5569
5570         Work to catch the crash from #76795 and turn it into an
5571         exception.   As I stubbed out pieces of the VisualBasic support,
5572         I found a number of places where the code was failing and I added
5573         checks to those places. 
5574         
5575         * metadata.c (do_mono_metadata_parse_generic_class): Make this
5576         function return a status code.  If we fail to parse the signature
5577         from mono_metadata_parse_generic_inst, return FALSE.
5578
5579         * loader.c (mono_get_method_from_token): If we fail to load the
5580         method (mono_class_get) return NULL.   
5581
5582         * (method_from_memberref): Return NULL if we are unable to parse
5583         the method signature
5584
5585         (mono_loader_error_prepare_exception): Since we now use the
5586         loader_error flag internally to stop processing, and obtaining
5587         exceptions that might be thrown will walk this code path the
5588         proper way of going from a MonoLoaderError into a
5589         MonoException was convoluted.   This new routine encapsulates the
5590         process of turning the error into an exception and *clearing* the
5591         error afterwards.
5592         
5593 2006-04-27  Miguel de Icaza  <miguel@novell.com>
5594
5595         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
5596         with missing assemblies), and to cope with:
5597
5598                 * Missing fieldref from a non-existing assembly.
5599                 * Missing methodref from a non-existing assembly.
5600
5601         The first batch of work to address *some* of the issues from 76661.
5602         
5603         * object.c (mono_class_create_runtime_vtable): If we fail to
5604         initialize the class raise the exception here. 
5605
5606         * metadata.c (mono_class_get_overrides_full): If any methods fail
5607         to load return the failure to the caller.
5608
5609         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
5610         flagging assemblies that failed to load.   
5611
5612         Do not crash if we are unable to load the assembly.
5613
5614         (mono_assembly_close): Do nothing with REFERENCE_MISSING
5615         assemblies. 
5616
5617         * loader.c (mono_loader_set_error_type_load): Change the
5618         convention to always pass unallocated strings, so we make our own
5619         copies (I know our own code had duplicated strings before, but
5620         this keeps the normal conventions).
5621         (method_from_memberref): Call mono_loader_set_error_method_load
5622         for all possible failures of loading the class. 
5623         Remove assert, turn into a loader error.
5624
5625         (mono_loader_error_to_exception): Move this routine from mini
5626         (mini_loader_error_to_exception) there was no need to have that in
5627         mini. 
5628
5629         * class.c (mono_class_from_typeref): If we were not able to load
5630         the assembly with mono_assembly_load_reference, call the
5631         mono_loader_set_error_type_load to register the problem.
5632
5633         (mono_class_setup_fields): If we fail to load the type from
5634         mono_metadata_parse_type_full, call mono_class_set_failure and
5635         break from the loop.
5636
5637         If class->exception_type is set, we do not layout the fields as
5638         that might crash the runtime, and instead return (from breaking
5639         from the previous loop).
5640
5641         (mono_class_setup_vtable): This now returns a boolean indicating
5642         whether the table was properly setup.   The decision is driven by
5643         mono_class_get_overrides_full which might run into non-existing
5644         methods. 
5645         
5646         (mono_class_init): Returns TRUE on success or FALSE if there was a
5647         problem in loading the type (incorrect assemblies, missing
5648         assemblies, methods, etc).
5649
5650         When we call mono_class_setup_fields we also check for a potential
5651         error inside this call (either a class exception or a general
5652         loader exception).
5653
5654         (mono_class_create_from_typedef): If the parent fails to load
5655         (calling mono_class_get_full) return NULL.
5656         
5657         ** Important **
5658
5659         calls to mono_metadata_parse_type_full should be checked
5660         everywhere and set the mono_class_set_failure
5661         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
5662
5663         The current patch checks the places where my manually constructed
5664         tests show the errors are showing up, but we should do it
5665         everywhere. 
5666
5667         ** Important2 **
5668
5669         mono_class_init return values should be tested everywhere, like
5670         the previous case this is something that we should audit
5671         everywhere and not only on the cases exposed by the tests I
5672         created. 
5673
5674 2006-04-26  Miguel de Icaza  <miguel@novell.com>
5675
5676         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
5677         boolean parameter and instead pass the information on `options'
5678         parameter (FileOptions).
5679
5680         * icall.c: Register the new signature for MonoIO.Open.
5681
5682         * debug-helpers.c (dis_one): Trying to understand how coverity
5683         works.  Fix Run 5, item 78.
5684
5685 2006-04-26  Dick Porter  <dick@ximian.com>
5686
5687         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
5688         dereference.
5689
5690 2006-04-25  Martin Baulig  <martin@ximian.com>
5691
5692         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
5693
5694         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
5695         debugger_thread_created().
5696         (debugger_gc_push_all_stacks): Don't handle the main thread in any
5697         special way.
5698         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
5699         (mono_debugger_finalize_threads): New function; undo the effects
5700         of mono_debugger_init_threads().
5701         (mono_debugger_create_all_threads): Removed.
5702
5703 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
5704
5705         * image.c (mono_image_close): Tidy up trace messages.
5706
5707         * assembly.c (mono_assembly_close): Ditto.
5708
5709         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
5710         no longer references an already freed assembly. Fixes #78168.
5711
5712 2006-04-21  Dick Porter  <dick@ximian.com>
5713
5714         * threads.c (mono_thread_detach): Fix reference counting when
5715         detaching threads.
5716
5717 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
5718
5719         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
5720         #78155.
5721
5722 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
5723
5724         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
5725         (mono_type_to_stind): Ditto.
5726
5727         * marshal.c: Use the new helper functions to simplify code.
5728
5729         * image.c (mono_image_close): Add some code for help debug assembly unloading
5730         problems.
5731
5732         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
5733         image mempool.
5734
5735         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
5736         assembly was already loaded in another appdomain. Fixes #78083.
5737
5738 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
5739
5740         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
5741         referenced assemblies.
5742         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
5743
5744         * domain.c (mono_domain_free): Add a trace message.
5745
5746         * appdomain.c (add_assemblies_to_domain): Ditto.        
5747
5748         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
5749         field.  
5750
5751 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
5752
5753         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
5754
5755 2006-04-12  Martin Baulig  <martin@ximian.com>
5756
5757         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
5758         `USE_INCLUDED_LIBGC'.   
5759
5760 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
5761
5762         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
5763         the patch contains ../ and a small directory name later. Hopefully fixes
5764         #78035.
5765
5766 2006-04-10  Martin Baulig  <martin@ximian.com>
5767
5768         Clean up the debugger's thread-handling code.
5769
5770         The debugger's thread-handling code has been moved from
5771         ../mini/debug-debugger.c to threads.c.  We now iterate directly
5772         over the `threads' hash, keep track of exiting threads and also
5773         use proper locking.
5774
5775         We can now debug XSP and XSP based applications with the debugger.
5776
5777         * object-internals.h (MonoThread): Added `gpointer end_stack'.
5778
5779         * threads.h
5780         (MonoThreadCallbacks): Removed; this was only used by the debugger.
5781         (mono_install_thread_callbacks): Likewise.      
5782
5783         * threads.c (mono_thread_callbacks): Removed.
5784         (debugger_thread_created, debugger_thread_exited): New static functions.
5785         (start_wrapper): Call debugger_thread_created().
5786         (thread_cleanup): Call debugger_thread_exited().
5787         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
5788         (mono_debugger_init_threads): New public function.
5789         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
5790         iterate directly over the `threads' hash and also use proper locking.
5791
5792         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
5793
5794         * mono-debug-debugger.h
5795         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
5796
5797 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
5798
5799         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
5800         argument type=array. Fixes #78057.
5801
5802 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
5803
5804         * culture-info-table.h : regenerated. Fixed bug #69652.
5805
5806 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
5807
5808         * loader.c metadata.c: Reapply a variant r59116.
5809         
5810         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
5811
5812         * class.c (mono_class_setup_interface_offsets): New internal function.
5813
5814         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
5815         interfaces too. Fixes #77398.
5816
5817         * reflection.c (encode_cattr_value): Add support for 
5818         parameter type=object, argument type=array.
5819         (load_cattr_value): Ditto. Fixes #77916.
5820
5821         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
5822         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
5823
5824         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
5825         a byval char array and CharSet is Ansi.
5826
5827         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
5828
5829 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
5830
5831         * metadata.c: Add some locking comments.
5832         
5833         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
5834         mempool.
5835         (mono_metadata_free_method_signature): Don't free the signature itself.
5836
5837         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
5838
5839         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
5840         reference the same MonoImage.
5841         (mono_assembly_load_from_full): Add an assert.
5842
5843 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
5844
5845         * image.c (mono_image_close): Don't put the image we are about to free into the
5846         loaded_images_guid_hash.
5847
5848         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
5849         to reduce code duplication.
5850
5851         * marshal.c: Register the native functions called by this module as icalls, to
5852         somewhat centralize the creation of MonoMethodSignature's.
5853
5854         * loader.c (mono_method_signature): Add a cache for method signatures.
5855
5856         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
5857         the parameter attributes of a method.
5858         (mono_metadata_parse_method_signature_full): Refactored the computation of
5859         parameter attributes into a separate function. Also avoid one allocation in
5860         most cases.
5861
5862         * assembly.c (mono_assembly_close): Ditto.
5863
5864         * image.c (mono_image_close): Log trace messages with INFO level.
5865
5866         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
5867
5868         * image.c reflection.c: Correct reference counting of image modules.
5869         
5870         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
5871         of this function from the image mempool.
5872         
5873         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
5874         to allow more cached types to be used.
5875
5876         * mono-debug.c (mono_debug_add_method): Appled patch from
5877         David S. Miller  <davem@sunset.davemloft.net>: Access 
5878         minfo->lexical_blocks[] entry elements using read32().
5879
5880 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
5881
5882         * loader.c (mono_free_method): No longer free the method header for non-dynamic
5883         methods as it is allocated from the mempool.
5884
5885         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
5886         image mempool.
5887
5888         * metadata-internals.h: Add comments describing the reference counting scheme
5889         used for MonoImage and MonoAssembly.
5890
5891         * image.c assembly.c reflection.c: Rework reference counting of images and 
5892         assemblies so they are freed when the runtime is shut down. Free some 
5893         additional memory structures when an image is unloaded.
5894         
5895 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
5896
5897         * class.c loader.c reflection.c: Allocate more data structures in
5898         the image mempool.
5899
5900 2006-03-31  Miguel de Icaza  <miguel@novell.com>
5901
5902         * icall.c
5903         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
5904         build on pre glib 2.4 systems.
5905
5906 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
5907
5908         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
5909
5910         * icall.c: Fix some warnings.
5911
5912 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
5913
5914         * culture-info-table.h : regenerated.
5915
5916 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
5917
5918         * threads.c, object-internals.h, verify.c: changed the culture caching
5919         code to use a normal MonoArray for storage so the GC can keep track of
5920         them easily. Fixed bits of the cache logic, too and simplified the
5921         code.
5922
5923 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
5924
5925         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
5926         thread for non-Boehm GCs.
5927
5928 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
5929
5930         * domain.c, object.c, domain-internals.h: reduce the amount of memory
5931         needed to keep track of the data for static fields.
5932
5933 2006-03-29  Raja R Harinath  <rharinath@novell.com>
5934
5935         Fix #75172
5936         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
5937         for interface classes.  Use 'num_methods' instead.
5938         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
5939         before using '->vtable_size' field.
5940
5941 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
5942
5943         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
5944         doesn't contain managed pointers, so use a normal hashtable.
5945
5946 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
5947
5948         * reflection.c, class-internals.h, domain.c: fixed handling of types
5949         used as values for objects in custom attributes (bug #77915):
5950
5951 2006-03-24  Martin Baulig  <martin@ximian.com>
5952
5953         * class.c (mono_class_setup_fields): Added support for generic
5954         instances; fixes #77580.
5955
5956 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5957
5958         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
5959
5960 2006-03-24  Dick Porter  <dick@ximian.com>
5961
5962         * file-io.c (get_file_attributes): More stat macro breakage.
5963         Fixes bug 77759.
5964
5965 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
5966
5967         * profiler.c: added the file=filename option in the default profiler
5968         to output the profile data to filename.
5969
5970 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5971
5972         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
5973         bug #77877.
5974
5975 2006-03-22  Martin Baulig  <martin@ximian.com>
5976
5977         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
5978         allocated `MonoClassField *' in `fb->handle'.
5979
5980 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5981
5982         * class.c, image.c, metadata-internals.h: implemented new mechanism to
5983         allocate interface ID to save memory and allow better ID reuse on
5984         appdomain unload. setup_generic_vtable () removal from Martin.
5985
5986 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
5987
5988         * object.h, appdomain.c, domain.c, exception.c, icall.c,
5989         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
5990         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
5991         write barriers for reference stores with managed objects accessed with
5992         C structures in the runtime and in embedding programs.
5993
5994 2006-03-20  Raja R Harinath  <rharinath@novell.com>
5995
5996         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
5997         'interface_id' and 'max_interface_id' fields of MonoClasses
5998         representing open generic types.
5999
6000 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
6001
6002         * object.h, object.c, icall.c: added functions to deal with
6003         storing valuetypes that contain references in managed objects.
6004         * reflection.c, string-icalls.c, threads.c, marshal.c: small
6005         fixes and comments around uses of mono_array_addr ().
6006
6007 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
6008
6009         * object.h, icall.c, monitor.c: object.GetHashCode ()
6010         implementation that supports the moving garbage collector.
6011
6012 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
6013
6014         * icall.c, threads-types.h, threads.c: implemented finalizer for
6015         LocalDataStoreSlot.
6016
6017 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
6018
6019         * metadata.c (mono_type_size): Add a fixme.
6020         (mono_type_stack_size): Ditto.
6021
6022         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
6023         'type_forwarders' field.
6024
6025         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
6026         attribute from net 2.0.
6027
6028         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
6029         from class.c.
6030
6031         * class.c (mono_class_setup_fields): Fix a warning.
6032         
6033         * class.c (mono_class_from_name): Add support for assemblyref entries
6034         in the EXPORTEDTYPE table.
6035
6036         * reflection.c: Add support for handling type forwarders under net 2.0.
6037
6038         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
6039         
6040 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
6041
6042         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
6043         overwriting entries in ModuleBuild->types, also clean up the code
6044         a little. Fixes #77774.
6045
6046 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
6047
6048         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
6049         load friend assembly info when present.
6050
6051 2006-03-14  Raja R Harinath  <rharinath@novell.com>
6052
6053         Fix crasher on gtest-158.cs.
6054         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
6055         the return value if the MonoClass we want is yet in an
6056         inconsistent state.
6057         * class.c (mono_class_create_from_typedef): Add an comment
6058         explaining an order dependency between mono_class_setup_parent and
6059         mono_class_setup_mono_type.
6060
6061 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
6062
6063         * class.c: documentation updates and events bug fix.
6064
6065 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
6066
6067         * class.c: some cleanup, locking fixes.
6068
6069 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
6070
6071         * class.c: fix the generics code to setup nested
6072         type info to the instantiated type (bug #77770).
6073
6074 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
6075
6076         * marshal.c: fixed a few type correctness issues.
6077
6078 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
6079
6080         * loader.c: the Set/Get/Addrtess array methods should be public.
6081
6082 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
6083
6084         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
6085         
6086         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
6087         info->wrapper.
6088
6089 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
6090
6091         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
6092
6093         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
6094
6095         * mempool.c (mono_mempool_alloc): Speed this up a bit.
6096         (mono_mempool_alloc0): Ditto.
6097
6098 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6099
6100         * socket-io.c:
6101         (create_object_from_sockaddr): it was allocating 4 extra bytes
6102         for the AF_UNIX data. Fixes bug #77747.
6103
6104 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
6105
6106         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
6107
6108 2006-03-09  Dick Porter  <dick@ximian.com>
6109
6110         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
6111         Fixes bug 76966 again.
6112
6113 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
6114
6115         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
6116         names from r57532
6117         * appdomain.c: Bumped corlib version to 48 (due to r57532)
6118
6119 2006-03-07  Martin Baulig  <martin@ximian.com>
6120
6121         * object.c
6122         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
6123
6124 2006-03-07  Martin Baulig  <martin@ximian.com>
6125
6126         * class.c
6127         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
6128         regression introduced in r56970; see gtest-252.cs.
6129
6130         * loader.c (mono_get_method_constrained): Correctly handle generic
6131         methods; see gtest-253.cs.
6132
6133 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
6134
6135         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
6136
6137 2006-03-04  Martin Baulig  <martin@ximian.com>
6138
6139         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
6140         compute the parent type at runtime, just like we're already doing
6141         it for interfaces.
6142
6143         * reflection.c
6144         (mono_reflection_bind_generic_parameters): Don't compute the
6145         parent type anymore.
6146
6147         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
6148
6149 2006-03-04  Martin Baulig  <martin@ximian.com>
6150
6151         * mono-debug-debugger.h
6152         (mono_debugger_create_notification_function): Allocate memory at
6153         runtime and return a pointer to it.
6154
6155 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
6156
6157         * assembly.c: Fix windows build.
6158         
6159         * assembly.c: Fix build.
6160
6161         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
6162
6163         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
6164         
6165 2006-03-03  Dick Porter  <dick@ximian.com>
6166
6167         * process.c
6168         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
6169         Check parameters before dereferencing them.  Fixes Aaron's part of
6170         bug 77393.
6171
6172 2006-03-03  Raja R Harinath  <rharinath@novell.com>
6173
6174         Fix performance regression.
6175         * loader.c (find_method_in_class): Add 'from_class' argument.
6176         Rename 'klass' argument to 'in_class'.  The signature is compared
6177         against the method in 'in_class', and the corresponding method is
6178         returned from 'from_class'.
6179         (find_method): Walk both 'in_class' and 'from_class' in parallel.
6180         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
6181         type definition and generic instantiation in parallel.
6182         (mono_get_method_constrained): Update to changes.
6183
6184 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
6185
6186         * threads.c: make sure the domain is correct, too when doing
6187         mono_thread_attach ().
6188
6189 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
6190
6191         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
6192         windows. Fixes #77683.
6193
6194 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
6195
6196         * object.h, *: introduced specific way to set elements of an array
6197         of references to be used as write barrier. Still need to audit the
6198         uses of mono_array_addr.
6199
6200 2006-03-01  Miguel de Icaza  <miguel@novell.com>
6201
6202         * object-internals.h: New field to cache the assmebly name, patch
6203         from Tambet Ingo (tambet@ximian.com)
6204
6205 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
6206
6207         * decimal.h, class-internals.h, metadata-internals.h,
6208         file-io.h: mark a few function declarations as internal, to
6209         reduce the number of PLT entries.
6210
6211 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6212
6213         * file-io.c: fix typo in warning message.
6214
6215 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
6216
6217         * loader.c: on unix, lookup the "*A" version of a function
6218         if charset is auto as a second option before failing.
6219
6220 2006-02-28  Raja R Harinath  <rharinath@novell.com>
6221
6222         * class.h (mono_class_inflate_generic_method): Revert to two
6223         argument version.
6224         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
6225         (mono_class_inflate_generic_method_full): Add.
6226         * class.c (mono_class_inflate_generic_method_full): Rename from
6227         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
6228         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
6229         * loader.c, reflection.c: Update to changes.
6230
6231 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
6232
6233         * icall.c: const fixes and small improvements.
6234
6235 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6236
6237         * threadpool.c: for asynchronous connect(), enable the same workaround
6238         for BSD 6 as for the Mac. Fixes bug #77637.
6239
6240 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
6241
6242         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
6243         formatted classes. Fixes #77524.
6244
6245 2006-02-24  Raja R Harinath  <rharinath@novell.com>
6246
6247         * class.c (inflate_generic_type): Add a couple more
6248         micro-optimizations.
6249         (inflate_generic_context): Don't use the 'gmethod' from
6250         'inflate_with'.
6251         (mono_class_inflate_generic_method): If the method has generic
6252         parameters, but the passed-in context doesn't have a 'gmethod',
6253         create one.  Use the possibly simplified generic instantiation
6254         from the declaring class instead of the one passed in.
6255
6256 2006-02-24  Raja R Harinath  <harinath@gmail.com>
6257
6258         Make generic method signature and method header handling lazy.
6259         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
6260         (inflate_generic_header): Likewise.
6261         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
6262         parameter to avoid inflating types.
6263         (mono_get_inflated_method): Empty out.
6264         * class.h (mono_class_inflate_generic_method): Update to changes.
6265         * loader.c (mono_get_method_from_token): Don't parse signature for
6266         generic methods, nor methods of generic classes.
6267         (mono_method_signature): Rename from 'mono_method_signature'.
6268         Inflate signature on demand.
6269         (mono_method_get_header): Inflate method header on demand.
6270         * reflection.c: Update to changes.
6271
6272 2006-02-23  Raja R Harinath  <rharinath@novell.com>
6273
6274         * metadata.c (mono_metadata_inflate_generic_inst): If the
6275         instantiation is closed, don't bother expanding it in the new
6276         context.
6277         * class.c (inflate_generic_class): If the generic instantiation
6278         doesn't change after inflation, return the argument itself.
6279         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
6280         Add bounds checks.
6281         (inflate_generic_context): If neither the generic class nor the
6282         generic method instantiations change, return the original context.
6283         * reflection.c (mono_method_get_object): Do
6284         'mono_get_inflated_method' before accessing the ->klass field.
6285         (inflate_mono_method): Don't create a MonoGenericMethod unless
6286         necessary.
6287         (inflate_method): Don't pass a constructed type as the declaring
6288         type of a methodbuilder.
6289
6290 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
6291
6292         * object.c: fix memory overwrite.
6293
6294 2006-02-22  Dick Porter  <dick@ximian.com>
6295
6296         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
6297         it doesn't work any more.
6298         (mono_threads_request_thread_dump): Fix unused variable warnings.
6299
6300 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
6301
6302         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
6303         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
6304         the public header file.
6305
6306 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
6307
6308         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
6309
6310 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
6311
6312         * class-internals.h, object.c: reduce the size of MonoVTable
6313         and store the interface_offsets array at negative offsets.
6314
6315 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
6316
6317         * metadata.c: tweak table descriptors data structures to reduce
6318         size and runtime relocations.
6319
6320 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
6321
6322         * marshal.c: fix some types and opcodes to be type-safe
6323         in marshaling wrappers.
6324
6325 2006-02-21  Ankit Jain  <jankit@novell.com>
6326
6327         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
6328
6329 2006-02-21  Raja R Harinath  <rharinath@novell.com>
6330
6331         * metadata.c (get_constraints): Relax debugging checks for monodis.
6332
6333 2006-02-21  Ankit Jain  <jankit@novell.com>
6334
6335         * metadata.c (mono_metadata_load_generic_params): Move the code
6336         checking for ambiguous generic params from here to mono/dis/get.c
6337         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
6338
6339 2006-02-21  Raja R Harinath  <harinath@gmail.com>
6340
6341         Fix assertion triggered when compiling nemerle.
6342         * class.c (mono_get_shared_generic_inst): Rename from
6343         get_shared_inst and make non-static.
6344         * loader.c (mono_get_shared_generic_method): New.  Used to create
6345         the MonoGenericContext-equivalent of a MonoGenericContainer.
6346         (mono_get_method_from_token): Initialize the 'context' field of
6347         the created MonoGenericContainer.
6348         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
6349         * metadata.c (get_constraints): Add sanity check.
6350         * class-internals.h: Add new internal methods.
6351
6352         * reflection.c (verify_safe_for_managed_space): New sanity check.
6353         Currently checks that owner-less generic parameters aren't allowed
6354         in managed space.
6355         (mono_type_get_object): Use it.
6356         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
6357         that are now in mono_type_get_object.
6358         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
6359
6360 2006-02-19  Raja R Harinath  <harinath@gmail.com>
6361
6362         * metadata.c (mono_type_create_from_typespec): Rename from
6363         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
6364         argument and caching of types in the generic container.
6365         (unwrap_arrays, find_generic_param): Remove.
6366         * metadata-internals.h: Update.
6367         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
6368
6369 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
6370
6371         * class.c (mono_class_get_exception_for_failure): Fix a warning.
6372
6373         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
6374         return values. Fixes #77581.
6375
6376         * class.c (mono_fnptr_class_get): Switch name and name_space.
6377
6378         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
6379         classes and add support for [In, Out] attributes.
6380         (mono_marshal_free_asany): Ditto. Fixes #77524.
6381
6382 2006-02-18  Raja R Harinath  <harinath@gmail.com>
6383
6384         * class.c (mono_class_from_generic_parameter): Make more robust to
6385         incomplete MonoGenericContainers from monodis.
6386
6387 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6388
6389         * class-internals.h: added some more exception types.
6390         * class.c, metadata.c: added a few checks to handle missing
6391         types.
6392
6393 2006-02-17  Raja R Harinath  <rharinath@novell.com>
6394
6395         Use owner-less generic-params some more.
6396         * class.c (my_mono_class_from_generic_parameter): Remove.
6397         (mono_class_from_generic_parameter): Handle null image,
6398         param->name and param->owner.
6399         (mono_class_from_mono_type): Update.
6400         (mono_class_create_from_typespec): Remove 'container' parameter.
6401         If that parameter is non-null, the result is always inflated by
6402         'mono_class_get_full' anyway.
6403         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
6404         parameter.
6405         (mono_class_get_full): Update.
6406
6407         * class.c (inflate_generic_type) [GENERICINST]: If the generic
6408         instance is not open, don't bother inflating.
6409         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
6410         parse metadata for inflated classes.
6411         (_mono_class_get): Change GenericContext* parameter to
6412         GenericContainer*.
6413         (mono_class_create_from_typespec): Likewise.  Simplify, and
6414         implement trivially.  All the cases are handled in
6415         mono_class_from_mono_type.  Don't inflate returned class.
6416         (mono_class_get_full): Delegate GENERICINST optimization to
6417         inflate_generic_type.
6418         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
6419
6420 2006-02-16  Dick Porter  <dick@ximian.com>
6421
6422         * socket-io.c (create_object_from_sockaddr): Fix typo.
6423         (create_sockaddr_from_object): Check array lengths before
6424         potentially accessing items off the end.
6425         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
6426         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
6427         (ves_icall_System_Net_Sockets_Socket_Send_internal)
6428         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
6429         length checks to avoid wraparound overflows.
6430         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
6431         contents of the array of sockets
6432         (hostent_to_IPHostEntry2)
6433         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
6434         Check return value of inet_ntop ().
6435         (addrinfo_to_IPHostEntry): Fix typo
6436
6437 2006-02-16  Raja R Harinath  <rharinath@novell.com>
6438
6439         Type metadata parsing doesn't use generic-instantiation information.
6440         * metadata.c (mono_metadata_parse_array_full): Change
6441         MonoGenericContext* parameter to MonoGenericContainer*.
6442         (mono_metadata_parse_type_full): Likewise.
6443         (mono_type_create_from_typespec_full): Likewise.
6444         (mono_metadata_parse_mh_full): Likewise.
6445         (mono_metadata_parse_generic_inst): Likewise.
6446         (do_mono_metadata_parse_generic_class): Likewise.
6447         (do_mono_metadata_parse_type): Likewise.
6448         * metadata-internals.h: Update to changes.
6449         * class.c (mono_class_find_enum_basetype): Likewise.
6450         (mono_class_setup_fields): Likewise.
6451         (mono_class_create_from_typespec): Likewise.
6452         * loader.c (method_from_methodspec): Likewise.
6453         (mono_get_method_from_token): Likewise.
6454         (mono_method_get_header): Likewise.
6455
6456 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
6457
6458         * marshal.c: handle additional GENERICINST case (patch from
6459         Thong Nguyen <tum@veridicus.com>).
6460         Fix a few cases where LDIND_I/STIND_I was used for references.
6461
6462 2006-02-16  Raja R Harinath  <rharinath@novell.com>
6463
6464         * reflection.c (mono_reflection_get_token): Remove unused variable.
6465
6466 2006-02-16  Martin Baulig  <martin@ximian.com>
6467
6468         * reflection.c (mono_reflection_get_token): Add support for fields
6469         in instantiated generic types.
6470
6471         * icall.c
6472         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
6473
6474 2006-02-15  Martin Baulig  <martin@ximian.com>
6475
6476         * icall.c
6477         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
6478         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
6479         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
6480         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
6481
6482 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
6483
6484         * class.c, metadata.c, metadata.h, object.c, icall.c,
6485         marshal.c: changed mono_type_get_underlying_type () to do
6486         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
6487         Fixed handling of instantiated generic valuetypes (bug #75479).
6488
6489 2006-02-15  Raja R Harinath  <rharinath@novell.com>
6490
6491         * metadata.c (mono_metadata_decode_signed_value): Simplify.
6492         Delegate to mono_metadata_decode_value, and work on the returned value.
6493
6494         * icall.c (ves_icall_MonoType_GetGenericArguments):
6495         Add consistency check here too.
6496         
6497 2006-02-15  Ankit Jain  <jankit@novell.com>
6498
6499         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
6500         char/short etc.
6501
6502 2006-02-15  Ankit Jain  <jankit@novell.com>
6503
6504         * metadata.c (mono_metadata_decode_signed_value): New function to decode
6505         signed values, used only for representing lower bounds of arrays.
6506         (mono_metadata_parse_array_full): Use new
6507         mono_metadata_decode_signed_value to decode lower bounds.
6508
6509 2006-02-14  Martin Baulig  <martin@ximian.com>
6510
6511         * reflection.c
6512         (mono_reflection_get_token): Support "MonoGenericMethod" and
6513         "MonoGenericCMethod" and allow generic instances / methods.
6514
6515 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
6516
6517         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
6518         to obtain the terminal size using an ioctl.
6519
6520         * object.c (mono_nullable_init): Revert this as nullable reference
6521         types are not valid.
6522         (mono_nullable_box): Ditto.
6523
6524 2006-02-09  Dick Porter  <dick@ximian.com>
6525
6526         * threads.c (mono_thread_detach): Drop a reference to the thread
6527         we're detaching.
6528
6529 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
6530
6531         * object.c (mono_nullable_init): Handle nullable reference types.
6532         (mono_nullable_box): Ditto. Fixes #77446.
6533
6534 2006-02-07  Martin Baulig  <martin@ximian.com>
6535
6536         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
6537
6538 2006-02-07  Ankit Jain  <jankit@novell.com>
6539
6540         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
6541         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
6542         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
6543         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
6544         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
6545         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
6546
6547 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
6548
6549         * class.c (mono_class_create_generic): Set type_token as well.
6550
6551         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
6552         compatible with MS.
6553
6554 2006-02-02  Martin Baulig  <martin@ximian.com>
6555
6556         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
6557         has never been used so far.
6558
6559 2006-02-02  Martin Baulig  <martin@ximian.com>
6560
6561         * mono-debug-debugger.h: Changed comment at the top of this file;
6562         the header is not installed, but it's safe to #include it from
6563         within the JIT.
6564
6565         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
6566         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
6567
6568 2006-02-02  Martin Baulig  <martin@ximian.com>
6569
6570         * mono-debug.h
6571         (MonoSymbolTable): Removed the `metadata_info' field.
6572
6573         * mono-debug.c
6574         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
6575
6576         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
6577         (mono_debugger_add_builtin_types): Removed.
6578         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
6579         (mono_debugger_create_notification_function): We now operate on a
6580         pre-allocated area; take a `gpointer' and return `void'.
6581
6582         * mono-debug-debugger.c
6583         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
6584         (mono_debugger_add_builtin_types): Removed.
6585
6586 2006-02-02  Martin Baulig  <martin@ximian.com>
6587
6588         * threads.c (mono_debugger_create_all_threads): New public method.
6589
6590 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6591
6592         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
6593         breaks on several platforms.
6594
6595 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
6596
6597         * assembly.c: the VS.NET build doesn't supply default values for
6598         MONO_ASSEMBLIES and MONO_CFG_DIR.
6599
6600 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
6601
6602         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
6603         helper function.
6604
6605         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
6606
6607         * loader.c (method_from_memberref): Fix a warning.
6608
6609         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
6610
6611         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
6612         with explicit layout. Fixes #77433.
6613
6614 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
6615
6616         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
6617         max_interface_id is initialized before using it. Fixes #77398.
6618         (ves_icall_Type_GetInterfaces): Ditto.
6619
6620 2006-01-30  Raja R Harinath  <rharinath@novell.com>
6621
6622         * metadata.c (mono_metadata_parse_method_signature_full): Don't
6623         allocate memory for parameter attributes when parsing memberref
6624         signatures.
6625         * loader.c (mono_loader_set_error_method_load): Don't warn.
6626         (method_from_memberref): Ensure MissingMethodException gets thrown
6627         if method is not found.  Make warning more informative.
6628
6629 2006-01-29  Raja R Harinath  <harinath@gmail.com>
6630
6631         Fix #77397
6632         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
6633         return true if is byref.
6634         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
6635         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
6636         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
6637
6638 2006-01-27  Raja R Harinath  <rharinath@novell.com>
6639
6640         Fix tests/find-method.2.il
6641         * loader.c (find_method, find_method_in_class): Remove is_inflated
6642         argument.  Revert 2006-01-18 change.
6643         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
6644         is generic, search for method in its generic definition.
6645         * class.c (mono_class_setup_vtable_general): Print generic
6646         arguments of generic types in debugging printf.
6647
6648 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
6649
6650         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
6651
6652         * threads.c (mono_threads_request_thread_dump): New helper function.
6653
6654 2006-01-25  Raja R Harinath  <rharinath@novell.com>
6655
6656         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
6657
6658 2006-01-25  Ankit Jain  <jankit@novell.com>
6659
6660         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
6661         move definition to ..
6662         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
6663         
6664 2006-01-25  Ankit Jain  <jankit@novell.com>
6665             Raja R Harinath  <rharinath@novell.com>
6666
6667         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
6668         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
6669         as necessary.
6670
6671 2006-01-25  Martin Baulig  <martin@ximian.com>
6672
6673         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
6674         `MonoDebuggerThread' into debug-debugger.c.
6675
6676 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
6677
6678         * profiler.c: fix printing of data.
6679
6680 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
6681
6682         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
6683           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
6684
6685 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
6686
6687         * object.c: fix deadlock related to string interning.
6688
6689 2006-01-23  Martin Baulig  <martin@ximian.com>
6690
6691         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
6692
6693         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
6694
6695 2006-01-23  Martin Baulig  <martin@ximian.com>
6696
6697         * mono-debug.h: Moved the prototypes of some functions which are
6698         used by the JIT here from mono-debug-debugger.h.
6699
6700 2006-01-21  Martin Baulig  <martin@ximian.com>
6701
6702         * Makefile.am: Don't install mono-debug-debugger.h.
6703
6704 2006-01-21  Martin Baulig  <martin@ximian.com>
6705
6706         * mono-debug-debugger.h: Enforce the private status of this header
6707         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
6708         Moved some stuff from mono-debugger-jit-wrapper.h here.
6709
6710 2006-01-20  Raja R Harinath  <rharinath@novell.com>
6711
6712         * class.c (mono_class_from_typeref): Add a sanity test to help
6713         catch lack of assembly load/search hooks.
6714
6715 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
6716
6717         * marshal.c (emit_struct_conv): Relax the fields with same offset
6718         check even more. Fixes #77230.
6719
6720 2006-01-18  Martin Baulig  <martin@ximian.com>
6721
6722         * loader.c (find_method_in_class): Added `gboolean is_inflated'
6723         argument; if false, we compare the uninstantiated signatures.
6724         (method_from_memberref): Compare the uninstantiated signatures;
6725         fixes #76417.
6726
6727 2006-01-18  Robert Jordan  <robertj@gmx.net>
6728
6729         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
6730         Clear the weak link. Fixes bug #77170.
6731
6732         * gc.c (mono_gchandle_free):
6733         Reflect *-gc.c changes (tiny optimization).
6734
6735 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
6736
6737         * metadata.c (mono_metadata_signature_dup): Applied patch from
6738         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
6739         Fixes #77288.
6740
6741 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
6742
6743         * marshal.c (emit_struct_conv): Allow fields with the same offset when
6744         marshalling from native to managed code. Fixes #77230.
6745
6746 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6747
6748         * threadpool.c: fix problem (Mac only) when more than one asynchronous
6749         connect. Fixes bug #77020.
6750
6751 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
6752
6753         * class.c: fixed id assignement for nested interfaces (bug #77275).
6754         Added also better info for --print-vtable debugging.
6755
6756 2006-01-12  Martin Baulig  <martin@ximian.com>
6757
6758         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
6759         interfaces on-the-fly; fixes #76625.
6760
6761         * class-internals.h
6762         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
6763         don't need that anymore.
6764
6765 2006-01-12  Miguel de Icaza  <miguel@novell.com>
6766
6767         * socket-io.c
6768         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
6769         To avoid initing the nested_classes when not needed I turned the
6770         PeerCredData as a toplevel internal class, as it has to be shared
6771         anyways. 
6772
6773         Fixes the CASA issue.
6774
6775 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
6776
6777         * domain.c: Accessors for MonoJitInfo
6778
6779         * profiler-private.h: Add jitinfo to the end jit hook
6780
6781         * profiler.[ch]: Define new hooks, called after jitting which give
6782         the MonoJitInfo that was compiled
6783
6784 2006-01-10  Martin Baulig  <martin@ximian.com>
6785
6786         * class.c (mono_class_setup_events): Add support for generic
6787         classes; fixes #76440.
6788
6789 2006-01-06  Raja R Harinath  <rharinath@novell.com>
6790
6791         Fix #77160.
6792         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
6793         on passed-in method.
6794
6795 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
6796
6797         * object.c (mono_runtime_invoke_array): Add Nullable support.
6798
6799         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
6800
6801 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
6802
6803         * file-io.c: Don't consider sockets as directory and avoid an endless
6804         loop. Fix bug #76966.
6805
6806 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
6807
6808         * object.c (mono_nullable_init): New helper function.
6809         (mono_nullable_box): Ditto.
6810
6811         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
6812
6813         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
6814
6815         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
6816         
6817 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
6818
6819         * class.c (mono_class_is_assignable_from): Make T assignable to 
6820         Nullable<T>.
6821
6822 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
6823
6824         * appdomain.c: Bump corlib version to 46.
6825         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
6826         serialization purpose) and changed ves_icall_System_Reflection_
6827         Assembly_get_code_base signature to accept a boolean (to escape, or 
6828         not, the assembly code base).
6829
6830 2005-12-23  Dick Porter  <dick@ximian.com>
6831
6832         * icall.c: 
6833         * threads-types.h: 
6834         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
6835         CreateEvent icall now returns "created" boolean parameter.
6836
6837 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
6838
6839         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
6840         #76967.
6841
6842         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
6843         when attr_klass is an interface. Fixes #77045.
6844
6845 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
6846
6847         * marshal.c (emit_struct_conv): Fix previous patch.
6848         
6849         * marshal.c (emit_struct_conv): Add a check for fields with the same
6850         offset.
6851
6852 2005-12-20  Raja R Harinath  <rharinath@novell.com>
6853
6854         Fix regression in Mono.C5.
6855         * class.c (mono_class_create_generic): If 'klass' is an interface
6856         set up the interface offsets.
6857         (mono_class_is_assignable_from): Don't throw away generic arguments.
6858
6859 2005-12-19  Raja R Harinath  <rharinath@novell.com>
6860
6861         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
6862         type parameters.
6863
6864 2005-12-15  Raja R Harinath  <rharinath@novell.com>
6865
6866         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
6867         dead store.
6868         (do_mono_metadata_parse_generic_class): Don't pass the current
6869         generic context when parsing the type being instantiated: it
6870         cannot use it, anyway.
6871
6872         * loader.c (method_from_memberref): Don't inflate a signature if
6873         it doesn't contain any type parameters.
6874
6875 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
6876
6877         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
6878
6879 2005-12-14  Martin Baulig  <martin@ximian.com>
6880
6881         * class.c
6882         (mono_type_get_name_recurse): Don't return null for type
6883         parameters and open generic classes.
6884         (mono_class_setup_methods): Don't exclude generic instances.
6885         (mono_get_unique_iid): Use different IDs for different
6886         instantiations of the same generic type.
6887         (mono_class_setup_vtable): Only use setup_generic_vtable() for
6888         open generic instances; create a normal vtable for closed generic
6889         instances.
6890         (mono_class_setup_vtable_general): We're now also called for
6891         closed generic instances.
6892
6893         * reflection.c
6894         (mono_reflection_bind_generic_parameters): Correctly use
6895         mono_metadata_lookup_generic_inst() everywhere.
6896
6897 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
6898
6899         * object.c (mono_class_create_runtime_vtable): Call 
6900         mono_class_setup_vtable ().
6901
6902         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
6903         function.
6904         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
6905         #76959.
6906
6907         * loader.c (mono_loader_set_error_type_load): Print the type load
6908         warnings to the console so they are more visible to the user.
6909         (mono_loader_set_error_method_load): Ditto.
6910
6911         * reflection.c (ensure_runtime_vtable): Revert the last change as it
6912         is still broken.
6913         
6914         * reflection.c (ensure_runtime_vtable): Fix build.
6915
6916         * reflection.c (ensure_runtime_vtable): Disable an optimization which
6917         doesn't work in all cases.
6918
6919 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
6920
6921         * object.c (mono_array_new_full): Treat a single dimensional array
6922         with 0 lower bounds as an szarray. Fixes #76973.
6923
6924         * reflection.c (custom_attr_visible): Really fix this.
6925
6926 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
6927
6928         * reflection.c (custom_attr_visible): Allow nested public attributes
6929         as well.
6930
6931         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
6932         interface check.
6933
6934 2005-12-12  Raja R Harinath  <harinath@gmail.com>
6935
6936         * class.c (set_generic_param_owner): Delete.
6937         (mono_class_create_from_typedef): Don't set ->owner field of
6938         generic parameters to "param containers" of enclosing classes.
6939         * reflection.c (mono_reflection_initialize_generic_parameter):
6940         Likewise.
6941
6942 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
6943
6944         * reflection.c (custom_attr_visible): Fix build.
6945
6946 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
6947
6948         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
6949         private attributes.
6950         
6951         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
6952         handling of null parameter defaults.
6953
6954 2005-12-09  Raja R Harinath  <rharinath@novell.com>
6955
6956         * class.c (mono_class_from_generic_parameter): Don't set
6957         klass->generic_container.
6958         (my_mono_class_from_generic_parameter): Likewise.
6959
6960 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
6961
6962         * reflection.c (load_public_key): Fix a warning.
6963         (method_encode_code): Fix unaligned accesses.
6964
6965 2005-12-07  Martin Baulig  <martin@ximian.com>
6966
6967         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
6968
6969         * reflection.c
6970         (write_generic_param_entry): Encode our custom attrs.
6971
6972         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
6973
6974 2005-12-07  Martin Baulig  <martin@ximian.com>
6975
6976         * reflection.c (encode_new_constraint): Removed; we don't use the
6977         `NewConstraintAttribute' anymore.
6978
6979 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
6980
6981         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
6982         not fire a TypeResolve event when Assembly.GetType () is called.
6983
6984 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
6985
6986         Beginning of support for nullable types in the runtime. Parts of
6987         this patch are from Martin.
6988
6989         * appdomain.c (MONO_CORLIB_VERSION): Bump
6990
6991         * domain.c (mono_init_internal): get the nullable type
6992
6993         * class.c (mono_class_is_nullable): New method
6994         (mono_class_get_nullable_param): New mehod
6995         (mono_class_create_generic): In types T? set cast_class to T
6996
6997         * class-internals.h (MonoDefaults): new nullable default class
6998         (mono_class_get_nullable_param, mono_class_get_nullable_param):
6999         new methods.
7000
7001 2005-12-05  Raja R Harinath  <rharinath@novell.com>
7002
7003         * metadata.c (select_container): New.  Refactor code to select the
7004         appropriate GenericContainer given the type of generic parameter
7005         we are looking for.
7006         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
7007         not a MonoGenericContext.  Use select_container.  Update parameters.
7008         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
7009         and MONO_TYPE_MVAR.
7010         (unwrap_arrays): Remove duplicate tests.
7011         (find_generic_param): Rename from 'has_same_context'.  Now walks a
7012         generic instantiated class to find any arguments that are generic
7013         parameters.
7014         (mono_type_create_from_typespec_full): Use find_generic_param to
7015         avoid evicting some generic instantiations from the typespec
7016         cache.
7017
7018 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
7019
7020         * reflection.c: fixed writing of doubles on ARM FPA.
7021
7022 2005-12-02  Robert Jordan  <robertj@gmx.net>
7023
7024         * icall.c: Fixed EventInfo.ReflectedType (#76829).
7025
7026 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7027
7028         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
7029         least on SUSE 10 they are not the same (on debian, they are just the
7030         same thing).
7031
7032 2005-12-01  Raja R Harinath  <rharinath@novell.com>
7033
7034         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
7035         DeclaringType for VARs and MVARs.
7036         * class.c (set_generic_param_owner): Fix initialization of owner
7037         fields.
7038
7039 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7040
7041         * icall.c: fixed Enum.ToObject() to correctly convert the values.
7042
7043 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7044
7045         * threadpool.c: workaround for a bug that shows up on the Mac:
7046         select()+connect() on a blocking socket is not like it should
7047         be, so we proceed to connect() in that case, wasting the I/O
7048         threadpool thread until connect succeedes. Fixes bug #75436.
7049
7050 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7051
7052         * threadpool.c: fix typo when setting file descriptor states.
7053
7054 2005-11-28  Raja R Harinath  <rharinath@novell.com>
7055
7056         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
7057         * metadata.c (mono_metadata_parse_method_signature_full): Don't
7058         create a temporary signature container.
7059         (mono_metadata_parse_generic_param): Update to changes.
7060         (mono_type_create_from_typespec_full): Update to changes.
7061         * loader.c (method_from_memberref): Don't use a
7062         MonoGenericContainer while parsing a memberref signature.
7063         (method_from_methodspec): Remove dead-store of the 'container'
7064         variable.  It's overwritten before use.
7065
7066         * metadata.c (mono_type_create_from_typespec_full): Make debugging
7067         checks tighter.
7068         (mono_metadata_parse_generic_param): Likewise.
7069         * loader.c (find_method_in_class): Does not need a
7070         MonoGenericContainer.  Use 'mono_method_signature' rather than
7071         'mono_method_signature_full'.
7072         (find_method, mono_get_method_constrained, method_from_memberref):
7073         Update to changes.
7074
7075         * metadata.c (mono_type_create_from_typespec_full): Ensure that
7076         owner-less generic-parameters are never evicted from the typespec
7077         cache.
7078
7079         * loader.c (method_from_memberref): Don't use the current context
7080         when parsing signatures.
7081         (method_from_methodspec, mono_get_method_from_token): Update to changes.
7082
7083         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
7084         side-effects in g_assert.
7085         * loader.c (mono_get_method_from_token): Resolve klass earlier so
7086         that we don't potentially lose information.
7087
7088 2005-11-26  Dick Porter  <dick@ximian.com>
7089
7090         * icall.c:
7091         * threads.c: icalls to implement basic (ie, not named)
7092         System.Threading.Semaphore.
7093
7094 2005-11-24  Dick Porter  <dick@ximian.com>
7095
7096         * process.c
7097         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
7098         Use GetProcessId() if it's available.
7099
7100 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
7101
7102         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
7103
7104 2005-11-23  Raja R Harinath  <rharinath@novell.com>
7105             Ankit Jain  <jankit@novell.com>
7106
7107         * loader.c (mono_get_method_from_token): Initialize 'method' field
7108         of all generic parameters before parsing the signature.  Remove
7109         code that "fixed"-up MVAR references.
7110
7111 2005-11-23  Ankit Jain  <jankit@novell.com>
7112
7113         * metadata.c (mono_metadata_has_generic_params):
7114         (mono_metadata_load_generic_param_constraints):
7115         (mono_metadata_load_generic_params): Move duplicate code ...
7116         (mono_metadata_get_generic_param_row): ... here. Returns the
7117         first row-id in GenericParam table for a given owner (token).
7118         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
7119         prototype.
7120
7121 2005-11-23  Raja R Harinath  <rharinath@novell.com>
7122             Ankit Jain  <jankit@novell.com>
7123
7124         * metadata.c (mono_metadata_class_equal): Pass signature_only when
7125         comparing VARs too.
7126         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
7127         type->data.generic_param only if the type is an MVAR.
7128         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
7129         leak owner-less VARs and MVARs into managed space.
7130
7131 2005-11-21  Martin Baulig  <martin@ximian.com>
7132
7133         * class-internals.h
7134         (MonoMethod): Moved the `generic_container' here from
7135         `MonoMethodNormal' since we now also need it for
7136         `MonoMethodPInvoke';
7137         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
7138         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
7139         an union containing both `MonoMethodNormal' and
7140         `MonoMethodPInvoke'.
7141
7142         * loader.c
7143         (mono_get_method_from_token): Allow implementing generic methods
7144         as interncalls.
7145
7146         * threads.c
7147         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
7148         icall.
7149
7150 2005-11-17  Dick Porter  <dick@ximian.com>
7151
7152         * icall.c: 
7153         * process.h: 
7154         * process.c: Split the Process Start_internal icall into
7155         ShellExecuteEx_internal and CreateProcess_internal, which are
7156         called depending on whether UseShellExecute is true.  Fixes bug
7157         76670.
7158
7159         * appdomain.c (MONO_CORLIB_VERSION): Incremented
7160
7161 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
7162
7163         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
7164         'msize' parameters, use the information in 'mspec' instead.
7165         (emit_object_to_ptr_conv): Ditto.
7166
7167         * marshal.c (emit_struct_conv): Handle explicit layout structs with
7168         fields out of order. Fixes #76733.
7169
7170 2005-11-17  Ankit Jain  <jankit@novell.com>
7171
7172         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
7173
7174 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
7175
7176         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
7177           bug #76575.
7178
7179 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
7180
7181         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
7182         for types with non-auto layout. Fixes #76717.
7183
7184 2005-11-16  Ankit Jain  <jankit@novell.com>
7185
7186         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
7187         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
7188         if generic_context is null.
7189           (mono_metadata_generic_param_equal): param->owner can be null.
7190           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
7191         null.
7192
7193 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
7194
7195         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
7196         the correct value.
7197
7198 2005-11-15  Martin Baulig  <martin@ximian.com>
7199
7200         * object.c (set_value): Use mono_class_from_mono_type() instead of
7201         the hack for generic instances; fixes #76136.
7202
7203 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
7204
7205         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
7206         fields.
7207
7208         * image.c (load_metadata_ptrs): Initialize the new fields.
7209
7210         * reflection.c (create_dynamic_mono_image): Ditto.
7211
7212         * reflection.c (build_compressed_metadata): Use the new fields.
7213
7214         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
7215         icall.
7216
7217         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
7218         icall.
7219         
7220 2005-11-15  Ankit Jain  <jankit@novell.com>
7221             Raja R Harinath  <harinath@gmail.com>
7222
7223         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
7224         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
7225         new per-generic_container cache if the cached MonoType's context matches
7226         the current context.
7227           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
7228         to the expected context.
7229           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
7230
7231 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7232
7233         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
7234         we changed the signature of an icall.
7235         * icall.c: Modify to mono_double_ParseImpl return true/false 
7236         depending on the success, instead of throwing the exception. This will
7237         help us in Double.TryParse methods.
7238         
7239 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
7240
7241         * marshal.c (emit_marshal_object): Throw an exception when
7242         marshalling 'object' instead of crashing. Fixes #76696.
7243
7244 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
7245
7246         * class-internals.h: Add prototype for mono_type_get_full_name ().
7247
7248 2005-11-11  Dick Porter  <dick@ximian.com>
7249
7250         * threads.c (mono_thread_manage): Make sure the main thread has
7251         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
7252
7253 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
7254
7255         * loader.c (mono_loader_set_error_type_load): Log a warning to the
7256         console about the missing type.
7257         (mono_loader_set_error_method_load): Ditto.
7258
7259 2005-11-09  Miguel de Icaza  <miguel@novell.com>
7260
7261         * mono-config.c (mono_get_config_dir): Set the system defaults if
7262         none is specified.
7263
7264         * assembly.c (mono_set_dirs): New API entry point to set the
7265         assembly and the config directory in one call
7266
7267 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
7268
7269         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
7270         the ftnptr was created from a delegate in a domain other than the
7271         current domain. Fixes #75377.
7272
7273         * exception.h exception.c: Add mono_get_exception_not_supported ().
7274
7275 2005-11-08  Martin Baulig  <martin@ximian.com>
7276
7277         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
7278
7279 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
7280
7281         * security-manager.h: Added definitions to deal with strongname key 
7282         pairs bigger (and smaller) than 1024 bits.
7283         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
7284         adjust wrt the public key length being used.
7285
7286 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
7287
7288         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
7289           Windows build (r51396-51397).
7290
7291 2005-11-03  Martin Baulig  <martin@ximian.com>
7292
7293         * class.c (mono_class_setup_vtable_general): Also add generic
7294         methods to the vtable; fixes #76581.
7295
7296 2005-11-01  Miguel de Icaza  <miguel@novell.com>
7297
7298         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
7299         sure that we lookup GetString method from the System.Text.Encoding
7300         class, not the derived class or we get an empty method.
7301
7302         Fixed class #76612.
7303
7304 2005-10-25  Miguel de Icaza  <miguel@novell.com>
7305
7306         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
7307         if it has been previously set (embedders). 
7308
7309         Make mono_set_rootdir available also on Unix.
7310
7311 005-10-24  Robert Jordan  <robertj@gmx.net>
7312
7313         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
7314
7315 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
7316
7317         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
7318         only calls which are made to native code use this flag.
7319
7320         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
7321
7322 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
7323
7324         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
7325         Add support for FieldBuilders.
7326
7327 2005-10-29  Martin Baulig  <martin@ximian.com>
7328
7329         * mono-debug.c
7330         (mono_debug_using_mono_debugger): New public method; returns
7331         whether we're running inside the debugger.
7332
7333 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
7334
7335         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
7336         for Method/Constructor/FieldBuilders.
7337
7338 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
7339
7340         * reflection.c (module_add_cattrs): Save custom attributes for global methods
7341         and fields as well.
7342
7343 2005-10-26  Martin Baulig  <martin@ximian.com>
7344
7345         * mono-debug-debugger.c
7346         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
7347
7348 2005-10-24  Raja R Harinath  <harinath@gmail.com>
7349
7350         * icall.c (base64_to_byte_array): Don't pass an out-of-range
7351         integer to isspace.
7352
7353 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
7354
7355         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
7356         when passing valuetypes byref. Fixes #76502.
7357
7358 2005-10-19  Jackson Harper  <jackson@ximian.com>
7359
7360         * profiler.c: Don't put a . in front of types that are not in a
7361         namespace.
7362
7363 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
7364
7365         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
7366
7367 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
7368
7369         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
7370         #76436.
7371         (mono_marshal_get_ldflda_wrapper): Fix a warning.
7372
7373 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7374
7375         * assembly.c metadata-internals.h icall.c: Define an additional
7376         parameter for mono_assembly_name_parse_full, so we can avoid creating
7377         S.R.AssemblyName.Version when no version info wasn't passed.
7378         
7379 2005-10-09  Miguel de Icaza  <miguel@novell.com>
7380
7381         * class.c (mono_type_get_full_name): Reimplement method that was
7382         removed. 
7383
7384         * image.c: Some docs
7385
7386 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
7387
7388         * profiler.c (output_newobj_profile): Fix printing of Total memory
7389         on x86.
7390
7391 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
7392
7393         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
7394
7395 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
7396
7397         * threads.c: remove debug output.
7398
7399 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
7400
7401         * threads.c (mono_thread_manage): Fix crashes if more than 64
7402         threads need to be aborted. Hopefully fixes #75899.
7403
7404         * assembly.c (mono_stringify_assembly_name): New helper function.
7405
7406         * class.c: Use mono_stringify_assembly_name instead of the similar
7407         static function.
7408
7409         * assembly.h assembly.c: Add support for calling a postload search 
7410         hook if an assembly cannot be loaded.
7411
7412         * appdomain.c: Register new search hooks which call the AssemblyResolve
7413         events in AppDomain. Fixes #75231
7414
7415 2005-10-07  Martin Baulig  <martin@ximian.com>
7416
7417         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
7418         methods without debug info.
7419
7420 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
7421
7422         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
7423         wrappers.
7424
7425 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7426
7427         * file-io.c: now that we return symlinks, use lstat and, when the file
7428         is a symbolic link, stat, to get the file attributes. Also avoid the
7429         conversion to/from utf16/external.
7430
7431 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
7432
7433         * class.c (mono_class_layout_fields): Compute klass->has_references
7434         correctly if an embedded valuetype is not yet initialized. Fixes
7435         #76331.
7436
7437 2005-10-04  Martin Baulig  <martin@ximian.com>
7438
7439         * metadata.c
7440         (mono_metadata_load_generic_param_constraints): New public
7441         function; splitted the constraints loading out from
7442         mono_metadata_load_generic_params().
7443
7444         * class.c (mono_class_create_from_typedef): Call
7445         mono_metadata_load_generic_param_constraints() after setting up
7446         the type and creating our parent; fixes #75329.
7447
7448 2005-10-04  Martin Baulig  <martin@ximian.com>
7449
7450         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
7451         non-dynamic parent classes.
7452
7453 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
7454
7455         * file-io.c : win32 build fix (ETXTBSY seems not found).
7456
7457 2005-10-04  Martin Baulig  <martin@ximian.com>
7458
7459         * reflection.c
7460         (mono_image_get_methodspec_token): Make the cache actually work;
7461         fixes #75974.
7462
7463 2005-10-04  Martin Baulig  <martin@ximian.com>
7464
7465         * class.c (mono_class_name_from_token): Removed the unneccessary
7466         `MonoGenericContext *' argument.
7467
7468 2005-10-04  Martin Baulig  <martin@ximian.com>
7469
7470         * loader.c
7471         (method_from_methodspec): Make the caching work again; fixes the
7472         performance regression from #76262.
7473
7474 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7475
7476         * file-io.c:
7477         * file-io.h:
7478         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
7479         GetFileSystemEntries that performs the same work but without going
7480         into io-layer, locking, etc.
7481
7482 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
7483
7484         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
7485         ThreadState_Stopped as well. Fixes #76047.
7486
7487 2005-09-29  Martin Baulig  <martin@ximian.com>
7488
7489         * class.c
7490         (inflate_generic_context): If the new context has a `gmethod', set
7491         its `container' that that gmethod's `container'.
7492
7493         * metadata.c
7494         (mono_metadata_parse_generic_param): Simplify things;
7495         `generic_container = generic_context->container;' is just fine.
7496
7497         * loader.c (method_from_methodspec): Code cleanups.
7498
7499 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
7500
7501         * decimal.c: fix warning (and let gcc generate correct
7502         code on ARM with optimizations).
7503
7504 2005-09-28  Martin Baulig  <martin@ximian.com>
7505
7506         * loader.c
7507         (method_from_memberref): Added `MonoGenericContext *class_context'
7508         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
7509         (method_from_methodspec): If we're a memberref, use the enclosing
7510         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
7511
7512 2005-09-28  Martin Baulig  <martin@ximian.com>
7513
7514         * object.c (mono_runtime_invoke_array): Added support for
7515         MONO_TYPE_GENERICINST; fixes #75917.
7516
7517 2005-09-27  Martin Baulig  <martin@ximian.com>
7518
7519         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
7520         `k->byval_arg.type' to determine the actual type.
7521
7522         * loader.c (method_from_methodspec): Removed some hacks.
7523
7524 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
7525
7526         * class-internals.h (mono_field_is_deleted): Do the test for
7527         rtspecialname before we check the actual name of the field. This
7528         prevents us from dereferencing a pointer into the string table,
7529         saving us from accessing a few pages
7530
7531         * *.c: Replace the use of {Enter,Leave}CriticalSection with
7532         macros. This will allow a deadlock debugger to easily be plugged
7533         in.
7534
7535 2005-09-27  Martin Baulig  <martin@ximian.com>
7536
7537         * loader.c (method_from_methodspec): Create a "signature"
7538         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
7539
7540 2005-09-27  Martin Baulig  <martin@ximian.com>
7541
7542         * class.c
7543         (inflate_generic_class): Correctly set the new context's
7544         container.
7545
7546         * loader.c
7547         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
7548         instead of a `MonoGenericContext *'.
7549         (mono_method_signature_full): Take a `MonoGenericContainer *'
7550         instead of a `MonoGenericContext *'.
7551
7552         * metadata.c
7553         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
7554         instead of a `MonoGenericContext *'.
7555         (mono_metadata_parse_method_signature_full): Likewise.
7556
7557 2005-09-26  Martin Baulig  <martin@ximian.com>
7558
7559         * class.c
7560         (mono_class_from_generic_parameter): Set `klass->generic_container'
7561         (mono_class_from_generic_parameter): Likewise.
7562         (mono_bounded_array_class_get): We inherit the generic container
7563         from the element class.
7564
7565         * loader.c
7566         (find_method, find_method_in_class): Take a `MonoGenericContext *'
7567         argument rather than computing it here.
7568         (method_from_memberref): Correctly set the generic context before
7569         parsing the signature.  Fixes #75681.
7570
7571 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
7572
7573         * object.c (mono_class_has_special_static_fields): Fix warnings.
7574
7575 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7576
7577         * assembly.c: Add parse_public_key function, to
7578         par the public keys. Also added mono_assembly_name_parse_full,
7579         to define it the parsed key should be freed or not.
7580         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
7581         to parse a long format assembly name.
7582         * metadata-internals.h: Keep mono_assembly_name_parse_full as
7583         private, since calling it to preserve the key requires
7584         freeing it manually.
7585         
7586 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
7587
7588         * locales.c : removed HAVE_ICU part.
7589
7590 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
7591
7592         * object.c (mono_class_create_runtime_vtable): Avoid calling 
7593         field_is_special_static if the klass has no special static fields.
7594
7595         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
7596         (MonoCachedClassInfo): Likewise.
7597
7598         * object.c (mono_class_has_special_static_fields): New helper function.
7599
7600 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
7601
7602         * class.c (mono_class_create_from_typedef): Don't call 
7603         interfaces_from_typedef_full for enums.
7604         (mono_class_create_from_typedef): Compute the base types of enums directly
7605         without calling mono_class_setup_fields ().
7606         (mono_class_find_enum_basetype): New helper function.
7607
7608         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
7609         one place inside the string heap.
7610         
7611 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
7612
7613         * class.c: locking fixes, code cleanups, some docs added.
7614         Allocate some data structures in the image mempool.
7615
7616 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
7617
7618         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
7619         the example code.
7620         
7621 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
7622
7623         * class-internals.h, class.c, reflection.c: reduce memory taken by
7624         MonoClass.
7625
7626 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
7627
7628         * metadata.c, metadata.h, loader.h: documentation updates, code and
7629         API cleanups.
7630
7631 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
7632
7633         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
7634         the example code.
7635
7636         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
7637         page faults caused by the runtime while reading metadata.
7638
7639 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7640
7641         * socket-io.c: the field names were changed 3 months ago and no one
7642         realized until bug #76077 got filed!
7643
7644 2005-09-20  Martin Baulig  <martin@ximian.com>
7645
7646         * icall.c (assembly_icalls): Removed some unused debugger icalls.
7647
7648 2005-09-20  Martin Baulig  <martin@ximian.com>
7649
7650         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
7651         write the rank into the class entry.
7652
7653 2005-09-20  Martin Baulig  <martin@ximian.com>
7654
7655         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
7656
7657 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
7658
7659         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7660
7661         * icall.c (custom_attrs_defined_internal): New icall.
7662
7663         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
7664         function.
7665         (mono_custom_attrs_construct_by_type): New helper function.
7666
7667 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
7668
7669         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
7670         terminate the resulting string. Fixes #76123.
7671
7672 2005-09-16  Martin Baulig  <martin@ximian.com>
7673
7674         * mono-debug.c
7675         (mono_debug_add_method): Ignore inflated methods for the moment.
7676
7677 2005-09-14  Martin Baulig  <martin@ximian.com>
7678
7679         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
7680
7681 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
7682
7683         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
7684         return a success/failure indication.
7685         (mono_metadata_interfaces_from_typedef_full): Ditto.
7686         (get_constraints): Ditto.
7687
7688 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
7689
7690         * marshal.c (emit_marshal_array): Fix handling of null arrays.
7691         
7692         * marshal.c (emit_marshal_array): Add support for returning string
7693         arrays from delegates. Fixes #76063.
7694
7695         * marshal.c: Use the emit_ldloc/stloc macros where possible.
7696
7697 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
7698
7699         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
7700         icall.
7701
7702 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
7703
7704         * reflection.c icall.c: Fix after mono_get_exception_type_load
7705         signature change.
7706
7707         * assembly.c (mono_assembly_get_assemblyref): New helper function.
7708         (mono_assembly_load_reference): Use the new helper.
7709
7710         * class-internals.h (MonoLoaderError): New structure containing 
7711         information about type loading errors.
7712
7713         * class-internals.h loader.c: Add APIs to store per-thread loader
7714         error information.
7715
7716         * loader.c class.c: Set the loader error if needed.
7717
7718         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
7719
7720 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
7721
7722         * decimal.c: fixed to handle the broken ARM fp format.
7723
7724 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
7725
7726         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
7727         broken.
7728
7729 2005-09-06  Martin Baulig  <martin@ximian.com>
7730
7731         * domain.c (supported_runtimes): Added v2.0.50727.
7732
7733 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
7734
7735         * culture-info.h: reduce the size of some structures.
7736
7737 2005-09-05  Martin Baulig  <martin@ximian.com>
7738
7739         Reflect latest API changes in the August CTP.
7740
7741         * icall.c
7742         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
7743         ("MonoType.HasGenericArguments"): Removed.
7744         ("MonoMethod.BindGenericParameters"): Renamed to
7745         "MakeGenericMethod".
7746         ("MethodBuilder.BindGenericParameters"): Renamed to
7747         "MakeGenericMethod".    
7748
7749 2005-09-05  Martin Baulig  <martin@ximian.com>
7750
7751         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
7752
7753 2005-09-05  Martin Baulig  <martin@ximian.com>
7754
7755         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7756
7757         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
7758         generic_container is non-NULL.
7759
7760 2005-09-05  Martin Baulig  <martin@ximian.com>
7761
7762         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7763
7764         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
7765
7766 2005-08-29  Michal Moskal  <malekith@nemerle.org>
7767
7768         * reflection.c (encode_locals,
7769         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
7770         for large generic types.
7771
7772 2005-09-05  Martin Baulig  <martin@ximian.com>
7773
7774         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7775
7776         * class.c (mono_dup_array_type): New public method.
7777         (mono_metadata_signature_deep_dup): New public method.
7778         (dup_type): Correctly duplicate array and function types.
7779
7780 2005-09-05  Martin Baulig  <martin@ximian.com>
7781
7782         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7783
7784         * reflection.c (get_default_param_value_blobs): Handle generic types
7785         and generic methods.
7786
7787 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
7788
7789         * class.c: Fixed error reporting (method/class were inversed) for 
7790         inheritance demands.
7791         * security-manager.c|h: Added the AppDomain when calling the managed
7792         System.Security.SecurityManager.InheritanceDemand method.
7793
7794 2005-09-01  Raja R Harinath  <rharinath@novell.com>
7795
7796         * reflection.c (encode_marshal_blob): 'marshaltype' and
7797         'marshaltyperef' are alternate sources for the custom marshaler
7798         name.
7799
7800 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
7801
7802         * class.c: fix creation of array classes with rank == 1
7803         (patch by Ankit Jain <jankit@novell.com>).
7804
7805 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
7806
7807         * object.c: fix check for creating the bound data for arrays vs
7808         szarrays.
7809
7810 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7811
7812         * object.c: configuration file name is now based on the executable name,
7813         not the image name. Fixes bug #75931.
7814
7815 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
7816
7817         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
7818         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
7819
7820 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
7821
7822         * rand.c: Use wincrypt.h instead of WinCrypt.h.
7823
7824 2005-08-24  Ankit Jain  <jankit@novell.com>
7825             Raja R Harinath  <rharinath@novell.com>
7826
7827         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
7828           called by it recursively.
7829           (mono_class_init): Remove special case in pending_init handling, since it's
7830           superseded by the fix to mono_class_from_typeref.
7831
7832 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
7833
7834         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
7835         BROKEN_THREAD_START stuff.
7836
7837 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
7838
7839         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
7840         trampoline.
7841
7842         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
7843         
7844         * object.c (mono_delegate_ctor): Replace the original function address with
7845         a delegate trampoline.
7846
7847 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
7848
7849         * icall.c: add boolean argument to base64_to_byte_array and 
7850         InternalFromBase64String to control whether a whitespace-only string
7851         is allowed (or should casue a FormatException to be thrown). We need
7852         this as the behavior has changed between MS.NET 1.x and 2.0, and we
7853         to match the MS behaviour in both profiles.
7854         * appdomain.c: Bump corlib version.
7855
7856 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7857
7858         This patch implements a big portion of publisher policy
7859         support, used to bind assembly versions and redirect
7860         one assembly from version A to version B.
7861
7862         * assembly.c:
7863         New GSList loaded_assembly_bindings, for storing the cached
7864         assembly bindings.
7865         (assembly_binding_maps_name): New static function for checking if a 
7866         assembly binding information maps an assembly name.
7867         (mono_assembly_binding_info_free): New function for freeing
7868         assembly binding information resources.
7869         (get_publisher_policy_info): New static function for retrieving 
7870         assembly binding information from a MonoImage.
7871         (compare_versions): New static function for comparing an assembly
7872         binding information data and the version of an assembly name.
7873         (check_policy_versions): New static function for checking if an
7874         assembly binding info mapping an assembly name is valid for it.
7875         (mono_assembly_load_publisher_policy): New static function for
7876         loading the 'policy.major.minor.MyAssembly' image for an assembly
7877         with an assembly name 'aname'.
7878         (mono_assembly_bind_version): New static function for updating
7879         assembly redirection.
7880         (mono_assembly_apply_binding): New static function for applying
7881         assembly binding.
7882         (search_binding_loaded): New static function for searching 
7883         loaded assembly binding infos in the cache domain.
7884         (mono_assembly_load_full): Don't apply assembly binding for
7885         reflection only assemblies.
7886
7887         * metadata-internals.h: Add MonoAssemblyBindingInfo,
7888         which contains information about assembly binding. Also
7889         declare signature for mono_config_parse_publisher_policy ()
7890         function, used to retrieve pub policy info.
7891         
7892         * mono-config.c:
7893         (publisher_policy_start): New static function used to parse publisher 
7894         policy config files.
7895         (publisher_policy_parser): New static MonoParseHandler containing 
7896         the functions used when parsing config files.
7897         (mono_config_parse_publisher_policy): New function for parsing
7898         publisher policy files.
7899         
7900 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
7901
7902         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
7903
7904         * marshal.c (mono_delegate_free_ftnptr): Ditto.
7905
7906         * object.c (mono_get_addr_from_ftnptr): New helper function.
7907
7908         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
7909
7910         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7911
7912 2005-08-19  Dick Porter  <dick@ximian.com>
7913
7914         * threads.c, threads.h, appdomain.c, appdomain.h,
7915         profiler-private.h, monitor.c, object.c, object-internals.h,
7916         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
7917         store the thread ID, so it can hold a 64 bit value if needed.
7918
7919 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
7920
7921         * reflection.c (mono_reflection_create_dynamic_method): Store the
7922         handle class into the method references as well so ldtoken works in
7923         dynamic methods.
7924
7925         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
7926         types.
7927
7928 2005-08-19  Ankit Jain <jankit@novell.com>
7929
7930         Fix #75847.
7931         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
7932           here rather than using the method signature of a arbitrary function
7933           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
7934           two arguments.
7935           Hack done with Harinath.
7936
7937 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7938
7939         * threadpool.c: disable printing stack traces when we get a exception
7940         in a threadpool thread. I need to do more testing to figure out which
7941         cases actually print this. Fixes bug #75828.
7942
7943 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7944
7945         * icall.c: there might be ignored whitespace after the last '='. This
7946         fixes length computation and bug #75840.
7947
7948 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
7949
7950         * assembly.c (mono_assembly_load_full): Consider .exe extension as
7951         well. Fixes #75809.
7952
7953         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
7954         #75784.
7955         
7956         * reflection.c (create_custom_attr_data): Ditto.
7957
7958 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
7959
7960         * locales.c, culture-info.h : removed RegionLCIDMap.
7961         * culture-info-tables.h : regenerated.
7962
7963 2005-08-16  Martin Baulig  <martin@ximian.com>
7964
7965         * class.c (mono_type_get_name_recurse): Small fix.
7966
7967 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
7968
7969         * locales.c : indentation fixie.
7970
7971 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
7972
7973         * object-internals.h,
7974           locales.h,
7975           locales.c,
7976           culture-info.h,
7977           icall.c : added RegionInfo table support.
7978         * culture-info-table.h : regenerated for region support.
7979
7980 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
7981
7982         * reflection.c (resolve_object): handle all kinds of MonoMethod
7983         including generic ones
7984
7985 2005-08-12  Ankit Jain <jankit@novell.com>
7986
7987         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
7988           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
7989
7990 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
7991
7992         * process.c: Don't close a thread handle when it's NULL. This is a
7993         workaround for bug #75733.
7994
7995 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
7996
7997         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
7998
7999 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
8000
8001         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
8002
8003 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8004
8005         * threadpool.c: if a work item in the thread pool has a callback that
8006         catches a exception, don't propagate it after invoking the callback.
8007         Fixes bug #75336.
8008
8009 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
8010
8011         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
8012
8013         * class-internals.h (MonoCachedClassInfo): Add some new fields.
8014
8015         * class.c (mono_class_init): Load field info lazily in the AOT case.    
8016
8017         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
8018
8019 2005-08-03  Ankit Jain  <jankit@novell.com>
8020
8021         Fix #75683.
8022         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
8023           PInvoke calling convention is 0.
8024
8025 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
8026
8027         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
8028         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
8029
8030 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
8031
8032         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
8033         to handle threads not started by the GC (patch by Michael Meeks
8034         <michael.meeks@novell.com>).
8035
8036 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
8037
8038         * reflection.c: Make buffer used in emitting types larger for some
8039         big generic types (patch by Michal Moskal).
8040
8041 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
8042
8043         * mono-debug.c: Fix some (not all) alignment problems.
8044
8045 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8046
8047         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
8048         Invoke mono_image_load_from_data_full passing the refonly
8049         parameter.
8050
8051         * assembly.c
8052         (mono_assembly_open_from_bundle): Add the refonly argument, 
8053         in order to pass it to other methods it calls to.
8054         (do_mono_assembly_open): Add the refonly argument, in order 
8055         to pass it to other methods it calls to.
8056         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
8057         the refonly parameter to it.
8058
8059         * image.c: Add loaded_images_refonly_hash and
8060         loaded_images_refonly_guid_hash to cache the reflection
8061         only loaded images.
8062         (mono_images_init): Initialize the hash tables used for
8063         caching the reflection only images.
8064         (load_modules): Invoke mono_image_open_full passing the refonly
8065         parameter to load the modules the correct way.
8066         (build_guid_table): Add the refonly argument, to re-build the 
8067         correct hash table.
8068         (do_mono_image_open): Added the refonly argument, in order to
8069         define it for the loaded image.
8070         (mono_image_loaded_full): New function, which receives an
8071         additional parameter to look for the image in the refonly or
8072         non-refonly section.
8073         (mono_image_loaded): Updated, using mono_image_loaded_full.
8074         (mono_image_loaded_by_guid_full): The same case that happens
8075         with mono_image_loaded_full.
8076         (mono_image_loaded_by_guid): Likewise.
8077         (register_image): Use the ref_only variable inside MonoImage
8078         to decide in which hash table store the current image.
8079         (mono_image_open_from_data_full): Rename
8080         mono_image_open_from_data to mono_image_open_from_data_full,
8081         adding the refonly argument, to define the ref_only variable 
8082         inside MonoImage.
8083         (mono_image_open_from_data): Return 
8084         mono_image_open_from_data_full.
8085         (mono_image_open_full): Rename mono_image_open to
8086         mono_image_open_full, receiving the new refonly argument,
8087         to pass it to inner methods.
8088         (mono_pe_file_open): Update this function, to open
8089         a MonoImage as a non-refonly image.
8090         (mono_image_close): Use the refonly variable inside
8091         MonoImage to remove the image from the correct caches.
8092
8093         * image.h: Add the signatures of mono_image_open_full,
8094         mono_image_open_from_data_full, mono_image_loaded_full,
8095         mono_image_loaded_by_guid_full.
8096
8097         * metadata-internals.h: Add the ref_only field to 
8098         MonoImage.
8099         
8100 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8101
8102         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
8103         Fix the last behavior, which used to load the assemblies and
8104         extract MonoReflectionAssemblyName information, instead of
8105         extract it from the metadata tables. Needed for Reflection
8106         Only assemblies.
8107         
8108 2005-07-29  Martin Baulig  <martin@ximian.com>
8109
8110         * mono-debug-debugger.c
8111         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
8112         not initialized.
8113
8114         * mono-debug.c
8115         (mono_debug_address_from_il_offset): Check whether we have
8116         debugging support before attempting to take the lock.
8117         (mono_debug_source_location_from_address): Likewise.
8118         (mono_debug_source_location_from_il_offset): Likewise.
8119         (mono_debug_il_offset_from_address): Likewise.
8120         (mono_debug_address_from_il_offset): Likewise.
8121
8122 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
8123
8124         * class.c (mono_class_from_name_case): Add support for dynamic images.
8125         Fixes #75650.
8126
8127         * object.c (mono_class_compute_gc_descriptor): Add a workaround
8128         for #75479.
8129
8130 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
8131         
8132         * reflection.c (mono_method_get_object): Fix warning.
8133
8134 2005-07-28  Martin Baulig  <martin@ximian.com>
8135
8136         * mono-debug.c
8137         (mono_debug_add_wrapper): Also write the wrapper type.
8138
8139 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
8140
8141         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
8142         
8143         * class.c (mono_class_init): Avoid reading nested classes if the AOT
8144         data indicates the class has none.
8145
8146 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
8147
8148         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
8149         loader lock with the debugger lock. Prevents deadlocks for beagle.
8150
8151         Beagle can now run on an smp box for a weekend without any
8152         issues. Woohoo!
8153
8154 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
8155
8156         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
8157         in a module. Fixes #75629.
8158
8159 2005-07-26  Martin Baulig  <martin@ximian.com>
8160
8161         * mono-debug.c (mono_debug_add_wrapper): New static method.
8162         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
8163         interncall or a wrapper.
8164
8165         * mono-debug.h (MonoDebugWrapperData): New public typedef.
8166         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
8167         (MONO_DEBUGGER_VERSION): Bump to 51.
8168
8169         * mono-debug-debugger.c
8170         (mono_debugger_add_type): Removed this empty function.
8171         (mono_debugger_add_method): Likewise.
8172
8173 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
8174
8175         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
8176         before accessing method->slot.
8177
8178 2005-07-21  Jb Evain  <jbevain@gmail.com>
8179
8180         * reflection.c (method_encode_clauses/class): Handle filters clauses.
8181         Fixes #75010.
8182
8183 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
8184
8185         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
8186         #75587.
8187
8188 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
8189
8190         * image.h image.c: Add mono_image_get_guid () API function.
8191
8192 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
8193
8194         There were issues when multiple threads tried to load
8195         assemblies. A deadlock was created between assemblies_mutex and
8196         mono_domain_assemblies_lock. This fixes the issue by making the
8197         assembly ref counting be lock free. See bug 75586.
8198         
8199         * image.c (mono_image_close): The add ref function here was using
8200         Interlocked operations while the unref was using a mutex and a
8201         --. I don't think this was ever a bug that would be exposed in a
8202         non-pendantic way (ie, by an embedder doing a ref on one thread
8203         and an unref on another), but for the sake of correctness, this is
8204         now Interlocked.
8205
8206         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
8207         (mono_assembly_load_reference): Call mono_assembly_addref rather
8208         than touching the refcount ourselves.
8209         (mono_assembly_close): Use InterlockedDecrement to unref the
8210         assembly. Don't acquire the lock unless it is actually needed.
8211
8212 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
8213
8214         * class.c (mono_class_layout_fields): Fix calculation of has_references
8215         for generic types.
8216
8217 2005-07-12  Martin Baulig  <martin@ximian.com>
8218
8219         Applying a patch from Michal Moskal <malekith@nemerle.org>.
8220
8221         * metadata.c
8222         (mono_type_hash): Provide better hashing for generic instances.
8223         (mono_generic_inst_hash): Improve hashing.
8224         (mono_generic_class_hash): Likewise.
8225
8226         * reflection.c (mymono_metadata_type_hash): Improve hashing for
8227         generic instances.
8228
8229 2005-07-12  Martin Baulig  <martin@ximian.com>
8230
8231         * reflection.c (mono_reflection_create_runtime_class): Remove the
8232         hack for generic type definitions and non-`Run' assemblies.
8233         (mono_reflection_bind_generic_parameters): Also use
8234         `klass->wastypebuilder' to check for TypeBuilders.
8235
8236 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
8237
8238         * class.c (mono_class_layout_fields): Fix calculation of has_references
8239         for generic types.
8240
8241         * class.c (inflate_generic_class): Fix a leak.
8242         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
8243         for generic types.
8244
8245 2005-07-11  Martin Baulig  <martin@ximian.com>
8246
8247         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
8248         on error.
8249
8250 2005-07-11  Martin Baulig  <martin@ximian.com>
8251
8252         * loader.c (find_method): Also lookup in
8253         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
8254
8255 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
8256
8257         * appdomain.c (mono_domain_unload): Don't free the error message
8258         before passing it to mono_get_exception_...
8259
8260         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
8261         
8262 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
8263
8264         * threads.c: try to better guess an available RT signal (bug #75387).
8265
8266 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
8267
8268         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
8269         and CACHE_OBJECT.
8270
8271 2005-07-07  Martin Baulig  <martin@ximian.com>
8272
8273         * class.c (mono_type_get_name_full): Return NULL for
8274         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
8275         fixes #75408.
8276
8277 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
8278
8279         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
8280         exit the appdomain as well being aborted.
8281
8282         * threadpool.c: Create all threadpool threads inside the root appdomain, and
8283         change back to the root domain after calling managed code. This enables
8284         appdomains using threadpools to be unloaded.
8285
8286 2005-07-07  Martin Baulig  <martin@ximian.com>
8287
8288         * class-internals.h
8289         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
8290         into `MonoDynamicGenericClass' since we only need it for dynamic
8291         types.
8292
8293         * reflection.c (mono_class_bind_generic_parameters): We don't need
8294         to compute the `parent' here.
8295
8296 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
8297
8298         * culture-info-table.h : regenerated.
8299
8300 2005-07-06  Martin Baulig  <martin@ximian.com>
8301
8302         * icall.c
8303         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
8304
8305         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
8306
8307 2005-07-06  Martin Baulig  <martin@ximian.com>
8308
8309         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
8310         we're doing a signature-only comparision; fixes #74945.
8311
8312 2005-07-06  Martin Baulig  <martin@ximian.com>
8313
8314         * class-internals.h (MonoGenericClass): Moved some things out into
8315         a new `MonoInflatedGenericClass' type.  
8316         (MonoInflatedGenericClass): New type; the `klass' of a
8317         `MonoGenericClass' is now computed lazyly in
8318         mono_get_inflated_generic_class().      
8319
8320         * class.c (mono_get_inflated_generic_class): New public function.
8321         (mono_class_inflate_generic_method): Removed the unused
8322         `MonoClass *' argument.
8323         (setup_generic_vtable): Don't call mono_get_inflated_method() on
8324         all the methods.
8325         (mono_class_create_generic): Make this static and merge it with
8326         mono_class_create_generic_2(); we're now called automatically from
8327         mono_get_inflated_generic_class().
8328
8329         * loader.c (mono_method_signature): Call
8330         mono_get_inflated_method() here.
8331
8332 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
8333
8334         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
8335         type of fields with RVA.
8336
8337         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
8338         for this pseudo class.
8339         (my_mono_class_from_generic_parameter): Likewise.
8340         (mono_class_init): Allow interfaces to have cctors.
8341
8342 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
8343
8344         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
8345         lazily for AOT methods.
8346
8347 2005-07-05  Martin Baulig  <martin@ximian.com>
8348
8349         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
8350         returns FALSE for a successful match, not TRUE.
8351
8352 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
8353
8354         * loader.c (mono_method_get_index): Optimize this a bit.
8355
8356 2005-07-04  Martin Baulig  <martin@ximian.com>
8357
8358         * class.c
8359         (class_compute_field_layout): Move the check for generic type
8360         definitions into mono_class_layout_fields().  Fixes #74684.
8361         (mono_class_from_generic_parameter): Correctly compute
8362         `klass->parent'; fixes #75457.
8363
8364         * reflection.c (register_assembly, register_module): Make sure
8365         `domain->rejobject_hash' is already created.
8366
8367 2005-07-02  Martin Baulig  <martin@ximian.com>
8368
8369         * class-internals.h
8370         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
8371         `MonoDynamicGenericClass'.      
8372
8373 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
8374
8375         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
8376         returned by a field getter is null, since null is a valid value.
8377
8378 2005-07-01  Martin Baulig  <martin@ximian.com>
8379
8380         * reflection.c (mono_reflection_generic_class_initialize): Update
8381         the `dgclass->fields [i].parent' to the correct class.
8382         (mono_image_get_fieldref_token): Use the declaring type, not the
8383         reflected type.
8384
8385 2005-07-01  Martin Baulig  <martin@ximian.com>
8386
8387         * loader.c (find_method): Also look in the interfaces; fixes #75429.
8388
8389 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
8390
8391         * threads.c (thread_cleanup): assert that thread != NULL
8392         (wait_for_tids_or_state_change): We were using the wrong variable
8393         when accessing wait->threads. `i' was always out of the bounds of
8394         the array.
8395
8396 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8397
8398         * loader.c: map user32 and kernel32 to libMonoSupportW
8399
8400 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
8401
8402         * appdomain.c (unload_thread_main): Mark this as WINAPI.
8403
8404 2005-06-28  Martin Baulig  <martin@ximian.com>
8405
8406         * loader.c (method_from_methodspec): Fix #75334.
8407
8408 2005-06-28  Martin Baulig  <martin@ximian.com>
8409
8410         Fix #74953 - Arrays now implement the generic IList<T> interface
8411         on the 2.0 platform.
8412
8413         * class-internals.h (MonoDefaults): Added `generic_array_class'.
8414
8415         * reflection.c (mono_class_bind_generic_parameters): New public
8416         function; similar to mono_reflection_bind_generic_parameters(),
8417         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
8418
8419         * domain.c (mono_init_internal): Try to initialize.
8420         `mono_defaults.generic_array_class' here; this'll only succeed if
8421         we're using the 2.0 corlib.
8422
8423         * icall.c
8424         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
8425         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
8426         (mono_lookup_internal_call): Added support for nested classes.
8427
8428         * loader.c
8429         (mono_get_method_from_token): Set `result->signature->pinvoke' if
8430         we're an interncall and have generic arguments.
8431
8432         * class.c
8433         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
8434         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
8435         instance of System.Array.InternalArray<T> for arrays, so they
8436         implement the generic IList<T> interface.
8437
8438 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
8439
8440         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
8441         (chastamar@yahoo.com). Fixes #75374.    
8442
8443 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
8444
8445         * culture-info-table.h: regenerated.
8446
8447 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8448
8449         * icall.c: handle spaces correctly for base64 strings.
8450
8451 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
8452
8453         * *.c: Kill some warnings.
8454
8455 2005-06-23  Duncan Mak  <duncan@novell.com>
8456
8457         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
8458         that this builds on Solaris 10 (x86).
8459
8460 2005-06-23  Martin Baulig  <martin@ximian.com>
8461
8462         * class.c
8463         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
8464         generic type definitions.
8465
8466 2005-06-23  Martin Baulig  <martin@ximian.com>
8467
8468         Fix #75331.
8469
8470         * metadata.c (mono_class_get_overrides): Renamed to
8471         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
8472         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
8473         pass it to mono_get_method_full().
8474
8475 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
8476
8477         * reflection.c (mono_reflection_create_runtime_class): take the
8478         mono_domain_lock in this method. Prevents deadlocks
8479
8480 2005-06-22  Martin Baulig  <martin@ximian.com>
8481
8482         * loader.c (method_from_methodspec): Fix #75330.
8483
8484 2005-06-22  Martin Baulig  <martin@ximian.com>
8485
8486         * reflection.c (type_get_qualified_name): Use
8487         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
8488         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
8489         argument; use it if we don't have an assembly name.
8490
8491 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
8492
8493         * object.c: In mono_message_init, set "copy out" flag for in
8494         parameters with the [Out] flag.
8495
8496 2005-06-21  Martin Baulig  <martin@ximian.com>
8497
8498         * class.c
8499         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
8500         and MONO_TYPE_PTR.
8501
8502 2005-06-21  Martin Baulig  <martin@ximian.com>
8503
8504         * class.c (mono_class_init): Don't initialize `class->fields' for
8505         generic instances since they're initialized again in
8506         compute_field_layout(). 
8507         (compute_field_layout): Set the field's `generic_info' here; fix
8508         #75320. 
8509
8510 2005-06-21  Martin Baulig  <martin@ximian.com>
8511
8512         * class-internals.h
8513         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
8514
8515         * metadata.c (mono_metadata_generic_method_equal): Also
8516         distinguish the `generic_class'; fixes #75334.
8517
8518 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8519
8520         * domain.c:
8521         * appdomain.c:
8522         * domain-internals.h:
8523         * reflection.c: 'domain_assemblies' field is now protected by its own
8524         lock. Don't call into managed code to run the AssemblyLoad event if we
8525         now there are no registered delegates for it.
8526
8527 2005-06-20  Martin Baulig  <martin@ximian.com>
8528
8529         * class.c (mono_class_is_assignable_from): Use a custom version of
8530         mono_class_has_parent() to make things work for generic instances;
8531         fix #75300.
8532
8533 2005-06-20  Martin Baulig  <martin@ximian.com>
8534
8535         * loader.c (method_from_methodspec): Apply a patch from
8536         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
8537
8538 2005-06-20  Martin Baulig  <martin@ximian.com>
8539
8540         * class.c (mono_class_init): Reverted Zoltan's last change; it
8541         breaks generics.
8542
8543 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
8544
8545         * threads.c (wait_for_tids_or_state_change): Add missing locking.
8546
8547 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8548
8549         * socket-io.c: fix the index in the socket array for writable/error
8550         sockets. Fixes bug #75306.
8551
8552 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
8553
8554         * class.c (mono_class_init): Allow interfaces to have static ctors.
8555
8556 2005-06-17  Martin Baulig  <martin@ximian.com>
8557
8558         * loader.c (method_from_methodspec): Use `context->container' when
8559         parsing the `gmethod->inst'.
8560
8561 2005-06-17  Martin Baulig  <martin@ximian.com>
8562
8563         * class.c (mono_type_get_name_recurse): Don't add the assembly
8564         name for type arguments.
8565
8566 2005-06-15  Martin Baulig  <martin@ximian.com>
8567
8568         * reflection.c (mono_image_get_inflated_method_token): Encode
8569         correct klass; fixes #75260.
8570
8571 2005-06-13 Michal Moskal <malekith@nemerle.org>
8572
8573         * icall.c: Make GetCorrespondingMethod/Constructor take
8574         MonoReflectionMethod method not MonoMethod. Removed
8575         MonoType.GetCorrespondingField, and make
8576         MonoGenericType.GetCorrespondingField take name not
8577         MonoClassField.
8578
8579 2005-06-13  Michal Moskal <malekith@nemerle.org>
8580
8581         * reflection.c (field_encode_signature, encode_locals):
8582          Make sizes of buffers for types larger (for big generic types).
8583          (create_generic_typespec,
8584          mono_reflection_sighelper_get_signature_local,
8585          mono_reflection_sighelper_get_signature_field):
8586          Add asserts for too small buffers.
8587
8588 2005-06-15  Martin Baulig  <martin@ximian.com>
8589
8590         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
8591         if our parent is not a dynamic type.
8592
8593 2005-06-15  Martin Baulig  <martin@ximian.com>
8594
8595         * class-internals.h (MonoTypeNameFormat): New enum.
8596
8597         * class.c
8598         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
8599         (mono_type_get_full_name): Removed.
8600         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
8601         argument instead of the boolean's.
8602
8603         * icall.c (ves_icall_System_MonoType_getFullName):
8604         Added `gboolean assembly_qualified'.    
8605
8606         * reflection.h
8607         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
8608
8609         * reflection.c (mono_reflection_parse_type): Parse the new type
8610         name format.
8611
8612 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8613
8614         * icall.c: no need to convert from utf16 to utf8 and then back again
8615         after the call to GetLogicalDrives.
8616
8617 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8618
8619         * icall.c: frombase64. Fix problems exposed by new tests.
8620
8621 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8622
8623         * icall.c: added internal calls for converting char [] and strings in
8624         base64 into byte [].
8625
8626 2005-06-10  Martin Baulig  <martin@ximian.com>
8627
8628         * class.c (mono_class_create_generic_2): Read the nested classes
8629         from the metadata rather than from `gklass->nested_classes' since
8630         `gklass' might not be initialized yet.
8631
8632 2005-06-09  Duncan Mak  <duncan@novell.com>
8633
8634         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
8635         all public headers. Fixes #74919.
8636
8637 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
8638
8639         * domain.c: The key for proxy_vtable_hash is now a pointer
8640         array. Added new GHashFunc and GCompareFunc functions for this.
8641
8642         * class.h: The list of interfaces in MonoRemoteClass is known in
8643         advance and can't grow (we create a new MonoRemoteClass if needed),
8644         so now the interface array can be allocated together with
8645         MonoRemoteClass.
8646         
8647         * object.c: Added a new method create_remote_class_key.
8648         Fixed mono_remote_class so it does not depend on
8649         mono_upgrade_remote_class.
8650         Removed extend_interface_array.
8651         Added new method clone_remote_class(), which makes a copy of a remote
8652         class and adds a new interface or class to it.
8653         mono_upgrade_remote_class() now creates a new remote class (or gets
8654         it from the cache) if an vtable upgrade is needed. In this way
8655         we make sure that other objects sharing the same remote class
8656         don't get the new vtable with unwanted interfaces.
8657         
8658         * object-internals.h:
8659         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
8660         
8661         * marshal.c: Track changes in mono_upgrade_remote_class().
8662
8663 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
8664         * icall.c: Add runtime methods for obtaining members of inflated
8665         class, which were created from supplied non-inflated members. It
8666         is used in internal Get{Method,Constructor,Field} methods in
8667         System.Type
8668
8669 2005-06-09  Martin Baulig  <martin@ximian.com>
8670
8671         * reflection.c
8672         (mono_reflection_bind_generic_method_parameters): Fix #75169.
8673
8674 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8675         * reflection.c (mono_image_basic_init): Define
8676         Version in MonoDynamicAssembly. 
8677         
8678 2005-06-08  Martin Baulig  <martin@ximian.com>
8679
8680         Fix #75136.
8681
8682         * loader.c
8683         (mono_method_signature_full): New public method; takes a
8684         `MonoGenericContext *'.
8685         (find_method): Use mono_method_signature_full() and pass the
8686         klass'es context to it.
8687
8688         * class.c (mono_class_is_inflated_method): Use
8689         mono_method_signature_full() and pass the context to it.
8690
8691 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
8692
8693         * object.c: add proper locking in mono_remote_class_vtable(),
8694         fixes possible memory corruption.
8695
8696 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
8697
8698         * marshal.c (mono_remoting_marshal_init): set
8699         initialized after initialization.
8700
8701 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8702
8703         * locales.c : hush.
8704
8705 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
8706
8707         * object.c (extend_interface_array): fix really silly
8708         memory corrupting / comparison bug.
8709
8710 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8711
8712         * reflection.c: Functions added to support the creation
8713         of CustomAttributeData, which includes Attribute data
8714         used by ReflectionOnly methods.
8715
8716         * reflection.h:  mono_reflection_get_custom_attrs_data and
8717          mono_custom_attrs_data_construct added (functions exposed).
8718
8719          * icall.c: Added mono_reflection_get_custom_attrs_data
8720          as icall.
8721         
8722 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
8723
8724         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
8725         lupus's request.
8726
8727 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
8728
8729         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
8730
8731         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
8732         dynamic DllImportAttribute.
8733
8734         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
8735         dynamic DllImportAttribute.
8736
8737         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
8738         Fixes #75162.
8739
8740 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8741
8742         * threads.c: avoid segfault when an unstarted thread is aborted.
8743
8744 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
8745
8746         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
8747         Returns the name and version of the runtime for reporting.
8748
8749 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8750
8751         * appdomain.c: bump corlib version.
8752         * object-internals.h: new field in MonoReflectionAssembly.
8753
8754 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8755
8756         * object-internals.h: Carlos forgot to add this field.
8757
8758 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8759
8760         * icall.c: Added create_version to create instances
8761         of Version of MonoReflectionAssemblyName. This change helps
8762         the AssemblyName tests to keep running fine.
8763         
8764 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
8765   
8766         * object.c (mono_method_return_message_restore): A somehow less
8767         intrusive fix for #75138.
8768
8769 2005-06-03  Raja R Harinath  <rharinath@novell.com>
8770
8771         * object.c (mono_method_return_message_restore): Fix computation
8772         of expected number of out args.
8773
8774 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
8775
8776         * reflection.c (mono_image_get_method_info): Fix the case when the
8777         charset is empty.
8778
8779 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
8780
8781         * object.c: Added missing null check in
8782           mono_method_return_message_restore.
8783
8784 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
8785
8786         * reflection.c (mono_image_get_method_info): Handle the case when
8787         dllentry is empty.
8788
8789 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
8790
8791         * object.c: When creating the vtable for a proxy, take into account
8792         all inherited interfaces, not only the ones registered in
8793         iclass->interfaces. This fixs bug #74996.
8794         Also, in mono_method_return_message_restore, verify that the array
8795         of out args has the expected lengh.
8796
8797 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8798
8799         * socket-io.c: update the timeout in Poll when the call is interrupte.
8800
8801 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8802
8803         * socket-io.c: support abort/suspend in Select_internal after last
8804         change.
8805
8806 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8807
8808         * threadpool.c: remove warning.
8809
8810 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8811
8812         * icall.c:
8813         * socket-io.[ch]: Select_internal uses poll() now when available, thus
8814         removing the 1024 limit from select(). Runtime part of the fix for
8815         bug #71203.
8816
8817 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8818
8819         * socket-io.c: when resolving the addresses for the same
8820         host returned by gethostname(), get the local IPs from the interface
8821         list. Loopback addresses are discarded if the are interfaces up with
8822         non-loopback ones. Fixes bug #63265.
8823
8824 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
8825
8826         * appdomain.c, verify.c, object-internals.h, reflection.c:
8827         bumped corlib number to 36, and added new extra_flags field
8828         to ReflectionMethodBuilder and friends.  Fixes #75060.
8829
8830 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
8831
8832         * gc.c: register a new weak link only if the object is non-null
8833         (fixes bug#75047).
8834
8835 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8836
8837         * culture-info.h : short time pattern too.
8838
8839 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8840
8841         * culture-info.h : expand long time pattern string length.
8842
8843 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
8844
8845         * culture-info-table.h : update (more French date format; #72788).
8846
8847 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
8848
8849         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
8850         the method is static. Fixes #75029.
8851
8852 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
8853
8854         * reflection.c: Update the table_idx field of method builders after
8855         saving the module, since it can change. This is a workaround for
8856         bug #74914. 
8857
8858 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
8859
8860         * culture-info-table.h : update (additional French date format).
8861
8862 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
8863
8864         * icall.c (ves_icall_type_Equals): Revert last change.
8865         
8866         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
8867
8868         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
8869
8870 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
8871
8872         * class-internals.h: Added executioncontext_class field to 
8873         MonoDefaults structure.
8874         * domain.c: Cache System.Threading.ExecutionContext class in 
8875         mono_defaults.
8876         * object.c: Capture the ExecutionContext for asynchroneous calls in
8877          mono_async_result_new.
8878         * object-internals.h: Added execution_context and original_context 
8879         fields to MonoAsyncResult. Added execution_context to MonoThread.
8880         * security-manager.c|.h: Added mono_get_context_capture_method to 
8881         return the capture method (if required by the security manager or by
8882         the framework version used).
8883         * threadpool.c: Apply capture (if present) ExecutionContext in 
8884         mono_async_invoke and revert to original context after it completes.
8885
8886 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
8887
8888         * culture-info-table.h : updated (real hacky solution for zh-CHT).
8889
8890 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
8891
8892         * culture-info-table.h : zh-CHT related workaround.
8893
8894 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
8895
8896         * marshal.c (emit_marshal_custom): Add some error checking and call the
8897         methods in the ICustomMarshaler interface. Fixes #74875.
8898         
8899         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
8900         native->managed wrappers.
8901
8902 2005-05-12  Martin Baulig  <martin@ximian.com>
8903
8904         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
8905         here and use the loader lock.
8906
8907         * mono-debug.c: Properly lock when the debugger is not attached.
8908         (mono_debug_init): Release the initial lock if we're not running
8909         in the debugger.
8910
8911 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
8912
8913         * marshal.c (emit_marshal_custom): Pass through NULL values without
8914         calling the custom marshalling routines.
8915
8916         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
8917         conversion in structures. Fixes #74882.
8918
8919 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
8920
8921         * culture-info-table.h : zh-* cultures were missing.
8922
8923 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
8924
8925         * threads.c: Added a new event background_change_event which is signaled
8926         when a thread changes its background mode.
8927         Moved here several checks previously done in managed code. The checks
8928         require the thread lock, and using the thread lock in managed code
8929         can result in deadlocks.
8930         Merged Start_internal and Thread_internal into a single method. Now 
8931         Thread_internal does all work of creating and starting a thread.
8932         Added icalls for setting and getting the state of the object. Moved from
8933         managed code to avoid locking there.
8934         Added wait_for_tids_or_state_change() which is called instad of
8935         wait_for_tids when waiting for non-backround threads to end. This method
8936         will return if one of the threads ends or the background_change_event
8937         is signaled.
8938         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
8939         the background mode. This method signals the background_change_event
8940         event.
8941         * icall.c:
8942         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
8943         removed Start_internal.
8944         
8945 2005-05-11  Martin Baulig  <martin@ximian.com>
8946
8947         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
8948         to order of some fields to get proper alignment on 64-bit machines.
8949
8950 2005-05-11  Martin Baulig  <martin@ximian.com>
8951
8952         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
8953         changes as they're broken and completely fuck up the debugger.
8954
8955         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
8956
8957 2005-05-10  Martin Baulig  <martin@ximian.com>
8958
8959         * reflection.c (mono_reflection_generic_class_initialize): Don't
8960         call mono_class_setup_parent() here.
8961
8962 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8963
8964         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
8965         send/receive timeout use an integer in milliseconds. We were using a
8966         struct timeval.
8967
8968 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8969
8970         * locales.c:
8971         (internal_get_cultures): reserve the first slot of the array for the
8972         InvariantCulture, which will be filled in managed code.
8973
8974 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
8975
8976         * reflection.c (mono_image_fill_module_table): Initialize the
8977         GENERATION field as well.
8978
8979 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8980
8981         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
8982         Monitor.Enter on the object.
8983
8984 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
8985
8986         * threads.c: Enable the wait for running threads when exiting.
8987         * icall.c: Suspend all threads before exiting.
8988
8989 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
8990
8991         * assembly.c (mono_assembly_load_reference): Fix warning.
8992
8993 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8994
8995         * threadpool.c: changed the default number of threads per cpu. From now
8996         on, the default will be 20 + (5 * number of cpus) instead of 50.
8997
8998 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
8999
9000         * loader.c (mono_method_get_signature_full): Add locking here.
9001
9002 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
9003
9004         * appdomain.c: Moved methods for parsing and freeing assembly
9005         names to assembly.c.
9006         * assembly.c, domain-internals.h: Created public methods for parsing
9007         assembly names. Fixed mono_assembly_load_with_partial_name:
9008         it now finds the best match, taking into account the version,
9009         token and culture specified in the partial name. Also return
9010         the latest version if no version information is specified.
9011
9012 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
9013
9014         * threadpool.c: replace check for SocketAsyncCall class.
9015
9016 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9017
9018         * threadpool-internals.h:
9019         * Makefile.am: added threadpool-internals.h
9020
9021         * threadpool.c: call mono_unhandled_exception on exceptions not handled
9022         that happen in threadpool threads (tested on MS).
9023         (mono_thread_pool_remove_socket): new function that dispatch any pending
9024         AIO call on a socket that is closing. By now only epoll really needs it,
9025         as select/poll wake up when the socket closes.
9026
9027
9028         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
9029
9030 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
9031
9032         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
9033
9034 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
9035
9036         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
9037
9038 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
9039
9040         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
9041         has an abort request, convert it into a suspend request.
9042
9043 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
9044
9045         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
9046         warning for the usage of `UnmanagedFunctionPointerAttribute' which
9047         is not supported yet.
9048
9049 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9050
9051         * image.c: register assemblies loaded from data (bundles) in the loaded
9052         assemblies hash. Fixes bug #74772.
9053
9054 2005-04-29  Martin Baulig  <martin@ximian.com>
9055
9056         * class.c (mono_type_get_name_recurse): Update to the new naming
9057         schema from the latest .NET 2.x beta2.
9058         (mono_class_setup_vtable_general): If we're a generic instance,
9059         copy the vtable from our generic type definition and inflate all
9060         the methods in it.
9061
9062         * loader.c (find_method): Update to the new naming schema from the
9063         latest .NET 2.x beta2.
9064
9065 2005-04-29  Raja R Harinath  <harinath@gmail.com>
9066
9067         * class.c (mono_class_init): Add a mono_loader_unlock to the
9068         #74734 fix.
9069
9070 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
9071
9072         * icall.c (ves_icall_System_Environment_Exit): Remove the 
9073         suspend_all_other_threads () call for the time being, since it can hang.
9074
9075         * threads.c (mono_thread_manage): Similarly, disable the waiting for
9076         the background threads to exit, since it can also hang.
9077
9078         * class.c (mono_class_init): Applied patch from Ankit Jain 
9079         (radical@gmail.com). Avoid pending init errors when a field refers
9080         to a nested class using a typeref. Fixes #74734.
9081
9082         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
9083         this for dynamic modules.
9084
9085 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9086
9087         * threads.c: don't wait for threads that are in the process of aborting
9088         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
9089         and waiting for background threads to finish. This makes xsp and
9090         mod-mono-server exit without random length delays and/or hangs.
9091
9092 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9093
9094         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
9095
9096 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
9097
9098         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
9099         dynamic types to prevent infinite loops. Fixes #74727.
9100
9101         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
9102         ..._is_assignable_to.
9103
9104 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
9105
9106         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
9107
9108 2005-04-25  Martin Baulig  <martin@ximian.com>
9109
9110         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
9111
9112         * domain.c
9113         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
9114
9115         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
9116
9117         * reflection.c (build_compressed_metadata): Set metadata header
9118         version to 2.0.
9119
9120 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
9121
9122         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
9123         number into an integral and a decimal part. Fixes #70473.
9124
9125         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
9126
9127 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
9128
9129         * culture-info-table.h : reflected the latest locale-builder output.
9130
9131 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9132
9133         * threadpool.c: check for SuspendRequested too when deciding if
9134         mono_thread_interruption_checkpoint should be called.
9135
9136 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9137
9138         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
9139         * threads.c: remove interruption_mutex and use Interlocked instead. When
9140         suspending all the threads, wait for all the suspended events at once.
9141         If we're shutting down and get an APC that is going to be queued,
9142         call mono_thread_execute_interruption immediately, as the thread might
9143         be sleeping on a pthread condition or mutex.
9144
9145         * icall.c: call mono_runtime_set_shutting_down before suspending the
9146         threads.
9147
9148         Fixes bug #74693. And now xsp is happier when exiting.
9149
9150 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
9151
9152         * loader.c (mono_stack_walk): Fix #74690.
9153
9154 2005-04-22  Martin Baulig  <martin@ximian.com>
9155
9156         * mono-debug.h (MonoDebugMethodJitInfo): Added
9157         `MonoDebugMethodJitInfo *jit'.
9158
9159         * mono-debug.c (mono_debug_read_method): Cache the
9160         MonoDebugMethodJitInfo in `address->jit'.
9161         (mono_debug_free_method_jit_info): New public method.
9162
9163 2005-04-22  Martin Baulig  <martin@ximian.com>
9164
9165         * class.c (mono_class_is_assignable_from): Disallow
9166         type parameter -> interface.
9167
9168 2005-04-21  Dick Porter  <dick@ximian.com>
9169
9170         * threads.c (mono_thread_create): Turn an assertion into an error.
9171
9172 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
9173
9174         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
9175         
9176         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
9177         Fix some gcc 4.0 warnings.
9178
9179 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
9180
9181         * file-io.c: fix alt dir separator char on unix systems
9182         and cleanup (fixes bug #71214).
9183
9184 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
9185
9186         * marshal.c: Use CALLVIRT instead of CALL when dispatching
9187         a call to a remote domain, since the method may be an
9188         interface method in the client domain. This fixes bug #74192.
9189
9190 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9191
9192         * threadpool.c: recv/send are now performed before going back to managed
9193         code to save one transition.
9194
9195 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9196
9197         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
9198
9199         * metadata/threadpool.c: removed hack to workaround the bug above.
9200
9201         Fixes bug #74618.
9202
9203 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
9204
9205         * reflection.c reflection.h: Fix handling of parameter defaults in
9206         dynamic methods. Also fixes handling of parameter attributes.
9207         Fixes #74609.
9208
9209         * mono-debug.c (mono_debug_close_image): Fix warning.
9210
9211 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9212
9213         * socket-io.h: replaced old unused field with new 'blocking'.
9214         * threadpool.c: restore socket blocking state on windows(tm).
9215
9216 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
9217
9218         * icall.c: don't return the codebase in the AssemblyName[] returned by
9219         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
9220         * object-internals.h: Removed FIXME (fields were presents) and fixed
9221         versioncompat declaration.
9222
9223 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9224
9225         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
9226         not closed, so don't cleanup when it happens.
9227
9228 2005-04-13  Chris Toshok  <toshok@ximian.com>
9229
9230         * mono-debug-debugger.h: change prototype for
9231         mono_debugger_lookup_type.
9232
9233         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
9234         this function, although it should probably be named
9235         mono_debugger_init_type.
9236
9237 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9238
9239         * threadpool.c: fix non-AIO case.
9240
9241 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
9242
9243         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
9244         the built-in profiler to measure just JIT compilation times.
9245
9246 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9247
9248         * threadpool.c: the epollfd might be closed by another thread at
9249         any time, so ignore EBADF at treat it as a "we're closing" sign.
9250
9251 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9252
9253         * threadpool.c: release the semaphores with a count equals to the number
9254         of working threads in both IO and regular pools. Fixed typo that messed
9255         up the count of IO pool threads. Don't initialize the pipe handles if
9256         we're using epoll.
9257
9258 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9259
9260         * threadpool.c: some systems don't like a NULL when deleting the socket
9261         from epoll.
9262
9263 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9264
9265         * threadpool.c: fix semaphore allocation.
9266
9267 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9268
9269         * threadpool.c: added epoll() based implementation for asynchronous IO
9270         that is used instead of the default poll() when available.
9271         It can be disabled by setting MONO_DISABLE_AIO.
9272
9273 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9274
9275         * threadpool.c: windows needs 'closesocket' and instead of returning
9276         0 when the stream is closed while in select, it returns -1. Fixes bug
9277         #74573.
9278
9279 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
9280
9281         * class.c (class_compute_field_layout): Fix the regression caused by
9282         the previous try.
9283
9284 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9285
9286         * threadpool.c: separate pool for socket async. IO.
9287         * threadpool.h: mono_max_worker_threads is not a global any more.
9288
9289 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
9290
9291         * class.c (class_compute_field_layout): Fix #74549.
9292
9293 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9294
9295         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
9296         use 2 connected sockets instead.
9297
9298 2005-04-08  Miguel de Icaza  <miguel@novell.com>
9299
9300         * mono-config.c: Add new entry point for mkbundle
9301         mono_config_parse_memory. 
9302
9303 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9304
9305         * threadpool.c: removed another unused function.
9306
9307 2005-04-08  Ankit Jain  <radical@corewars.org>
9308
9309         * reflection.c (get_default_param_value_blobs): Add 'types'
9310         parameter to get the types encoded in the constant table.
9311         (mono_param_get_objects): Use the type from the constant table,
9312         not the type of the parameter, when creating default values.
9313         Handle null default values correctly.
9314
9315 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9316
9317         * file-io.c:
9318         * file-io.h:
9319         * threadpool.c:
9320         * threadpool.h:
9321         * icall.c:
9322         * socket-io.c: removed dead code for async IO.
9323
9324 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9325
9326         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
9327
9328         * threadpool.c: intercept socket async. calls and pass them to a thread
9329         that is polling and dispatching the job items to the threadpool as
9330         socket become ready. Fixes bugs #71217, #71933.
9331
9332         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
9333         between char and short/ushort arrays.
9334
9335         * socket-io.c: remove dead code.
9336
9337 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
9338
9339         * locales.c,
9340           icall.c : removed InternalToUpper_Comp() and
9341           InternalToLower_Comp().
9342
9343 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
9344
9345         * char-conversions.h : The tables were incorrectly generated. Should
9346           be generated against invariant culture.
9347
9348 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
9349
9350         * object.c (mono_runtime_invoke_array): Fix return value when 
9351         passing pre-created valuetype objects to ctors.
9352
9353         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
9354         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
9355         Fixes #74338.
9356
9357 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
9358
9359         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
9360         only used with --security and hides the wrong corlib version error.
9361
9362 2005-03-30  Joshua Tauberer  <tauberer@for.net>
9363
9364         * class.c: Changed mono_class_name_from_token so that types
9365         outside of a namespace don't have an initial period.  Improved
9366         the g_warning message used in _mono_class_get when loading
9367         fails.
9368         * assembly.c: In mono_assembly_load_reference, when an assembly
9369         can't be found, "No such file or directory" is misleading and
9370         unhelpful because a few paths were checked for the presence of
9371         the assembly.  When that happens (ENOENT), display a nicer
9372         message indicating the directories that were searched.  In all
9373         cases, the warning is made easier to read for non-hackers.
9374
9375 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
9376
9377         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
9378         project/solution.
9379         * appdomain.h|domain.c: Removed inline from functions.
9380         * appdomain.c: Reduced warnings when compiling on windows.
9381         * icall.c: Fixed output_debug declaration to gunichar2*.
9382         * mono-config.c: Reduced warnings when compiling on windows.
9383         * rand.c: Added missing "windows.h". Added missing return value.
9384         * rawbuffer.c: Added missing winsock2.h for windows.
9385         * sysmath.h: Added mono-compiler.h header to allow/ease 
9386         compilation with non-GCC compilers.
9387         * threads.c: Fixed declarations to compile with VS.NET C compiler.
9388         Removed cast warnings.
9389
9390         Adapted from the work of J Lothian (for VC6).
9391
9392 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
9393
9394         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
9395         from default_path.
9396
9397 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
9398
9399         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
9400         the 2.0 profile.
9401
9402 2005-03-27  Raja R Harinath  <harinath@gmail.com>
9403
9404         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
9405         has to be in $(exec_prefix).  $(prefix) is for arch-independent
9406         stuff, and it would probably use $(prefix)/share rather than
9407         $(prefix)/lib.
9408
9409 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9410
9411         * console-io.c: added 2 includes that might be missing.
9412
9413 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
9414
9415         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
9416         profile.
9417
9418         * reflection.c (create_custom_attr): Allocate the params array using
9419         alloca so it gets GC tracking.
9420
9421 2005-03-23  Chris Toshok  <toshok@ximian.com>
9422
9423         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
9424         out some spew.
9425
9426 2005-03-24  Raja R Harinath  <rharinath@novell.com>
9427
9428         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
9429         changes to pick up any changes in prefix, etc.
9430
9431 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
9432
9433         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
9434         
9435         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
9436         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
9437
9438 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
9439
9440         * class-internals.h object-internals.h class.c reflection.c: Extend the
9441         mono_lookup_dynamic_token () function to return the class of the
9442         token as well. 
9443
9444         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
9445         well. Fixes #73848.
9446
9447 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
9448
9449         * security-manager.c: Skip inheritance checks for intra-corlib
9450         class inheritance and method overrides. This skips a lot of checks
9451         and (anyway) permissions cannot work until corlib is loaded.
9452
9453 2005-03-23  Martin Baulig  <martin@ximian.com>
9454
9455         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
9456         MONO_TYPE_GENERICINST.  
9457
9458 2005-03-23  Martin Baulig  <martin@ximian.com>
9459
9460         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
9461
9462 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9463
9464         * class.c: added locking comments to some functions.
9465         Cache the interface offsets arrays (saves about 20 KB
9466         of runtime memory in a typical app).
9467         Reduce the time overhead in mono_class_setup_supertypes ().
9468
9469 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
9470
9471         * icall.c: speedup and fix leaks in GetMethodsByName and
9472         GetPropertiesByName.
9473
9474 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9475
9476         * reflection.c: some locking fixes.
9477
9478 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9479
9480         * metadata.c: added missing break in case statement.
9481
9482 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
9483
9484         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
9485         typedbyref return values. Fixes #73941.
9486
9487 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
9488
9489         * security-manager.c|h: Added demandunmanaged method and 
9490         suppressunmanagedcodesecurity class to MonoSecurityManager.
9491         Renamed aptc class to allowpartiallytrustedcallers.
9492
9493 2005-03-17  Martin Baulig  <martin@ximian.com>
9494
9495         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
9496
9497 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9498
9499         * file-io.c: disabled file async. IO using aio_*. It uses the
9500         threadpool now. Workaround for bug #73718.
9501
9502 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9503
9504         * assembly.h, mono-config.c: added code to deal with bundled configs
9505         for bundled assemblies.
9506
9507 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
9508
9509         * *.c, private.h: cleanup, removing old private.h header file.
9510
9511 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
9512
9513         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
9514         and throw_on_unmappable_char attributes.
9515
9516 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
9517
9518         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
9519         _ProcessName_internal.
9520
9521 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
9522
9523         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
9524         #73631.
9525
9526         * icall.c threads.c threads-types.h: Remove slothash icalls as they
9527         are no longer used.
9528
9529 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
9530
9531         * object.c (compute_class_bitmap): Add support for generics. Fixes
9532         #73527.
9533
9534 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
9535
9536         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
9537
9538 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9539
9540         * filewatcher.c: commented out the code for windows watcher, as we don't
9541         use it (we use the managed implementation instead).
9542
9543 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
9544
9545         * object-internals.h (MonoThread): Remove 'unused1' field.
9546
9547         * appdomain.c: Bump corlib version.
9548
9549         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
9550
9551         * reflection.c (mono_reflection_create_runtime_class): Remove the
9552         AssemblyBuilder.Save optimization since it causes too many problems.
9553
9554 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
9555
9556         * exception.c|h: Added mono_get_exception_reflection_type_load to
9557         create a ReflectionTypeLoadException object.
9558         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
9559         to return NULL is a InheritanceDemand fails during reflection. Updated
9560         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
9561         ReflectionTypeLoadException if an InheritanceDemand fails during 
9562         reflection. Added icall mapping for GetLinkDemandSecurity.
9563         * security-manager.c|h: Added ves_icall_System_Security_
9564         SecurityManager_GetLinkDemandSecurity internal call to return the
9565         class and methods permissions set for a LinkDemand. Removed unused
9566         fields in MonoSecurityManager.
9567
9568 2005-03-10  Martin Baulig  <martin@ximian.com>
9569
9570         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
9571         it's a generic instance.
9572
9573 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
9574
9575         * reflection.c (mono_get_object_from_blob): Applied patch from
9576         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
9577
9578         * class.c (mono_class_is_assignable_from): Another try at fixing 
9579         #73469 without breaking anything.
9580
9581 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
9582
9583         * class.c: (mono_class_is_assignable_from): Revert the last changes
9584         since they don't work with generics.
9585         
9586         * class.c (mono_class_is_assignable_from): Fix build bustage.
9587
9588         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
9589         the managed IsAssignableFrom method. Fixes #73469.
9590
9591         * reflection.c (mono_reflection_call_is_assignable_from): New helper
9592         function.
9593
9594 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
9595
9596         * object.c (mono_load_remote_field_new): Fix returning uninitialized
9597         memory when the remoting callback does not sets the out arguments.
9598         Fixes #73007.
9599
9600         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
9601         by mistake.
9602
9603         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
9604
9605         * object-internals.h (MonoStackFrame): Sync with managed object layout.
9606
9607         * appdomain.c: Bump corlib version.
9608
9609 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
9610
9611         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
9612         function.
9613
9614         * threads.c (mono_thread_attach): Detect threads which are not started
9615         by the GC pthread wrappers.
9616
9617 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
9618
9619         * icall.c: Added new icall for RNG.
9620         * rand.c|h: Added new icall to open the RNG. This allows to share a 
9621         single handle on Linux to access /dev/urandom and fix #73183.
9622
9623 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
9624
9625         * object.c: setting the new vtable in a transparent proxy object must
9626         not change the GC descriptor.
9627
9628 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9629
9630         * object.c: fixed compilation without GCJ support.
9631         * reflection.c: for runtime-created types ensure klass->has_references
9632         is correct (bug #73215).
9633
9634 2005-03-02  Martin Baulig  <martin@ximian.com>
9635
9636         * class.c (mono_class_is_assignable_from): Make this work if
9637         `oklass' is a generic instance; fixes #72831.
9638
9639 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
9640
9641         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
9642         with hasthis set.
9643         
9644         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
9645
9646         * marshal.c: Reorganize native->managed marshalling code to also use
9647         the emit_marshal_... functions.
9648
9649 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
9650
9651         * object.c: typed allocs have issues with bitmap sizes > 30,
9652         so check for max_set >= 30.
9653
9654 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
9655
9656         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
9657         managed code. Fixes #73012.
9658
9659         * metadata.h (MonoMarshalSpec): Add elem_mult field.
9660
9661         * metadata.c reflection.c: Load/Emit elem_mult as well.
9662         
9663         * metadata.h (MonoMarshalSpec): Add comment.
9664
9665         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
9666
9667         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
9668         num_elem to -1 if not given.
9669
9670         * object-internals.h (MonoReflectionMarshal): Add has_size field.
9671
9672         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
9673         given values.
9674
9675 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
9676
9677         * null-gc.c (mono_gc_free_fixed): Was not compilable.
9678
9679 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
9680
9681         * reflection.c (encode_marshal_blob): Encode param_num field as well.
9682
9683         * object-internals.h (MonoReflectionMarshal): Add param_num field.
9684
9685 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
9686
9687         * object.c: generalized the reference bitmap creation
9688         and added hooks for the new GC.
9689         * class-internals.c: removed the gc_bitmap field from MonoClass.
9690
9691 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9692
9693         * domain.c: help the compiler to produce better code
9694         in mono_jit_info_table_find ().
9695
9696 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
9697
9698         * object.c: make all allocations look typed.
9699
9700 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9701
9702         * socket-io.c: load Mono.Posix if it's not loaded already
9703         (fixes bug#73033).
9704
9705 2005-02-24  Martin Baulig  <martin@ximian.com>
9706
9707         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
9708         * reflection.c (dup_type): Likewise.
9709
9710 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
9711
9712         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
9713         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
9714
9715 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9716
9717         * domain.c, threads.c, object-internals.h: make the critical thread
9718         local vars use the fast access mode (even when we're compiled in
9719         a lib). Provide accessors to be used by the jit during codegen.
9720
9721 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9722
9723         * appdomain.c: Changed hook functios behavior to include
9724         support for the reflection only assemblies. Some icalls were changed
9725         to support the mentioned assemblies too. Signatures of static methods
9726         try_assembly_resolve and real_load now have an additional parameter:
9727         refonly.
9728
9729         * assembly.c: General changes to mono_assembly_ methods to support
9730         reflection only api. Functions mono_assembly_open, mono_assembly_load,
9731         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
9732         suffix, to support an additional gbool parameter to specify whether
9733         the assembli is reflection only or not. Created some new hook functions 
9734         to add support for reflection only assemblies. Signatures of static 
9735         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
9736         have now an additional parameter: refonly.
9737
9738         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
9739         indicating whether the assembly is reflection only or not.
9740
9741         * exception.c: Add mono_get_exception_invalid_operation.
9742
9743         * icall.c: Throw an InvalidOperationException when trying to invoke
9744         a property/method/event, or trying to set/get the value of a field.
9745         Also add an icall to retrieve the ref_only flag to the
9746         MonoReflectionAssembly.
9747
9748 2005-02-23  Chris Toshok  <toshok@ximian.com>
9749
9750         Part of fix for #72827.
9751         * mono-debug.c (mono_debug_add_method): add lexical block data to
9752         the info we write.  Kind of a hack at the moment - we copy the
9753         lexical block info from the MonoDebugMethodInfo to the
9754         MonoDebugMethodJitInfo here, before writing it.
9755         (mono_debug_read_method): read the lexical block info.
9756
9757         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
9758
9759         * debug-mono-symfile.h: add lexical block support.
9760
9761         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
9762         support.
9763
9764 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
9765
9766         * loader.c (mono_lookup_pinvoke_call): Fix warning.
9767
9768         * object.c (mono_runtime_free_method): Call mono_free_method () and
9769         put the TODOs there.
9770
9771         * loader.c (mono_free_method): Free up most memory allocated for 
9772         dynamic methods.
9773
9774 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9775
9776         * reflection.c: properly flag a Type argument to a
9777         named custom attr value (bug #72248).
9778
9779 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9780
9781         * reflection.c: reduce code duplication in named custom
9782         attribute encoding.
9783
9784 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
9785
9786         * reflection.c: properly encode custom attrs of type object
9787         (bug #72649).
9788
9789 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
9790
9791         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
9792
9793 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
9794
9795         * socket-io.c: load System.dll if it's not loaded already
9796         (bug #72850 and #70477).
9797
9798 2005-02-21  Martin Baulig  <martin@ximian.com>
9799
9800         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
9801         generic instances.
9802
9803 2005-02-21  Martin Baulig  <martin@ximian.com>
9804
9805         * reflection.c (mono_image_build_metadata): We also need to
9806         "fixup" the MethodImpl table after we computed the final method
9807         indices.  Call fixup_methodimpl() to do that.
9808         (fixup_methodimpl): New private method.
9809
9810 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
9811
9812         * assembly.c: special case mscorlib.dll (bug#72536),
9813         patch from Carlos Alberto Cortez.
9814
9815 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
9816
9817         * threads-types.h threads.c: Fix build bustage.
9818
9819         * threads.c: Use a union for long<->double conversions.
9820
9821         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
9822         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
9823
9824         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
9825         containing the checkpoint call with NOT_TAKEN.
9826         
9827         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
9828         checkpoint before pushing the arguments, so they won't have to be
9829         spilled to stack.
9830
9831 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9832
9833         * domain.c, assembly.c, domain-internals.h: make some data
9834         const and relocation-free.
9835
9836 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
9837
9838         * object.c, appdomain.c, class-internals.h: introduce the
9839         MonoClassRuntimeInfo structure to hold the info needed to
9840         use a class at runtime. Made mono_class_vtable() lock-free
9841         for all the appdomains.
9842
9843 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
9844
9845         * metadata-internals.h, image.c: introduce a per-image mempool to
9846         be used for memory that has the same lifetime as the image.
9847
9848 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
9849
9850         * domain.c: In mono_init_internal(), instead of selecting the first
9851         runtime version supported by an executable, get a list of all
9852         supported versions and select the one for which an mscorlib exists
9853         (since even if the runtime supports a given version, it doesn't mean
9854         that the framework for that version is installed).
9855         Modified get_runtimes_from_exe to support this behavior.
9856         In supported_runtimes, added information about additional system
9857         assembly versions.
9858         
9859         * assembly.c: Added support for more than one system assembly version
9860         per runtime version. Updated the assembly list.
9861         In mono_assembly_remap_version, removed the initial version check,
9862         since we don't know to which version we need to compare until we
9863         get the version set on which the assembly is based.
9864         Moved the code for loading corlib into the new method
9865         mono_assembly_load_corlib(), so it can be used by the initialization
9866         code.
9867         
9868         * domain-internals.h: Updated data structures and added declaration
9869         for mono_assembly_load_corlib.
9870
9871 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
9872
9873         * reflection.c (resolve_object): Fix the creation of the signature in 
9874         the SignatureHelper case.
9875
9876         * assembly.c (mono_assembly_remap_version): Fix binary search.
9877         
9878 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
9879  
9880         * class.c: Added inheritance check when a method is overloaded (from a
9881         virtual method or when implementing an interface) and when a class is
9882         inherited. Added functions to set a failure for a class and to 
9883         retreive the exception from a failure.
9884         * class-internals.h: Added fields to MonoClass to keep the exception
9885         information status for inheritance (or other exceptions) to be thrown
9886         later (i.e. not at load time).
9887         * object.c: Throw the inheritance SecurityException when a type is to 
9888         be created with either class or method inheritance violations.
9889         * reflection.c|h: Fix when getting declsec from a class. Removed 
9890         unrequired code for class. Improved sanity in parameter naming.
9891         * security-manager.c|h: Added functions to check for class and method
9892         inheritance.
9893
9894 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
9895
9896         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
9897         and has_finalize in dynamic types as well.
9898
9899 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
9900
9901         * culture-info-table.h : fixed currency format for en-GB (and so on).
9902
9903 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
9904
9905         * gc.c: ensure the GC handles never have 0 as a value.
9906
9907 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
9908
9909         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
9910         a pointer to a struct to unmanaged code. Fixes #72625.
9911
9912 2005-02-16  Martin Baulig  <martin@ximian.com>
9913
9914         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
9915
9916 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
9917
9918         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
9919
9920 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
9921
9922         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
9923
9924         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
9925         UnmanagedFunctionPointerAttribute, use it for determining calling convention
9926         etc. Fixes #71471.
9927
9928         * reflection.c (mono_custom_attrs_get_attr): New helper function.
9929
9930         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
9931
9932 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
9933
9934         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
9935         changes to make the current context a field in MonoThread.
9936
9937 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
9938
9939         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
9940         the last change.
9941         
9942         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
9943         extracted from mono_marshal_get_native_wrapper.
9944
9945         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
9946         to create wrappers around native functions.
9947
9948         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
9949         delegates for arbitrary function pointers. Fixes #71472.
9950
9951 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9952
9953         * threads.c: cleaned up the code a little.
9954
9955 2005-02-15  Martin Baulig  <martin@ximian.com>
9956
9957         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
9958         the data table.
9959
9960         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
9961         allocate larger chunks if needed.
9962
9963 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
9964
9965         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
9966         in by mistake.
9967
9968 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
9969
9970         * domain.c: keep the domains in an array and ensure the domain ids
9971         are kept small, so they can be used as indexes to domain-specific data
9972         with a small memory overhead.
9973
9974 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
9975
9976         * icall.c: Handle byref types in Type icalls. Fixes #72544.
9977
9978 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
9979
9980         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
9981
9982 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
9983
9984         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
9985
9986         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
9987         values.
9988
9989         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
9990         
9991 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
9992
9993         * domain-internals.h: add the hashtable here.
9994
9995         * class-internals.h: Remove `info' from MonoMethod
9996
9997         * domain.c: Add a new hashtable, jit_trampoline_hash
9998
9999 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
10000
10001         * object.c: don't set the value of static fields
10002         (fixes bug#72494).
10003
10004 2005-02-11  Martin Baulig  <martin@ximian.com>
10005
10006         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
10007         (mono_debug_add_method): Silently ignore the method if it's too big.
10008         (mono_debug_add_type): Likewise.
10009
10010 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
10011
10012         * threads.c, appdomain.c: remove #ifdefs from the code.
10013
10014 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
10015
10016         * metadata-internals.h: Added flags to MonoAssembly to cache the most
10017         common security informations. This allows us to stay in unmanaged code
10018         when doing LinkDemand and it's special cases (except for the first 
10019         time for initialization). The flags a very much used with --security.
10020         * reflection.c|h: Added code to get declarative security attributes 
10021         for LinkDemand and InheritanceDemand. This required to refactor the
10022         existing code for Demand.
10023         * security-manager.c|h: Added new method fields for the special cases
10024         of LinkDemand.
10025
10026 2005-02-10  Martin Baulig  <martin@ximian.com>
10027
10028         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
10029         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
10030
10031 2005-02-10  Martin Baulig  <martin@ximian.com>
10032
10033         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
10034         debugging code; this is almost a complete rewrite.
10035
10036         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
10037
10038 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10039
10040         * domain.c, object.h: expose mono_string_equal () and 
10041         mono_string_hash ().
10042         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
10043         it's implemented in managed code.
10044
10045 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10046
10047         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
10048         lo leak objects between appdomains.
10049
10050 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10051
10052         * assembly.c: old compilers compilation fix from 
10053         robertj@gmx.net (Robert Jordan).
10054
10055 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
10056
10057         * class-internals.h: Little reminder for the future.
10058
10059         * debug-helpers.c: Fix up wrapper_type_names
10060
10061 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10062
10063         * image.c, metadata-internals.h: when loading an image from a file,
10064         mmap all of it and use the same codepaths as when using a
10065         in-memory image: the code is simpler and we use less memory
10066         (both writable and readonly).
10067
10068 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
10069
10070         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
10071         API to alloc runtime data structures that need to be tracked by the
10072         GC and contain pointers.
10073         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
10074         make the code more readable and eventually use a different GC.
10075
10076 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
10077
10078         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
10079         for out arguments.
10080         
10081 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
10082
10083         * object.c: In release_type_locks(), don't release the cctor lock
10084         if it has already been released. This fixes a crash in the
10085         thread5 test.
10086
10087 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
10088
10089         * gc.c, marshal.c, icall.c: register a delegate for finalization
10090         only when the native function pointer has been allocated for it.
10091
10092 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
10093
10094         * object.c: cleaned up some code, allocate objects that are
10095         pointer free with the atomic malloc variant. Allocate memory
10096         for static data from the mempool if it's pointer-free.
10097         Allocate the bounds array at the end of the array data, when needed.
10098         * object-internals.h, object.h: move a private function in a private
10099         header.
10100         * class.c: handle missing case in tracking references in fields.
10101
10102 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
10103
10104         * class.c, class-internals.h: keep track if a type has
10105         reference fields in either the instance or static fields.
10106
10107 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
10108
10109         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
10110         and renamed to MonoRuntimeInfo. Added fields to store the expected
10111         framework assembly version. Changed mono_get_framework_version and
10112         mono_get_runtime_version for a single mono_get_runtime_info method.
10113         
10114         * assembly.c: Added method to remap system assembly versions to the
10115         current executing runtime version. Removed old mapping code.
10116         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
10117         
10118         * icall.c, reflection.c: Track api changes.
10119
10120 2005-02-06  Miguel de Icaza  <miguel@novell.com>
10121
10122         * loader.c (method_from_memberref): Improve error reporting,
10123         produce the class name instead of the typeref/typedef index. 
10124
10125 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
10126
10127         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
10128
10129 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
10130
10131         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
10132         stdcall and charset name mangling.  Reorganize the code and add
10133         some tracing stuff.
10134
10135 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
10136
10137         * monodiet.c: More iters!
10138
10139         * marshal.c: Iter usage.
10140
10141         * icall.c: Iter usage.
10142
10143         * object.c: Use iters.
10144
10145         * debug-helpers.c: More iters
10146
10147 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
10148
10149         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
10150         under win32.
10151
10152 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
10153
10154         * mono-debug-debugger.c: use iters
10155
10156         * class.c, class-internals.h: mono_class_setup_events is static
10157         now
10158
10159         * All callers: use iters
10160
10161 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
10162
10163         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
10164         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
10165
10166 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
10167
10168         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
10169
10170         * marshal.h: Add prototypes for ldfld/stfld_remote.
10171
10172         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
10173         this is called during startup.
10174         
10175 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
10176
10177         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
10178         MonoThreadsSync struct private in monitor.c. Changed the way
10179         MonoThreadsSync is allocated so it's faster and there is no
10180         need to keep track of it with a finalizer and it uses less memory.
10181         This also finally allows us to allocate mono objects as ptrfree when
10182         there are no reference fields.
10183
10184 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
10185
10186         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
10187         disappearing link to the GC interface and use them to simplify
10188         the gchandles code.
10189
10190 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
10191
10192         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
10193         stfld_remote which call mono_load/store_field_new. This allows methods
10194         calling ldfld/stfld wrappers to be AOTed.
10195
10196         * console-io.c: Include sys/filio.h under solaris.
10197         
10198         * console-io.c: Include curses.h if needed correctly.
10199
10200 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
10201         
10202         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
10203         method->klass as well.
10204
10205         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
10206
10207         * class.c (mono_class_init): Switch on lazy initialization of 
10208         methods.
10209
10210         * class.c (mono_class_get_finalizer): Handle the case when the 
10211         finalizer is inherited.
10212
10213 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10214
10215         * console-io.c: <curses.h> is needed by term.h on solaris.
10216
10217 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
10218
10219         * icall.c, class-internals.h, monodiet.c, class.c: Remove
10220         mono_class_setup_properties where possible. Remove this ftn from
10221         the header file, and make it static.
10222
10223 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
10224
10225         * loader.c: Add missing setup_... call.
10226
10227         * class.c: Add missing setup_... calls.
10228
10229         * class.c (mono_class_init): Switch on lazy initialization of 
10230         the generic vtable.
10231         
10232         * class.c (mono_class_init): Fix generics broken by the recent changes.
10233
10234         * monodiet.c (handle_type): Add missing setup_... calls.
10235
10236         * class.c: Back out garbage in previous patch.
10237         
10238         * class.c: Add missing setup_... calls.
10239
10240         * class.c (mono_class_get_method_from_name_flags): Avoid calling
10241         mono_class_setup_methods () if possible.
10242
10243         * class-internals.h (MonoClass): Add 'has_cctor' flag.
10244
10245         * class-internals.h (MonoCachedClassInfo): New structure.
10246
10247         * class.c: Initialize properties and events fields of MonoClass lazily.
10248
10249         * class.c: Add infrastructure for lazily initializing the methods and
10250         vtable fields of MonoClass. Not yet used.
10251
10252         * class.c (mono_class_get_finalizer): New helper function.
10253
10254         * class.c: Add infrastructure for loading some class related data from
10255         an AOT file.
10256
10257         * object.c: Add infrastructure for initializing the vtable from data
10258         in the AOT file.
10259
10260         * gc.c (run_finalize): Use mono_class_get_finalizer ().
10261
10262         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
10263         appropriate initialization function before accessing parts of the
10264         MonoClass structure.
10265
10266         * marshal.c: Fix warnings.
10267         
10268         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
10269
10270         * mono-debug-debugger.c (get_exception_message): Use 
10271         mono_class_get_method_from_name_flags ().
10272
10273 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
10274
10275         * reflection.c, appdomain.c: Replace a few manual searches that
10276         Zoltan missed. (Paolo approved this part of my initial patch).
10277
10278 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
10279
10280         * profiler.c: disable recording statistical events at report time.
10281
10282 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10283
10284         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
10285         to byteswap arrays of enum values, too (bug #72080).
10286
10287 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
10288
10289         * appdomain.c (set_domain_search_path): Allow this to be called if
10290         domain->setup is not yet set.
10291
10292         * loader.c (mono_method_get_index): New helper function.
10293
10294         * loader.c reflection.c: Use mono_method_get_index ().
10295
10296         * class.c (mono_class_get_method_from_name_flags): New helper method.
10297
10298         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
10299         this.
10300
10301         * class.c (mono_class_get_cctor): New helper method.
10302
10303         * string-icalls.c object.c class.c marshal.c reflection.c: Use
10304         mono_class_get_method () to look up methods.
10305
10306 2005-02-01  Miguel de Icaza  <miguel@novell.com>
10307
10308         * console-io.c: Fix the build, this should work on Windows.
10309
10310 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
10311
10312         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
10313         be set to null to keep things valid
10314
10315 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10316
10317         * icall.c: added Console 2.0 icalls.
10318         * Makefile.am: added console-io.[ch]
10319         * console-io.[ch]: internal calls for Console 2.0 API.
10320
10321 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10322
10323         * class.c: make sure we consider all the interfaces
10324         when calculating max_interface_id (bug found by
10325         Jeroen Frijters running ikvm).
10326
10327 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
10328
10329         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
10330         valuetype fields to null.
10331
10332         * object.c (set_value): Ditto. Fixes #71669.    
10333
10334 2005-01-31  Martin Baulig  <martin@ximian.com>
10335
10336         * metadata.c (mono_metadata_has_generic_params): New public
10337         function; checks whether something is a generic method.
10338
10339 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
10340
10341         * appdomain.c: fix infinite recursion when adding assemblies.
10342
10343 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
10344
10345         * object.c: Fix small typo to return all items for Environment.
10346         GetCommandLineArgs.
10347
10348 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
10349
10350         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
10351         reflection.c: more domain and assembly-unload related fixes
10352         and memory leaks plugs.
10353
10354 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
10355
10356         * 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.
10357
10358 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
10359
10360         * loader.c (mono_method_signature): Make this method lazy
10361         (mono_get_method_from_token): Don't computate the signature here.
10362
10363         Doing this saves quite a bit of memory. I got 90 kb on starting up
10364         monodoc. It should also save some disk reads on startup.
10365
10366         * *: MonoMethod->signature might be NULL now. You *MUST* use
10367         mono_method_signature.
10368
10369 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
10370
10371         * object.c (mono_runtime_get_main_args): Return an array from the
10372         current domain here. Fixes #71938.
10373
10374 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
10375
10376         * monitor.c: formatting changes to comply with the
10377         mono coding style and remove #ifdefs from the code.
10378
10379 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10380
10381         * metadata.c, private.h: remove some unneeded data
10382         and use a more compact representation for table schemas.
10383
10384 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
10385
10386         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
10387         to get a better distribution in hash tables.
10388         * *.c: use mono_aligned_addr_hash() where appropriate.
10389         * assembly.c: make var static.
10390
10391 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
10392
10393         * domain-internals.h: Put MonoJitInfo on a diet.
10394
10395         * domain.c: Fix a warning.
10396
10397 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10398
10399         * gc.c: rework the gc handles code to reuse handles
10400         when freed.
10401
10402 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
10403
10404         * domain.c: fixed long standing bug in mono_string_equal() which
10405         was brought to light with the ldstr changes.
10406
10407 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
10408
10409         * reflection.c: Remove warning by adding missing include for marshal.h
10410
10411 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
10412
10413         * domain.c, object.c: change the ldstr_table to hold
10414         MonoString* as keys: makes the runtime isinterned lookup
10415         faster and simplifies memory management.
10416
10417 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
10418  
10419         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
10420         possible to add imperative security checks before calling the icall.
10421         * reflection.c: Return security attributes on the original MonoMethod
10422         (and not the wrapped one). This fix permissions on icalls.
10423
10424 2005-01-25  Dick Porter  <dick@ximian.com>
10425
10426         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
10427         the check for mktime() support actually test the mktime() return
10428         value.  "Fixes" bug 71682, though the output is still different to
10429         MS.
10430
10431 2005-01-25  Martin Baulig  <martin@ximian.com>
10432
10433         * class.c (mono_class_is_assignable_from): Make this work for
10434         generic instances.
10435
10436 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
10437
10438         * marshal.c (mono_string_utf8_to_builder)
10439         (mono_string_builder_to_utf16): We might not have ownership of the
10440         string. In thise case, we need to create a new buffer.
10441
10442         * object-internals.h (mono_stringbuilder_capacity): sb->str might
10443         be null, in which case, use the default capacity.
10444
10445 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
10446
10447         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
10448         GC events to the profiler.
10449
10450 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
10451
10452         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
10453         if you don't want the GC to run.
10454
10455 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
10456
10457         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
10458         start providing a GC API and keeping different implementations in
10459         their own file.
10460         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
10461
10462 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
10463
10464         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
10465         mmap rather than allocating a huge buffer.
10466         (mono_debug_close_mono_symbol_file): Free the buffer allocated
10467         above.
10468
10469 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
10470
10471         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
10472         and CheckExecutionRights.
10473         * reflection.c|h: Keep the index of the declarative security to be 
10474         used, instead of the pointer, when AOT compiler is used. Also add 
10475         class initialization when requesting demands.
10476         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
10477         CheckExecutionRights. Both properties are now FALSE by default, and
10478         unmodifiable, unless the --security option is used.
10479
10480 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
10481
10482         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
10483         reflection.c: properly refcount images and assemblies, many leaks fixed.
10484
10485 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10486
10487         * threadpool.c: increase the timeout for threads in the thread pool to
10488         10s.  Fixes bug #67159.
10489
10490 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
10491
10492         * class-internals.h: Sun's compiler insists on explicit
10493         signed on bit fields to handle then correctly.
10494
10495 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
10496
10497         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
10498         Make the size of the array fit only the number of invalid path
10499         chars that we have.
10500
10501         * class.c (_mono_class_get): Improve the error reporting when a
10502         class referenced is not found, to assist debugging. 
10503
10504 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
10505
10506         * threads.c: fix off-by-one error.
10507         * domain.c: free data allocated in the domain.
10508
10509 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
10510
10511         * reflection.c (mono_method_body_get_object): Fill out exception info
10512         as well.
10513
10514         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
10515         structure.
10516         
10517 2005-01-19  Martin Baulig  <martin@ximian.com>
10518
10519         * loader.c (mono_get_method_constrained): Make this work again.
10520
10521 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
10522
10523         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
10524         guint16 to match the managed side.
10525
10526         * reflection.c (mono_reflection_body_get_object): Fill out local
10527         variables array.
10528
10529         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
10530         as well.
10531
10532         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
10533         'local_var_sig_token'.
10534
10535 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
10536
10537         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
10538         System.Drawing.
10539
10540         * reflection.c (mono_method_body_get_object): Handle abstract and
10541         runtime methods.
10542
10543 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
10544
10545         * marshal.c, loader.c, class-internals.h, reflection.c:
10546         store the emthod data for a wrapper in an array instead of a list.
10547
10548 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
10549
10550         * marshal.c: change the code to allocate memory more
10551         conservatively for method wrappers.
10552
10553 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
10554
10555         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
10556         fields from MonoClass to the marshal info structure where they belong.
10557
10558 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
10559
10560         * class.c, object.c, class-internals.h, marshal.c: rearrange
10561         some fields and tweak some types to lower memory usage.
10562
10563 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
10564
10565         * threads.c (signal_thread_state_change): Handle the case when the
10566         target thread is the current thread.
10567
10568         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
10569
10570         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
10571         emit_ptr_to_object_conv. 
10572
10573         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
10574         marshalling. Fixes #71352.
10575
10576 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
10577
10578         * metadata.h, blob.h: move table enum to blob.h so it can be included
10579         in any header.
10580         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
10581         cut the size of MonoImage/MonoDynamicImage.
10582
10583 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
10584
10585         * profiler.c (mono_profiler_install_simple): Fix default arguments.
10586
10587 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
10588
10589         * reflection.c, reflection.h, icall.c: add a function to check
10590         if an attribute type is defined for a metadata object.
10591
10592 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
10593
10594         * object-internals.h: Added some needed fields from StringBuilder class.
10595         * marshal.c: Set the maxCapacity when creating a StringBuilder.
10596
10597 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
10598
10599         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
10600         threads before shutting down the runtime.
10601
10602         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
10603
10604 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
10605
10606         * object-internal.h, threads.c: implement stacksize and 
10607         parameterized thread start functionality (requires
10608         matching corlib). Marked broken code for later removal.
10609
10610 2005-01-12  Martin Baulig  <martin@ximian.com>
10611
10612         * class-internals.h (MonoGenericClass): Moved the `initialized'
10613         flag to MonoDynamicGenericClass, removed `init_pending'.
10614         (MonoGenericInst): Added `is_reference' flag.
10615
10616 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
10617
10618         * reflection.c (mono_image_create_pefile): Only set the pe_offset
10619         inside the MSDOS header. Fixes #71201.
10620
10621         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
10622         gc thread.
10623         (mono_domain_finalize): Ditto.
10624
10625 2005-01-12  Martin Baulig  <martin@ximian.com>
10626
10627         * class.c (mono_get_shared_generic_class): Use the cache for
10628         non-dynamic generic classes.
10629
10630         * class-internals.h (mono_class_create_generic_2): Removed
10631         function prototype, this function is now static inside class.c.
10632
10633         * class.c (mono_class_create_generic_2): Made this static, only
10634         call it from mono_class_init() and mono_class_setup_parent().
10635         (collect_implemented_interfaces_aux): Call mono_class_init() on
10636         the interfaces we collect.
10637         (mono_class_setup_vtable): Call mono_class_init (class->parent).
10638
10639 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
10640
10641         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
10642         it a real thread handle.
10643
10644         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
10645         MonoJitExceptionInfo, since each catch clause needs its own variable.
10646         
10647 2005-01-11  Dick Porter  <dick@ximian.com>
10648
10649         * image.c (mono_pe_file_open): New variant on mono_image_open()
10650         that does not set up the CLI metadata; used for FileVersionInfo so
10651         it can get the data for windows binaries too.
10652         
10653         * process.c (process_read_string_block): Don't read off the end of
10654         the StringTable block.
10655
10656         These both fix bug 70766.
10657
10658 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
10659
10660         * gc.c: set some fields to NULL at GC cleanup time.
10661         * threads.c: if we quit the main thread, call exit ().
10662
10663 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
10664
10665         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
10666
10667 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
10668
10669         * threads.h, threads.c, object.c: added accessor and settor for
10670         main_thread. Handle it specially when exiting from it: wait
10671         for other foreground threads to exit.
10672
10673 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
10674
10675         * process.c, verify.c: remove some bloat.
10676
10677 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
10678
10679         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
10680         the calling convention to cdecl under win32.
10681
10682 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
10683
10684         * object.c (mono_object_get_size): New function to get the size of
10685         an object instance.
10686
10687         * profiler.c (simple_allocation): Use above.
10688
10689 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
10690
10691         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
10692         ves_icall_System_AppDomain_getRootDomain (as it's not required to
10693         get an appdomain by it's id and we can't assume the root's id is 0).
10694         * domain-internals.h: Change the function prototype to match.
10695         * icall.c: Change the icall table for AppDomain.
10696
10697 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
10698
10699         * locales.c (string_invariant_compare_char): Only compute
10700         GUnicodeTypes in the case where we need them.  Test for ordinality
10701         first and return if so.
10702
10703         From the commit:
10704
10705                 /*
10706                  * FIXME: here we must use the information from c1type and c2type
10707                  * to find out the proper collation, even on the InvariantCulture, the
10708                  * sorting is not done by computing the unicode values, but their
10709                  * actual sort order.
10710                  */
10711
10712 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
10713
10714         * loader.c: for P/Invoke methods, allow the "Internal" shared
10715         library name to refer to the calling process symbol namespace.
10716
10717 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
10718
10719         * Makefile.am: Add the security manager to the build.
10720         * security-manager.c|h: New. Initialization of the security manager.
10721
10722 2005-01-07  Dick Porter  <dick@ximian.com>
10723
10724         * threads.c: 
10725         * monitor.c: Update thread state during Monitor and WaitHandle
10726         waits.  Fixes bug 71031.
10727
10728 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
10729
10730         * reflection.c (property_encode_signature): Correctly handle when the
10731         property has no methods.
10732
10733 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
10734
10735         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
10736         
10737         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
10738         fields from mb, not rmb. Fixes #71017.
10739
10740         * marshal.c (emit_ptr_to_str_conv): Add support for 
10741         ByValTStr -> string conversion. Fixes #71015.
10742
10743         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
10744
10745         * mempool.c (mono_mempool_contains_addr): New helper function.
10746
10747 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
10748
10749         * metadata.c (mono_metadata_compute_size): Fix size calculation of
10750         HasSematics encoded fields.
10751         
10752         * metadata.c (mono_type_to_unmanaged): Improve error message for 
10753         invalid string marshalling.
10754
10755         * metadata.c: Fix warnings.
10756         
10757 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
10758
10759         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
10760         profiler support.
10761
10762 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
10763
10764         * domain.c object.c domain-internals.h: Revert part of r38077 since the
10765         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
10766         tests.
10767
10768 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
10769
10770         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
10771         so methods containing these can be AOTed.
10772
10773 2005-01-03  Martin Baulig  <martin@ximian.com>
10774
10775         * loader.c (find_method): Removed the hack for generic instances.
10776         (method_from_memberref): If our parent is a generic instance, pass
10777         its generic type definition to find_method() and then inflate the
10778         method.
10779         (mono_get_method_constrained): Pass the generic type definition to
10780         find_method() and inflate the method later.
10781
10782         * class-internals.h (MonoStats): Added `generic_class_count'.
10783
10784         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
10785         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
10786
10787         * reflection.c (mono_custom_attrs_from_params): Don't ignore
10788         generic type definitions.
10789
10790 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
10791
10792         * loader.c icall.c: Fix warnings.
10793
10794 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
10795
10796         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
10797         blittable types. Fixes #70864.
10798
10799 2004-12-29  Martin Baulig  <martin@ximian.com>
10800
10801         * icall.c
10802         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
10803
10804         * reflection.c (mono_method_get_object): Create a
10805         "System.Reflection.MonoGenericMethod" for inflated methods; don't
10806         call mono_get_inflated_method().
10807
10808         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
10809
10810 2004-12-27  Martin Baulig  <martin@ximian.com>
10811
10812         * class-internals.h (MonoMethod): Added `is_inflated' flag.
10813         (MonoMethodInflated): Added `inflated' field.
10814
10815         * class.c (mono_class_inflate_generic_method): Don't really
10816         inflate the method here; just set the `is_inflated' flag in the
10817         MonoMethod.
10818         (mono_class_get_inflated_method): Actually inflate the method here
10819         if it's not already inflated; we use the MonoMethodInflated's new
10820         `inflated' field as a cache.
10821
10822 2004-12-26  Martin Baulig  <martin@ximian.com>
10823
10824         * class.c
10825         (inflate_generic_class): Moved some code out of inflate_generic_type().
10826         (mono_class_inflate_generic_method): If we're already inflated,
10827         inflate the context and use the declaring method; ie. make sure
10828         the declaring method of an inflated method is always the generic
10829         method definition.
10830         (mono_class_create_from_typedef): Create
10831         `class->generic_container->context->gclass'.
10832
10833 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
10834
10835         * metadata-internals.h, marshal.c, reflection.c: More
10836         MonoGHashTable->GHashTable.
10837
10838         * domain-internals.h, class.c: Change MonoGHashTable's into
10839         GHashTables for some cases where no gc stuff is used
10840
10841         All users: update apis
10842
10843 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
10844
10845         * metadata.c (builtin_types): Make this `const'. Makes this get
10846         put into the shareable section.
10847         (mono_metadata_init): Casts to make gcc happy.
10848
10849 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
10850
10851         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
10852
10853 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
10854
10855         * icall.c: Added an internal call to retrieve the position and length
10856         of assembly-level declarative security attributes (RequestMinimum, 
10857         RequestOptional and RequestRefuse). This is used by the Assembly class
10858         to re-create the corresponding permission sets.
10859
10860 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
10861
10862         * marshal.c: fix the stelemref wrapper to be type correct
10863         (and faster).
10864
10865 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
10866
10867         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
10868         to do key & 0x7fffffff. Hashtable already does this. It just
10869         results in longer code.
10870
10871 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
10872
10873         * appdomain.c: Bump corlib version.
10874         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
10875         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
10876         * reflection.c|h: Add functions to get declarative security infos
10877         (blob position and length) for assemblies, classes and methods.
10878
10879 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
10880
10881         * reflection.c: sort the constant table (bug #70693).
10882
10883 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
10884
10885         * object-internals.h, threads.c, domain.c: add accessors for
10886         the MonoThread and MonoDomain tls keys.
10887
10888 2004-12-18  Martin Baulig  <martin@ximian.com>
10889
10890         * class.c (inflate_generic_type): If we're inflating a generic
10891         instance, set `ngclass->context->container = context->container';
10892         ie. the container we inflated into.
10893
10894         * metadata.c (mono_metadata_parse_generic_param): Reflect above
10895         inflate_generic_type() changes.
10896
10897 2004-12-17  Martin Baulig  <martin@ximian.com>
10898
10899         * class-internals.h
10900         (MonoGenericClass): Replaced `MonoType *generic_type' with
10901         `MonoClass *generic_class'.  Removed `dynamic_info'; if
10902         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
10903         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
10904
10905 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
10906
10907         * exception.c (mono_exception_from_token): New helper function.
10908
10909 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
10910
10911         * assembly.c (mono_assembly_load_with_partial_name): Call 
10912         mono_assembly_loaded before invoking the preload hooks. Fixes
10913         #70564.
10914
10915         * object-internals.h (MonoThread): Change culture_info and 
10916         ui_culture_info into an array.
10917
10918         * threads.c: Cache culture info objects from more than one appdomain.
10919
10920         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
10921         current UI culture.
10922
10923 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
10924
10925         * threads.h threads.c appdomain.c: Clear the culture_info field of
10926         all threads during unloading if they point to an object in the dying
10927         appdomain.
10928
10929 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
10930
10931         * culture-info.h (TextInfoEntry): New struct
10932         * object-internals.h: sync with managed
10933         * locales.c: fill the `text_info_data' field
10934         * culture-info-tables.h: update
10935
10936 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
10937
10938         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
10939         collector.
10940
10941 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
10942
10943         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
10944         (ves_icall_ModuleBuilder_getMethodToken): Ditto
10945
10946 2004-12-12  Martin Baulig  <martin@ximian.com>
10947
10948         * mono-debug-debugger.c (write_type): If we're an enum and the
10949         builtin types have already been initialized, call mono_class_init().
10950
10951 2004-12-11  Martin Baulig  <martin@ximian.com>
10952
10953         * metadata.c (mono_metadata_load_generic_params): Added
10954         `MonoGenericContainer *parent_container' argument; automatically
10955         compute `container->is_method'; pass the correct owner to
10956         get_constraints().      
10957
10958         * reflection.c (compare_genericparam): Sort the GenericParam table
10959         according to increasing owners. 
10960
10961 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
10962
10963         * profiler.c: allow disabling the default profiler.
10964
10965 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
10966
10967         * decimal.c, icall.c: allow disabling System.Decimal support.
10968
10969 2004-12-09  Marek Safar <marek.safar@seznam.cz>
10970
10971         * reflection.c: Add support for null attribute arguments.
10972
10973 2004-12-09  Martin Baulig  <martin@ximian.com>
10974
10975         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
10976         names to get rid of compiler warnings.
10977
10978 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
10979
10980         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
10981         mono_marshal_load_type_info (). Fixes #69625.
10982         (mono_marshal_get_ptr_to_struct): Likewise.
10983
10984 2004-12-08  Martin Baulig  <martin@ximian.com>
10985
10986         * mono-debug.h: Bumped version number to 47.
10987
10988         * mono-debug-debugger.c
10989         (mono_debugger_event_handler, mono_debugger_event): Take two
10990         guint64 arguments insteed of a gpointer and a guint32.  
10991
10992 2004-12-08  Martin Baulig  <martin@ximian.com>
10993
10994         * debug-mono-symfile.h
10995         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
10996         `address' to `native_offset'.
10997
10998 2004-12-08  Martin Baulig  <martin@ximian.com>
10999
11000         * class.c (mono_class_create_from_typespec): Only inflate if we
11001         either have `context->gclass' or `context->gmethod'.
11002
11003 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
11004
11005         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
11006
11007         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
11008
11009         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
11010
11011         * reflection.c (mono_assembly_get_object): Remove the workaround put
11012         in for the release.
11013         
11014         * appdomain.c: Use the corlib_internal field from MonoAssembly.
11015
11016         * appdomain.c: Bump corlib version.
11017
11018         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
11019         be visible in other appdomains.
11020
11021 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
11022
11023         * threads.c: Interlocked inc and dec for longs were messed up,
11024         use a KISS based impl for this. Fixes 70234
11025
11026 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
11027
11028         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
11029
11030 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
11031
11032         * icall.c: fix to follow policy not to allow struct
11033         arguments in icalls.
11034
11035 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11036
11037         * process.c: make the patch that handles spaces in file paths work
11038         on mono/windows too.
11039
11040 2004-12-06  Martin Baulig  <martin@ximian.com>
11041
11042         * class.c (mono_class_create_generic): Call
11043         mono_class_setup_supertypes() if we're dynamic.
11044         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
11045
11046 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
11047
11048         * object-internals.h: Add new fields to MonoThread.
11049
11050         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11051
11052         * icall.c threads-types.h threads.c: Add new icalls.
11053
11054         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
11055
11056         * object-internals.h (MonoReflectionAssembly): Sync object layout with
11057         managed side.
11058
11059         * appdomain.c: Bump corlib version.
11060
11061         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
11062         internal assemblies. Fixes #69181.
11063
11064 2004-12-05  Martin Baulig  <martin@ximian.com>
11065
11066         * class.c (mono_class_inflate_generic_signature): Make this a
11067         no-op if `context' is NULL or we don't have any type parameters;
11068         also copy `sentinelpos'.        
11069
11070 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
11071
11072         * image.c: Add unbox_wrapper_cache.
11073
11074         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
11075
11076         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
11077         function generator.
11078         
11079         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
11080         Fixes #70173.
11081
11082         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
11083         
11084 2004-12-04  Martin Baulig  <martin@ximian.com>
11085
11086         * loader.c (mono_method_get_signature_full): New public function;
11087         like mono_method_get_signature(), but with an additional
11088         `MonoGenericContext *' argument.
11089
11090         * class.c (mono_class_inflate_generic_signature): Formerly known
11091         as inflate_generic_signature(); make this public.
11092
11093 2004-12-04  Martin Baulig  <martin@ximian.com>
11094
11095         * metadata.c
11096         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
11097         instead of a `MonoGenericContainer *'.  
11098         (mono_metadata_parse_array_full): Likewise.
11099         (mono_metadata_parse_signature_full): Likewise.
11100         (mono_metadata_parse_method_signature_full): Likewise.
11101         (mono_metadata_parse_generic_inst): Likewise.
11102         (mono_metadata_parse_generic_param): Likewise.
11103         (mono_metadata_parse_mh_full): Likewise.
11104         (mono_type_create_from_typespec_full): Likewise.
11105
11106 2004-12-03  Martin Baulig  <martin@ximian.com>
11107
11108         * class-internals.h (MonoGenericContainer): Replaced the
11109         `MonoGenericContext * pointer with a `MonoGenericContext'
11110         structure and made it the first element.
11111
11112 2004-12-03  Martin Baulig  <martin@ximian.com>
11113
11114         * class.c
11115         (inflate_generic_type): Set the `context->container' when creating
11116         a new MonoGenericContext.
11117         (mono_class_inflate_generic_method): Likewise.
11118         (mono_class_create_from_typespec): Just use `context->container'
11119         to get the container.
11120
11121         * loader.c (method_from_methodspec): Set `context->parent' from
11122         `context->container' - and if that's a method container, use its
11123         parent.  Also set the `context->container' when creating a new
11124         MonoGenericContext.
11125         (mono_get_method_from_token): Use just `context->container' to get
11126         the container.
11127
11128         * metadata.c (do_mono_metadata_parse_generic_class): Also set
11129         `gclass->context->container'.
11130
11131         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
11132         the `context->container' when creating a new MonoGenericContext.
11133
11134 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
11135
11136         * reflection.c (compare_genericparam): Sort params with identical
11137         owner by their number. Fixes gen-111 on sparc.
11138
11139 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
11140
11141         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
11142         around the domain changes.
11143
11144         * appdomain.c (mono_domain_unload): Handle the case when the thread
11145         calling Unload is itself being aborted during unloading. Fixes #70022.
11146
11147         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
11148
11149         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
11150         checkpoint_func as an icall so it gets a wrapper.
11151         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
11152         in the cross-appdomain wrappers too.
11153
11154         * threads.c (mono_thread_has_appdomain_ref): Make this public.
11155
11156         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
11157
11158         * reflection.c: Fix some memory leaks.
11159         
11160 2004-12-02  Martin Baulig  <martin@ximian.com>
11161
11162         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
11163
11164         * metadata.c (generic_class_cache): New static hashtable.
11165         (mono_metadata_lookup_generic_class): New public method.
11166
11167 2004-12-02  Martin Baulig  <martin@ximian.com>
11168
11169         * class.c (mono_class_create_from_typedef): Call
11170         mono_class_setup_parent() and mono_class_create_mono_type() before
11171         parsing the interfaces.
11172
11173 2004-12-02  Martin Baulig  <martin@ximian.com>
11174
11175         * metadata.c (generic_inst_cache): New static hashtable.
11176         (mono_metadata_lookup_generic_inst): New public function.
11177         (mono_metadata_inflate_generic_inst): New public function.
11178         (mono_metadata_parse_generic_inst): New public function.
11179         (do_mono_metadata_parse_generic_class): Use the new
11180         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
11181         since this'll also use the cache.
11182
11183         * reflection.c (mono_reflection_bind_generic_method_parameters):
11184         Use mono_metadata_lookup_generic_inst() to use the new cache.
11185
11186         * class.c (inflate_mono_type): Use
11187         mono_metadata_inflate_generic_inst() to inflate a generic
11188         instance; this'll also use the new cache.
11189
11190         * loader.c (method_from_methodspec): Use
11191         mono_metadata_parse_generic_inst() and
11192         mono_metadata_inflate_generic_inst() rather than parsing it
11193         manually, so we can use the new cache.
11194
11195 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
11196
11197         * threads.c (wait_for_tids): Do not incorrectly free threads when 
11198         the wait times out.
11199
11200 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
11201
11202         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
11203         iter->args based on whether parameters are passed in registers (i.e.
11204         MONO_ARCH_REGPARMS is defined)
11205
11206 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
11207
11208         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
11209         the exception message. Fixes #70070.
11210         (method_from_methodspec): Fix warnings.
11211
11212 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11213
11214         * process.c: (complete_path) return the path quoted
11215
11216 2004-12-01  Martin Baulig  <martin@ximian.com>
11217
11218         * class-internals.h (MonoGenericInst): New structure.
11219         (MonoGenericClass): Replaced `type_argc', `type_argv' and
11220         `is_open' with `MonoGenericInst *inst'.
11221         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
11222         `is_open' with `MonoGenericInst *inst'.
11223
11224 2004-11-30  Martin Baulig  <martin@ximian.com>
11225
11226         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
11227
11228         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
11229         to `generic_class_cache'.
11230
11231         * metadata.c
11232         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
11233         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
11234         (mono_generic_inst_is_valuetype): Renamed to
11235         mono_generic_class_is_valuetype().
11236
11237         * class-internals.h
11238         (MonoGenericInst): Renamed to MonoGenericClass.
11239         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
11240         (MonoClass): Renamed `generic_inst' to `generic_class'.
11241         (MonoGenericContext): Renamed `ginst' to `gclass'.
11242
11243         * object-internals.h
11244         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
11245
11246         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
11247         mono_reflection_generic_class_initialize().
11248
11249         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
11250         now known as "System.Reflection.MonoGenericClass".
11251         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
11252
11253 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
11254
11255         * class-internals.h: Added a flag field to MonoClass to cache the
11256         declarative security attributes actions associated with the class.
11257         * domain-internals.h: Added booleans to MonoJitInfo to cache the
11258         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
11259         applicable to the JITted method.
11260         * reflection.c|h: Added functions to extract (as flags) which security
11261         actions are available (declaratively) for a method, class or assembly.
11262         * metadata.c|h: Added functions to search the declarative security
11263         table in the metadata.
11264         
11265 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
11266
11267         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
11268         EXPORTEDTYPES are already in the class name cache, so there is no
11269         need to add extra code here to look at them. Just removes a bit of
11270         cruft.
11271
11272         (ves_icall_System_Environment_get_TickCount): No need for #if
11273         WINDOWS. We already have the code in io-layer.
11274
11275 2004-11-28  Martin Baulig  <martin@ximian.com>
11276
11277         * loader.c
11278         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
11279         Fixes gen-112.cs.
11280
11281 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
11282
11283         * assembly.c (do_mono_assembly_open): Instead of having a
11284         conditional WITH_BUNDLE, incorporate support for bundles here, by
11285         having a global `bundles' variable holding a pointer to the actual
11286         bundles. 
11287
11288         (mono_register_bundled_assemblies): New API call used by the
11289         bundle code. 
11290
11291         See mkbundle.1 for details.
11292         
11293 2004-11-27  Martin Baulig  <martin@ximian.com>
11294
11295         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
11296         the vtable for generic methods.
11297
11298 2004-11-26  Martin Baulig  <martin@ximian.com>
11299
11300         * metadata.c
11301         (mono_metadata_generic_method_hash): New public function.
11302         (mono_metadata_generic_method_equal): Likewise.
11303
11304         * class-internals.h
11305         (MonoGenericContainer): Added `GHashTable *method_hash'.
11306
11307         * reflection.c (ReflectionMethodBuilder): Added
11308         `MonoGenericContainer *generic_container'.
11309         (reflection_methodbuilder_to_mono_method): Don't create a new
11310         MonoGenericContainer each time we're called.
11311         (mono_reflection_bind_generic_method_parameters): Use
11312         `container->method_hash' to cache the results so we don't create a
11313         different method if we're called several times with the same
11314         arguments.
11315
11316         * loader.c (method_from_methodspec): Use the new
11317         `container->method_hash' here, too.
11318
11319 2004-11-26  Martin Baulig  <martin@ximian.com>
11320
11321         * class.c (inflate_generic_signature): Correctly compute
11322         `res->has_type_parameters'.
11323         (mono_class_vtable): Use the `has_type_parameters' flag to
11324         determine whether we're a generic method.
11325
11326         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
11327
11328 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
11329
11330         * object.c (mono_runtime_run_main): Fix a small memory leak.
11331
11332 2004-11-25  Martin Baulig  <martin@ximian.com>
11333
11334         * class.c (set_generic_param_owner): Fixed the loop.
11335
11336 2004-11-25  Martin Baulig  <martin@ximian.com>
11337
11338         * object.c (mono_class_vtable): Don't create any JIT wrappers for
11339         generic methods.
11340
11341 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
11342
11343         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
11344         names. Fixes #69787.
11345
11346 2004-11-24  Martin Baulig  <martin@ximian.com>
11347
11348         * class.c (mono_class_create_generic_2): If we don't have a
11349         `ginst->parent', inflate `gklass->parent' to get our parent.
11350
11351 2004-11-24  Martin Baulig  <martin@ximian.com>
11352
11353         * reflection.c (compare_genericparam): Correctly sort the
11354         GenericParam table; fixes #69779.
11355
11356 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
11357
11358         * reflection.c: When writing a PE file, don't create a huge
11359         buffer in memory. Just write the arrays we have to the file.
11360         This reduces memory usage.
11361
11362         * metadata-internals.h: MonoDynamicStream pefile is no longer used
11363         globally.
11364
11365 2004-11-17  Martin Baulig  <martin@ximian.com>
11366
11367         * class.c (mono_class_init): Don't setup `class->parent' for
11368         dynamic instances; moved this to mono_class_generic_2().
11369         (mono_class_create_generic): Also set `klass->inited' for dynamic
11370         generic instances.
11371         (mono_class_create_generic_2): Don't do anything for dynamic
11372         generic instances.  Set `klass->parent' here and also call
11373         mono_class_setup_parent() here. 
11374
11375         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
11376         `MonoType *parent' argument; set `ginst->parent' before calling
11377         mono_class_create_generic_2(), so we set the correct parent.
11378
11379 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
11380
11381         * reflection.c: allow getting attributes from ModuleBuilder
11382         (used by ikvm).
11383
11384 2004-11-17  Martin Baulig  <martin@ximian.com>
11385
11386         * class.c (mono_class_create_from_typedef): If a type parameter is
11387         inherited from an outer class, set its owner to that class.
11388
11389 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
11390
11391         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
11392           for (int*) written size. This fixes bug #69592.
11393
11394 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
11395
11396         * icall.c: Added IsAuthenticodePresnet internal call.
11397         * image.c|h: New function that check a MonoImage for an Authenticode
11398         signature in the certificate PE data directory.
11399         * security.c|h: New internal call to ask the runtime if an 
11400         Authenticode signature seems referenced in the PE header.
11401
11402 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
11403
11404         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
11405
11406         * reflection.c (mono_image_create_pefile): Free the assembly streams
11407         after writing out the assembly file.
11408
11409         * object.c (mono_runtime_run_main): Fix small memory leak.
11410
11411         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
11412         property access modifiers. Fixes #69389.
11413
11414 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
11415
11416         * domain.c, object.c, object-internals.h, domain-internals.h,
11417         object.h, marshal.c: keep dynamic code info per domain.
11418
11419 2004-11-15  Martin Baulig  <martin@ximian.com>
11420
11421         * class.c (mono_type_get_name_recurse): Put type arguments in
11422         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
11423         see bug #68387.
11424
11425 2004-11-15  Martin Baulig  <martin@ximian.com>
11426
11427         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
11428         (mono_class_setup_vtable): When computing `the_cname' for a
11429         generic instance, don't include the namespace since we'd otherwise
11430         add it twice.
11431
11432 2004-11-15  Martin Baulig  <martin@ximian.com>
11433
11434         * class.c (mono_class_create_generic): Changed return type to void.
11435         (mono_class_create_generic_2): New public function; setup
11436         `class->method', `class->field' and `class->interfaces' here
11437         instead of in mono_class_init().
11438
11439         * class.h (mono_class_create_generic): Moved to class-internals.h.
11440
11441 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
11442
11443         * reflection.c (mono_image_create_pefile): take a file HANDLE.
11444         rather than writing to memory, write to this file. Right now,
11445         we are just writting into a buffer, and copying that. However
11446         we can avoid the buffer later.
11447
11448         (mono_dynamic_stream_reset): new function
11449
11450         * icall.c, object-internals.h: update for the above.
11451
11452 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
11453
11454         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
11455         have been using gc'd memory. First it is slower, unlikely
11456         the comment in the source code said, secondly, it increases
11457         our footprint to do it in the gc.
11458
11459         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
11460         the method so that it does not have to copy to managed code.
11461
11462 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
11463
11464         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
11465
11466 2004-11-12  Martin Baulig  <martin@localhost>
11467
11468         * reflection.c (mono_image_create_token): Allow generic method
11469         definitions here, since they may appear in an `.override'; see
11470         gen-98/gen-99 for an example.
11471
11472 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
11473
11474         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
11475         #69365.
11476
11477         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
11478         descriptive.
11479
11480 2004-11-11  Martin Baulig  <martin@ximian.com>
11481
11482         * class.c (mono_class_setup_vtable): In an explicit interface
11483         implementation, the method name now includes the arity.
11484
11485 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
11486
11487         * object.c (mono_array_full_copy): Fix warning.
11488
11489 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
11490
11491         * appdomain.c: Removed look_for_method_by_name(). Use the new method
11492         mono_class_get_method_from_name() instead.
11493         
11494         * class-internals.h: Added two new types of wrappers. 
11495         Added MonoRemotingTarget enum. Added new trampoline function type, which
11496         takes an additional MonoRemotingTarget value as parameter, so it is
11497         possible to request a trampoline for a specific target.
11498         
11499         * class.c: Added new mono_class_get_method_from_name() method.
11500         
11501         * class.h: In MonoRemoteClass, we can have now to vtables, one for
11502         general remoting sinks and one specific for cross domain calls.
11503         
11504         * debug-helpers.c: Added new wrapper names.
11505         
11506         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
11507         of a remote class.
11508         
11509         * image.c: Porperly delete value objects form the remoting invoke hashtable.
11510         
11511         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
11512         with several other methods (mono_marshal_get_xappdomain_dispatch,
11513         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
11514         and others) can generate a fast remoting wrapper for cross domain calls.
11515         More information can be found in docs/remoting.
11516         Other changes: Removed mono_find_method_by_name, and used
11517         mono_class_get_method_from_name instead.
11518         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
11519         is stored in the remoting invoke hashtable.
11520         
11521         * marshal.h: published the new method for getting the xdomain wrapper,
11522         and also added a method for getting the adequate wrapper for a given
11523         method and target.
11524         
11525         * object-internals.h, object.c: Added a couple of methods for capying and
11526         cloning arrays.
11527         Modified mono_install_remoting_trampoline, which takes the new remoting
11528         trampoline that has a remoting target as parameter.
11529         mono_class_proxy_vtable now also takes a remoting target as parameter, and
11530         will return the most suitable vtable for the target.
11531         Added mono_remote_class_vtable, which returns the vtable of a remote class
11532         (which can be the normal remoting vtable or the xdomain vtable).
11533         
11534         * threads.c: the xdomain invoke and dispatch wrappers must also be
11535         protected against interruptions.
11536
11537 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11538
11539         * icall.c: use memmove in BlockCopyInternal when the source and
11540         destination arrays are the same.
11541
11542 2004-11-09  Martin Baulig  <martin@ximian.com>
11543
11544         * class-internals.h (MonoGenericContainer): Removed `method' and
11545         `signature', replaced them with `is_method' and `is_signature'
11546         flags.  Added `context'.
11547
11548         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
11549         instead of a `MonoGenericContainer *'.
11550
11551         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
11552         for dynamic type parameters.
11553         (mono_metadata_load_generic_params): Setup `container->context'.
11554
11555         * reflection.c (mono_reflection_setup_generic_class): Setup
11556         `tb->generic_container->context'.
11557         (do_mono_reflection_bind_generic_parameters): Use
11558         mono_class_inflate_generic_type() to correctly inflate types,
11559         rather than using our own hack just for MONO_TYPE_VAR.
11560
11561 2004-11-09  Martin Baulig  <martin@ximian.com>
11562
11563         * class.c (mono_class_inflate_generic_method): Small fix; don't
11564         crash here.
11565
11566         * icall.c
11567         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
11568         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
11569         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
11570         (ves_icall_Type_BindGenericParameters): Likewise.
11571         (ves_icall_Type_get_IsGenericInstance): Likewise.
11572         (ves_icall_Type_GetGenericParameterPosition): Likewise.
11573         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
11574         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
11575         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
11576
11577 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
11578
11579         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
11580         assembly versions and public key tokens. Fixes #69113.
11581
11582 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
11583
11584         * metadata.c: fix bug introduced with the type cache changes
11585         on 2004-11-06.
11586
11587 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
11588
11589         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
11590         the MonoClass pointer instead of the token in exception clauses.
11591         * reflection.c: updates for the above and make the code not depend
11592         on the structure of MonoExceptionClause.
11593
11594 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
11595
11596         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11597         Add support for dynamic assemblies. Fixes #69114.
11598
11599         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
11600
11601 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
11602
11603         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
11604         since most only those methods use it. the code member of
11605         MonoMethodPInvoke was dead, so that can be removed too. Also,
11606         remove inline_count (again, not used), and move slot so that it
11607         can share bits with some other flags. This saves 8 bytes in the
11608         structure and gives us about 50 kb back for mcs helloworld.cs
11609
11610         * *.[ch]: Do naming changes for the above.
11611
11612         * loader.c (mono_method_get_header): Lazily init the header
11613         on first access.
11614         (mono_get_method_from_token): don't init the header here
11615         (mono_free_method): the header may never be allocated
11616
11617         Overall, this saves 150 kb of unmanaged allocations
11618         for mcs helloworld.cs. That accounts for 10% of the unmanaged
11619         memory at runtime.
11620         
11621         * loader.c, loader.h (mono_method_get_header): new accessor.
11622
11623         * *.[ch]: use the above method. Prepares us to lazily load
11624         the header.
11625
11626         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
11627         three warnings, which are actual bugs (see 69206).
11628
11629         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
11630         unused. Saves a cool 4 bytes / method.
11631
11632 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
11633
11634         * metadata.c (builtin_types): Add types for System.Object here.
11635         (mono_metadata_parse_type_full): Cache MonoType*'s that are
11636         for a class or valuetype from klass->this_arg or klass->byval_arg.
11637
11638         On mcs for a hello world, this gets us down from 21836 MonoType's
11639         to 14560.
11640
11641         (mono_metadata_free_type): Account for the above change.
11642
11643 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
11644
11645         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
11646         exception instead of asserting if name is null.
11647         (ves_icall_System_AppDomain_GetData): Ditto.
11648
11649 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
11650
11651         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
11652         EnumBuilder.
11653
11654         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
11655         Return NULL when the domain does not have entry_assembly set.
11656
11657         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
11658         Add a 'resource_modules' argument.
11659         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
11660
11661         * reflection.c (mono_reflection_create_runtime_class): Move setting
11662         of wastypebuilder here, so mono_get_type_object () returns a MonoType
11663         for enums too.
11664
11665         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
11666         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
11667         Throw an ArgumentNullException if 'ptr' is null.
11668
11669         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
11670         assemblies here. Fixes #69020.
11671
11672 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
11673
11674         * reflection.c (build_compressed_metadata): Fix the previous patch for
11675         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
11676         the stack.
11677
11678 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
11679
11680         * assembly.c (mono_assembly_names_equal): Allow a match if one of
11681         the cultures is false. Fixes #69090.
11682
11683         * reflection.c (build_compressed_metadata): Fix invalid memory read 
11684         detected by valgrind.
11685         
11686         * reflection.c (mono_reflection_get_type): Avoid triggering a 
11687         TypeResolve multiple times for the same type. Fixes #65577.
11688
11689 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
11690
11691         * marshal.c: Avoid using ldftn to call managed functions. It is
11692         much slower than just a call.
11693
11694         * reflection.c (mono_module_get_object): free the basename we
11695         allocate here from glib.
11696         
11697         * reflection.c (ensure_runtime_vtable): make sure to free
11698         overrides.  Also, we were allocating an array of MonoMethod not an
11699         array of MonoMethod*.
11700
11701         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
11702
11703         * image.c (mono_image_close): free image->guid here.
11704
11705 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
11706
11707         * reflection.c: Fix some spec conformance issues with the PE file
11708         structures so mcs compiled apps run on the Net 2.0 beta.
11709
11710 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
11711
11712         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
11713         Implement this. Fixes #67264.
11714
11715         * debug-helpers.h debug-helpers.c marshal.c: Move 
11716         mono_find_method_by_name to debug-helpers.c.
11717
11718 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
11719
11720         * object.c (mono_release_type_locks): type_initialization_hash is
11721         a GHashTable.
11722
11723         * reflection.c object.c object-internals.h: Fix warnings.
11724
11725         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
11726         without accessors. Fixes #61561.
11727
11728         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
11729         application base from the root domain if not set. Fixes #65641.
11730         (mono_runtime_init): Fix warning.
11731
11732 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11733
11734         * appdomain.c: call mono_thread_pool_init.
11735         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
11736         of worker threads based on the number of CPUs and the environment
11737         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
11738         for non-windows (windows) systems.
11739
11740 2004-10-27  Chris Toshok  <toshok@ximian.com>
11741
11742         * mono-debug-debugger.c (write_class): don't call mono_class_init
11743         here, as even with the check for (!klass->init_pending), we get
11744         into a situation where we're hitting cycles in class
11745         initialization.  Fixes #68816.
11746
11747 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
11748
11749         * image.c: Avoid overwriting values in the loaded_images_hash when an
11750         assembly is loaded multiple times. Fixes #61152.
11751
11752         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
11753         so multiple satellite assemblies for the same name can be loaded.
11754         Fixes #68259.
11755
11756         * mono_domain_assembly_preload: Actually return the loaded assembly, 
11757         not NULL.
11758
11759         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
11760         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
11761
11762         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
11763         pending finalizers are not invoked after the appdomain has been 
11764         unloaded. Fixes #67862.
11765
11766 2004-10-22  Martin Baulig  <martin@ximian.com>
11767
11768         * mono-debug-debugger.c
11769         (mono_debugger_runtime_invoke): Don't box valuetypes.
11770
11771 2004-10-22  Chris Toshok  <toshok@ximian.com>
11772
11773         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
11774         don't hide private methods.
11775
11776 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
11777
11778         * icall.c: Allows the runtime to "share" (when known) the public key
11779         token of an assembly. This avoid the need to recalculate the token 
11780         (from the public key) in managed code.
11781
11782 2004-10-21  Chris Toshok  <toshok@ximian.com>
11783
11784         * debug-helpers.c (append_class_name): argh, revert last patch.
11785         
11786 2004-10-21  Chris Toshok  <toshok@ximian.com>
11787
11788         * debug-helpers.c (append_class_name): use '+' as the delimiter,
11789         not '/', so that it matches what the debugger uses to look up
11790         methods.
11791
11792 2004-10-21  Martin Baulig  <martin@ximian.com>
11793
11794         * mono-debug-debugger.c (mono_debugger_throw_exception): New
11795         public method; this is called each time an exception is thrown and
11796         allows the debugger to use exception catch points.
11797
11798 2004-10-21  Martin Baulig  <martin@ximian.com>
11799
11800         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
11801         the stack pointer and the exception object in some struct and pass
11802         that to the debugger.
11803
11804 2004-10-21  Chris Toshok  <toshok@ximian.com>
11805
11806         * mono-debug-debugger.c (do_write_class): add instance/static
11807         event support.  We don't expose "raise" or "other" yet.
11808         (event_is_static): new method.
11809
11810 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
11811
11812         * mono-debug-debugger.c
11813         (mono_debugger_handle_exception): Remove
11814         bogus return value for fussy compilers.
11815
11816 2004-10-20  Martin Baulig  <martin@ximian.com>
11817
11818         * mono-debug-debugger.c
11819         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
11820         (mono_debugger_handled_exception): Likewise.
11821
11822 2004-10-20  Martin Baulig  <martin@ximian.com>
11823
11824         * mono-debug-debugger.h (MonoDebuggerEvent): Added
11825         MONO_DEBUGGER_EVENT_EXCEPTION.
11826
11827         * mono-debug-debugger.c (mono_debugger_handle_exception): New
11828         public function to send the debugger a notification for an
11829         exception and inform it about a catch/finally clause.
11830
11831 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
11832
11833         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
11834         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
11835         fix 2.95 build. 
11836
11837         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
11838
11839 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
11840
11841         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
11842         marshalled as [In,Out]. Fixes #58325.
11843
11844 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
11845
11846         * reflection.c (mono_method_body_get_object): Implement some fields.
11847
11848 2004-10-12  Martin Baulig  <martin@ximian.com>
11849
11850         * reflection.c (mono_reflection_bind_generic_parameters): Small
11851         fix, correctly retrieve our parent from a generic instance.
11852
11853 2004-10-12  Martin Baulig  <martin@ximian.com>
11854
11855         * metadata.c (mono_metadata_generic_param_equal): We always have
11856         an owner.
11857
11858         * class.c
11859         (mono_class_from_generic_parameter): We need to have an owner.
11860         (my_mono_class_from_generic_parameter): Likewise.
11861
11862         * reflection.c (mono_reflection_setup_generic_class): Renamed to
11863         mono_reflection_create_generic_class() and added a new
11864         mono_reflection_setup_generic_class().  
11865         (mono_reflection_initialize_generic_param): If we're a nested
11866         generic type and inherited from the containing class, set our
11867         owner to the outer class.
11868
11869 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
11870
11871         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
11872
11873         * reflection.c (mono_method_body_get_object): New function to create
11874         a MethodBody object.
11875
11876         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
11877
11878 2004-10-11  Martin Baulig  <martin@ximian.com>
11879
11880         * metadata.c (_mono_metadata_type_equal): Renamed to
11881         do_mono_metadata_type_equal() and made static.
11882
11883 2004-10-11  Martin Baulig  <martin@ximian.com>
11884
11885         * appdomain.c: Bump corlib version number to 28.
11886
11887 2004-10-10  Martin Baulig  <martin@ximian.com>
11888
11889         * class-internals.h
11890         (MonoGenericInst): Added `MonoGenericContainer *container'.
11891         (MonoGenericMethod): Likewise.
11892         (MonoGenericContext): Likewise.
11893         (MonoGenericParam): Added `MonoGenericContainer *owner'.
11894
11895         * metadata.c
11896         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
11897         (do_mono_metadata_parse_generic_inst): Likewise.
11898         (mono_metadata_parse_type_full): New public method.  This is the actual
11899         mono_metadata_parse_type() implementation - with an additional
11900         `MonoGenericContainer *' argument.
11901         (mono_metadata_parse_array_full): Likewise.
11902         (mono_metadata_parse_signature_full): Likewise.
11903         (mono_metadata_parse_method_signature_full): Likewise.
11904         (mono_metadata_parse_mh_full): Likewise.
11905         (mono_type_create_from_typespec): Likewise.
11906         (mono_metadata_interfaces_from_typedef_full): New public method;
11907         this is similar to the other _full() methods, but we take a
11908         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
11909         (mono_metadata_parse_generic_param): Take an additional
11910         `MonoGenericContainer *' argument and lookup the MonoGenericParam
11911         from that container.
11912         (mono_metadata_generic_param_equal): New static method to compare
11913         two type parameters.
11914         (_mono_metadata_type_equal): New static method; takes an
11915         additional `gboolean signature_only' argument - if true, we don't
11916         compare the owners of generic parameters.
11917         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
11918         with a TRUE argument - do a signature-only comparision.
11919
11920         * loader.c: Use the new _full() methods and pass the
11921         MonoGenericContainer to them.
11922
11923         * object-internals.h (MonoReflectionTypeBuilder): Added
11924         `MonoGenericContainer *generic_container' field.
11925         (MonoReflectionMethodBuilder): Likewise.
11926
11927 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
11928
11929         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
11930         case initial images of dynamic assemblies.
11931
11932         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
11933
11934         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
11935
11936         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
11937         length of event->other array.
11938         (typebuilder_setup_events): Ditto.
11939
11940         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
11941         'assembly_by_name' and add an 'assemblies' list.
11942
11943         * assembly.h assembly.c: Add a new search hook for determining whenever
11944         an assembly is already loaded. Use this instead of searching in the
11945         loaded_assemblies list.
11946
11947         * domain.c appdomain.c: Implement the new search hook so loaded 
11948         assemblies are now scoped by appdomain. Fixes #67727.
11949
11950 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
11951
11952         * threads.c (mono_thread_attach): Initialize synch_lock field so
11953         mono_thread_detach works again.
11954
11955         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
11956         'lib' too. Fixes #63130.
11957
11958 2004-10-06  Jackson Harper  <jackson@ximian.com>
11959
11960         * culture-info-tables.h: regenerated.
11961
11962 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
11963
11964         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
11965         implemented by other interfaces in the result. Fixes #65764.
11966         
11967         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11968         Handle unloadable modules without crashing.
11969
11970         * image.c (load_modules): Revert the previous patch since modules must
11971         have a fixed index inside the array.
11972         
11973         * image.c (load_modules): Don't include native modules in the modules
11974         array.
11975
11976 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
11977
11978         * reflection.h: Add param_defaults field.
11979
11980         * reflection.c: Add support for parameter defaults in dynamic methods.
11981         Fixes #64595.
11982
11983         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
11984         an empty string when a type has no namespace. Fixes #64230.
11985
11986 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
11987
11988         * tabledefs.h: Added "internal" security actions to support non-CAS
11989         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
11990         Note: they do not seems to be used anymore in 2.0 (new metadata format)
11991
11992 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
11993
11994         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
11995         constructor of abstract class. Fixes #61689.
11996
11997 2004-10-04  Martin Baulig  <martin@ximian.com>
11998
11999         * class-internals.h (MonoGenericContainer): New type.
12000         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
12001         `MonoGenericContainer *generic_container'.
12002         (MonoClass): Replaced `gen_params' and `num_gen_params' with
12003         `MonoGenericContainer *generic_container'.
12004
12005         * metadata.c (mono_metadata_load_generic_params): Return a
12006         `MonoGenericContainer *' instead of a `MonoGenericParam *';
12007         removed the `num' argument.
12008
12009 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
12010
12011         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
12012         for dynamic images.
12013
12014         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
12015         machine fields.
12016
12017         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
12018
12019         * reflection.c: Save pe_kind and machine values into the generated
12020         image file.
12021
12022         * appdomain.c: Bump corlib version number.
12023
12024         * object-internals.h: Reorganize layout of LocalBuilder.
12025
12026         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
12027         New helper function.
12028
12029         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
12030         created MonoType for dynamic types. Fixes #66180.
12031
12032 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
12033
12034         * threadpool.c: the ares hashtable needs a critical section around it.
12035         this prevents some nasty segfaults
12036
12037 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
12038
12039         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
12040         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
12041         bug 67324).
12042         
12043 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
12044
12045         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
12046         
12047 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
12048
12049         * image.c: Always canonicalize image file names, to avoid loading
12050         the same assembly twice when referenced using a relative path.
12051
12052 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
12053
12054         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
12055
12056         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
12057
12058         * marshal.c: Fix warnings.
12059
12060 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
12061
12062         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
12063         attempting to marshal the delegate_trampoline as the method_addr.
12064         This patch has a static hashtable of marshalled delegates so that 
12065         we can map delegate_trampoline addresses back to delegates.  This
12066         allows a delegate passed to managed code to be passed back into native
12067         code.  Fixes #67039
12068
12069 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
12070
12071         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
12072
12073         * reflection.c (method_encode_code): Align method headers properly.
12074         Fixes #66025.
12075
12076 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
12077
12078         * marshal.c: In the runtime invoke wrapper, reset the abort
12079         exception if it is cached. This avoids the automatic rethrowal of 
12080         the exception after the catch of the wrapper. Also check for pending
12081         interruptions before calling the managed method. This is done using
12082         the new method emit_thread_force_interrupt_checkpoint, since the
12083         normal checkpoint method is ignored when running the invoke wrapper.
12084         * object.c: If the abort exception is rethrown, set the abort_exc
12085         field of the thread, so it will be rethrown aftere every catch.
12086         * threadpool.c: Only run an interruption checkpoint if what has been
12087         requested is a stop of the thread (aborts will be ignored).
12088         * threads.c: By default, a thread will now never be interrumped while
12089         running the runtime invoke wrapper (this ensures that runtime_invoke
12090         will always return to the caller if an exception pointer is provided).
12091         There is a new special method mono_thread_force_interruption_checkpoint()
12092         to force an interruption checkpoint even if running a protected
12093         wrapper, which is used by the same runtime invoke wrapper to do a check
12094         at a safe point.
12095
12096 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
12097
12098         * object.c, object-internals.h: Implemented mono_release_type_locks,
12099         which releases the cctor locks held by a thread.
12100         * threads.c, threads.h: In thread_cleanup, release cctor locks held
12101         by a thread. Added mono_thread_exit() method to be used to safely stop
12102         a thread.
12103
12104 2004-09-28  Raja R Harinath  <rharinath@novell.com>
12105
12106         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
12107         Move null check before dereference.  Avoid indexing beyond the end
12108         of the 'modules' array.
12109
12110 2004-09-28  Raja R Harinath  <rharinath@novell.com>
12111
12112         * metadata-internals.h (MonoImage): Add module_count field.
12113         * image.c (load_modules): Set image->module_count.
12114         (mono_image_load_file_for_image): Use image->module_count.
12115         * reflection.c (mono_image_load_module): Append to image->modules array 
12116         of dynamic assembly.
12117         (mono_module_get_object): Fix loop to actually increment index.
12118         Use image->module_count.
12119         * assembly.c (mono_assembly_load_references): Use image->module_count.
12120         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
12121         Likewise.
12122
12123 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
12124
12125         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
12126         Avoid assert on generic types.
12127
12128 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
12129
12130         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
12131
12132         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
12133
12134         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
12135         function to convert a MarshalSpec structure to its managed counterpart.
12136
12137         * reflection.c: Fix warnings.
12138         
12139         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
12140         field.
12141
12142         * icall.c (mono_create_icall_signature): Fix build.
12143
12144 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
12145
12146         * icall.c: Add MakePointType icall.
12147
12148         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
12149         warnings.
12150
12151 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12152
12153         * threadpool.c: reuse allocated slots in the queue.
12154
12155 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
12156
12157         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
12158
12159         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
12160
12161         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
12162         previous change.
12163
12164         * tabledefs.h: Add constants for pinvoke attributes BestFit and
12165         ThrowOnUnmappableChar.
12166
12167         * icall.c (ves_icall_Type_GetPacking): New icall.
12168
12169 2004-09-24  Martin Baulig  <martin@ximian.com>
12170
12171         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
12172
12173 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12174
12175         * appdomain.c:
12176         (mono_domain_set): allow setting a domain that is being unloaded.
12177         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
12178         being unloaded.
12179
12180 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
12181
12182         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
12183         the GetCustomAttributes icall.
12184
12185 2004-09-23  Martin Baulig  <martin@ximian.com>
12186
12187         * object-internals.h (MonoReflectionGenericParam): Replaced
12188         'has_ctor_constraint', `has_reference_type' and `has_value_type'
12189         with `guint32 attrs'.
12190
12191 2004-09-23  Martin Baulig  <martin@ximian.com>
12192
12193         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
12194
12195 2004-09-23  Martin Baulig  <martin@ximian.com>
12196
12197         * object-internals.h (GenericParameterAttributes): New enum.
12198
12199 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
12200
12201         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
12202         
12203         * class.c (init_events): Fill out event->other field.
12204
12205         * class.c: Fix warnings.
12206
12207         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
12208
12209 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
12210
12211         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
12212         walk which doesn't supply the IL offset.
12213
12214 2004-09-22  Martin Baulig  <martin@ximian.com>
12215
12216         * reflection.c (mono_reflection_setup_internal_class): If we're
12217         System.ValueType, System.Object or System.Enum, set
12218         `klass->instance_size' and create the vtable.
12219         (mono_reflection_create_internal_class): If we're an enum type,
12220         get the base class from our current corlib.
12221
12222 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
12223
12224         * reflection.h (MonoResolveTokenError): New type.
12225
12226         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
12227         icall.
12228
12229         * icall.c: Add an 'error' argument to the ResolveToken icalls.
12230
12231 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
12232
12233         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
12234         Support also calling constructors, but only for already allocated objects.
12235
12236 2004-09-17  Geoff Norton <gnorton@customerdna.com>
12237
12238         * reflection.c (type_get_qualified_name): If the klass is null
12239         return the typename to avoid a NullRefEx.
12240         (encode_cattr_value): Get the qualified name of the boxed type,
12241         not the underlying enumtype.  Fixes #62984.
12242
12243 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
12244
12245         * marshal.c: Fix problems with previous checkin.
12246
12247 2004-09-21    <vargaz@freemail.hu>
12248
12249         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
12250         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
12251
12252         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
12253
12254 2004-09-21  Geoff Norton <gnorton@customerdna.com>
12255
12256         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
12257         should only return a type for pointers, arrays, and passbyref types.
12258         Fixes bug #63841.
12259
12260 2004-09-21  Martin Baulig  <martin@ximian.com>
12261
12262         * domain.c (mono_debugger_check_runtime_version): New public
12263         function.
12264
12265         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
12266
12267 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
12268
12269         * reflection.c: Added missing sort to the declarative security 
12270         attributes table. MS implementation stops seeing the attributes if the
12271         token number regress in the table (as shown by ildasm and permview).
12272
12273 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
12274
12275         * object-internals.h (MonoReflectionModule): Add 'token' field.
12276         
12277         * reflection.c (mono_reflection_get_token): Add support for Module
12278         and Assembly.
12279         (mono_module_get_object): Set 'token' field.
12280         (mono_module_file_get_object): Set 'token' field.
12281
12282         * icall.c: Add new Assembly and Module icalls.
12283
12284         * appdomain.c: Bump corlib version.
12285
12286 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
12287
12288         * loader.h loader.c class.h class.c: Add helper functions for obtaining
12289         tokens of metadata objects.
12290
12291         * reflection.h reflection.c (mono_reflection_get_token): New function
12292         to obtain the token of a metadata object.
12293
12294         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
12295
12296 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
12297
12298         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
12299         
12300         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
12301
12302 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
12303
12304         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
12305         * object-internals.h: Added 3 MonoArray* members to MonoReflection
12306         AssemblyBuilder to access the permissions set in the class lib.
12307         * reflection.c: Added security attributes encoding step in 
12308         mono_image_build_metadata.
12309         * tabledefs.h: Added new security actions defined in 2.0:
12310         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
12311
12312 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
12313
12314         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
12315         macro parameter.
12316
12317 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
12318  
12319         * locales.c: nullify the ICU_collator member of CompareInfo when it is
12320           finalized. There where random SIGSEVs at program termination, when
12321           an object being finalized was trying to do a string comparison and
12322           the current culture was already finalized.
12323  
12324 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12325
12326         * threads.c: call thread_cleanup before finishing the thread if we get
12327         there.
12328
12329 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
12330
12331         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
12332         assemblies from the parent. Fixes #65665.
12333
12334 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
12335
12336         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
12337         modifiers.
12338
12339 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
12340
12341         * reflection.h: add prototype for mono_get_dbnull_object
12342         * reflection.c: add prototypes for get_default_param_value_blobs 
12343         and mono_get_object_from_blob for fussier compilers
12344
12345 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
12346  
12347         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
12348         false deadlock checks in class initialization.
12349  
12350 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
12351
12352         * image.c (mono_image_addref): Fix comment.
12353
12354         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
12355         possible.
12356
12357 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
12358
12359         * reflection.c (mono_param_get_objects): Modified to return
12360         ParameterInfo.DefaultValue object.
12361
12362         (get_default_param_value_blobs):
12363         (mono_get_object_from_blob):
12364         (mono_get_dbnull_object): New helper routines. 
12365
12366         * object.c (mono_get_constant_value_from_blob): New helper routine
12367         carved out from get_default_field_value ()
12368
12369         * object-internals.h (mono_get_constant_value_from_blob): Added
12370         function declaration.
12371
12372 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
12373
12374         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
12375         referenced assemblies. Fixes #62135.
12376
12377         * exception.h exception.c (mono_get_exception_file_not_found2): New
12378         helper function.
12379
12380 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
12381
12382         * class.h class.c: Add mono_type_get_underlying_type ().
12383
12384 2004-09-09  Geoff Norton <gnorton@customerndna.com>
12385
12386         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
12387         Fix GetTypes() to support dynamically created assemblies.
12388
12389 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
12390
12391         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
12392         
12393         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
12394         previous patch.
12395
12396         * reflection.h reflection.c loader.c: Allow dynamic construction of
12397         pinvoke methods. Fixes #65571.
12398         
12399         * reflection.c (mono_reflection_get_type): Revert previous change since
12400         it causes regressions.
12401
12402 2004-09-08  Martin Baulig  <martin@ximian.com>
12403
12404         * class.c (class_compute_field_layout): Don't call
12405         mono_class_layout_fields() for open generic instances.
12406
12407 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
12408         * threads.c appdomain.c: fix typo in GC macro
12409
12410 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12411
12412         * threads.c: don't call mono_thread_detach() in start_wrapper(),
12413         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
12414
12415 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
12416
12417         * image.c (mono_image_close): Applied patch from 
12418         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
12419         assembly is loaded multiple times from data.
12420         
12421         * image.c (mono_image_open): Fix warning.
12422
12423 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
12424
12425         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
12426         once. Fixes #58334.
12427         
12428         * reflection.c (mono_reflection_create_runtime_class): Initialize
12429         klass->nested_classes. Fixes #61224.
12430
12431 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
12432
12433         * threads.c: sched_yield() on exit, to allow threads to quit.
12434
12435 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
12436
12437         * object.c (mono_unhandled_exception): Remove leftover debug code.
12438
12439 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
12440
12441         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
12442
12443 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
12444
12445         * marshal.c (emit_marshal_array): Really null terminate string arrays.
12446         
12447         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
12448
12449 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
12450
12451         * marshal.c (emit_marshal_array): Null terminate string arrays.
12452         
12453         * marshal.c (raise_auto_layout_exception): Fix warning.
12454
12455         * reflection.c (mono_param_get_objects): Initialize the default value
12456         with DBNull.Value, not null. Fixes #62123.
12457
12458 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
12459
12460         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
12461         throw an exception with a cute explanation.
12462
12463 2004-09-06  Dick Porter  <dick@ximian.com>
12464
12465         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
12466         Close the new process's thread handle, as we don't use it.  The
12467         handle stays around forever otherwise.
12468
12469 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
12470
12471         * object.c (arith_overflow): Fix warning.
12472
12473         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
12474         calling conventions in method refs. Fixes #65352.
12475
12476         * reflection.c: Fix warnings.
12477
12478 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
12479
12480         * icall.c: Add a new icall for Array.Clear
12481
12482 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
12483
12484         * object.c: When allocating an array, we have to throw
12485         an overflow exception if any of the lengths are < 0.
12486
12487 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
12488
12489         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
12490         properly. Also move implementation of string array marshalling to 
12491         managed code. Fixes #42316.
12492
12493 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12494
12495         * assembly.c: provide more information when loading an assembly fails.
12496
12497 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12498
12499         * filewatcher.c: don't expect the development fam package to be
12500         installed.
12501
12502 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
12503
12504         * marshal.c: Make a copy of the signature cookie since it will be
12505         freed by the caller.
12506         
12507         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
12508
12509         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
12510
12511         * metadata.c (mono_metadata_free_marshal_spec): New function to free
12512         marshal specs.
12513
12514         * marshal.c: More refactoring.
12515         
12516         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
12517         smaller functions.
12518
12519 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
12520
12521         * object.c: In mono_message_invoke, fill the output parameter array after
12522           calling the managed method (it was done before the call). This fixes
12523           bug #59299.
12524
12525 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
12526
12527         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
12528         as well.
12529
12530 2004-09-02  Martin Baulig  <martin@ximian.com>
12531
12532         * class.c (mono_class_instance_size): Don't allow generic type
12533         definitions or open generic instances.
12534         (mono_class_array_element_size): If we're a value type, call
12535         mono_class_instance_size() on the original class.
12536
12537         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
12538         handle generic instances.
12539
12540         * mono-debug-debugger.c (write_type): Handle generic instances
12541         like classes.
12542
12543 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
12544
12545         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
12546         the allocation request fails. Fixes #65089.
12547
12548         * object.c (mono_runtime_free_method): Do not call mono_free_method.
12549         
12550         * object.c (mono_runtime_free_method): New function to free a dynamic
12551         method.
12552
12553         * marshal.c (mono_delegate_free_ftnptr): New function to free the
12554         delegate trampoline.
12555
12556         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
12557         with hasthis as dynamic,
12558
12559         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
12560
12561         * domain.c (mono_jit_info_table_remove): New function to remove an
12562         entry from the jit info table.
12563
12564         * class-internals.h (MonoMethod): Add 'dynamic' field.
12565
12566         * loader.c: Fix warnings.
12567
12568 2004-09-01  Martin Baulig  <martin@ximian.com>
12569
12570         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
12571         instead of mono_debugger_lock() because the latter one is a no-op
12572         unless running in the debugger.
12573
12574 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
12575
12576         * class.c (class_compute_field_layout): Classes with auto-layout or
12577         reference fields are not blittable.
12578         
12579 2004-09-01  Dick Porter  <dick@ximian.com>
12580
12581         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
12582         mono_image_get_filename() to get the assembly location.
12583
12584         * icall.c:
12585         * metadata.h: Fix compile warnings
12586
12587 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
12588
12589         * class.c (class_compute_field_layout): System.Object is blittable.
12590
12591         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
12592         as in/out. Fixes #59909.
12593
12594 2004-09-01  Martin Baulig  <martin@ximian.com>
12595
12596         * metadata.h (MONO_TYPE_ISREFERENCE): Call
12597         mono_metadata_generic_inst_is_valuetype() if we're a generic
12598         instance to check whether our underlying type is a reference type.
12599
12600 2004-09-01  Martin Baulig  <martin@ximian.com>
12601
12602         * metadata.c (mono_type_size): If we're a generic instance, call
12603         mono_class_value_size() for value types.
12604
12605 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
12606
12607         * marshal.c: Implement more custom marshalling functionality. Fixes
12608         #64915.
12609
12610 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12611
12612         * mono-debug.c, debug-mono-symfile.c: add some locking love.
12613
12614 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
12615
12616         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
12617
12618         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
12619
12620         * icall.c: Fix some warnings.
12621
12622         * threads.c (abort_appdomain_thread): Fix unref errors.
12623         (mono_thread_current): Fix THREAD_DEBUG define.
12624
12625 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
12626
12627         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
12628
12629         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
12630
12631 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
12632
12633         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
12634         string arrays.
12635
12636 2004-08-28  Martin Baulig  <martin@ximian.com>
12637
12638         * metadata.c
12639         (mono_metadata_generic_inst_is_valuetype): New public function.
12640
12641         * metadata.h (MONO_TYPE_ISSTRUCT): Call
12642         mono_metadata_generic_inst_is_valuetype() if we're a generic
12643         instance to check whether our underlying type is a valuetype.
12644
12645 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
12646
12647         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
12648         #63768.
12649
12650 2004-08-25  Martin Baulig  <martin@ximian.com>
12651
12652         * loader.c (mono_get_method_from_token): Abstract methods can also
12653         be generic and thus have type parameters.
12654
12655         * metadata-internals.h
12656         (MonoDynamicImage): Added `GPtrArray *gen_params'.
12657
12658         * reflection.c (mono_image_get_generic_param_info): Don't create a
12659         metadata row, just add an entry to the `gen_params' array.
12660         (build_compressed_metadata): Sort the `gen_params' array and then
12661         actually create the metadata.
12662
12663 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12664
12665         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
12666
12667 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
12668
12669         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
12670
12671 2004-08-24  Martin Baulig  <martin@ximian.com>
12672
12673         * class.cs (mono_class_is_subclass_of): Like an interface, a
12674         generic instance also derives from System.Object.
12675
12676 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
12677
12678         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
12679         custom modifiers to be in any order. Fixes #61990.
12680
12681 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
12682
12683         * object.c: Register mono_object_new_fast icall.
12684         
12685         * object.c (mono_class_get_allocation_ftn): Return to calling
12686         mono_object_new_fast, since it seems faster to compute the object 
12687         size in unmanaged code than passing it as a parameter.
12688
12689         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
12690
12691         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
12692         this function with Boehm as the oom handler, so we don't have to check
12693         the result of GC_malloc.
12694
12695         * object.c: Remove checks for oom.
12696
12697         * object.h object.c (mono_class_get_allocation_ftn): New function to
12698         return the icall which can be used to allocate an instance of a given
12699         class. 
12700
12701         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
12702
12703         * class-internals.h: Add 'enabled' field.
12704
12705 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
12706
12707         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
12708
12709 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
12710         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
12711         value 0x0010.
12712
12713 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
12714
12715         * appdomain.c: use the Tls function for appdomain too,
12716         at Zoltan's request. Actually return in mono_context_get
12717
12718         * appdomain.c, profiler.c, threads.c: use __thread
12719
12720 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
12721
12722         * appdomain.c threads.c: Call GC_CreateThread on windows.
12723
12724         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
12725         multiple libraries since this don't work on windows.
12726
12727 2004-08-18  Martin Baulig  <martin@ximian.com>
12728
12729         * class-internals.h
12730         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
12731         MonoMethodHeader.
12732
12733         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
12734         MonoMethodNormal since we also need it for abstract and interface
12735         methods.
12736
12737         * reflection.c
12738         (build_compressed_metadata): Sort the GenericParam table.
12739         (mono_image_create_token): Added `gboolean create_methodspec'
12740         argument; this is false when generating a MethodImpl token.
12741         (reflection_methodbuilder_to_mono_method): Abstract and interface
12742         methods may also have generic parameters.
12743
12744 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
12745
12746         * appdomain.c: thread local alloc
12747
12748 2004-08-17  Martin Baulig  <martin@ximian.com>
12749
12750         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
12751
12752         * icall.c
12753         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
12754         argument.
12755
12756         * class.c (mono_type_get_full_name): New public function.
12757         (mono_type_get_name): Don't include the type arguments.
12758
12759 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
12760
12761         * Makefile.am: Build static versions of libmetadata and libmonoruntime
12762         for inclusion into the mono executable.
12763
12764 2004-08-16  Martin Baulig  <martin@ximian.com>
12765
12766         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
12767         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
12768
12769 2004-08-14  Martin Baulig  <martin@ximian.com>
12770
12771         * class.c (dup_type): Also copy the `byref' field.
12772
12773 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
12774
12775         * reflection.c (create_dynamic_mono_image): Revert the last change 
12776         since it breaks bootstrap.
12777
12778 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
12779
12780         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
12781
12782         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
12783         not free them with g_free.
12784
12785 2004-08-11  Martin Baulig  <martin@ximian.com>
12786
12787         * reflection.c (mono_reflection_setup_internal_class): Also call
12788         mono_class_setup_mono_type() if we already have a `tb->type.type'.
12789
12790 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
12791
12792         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
12793         called during default (first) AppDomain creation. Keep track of
12794         Evidence when loading assemblies.
12795
12796 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12797
12798         * opcodes.c, opcodes.h: reduce runtime relocations.
12799
12800 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
12801
12802         * culture-info.h, locales.c: fixes and chages to sue the new
12803         optimized format of the locale data.
12804         * culture-info-tables.h: regenerated.
12805
12806 2004-08-06  Geoff Norton <gnorton@customerdna.com>
12807         
12808         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
12809
12810 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
12811
12812         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
12813         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
12814         * domain-internals.h: icall declaration.
12815         * icall.c: icall registration.
12816         * object-internals.h: New fields in MonoAssembly for CAS.
12817
12818 2004-08-05  Duncan Mak  <duncan@ximian.com>
12819
12820         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
12821         CEE_LDELEM_ANY.
12822
12823 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12824
12825         * reflection.c: fix to deal with object[] arrays in custom ctors
12826         (bug #62550).
12827
12828 2004-08-05  Martin Baulig  <martin@ximian.com>
12829
12830         * class.c (mono_class_array_element_size): Added support for
12831         generic instances and correctly handle "recursive" types.
12832
12833 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
12834
12835         * assembly.c: Fix warnings.
12836
12837 2004-08-04  Martin Baulig  <martin@ximian.com>
12838
12839         * class.c
12840         (mono_type_get_name_recurse): Added `gboolean include_arity'
12841         argument specifying whether or not we should include the generic
12842         arity in the type name.
12843         (_mono_type_get_name): New static function.
12844         (mono_class_setup_vtable): If we're a generic instance, don't
12845         include the generic arity in the names of explicit method
12846         implementations.        
12847
12848 2004-08-03  Martin Baulig  <martin@ximian.com>
12849
12850         * class.c (mono_type_get_name_recurse): Enclose the generic type
12851         arguments in `<', '>'.
12852
12853 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12854
12855         * gc.c: make GC warning messages use the trace API, they are just
12856         noise to most of the users.
12857
12858 2004-08-03  Martin Baulig  <martin@ximian.com>
12859
12860         * debug-mono-symfile.c (read_string): Correctly read the string.
12861
12862 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
12863
12864         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
12865         
12866         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
12867         icalls.
12868         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
12869
12870 2004-07-30  Martin Baulig  <martin@ximian.com>
12871
12872         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
12873         Reflect latest symbol writer changes.   
12874
12875 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
12876
12877         * object.c: always create an object if null is passed
12878         to Invoke() where a valuetype is expected.
12879
12880 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
12881
12882         * marshal.c (mono_marshal_init): make managed
12883         signatures match native ones better for 64bits.
12884
12885 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12886
12887         * appdomain.c: hack to build correctly the private bin path on windows.
12888         Fixes bug #61991.
12889
12890 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
12891
12892         * assembly.c: Load mscorlib from the correct framework directory
12893           (mono/<version>/mscorlib.dll).
12894         * appdomain.h: Added prototypes for new functions.
12895         * internals.h: Added some prototypes.
12896         * domain.c: When initializing the runtime, get from the executable and
12897           the configuration files the runtime version that the app supports.
12898           Added support methods for reading app.exe.config. Added list of versions
12899           supported by the JIT. Added two new methods: mono_init_from_assembly,
12900           which initializes the runtime and determines the required version from
12901           the provided exe file, and mono_init_version, which initializes
12902           the runtime using the provided version.
12903         * icall.c: Get machine.config from version-specific directory.
12904         * reflection.c: When generating an image, embed the version number
12905           of the current runtime.
12906
12907 2004-07-28  Dick Porter  <dick@ximian.com>
12908
12909         * socket-io.c
12910         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
12911         returned sockaddr size before creating the remote address object.
12912         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
12913         61608.
12914
12915 2004-07-28  Dick Porter  <dick@ximian.com>
12916
12917         * locales.c (string_invariant_compare_char): Fix invariant char
12918         compares between upper and lower cases.  Fixes bug 61458.
12919
12920 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
12921         
12922         * marshal.c: actually cache stelem.ref wrappers.
12923         
12924 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
12925
12926         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
12927         sections and remove the mono_cli_rva_map () function.
12928
12929 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12930
12931         * debug-mono-symfile.c: fix one more endianess issue, from a patch
12932         by Geoff Norton (<gnorton@customerdna.com>).
12933
12934 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12935
12936         * class.c: fix class loads for pointer types (typeof(int) !=
12937         typeof(int*)).
12938
12939 2004-07-27  Martin Baulig  <martin@ximian.com>
12940
12941         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
12942         reading the debugging information from an external ".mdb" file.
12943
12944 2004-07-24  Martin Baulig  <martin@ximian.com>
12945
12946         * reflection.c (mono_image_get_type_info): Only write a class
12947         layout entry if we actually have a size or a packing size.
12948
12949 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
12950
12951         * reflection.c (type_get_fully_qualified_name): 
12952         insert cast to get type checking of ?: with non-gcc compilers
12953
12954 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
12955
12956         * rand.c: use g_getenv for both lookups of
12957         MONO_EGD_SOCKET
12958
12959 2004-07-17  Martin Baulig  <martin@ximian.com>
12960
12961         * reflection.c (mono_reflection_bind_generic_method_parameters):
12962         Set `gmethod->reflection_info'.
12963
12964 2004-07-17  Martin Baulig  <martin@ximian.com>
12965
12966         * class.c (mono_class_create_from_typedef): Insert the newly
12967         created class into the hash table before computing the interfaces
12968         since we could be called recursively.
12969
12970 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
12971
12972         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
12973         function to implement stelem.ref in managed code
12974         * class-internals.h, debug-helpers.c: a new wrapper type
12975         for the above.
12976
12977 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
12978
12979         * gc.c: allow GC handles to work even when no GC is compiled in.
12980         Fix part of bug #61134 (GetAddrOfPinnedObject).
12981
12982 2004-07-13  Peter Williams  <peter@newton.cx>
12983  
12984         * process.c (complete_path): Make sure we don't attempt to execute
12985         directories.
12986  
12987 2004-07-12  Geoff Norton <gnorton@customerdna.com>
12988
12989         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
12990           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
12991           and will add/subtract the hour if needed
12992
12993 2004-07-12  Martin Baulig  <martin@ximian.com>
12994
12995         * reflection.c (mono_field_get_object): If we have
12996         `field->generic_info', take the attributes from
12997         `field->generic_info->generic_type'.    
12998
12999 2004-07-12  Martin Baulig  <martin@ximian.com>
13000
13001         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
13002         This function must be called before initializing the runtime.
13003         (mono_debug_init_1): New function; call this after initializing
13004         the runtime, but before loading the assembly.  It tells the
13005         debugger to load corlib and the builtin types.
13006
13007         * mono-debug-debugger.c: Did some larger changes in the debugging
13008         code; support recursive class declarations, make sure we actually
13009         add all classes.
13010
13011 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13012
13013         * debug-helpers.c: undo my previous patch and fixed the real issue in
13014         ../mini/exceptions-x86.c
13015
13016 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13017
13018         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
13019         when no HOME env. variable was set and a NullRef was thrown in a .cctor
13020         called from other .cctors.
13021
13022 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
13023
13024         * loader.c: Removed the mono_loader_wine_init hack now that we are
13025         doing a managed version of Windows.Forms.
13026
13027 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
13028
13029         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
13030         threadpool.c, threads.c: remove static data from rootset.
13031
13032 2004-07-09  Dick Porter  <dick@ximian.com>
13033
13034         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
13035         Don't do any more processing if the matched length was 0.  It was
13036         increasing the size of the string before.  Fixes bug 61167.
13037
13038 2004-07-09  Dick Porter  <dick@ximian.com>
13039
13040         * socket-io.h:
13041         * socket-io.c
13042         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
13043         Add support for SO_PEERCRED if its available.
13044
13045 2004-07-09  Peter Bartok <pbartok@novell.com>
13046         * loader.c: winelib.exe.so error message is now only displayed if
13047         MONO_DEBUG is set. To help us avoid questions when people are trying
13048         out the new Managed.Windows.Forms.
13049
13050 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
13051
13052         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
13053         for isinst and castclass wrappers.
13054
13055         * class-internals.h icall.c: Move registration and lookup of JIT icalls
13056         to libmetadata from the JIT, so they could be used by the marshalling
13057         code and the interpreter.
13058
13059         * marshal.c: Register marshalling related JIT icalls here instead of
13060         in mini.c. Use CEE_MONO_ICALL instead of the family of 
13061         CEE_MONO_PROC<x> opcodes to call marshalling functions.
13062
13063         * metadata.h: Remove unneeded marshalling conversions.
13064
13065         * opcodes.c: Update for new opcodes.
13066         
13067 2004-07-08  Martin Baulig  <martin@ximian.com>
13068
13069         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
13070         (mono_debug_get_domain_data): Make this function static.
13071
13072 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
13073
13074         * gc.c, object.h: add nice GC handle API for embedders.
13075
13076 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
13077
13078         * reflection.c: more changes for the new api
13079
13080         * object.c: When we reflect on a field w/ a constant value, it
13081         will not have a memory location, so we must access metadata. Also,
13082         allow easier reading of strings so that we can read them from
13083         the constant data.
13084
13085         * class.c (mono_class_layout_fields): no need for literal fields here.
13086
13087         * class-internals.h: api changes for const fields
13088
13089         * icall.c (ves_icall_get_enum_info): use new apis for const fields
13090
13091 2004-07-06  Martin Baulig  <martin@ximian.com>
13092
13093         * mono-debug.h: Increment version number to 44.
13094
13095         * mono-debug.c (mono_debug_add_wrapper): The second argument is
13096         now a gpointer, rewrote this whole method.
13097
13098         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
13099         function.  Add information about the wrapper in a new "misc table".
13100
13101         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
13102         for the new misc table.
13103
13104 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
13105
13106         * metadata-internals.h image.c: Add a cache for helper signatures.
13107
13108         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
13109
13110 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
13111
13112         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
13113         delegates from a delegate. Fixes #61033.
13114         
13115         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
13116         marshalling of stringbuilder arrays. Fixes #59900.
13117
13118 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
13119
13120         * icall.c: Add EnumBuilder:setup_enum_type icall.
13121
13122 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
13123
13124         * icall.c: Added a new icall for the property version of
13125         OffsetOfStringData.
13126
13127 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
13128
13129         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
13130         it has a constant size across platforms.
13131
13132         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
13133         stack trace.
13134
13135 2004-06-29  Martin Baulig  <martin@ximian.com>
13136
13137         * mono-debug.c (mono_debug_add_method): Protect the whole function
13138         in mono_debugger_lock(), not just parts of it.
13139
13140 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
13141
13142         * reflection.c: make sure padding bytes in heaps are zeroed.
13143
13144 2004-06-24  David Waite  <mass@akuma.org>
13145
13146         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
13147         image.c, loader.c, locales.c, marshal.c, metadata.c,
13148         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
13149         string-icalls.c, threads.c: change to C90-style comments from C99 /
13150         C++ -style
13151
13152 2004-06-24  Dick Porter  <dick@ximian.com>
13153
13154         * threads.c
13155         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
13156         return createdNew.  Fixes bug 60412.
13157
13158         * threads-types.h: 
13159         * icall.c: Add createdNew parameter to CreateMutex icall
13160
13161 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
13162
13163         * reflection.c, object-internals.h: save default value in params.
13164
13165 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13166
13167         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
13168         no need to build a new path combining that with the application base.
13169         Fixes bug #60442.
13170
13171 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
13172
13173         * reflection.c: fixed minor standard compliance issues.
13174
13175 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
13176
13177         * reflection.c: fixed issue with encoding some custom attributes
13178         (arrays in properties and fields, bug #60411).
13179
13180 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13181
13182         * reflection.c: fix start address when copying the public key token.
13183
13184 2004-06-23  Martin Baulig  <martin@ximian.com>
13185
13186         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
13187         the `exc' object in a static object to put it into the GC's root set.
13188
13189 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
13190
13191         * reflection.c: make mono_reflection_setup_internal_class ()
13192         callable a second time to setup a new parent class.
13193
13194 2004-06-23  Dick Porter  <dick@ximian.com>
13195
13196         * threads.c: Check for WAIT_IO_COMPLETION return values.
13197
13198 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
13199
13200         * appdomain.c: Removed the g_free on the public key token. Now copy 
13201         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
13202         * assembly.c: Added public key token string value when loading 
13203         assemblies. Fix bug #60439.
13204         * icall.c: Added missing informations (like public key) in 
13205         GetReferencedAssemblies. Fix #60519.
13206         * image.h: Changed definition for public key token from const char*
13207         public_tok_value to guchar public_key_token [17];
13208         * reflection.c: Updated for changes to public key token.
13209
13210 2004-06-22  Lluis Sanchez Gual
13211
13212         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
13213         for the field in base classes.
13214
13215 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
13216
13217         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
13218         mark headers as not supported, they are installed only for use by the
13219         debugger.
13220
13221 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
13222
13223         * *.c, *.h: avoid namespace pollution in public headers.
13224
13225 2004-06-21  Martin Baulig  <martin@ximian.com>
13226
13227         * exception.c (mono_get_exception_security): It's in
13228         "System.Security", not in "System".
13229
13230         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
13231         the exception classes.
13232
13233 2004-06-21  Martin Baulig  <martin@ximian.com>
13234
13235         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
13236         Protect the exception object from being finalized.
13237
13238 2004-06-21  Martin Baulig  <martin@ximian.com>
13239
13240         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
13241         public function.
13242
13243 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
13244
13245         * reflection.c: Load the assembly in mono_reflection_type_from_name,
13246         if it was not loaded before. Fix parts of #60439.
13247
13248 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
13249
13250         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
13251         code that was broken since Ben's change: wrappers are now
13252         dependent on the method signature only again.
13253
13254 2004-06-21  Martin Baulig  <martin@ximian.com>
13255
13256         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
13257         added interface support.
13258
13259 2004-06-21  Martin Baulig  <martin@ximian.com>
13260
13261         * class.c (mono_vtable_get_static_field_data): New public method.
13262
13263 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
13264
13265         * filewatcher.c : Windows build fix to be compliant with API changes.
13266
13267 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
13268
13269         * class.h, class.c: more accessors.
13270         * metadata.h, metadata.c: prepare for hiding MonoType and
13271         MonoMethodSignature: people should use the accessors from now on
13272         outside of the tree.
13273
13274 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
13275
13276         * *.c, *.h: more API cleanups.
13277
13278 2004-06-18  Jackson Harper  <jackson@ximian.com>
13279
13280         * assembly.c: Trace loading assemblies.
13281         * loader.c: Trace loading native libraries.
13282         * mono-config.c: Trace loading config files.
13283         
13284 2004-06-18  Dick Porter  <dick@ximian.com>
13285
13286         * locales.c: Tell ICU the lengths of strings, it can cope with
13287         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
13288
13289 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
13290
13291         * image.c: swapped name/filename;
13292
13293 2004-06-18  Martin Baulig  <martin@ximian.com>
13294
13295         * mono-debug-debugger.c (write_class): Write the parent class at
13296         the end of the header.
13297
13298 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
13299
13300         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
13301
13302 2004-06-17  Raja R Harinath  <rharinath@novell.com>
13303
13304         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
13305         (bundle_obj): New conditional define.
13306         (BUILT_SOURCES): Remove.
13307         ($(bundle_srcs)): Make parallel-make safe.
13308         (libmonoruntime_la_LIBADD): Make unconditional.
13309         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
13310         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
13311
13312 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
13313
13314         * culture-info-tables.h: It was inconsistent with the latest
13315           supp info files.
13316
13317 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
13318
13319         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
13320         be loaded.
13321
13322         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
13323         with gcc 2.95.
13324
13325 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
13326
13327         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
13328         cleaned up public header threads.h.
13329
13330 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
13331
13332         * Makefile.am, *.c, *.h: more API cleanups.
13333
13334 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
13335
13336         * Makefile.am: removed monosn from compilation.
13337         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
13338         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
13339         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
13340         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
13341         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
13342         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
13343
13344 2004-06-15  Jackson Harper  <jackson@ximian.com>
13345
13346         * assembly.c: Make locales lower case when searching the GAC for
13347         assemblies. gacutil will always make locales lowercase when
13348         installing so this effectively makes them case insensitive.
13349         
13350 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
13351
13352         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
13353         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
13354           parameter which allows to choose whether the wait can be interrupted or 
13355           not. Also added the method mono_monitor_enter(), which locks the monitor
13356           using an infinite wait and without allowing interruption.
13357           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
13358           interrupted.
13359         * object.h: Added new fields in MonoThread. suspend_event holds the event
13360           used to susped/resume the thread. synch_lock is the lock object to use for
13361           modifying the thread state.
13362         * threads.c: Use the new synch_lock object for locking, instead of "this",
13363           which can generate deadlocks.
13364           Moved thread state change in Thread.Sleep and Thread.Join from managed
13365           to unmanaged code. This avoids a deadlock when the thread was suspended
13366           just after acquiring the thread lock.
13367           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
13368           Implemented Thread.Suspend using an event instead of ThreadSuspend,
13369           which is not fully implemented in the io-layer.
13370         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
13371
13372 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
13373
13374         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
13375         threads-types.h: more API cleanups.
13376
13377 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
13378
13379         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
13380         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
13381         threadpool.c, threads.c: first pass at the exported API cleanup.
13382
13383 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
13384
13385         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
13386
13387 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13388
13389         * icall.c: added internalGetHome.
13390
13391 2004-06-14  Dick Porter  <dick@ximian.com>
13392
13393         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
13394         possible to return successfully when '.' or '..' were the only
13395         entries in a directory, but were skipped.  The MonoIOStat was not
13396         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
13397         Fixes bug 59574.
13398
13399 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
13400
13401         * reflection.c: make binaries run on .Net 1.1 by default.
13402
13403 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13404
13405         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
13406
13407 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
13408
13409         * marshal.c: keep track of struct size with explicit layout
13410         (bug #59979).
13411
13412 2004-06-12  Martin Baulig  <martin@ximian.com>
13413
13414         * mono-debug-debugger.c: Comment out a debugging g_message().
13415
13416 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
13417
13418         * reflection.c, reflection.h: do not free custom attrs that are cached.
13419         * icall.c: use braces to make code clearer.
13420
13421 2004-06-11  Martin Baulig  <martin@ximian.com>
13422
13423         * class.h (MonoInflatedField): New type.
13424         (MonoClassField): Replaced `MonoType *generic_type' with
13425         `MonoInflatedField *generic_info'.
13426
13427         * icall.c
13428         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
13429
13430 2004-06-11  Martin Baulig  <martin@ximian.com>
13431
13432         * reflection.c (mono_image_create_method_token): Correctly encode
13433         varargs methods.
13434
13435 2004-06-11  Martin Baulig  <martin@ximian.com>
13436
13437         * metadata.c (mono_metadata_parse_method_signature): When parsing
13438         a MethodDef which has VarArgs, also set sentinelpos if we don't
13439         have any parameters.
13440
13441 2004-06-11  Martin Baulig  <martin@ximian.com>
13442
13443         * verify.c (mono_method_verify): In CEE_CALL, use
13444         mono_method_get_signature() to get the method's signature, unless
13445         we're a PInvoke method.
13446
13447 2004-06-10  Jackson Harper  <jackson@ximian.com>
13448
13449         * assembly.c: Use <path>/lib/mono/gac for the extra paths
13450         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
13451         logical name as the supplied path is just a prefix to the gac not
13452         the direct path to it.
13453         
13454 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
13455
13456         * reflection.c: make the token for a created method match
13457         the token of the MethodBuilder it was created from
13458         (IKVM requires this behaviour now).
13459
13460 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
13461
13462         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
13463         reflection.c, socket-io.c: leak fixes.
13464
13465 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
13466
13467         * icall.c: handle sentinel pos in vararg methods in position different
13468         from 0.
13469
13470 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13471
13472         * culture-info-tables.h: freshly generated.
13473
13474 2004-06-09  Martin Baulig  <martin@ximian.com>
13475
13476         * loader.c (mono_get_method_constrained): Call `mono_class_init
13477         (constrained_class)'.   
13478
13479 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
13480
13481         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
13482         any methods. Fixes #59629.
13483
13484 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
13485
13486         * culture-info-tables.h: reflecting locale-builder updates.
13487
13488 2004-06-08  Dick Porter  <dick@ximian.com>
13489
13490         * object.h:
13491         * locales.c: Fixed compile warnings, including a real bug in
13492         CompareInfo_internal_compare.
13493         
13494 2004-06-08  Dick Porter  <dick@ximian.com>
13495
13496         * locales.c
13497         (ves_icall_System_Globalization_CompareInfo_internal_index):
13498         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
13499         Double-check the resuls of usearches, because ICU currently
13500         ignores most of the collator settings here.  Fixes bug 59720.
13501         
13502 2004-06-08  Dick Porter  <dick@ximian.com>
13503
13504         * locales.c
13505         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
13506         Fix memory leak and segfault-causing typo.  No idea how this one
13507         lasted so long without being noticed.
13508
13509 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
13510
13511         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
13512         any methods. Fixes #59629.
13513
13514 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13515
13516         * assembly.c:
13517         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
13518         own the critical section before). Removed dead code (that's done
13519         in the preload hook).
13520
13521         (mono_assembly_load_with_partial_name): call the preload hook.
13522
13523 2004-06-08  Martin Baulig  <martin@ximian.com>
13524
13525         * metadata.c (mono_metadata_signature_alloc): Default
13526         `sentinelpos' to -1.
13527
13528         * reflection.c (mono_image_get_array_token): Likewise.
13529
13530 2004-06-08  Martin Baulig  <martin@ximian.com>
13531
13532         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
13533
13534         * metadata.c (mono_metadata_parse_method_signature): When parsing
13535         a MethodDef which has VarArgs, set sentinelpos.
13536
13537         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
13538         `gint16' since we're using -1 for non-varargs methods.
13539
13540         * reflection.c
13541         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
13542         (method_encode_signature): Added varargs support.
13543         (method_builder_encode_signature): Likewise.
13544         (mono_image_get_varargs_method_token): New static method.
13545         (mono_image_create_method_token): New public method; this is
13546         called via an icall instead of mono_image_create_token() when
13547         calling a varargs method.       
13548
13549 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
13550
13551         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
13552
13553 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
13554
13555         * culture-info-tables.h : Reflecting the latest locale-builder that
13556           fixed empty array representation ({} to {0}).
13557
13558 2004-06-07  Jackson Harper  <jackson@ximian.com>
13559
13560         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
13561         looking up extra gac paths. This allows MONO_GAC_PATH to act
13562         exactly like a prefix.
13563         
13564 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
13565
13566         * reflection.c (mono_reflection_type_from_name): Make a copy of the
13567         type name before modifying it. Fixes #59405.
13568
13569 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
13570
13571         * culture-info.h: added fields for "all datetime patterns".
13572         * locales.c: (  ves_icall_System_Globalization_CultureInfo
13573           _construct_datetime_format ()): fill xxx_patterns fields.
13574         * object.h: added fields for "all datetime patterns" to
13575           MonoDateTimeFormatInfo.
13576         * culture-info-tables.h: reflecting locale-builder updates.
13577
13578 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
13579
13580         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
13581         the event has no add and remove methods. Fixes #59629.
13582
13583 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
13584
13585         * object.c: Fixed possible integer overflow when allocating large
13586         strings.
13587
13588 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
13589
13590         * culture-info-tables.h: reflecting locale-builder updates.
13591
13592 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
13593
13594         * culture-info-tables.h: reflecting locale-builder updates.
13595
13596 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
13597
13598         * culture-info-tables.h: reflecting locale-builder updates.
13599
13600 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
13601
13602         * threads.c: Made Thread.Sleep abortable.
13603
13604 2004-06-02  Martin Baulig  <martin@ximian.com>
13605
13606         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
13607
13608         * debug-mono-symfile.h: Bumped symbol file version number to 37.
13609
13610 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
13611
13612         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
13613
13614 2004-05-30  Jackson Harper  <jackson@ximian.com>
13615
13616         * reflection.c: Do not hardcode assembly versions or public key
13617         tokens anymore. All of this except the corlib section was dead
13618         code anyways.
13619         
13620 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
13621
13622         * object.c (mono_runtime_invoke_array): Automatically create boxed
13623         objects for byref valuetypes if needed. Fixes #59300.
13624         
13625         * object.c (mono_method_return_message_restore): Handle 
13626         MONO_TYPE_OBJECT as well.
13627
13628 2004-05-28  Jackson Harper  <jackson@ximian.com>
13629
13630         * reflection.c: The modified type encoding was causing build
13631         problems. Reverted for now.
13632         
13633 2004-05-28  Jackson Harper  <jackson@ximian.com>
13634
13635         * reflection.c/h: Take an assembly ref so that we dont create
13636         fully qualified names when encoding types in the same assembly as
13637         the custom attribute being emitted.
13638         * appdomain.c: Increment version number.
13639         
13640 2004-05-26  Duncan Mak  <duncan@ximian.com>
13641
13642         * icall.c
13643         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
13644         Set the full version number (major, minor, build, revision).
13645
13646 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
13647
13648         * marshal.c (emit_struct_conv): increment src/dst after blit
13649         (mono_marshal_get_managed_wrapper,
13650         mono_marshal_get_native_wrapper): make sure we have marshalling
13651         info before marshalling params (info computation affects
13652         blittable)
13653
13654         * class.c (class_compute_field_layout): correctly deal with
13655         blittable
13656         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
13657         value types (as per what windows dows by default)
13658         (mono_class_setup_mono_type): System.ValueType is blittable
13659         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
13660         blittable
13661
13662         * marshal.c (mono_marshal_load_type_info): flag types  as
13663         non-blittable if the native layout doesn't match the managed
13664         layout
13665
13666 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13667
13668         * appdomain.c: don't add stuff in the private search path that is
13669         above the application base. If application base is not set, there's
13670         no private search path.
13671
13672 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
13673
13674         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
13675         byref struct arguments in native->managed marshalling.
13676
13677 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
13678
13679         * marshal.c (mono_marshal_get_runtime_invoke): correctly
13680         cache methods using signature (special case for methods
13681         that are value type or string class)
13682         
13683         * image.c (mono_image_close): clean up allocated GSList's
13684         in runtime_invoke_cache.
13685
13686 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13687
13688         * mono-config.c: set the correct path for mono_cfg_dir on windows when
13689         there's no MONO_CFG_DIR environment variable defined.
13690
13691 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13692
13693         * threads.c: windows version must be >= 0x0500 to include OpenThread.
13694
13695 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
13696
13697         * threadpool.c: Really wait for 500ms after the async call, even if the wait
13698           is interrumped.
13699         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
13700           before waiting for it, and call CloseHandle after the wait to unref it.
13701           This will make sure that handles are not disposed too early.
13702
13703 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13704
13705         * appdomain.c:
13706         * appdomain.h:
13707         * icall.c: removed
13708         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
13709         needed now.
13710
13711         * object.c: se the application_base only for the domain that runs
13712         Main. Fixes bug #59216,
13713
13714 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13715
13716         * appdomain.c:
13717         * object.c: only the domain in which Main is run have
13718         SetupInformation.ConfigurationFile set, so moved a few lines from
13719         appdomain.c to object.c.
13720
13721 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13722
13723         * appdomain.c: we tried to load [name].(dll|exe), but according
13724         to bug #57710, we must also try [culture]/[name].(dll|exe) and
13725         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
13726         There's a test case attached to bug #58922.
13727
13728 2004-05-27  Dick Porter  <dick@ximian.com>
13729
13730         * icall.c:
13731         * file-io.c: Implemented icalls for locking and unlocking regions
13732         in a file.
13733         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
13734         FALSE on error (fixes both compiler warning and real bug.)
13735
13736 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
13737
13738         * culture-info-tables.h: reflecting locale-builder updates.
13739
13740           (Added missing ChangeLog entry for 05/26)
13741
13742 2004-05-27  Jackson Harper  <jackson@ximian.com>
13743
13744         * locales.c: Fix some cut and paste errors.
13745         
13746 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13747
13748         * mono-config.c: set the correct path for config. directory on windows.
13749
13750 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13751
13752         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
13753           on win32.
13754
13755 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
13756
13757         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
13758         from pinvoke functions.
13759         
13760         * marshal.c (mono_ftnptr_to_delegate): Implement this.
13761
13762 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13763
13764         * culture-info-tables.h: reflecting locale-builder updates.
13765
13766 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
13767
13768         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
13769         #59086.
13770
13771 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
13772
13773         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
13774         * icall.c: Modified icalls for RNG.
13775         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
13776         Windows (CryptoAPI).
13777
13778 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
13779
13780         * locales.c: Fix build.
13781
13782 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
13783
13784         * culture-info-tables.h: reflecting locale-builder updates.
13785
13786 2004-05-25  Jackson Harper  <jackson@ximian.com>
13787
13788         * locales.c: When creating the current culture use the $LANGs
13789         specific culture. So DateTimeFormat and NumberFormat entries are created.
13790         
13791 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
13792
13793         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
13794         a char array as parameter.
13795
13796 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
13797
13798         * image.c: In mono_image_open(), always use an absolute path name to
13799           look for already loaded images.
13800
13801 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
13802
13803         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
13804         missing in the windows build (like older cygwin include files).
13805
13806 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
13807
13808         * icall.c: Fixed check for possible integer overflow in Buffer_
13809         BlockCopy icall. Replaced comments style // by /* */.
13810
13811 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
13812
13813         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
13814         
13815         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
13816         check after MONO_VTADDR. Fixes pinvoke2.exe.
13817
13818         * marshal.h marshal.c metadata.h: Add beginnings of support for
13819         ftnptr -> delegate marshalling.
13820
13821 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
13822
13823         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
13824         * threads.c: Fix warnings.
13825
13826 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
13827
13828         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
13829         * icall.c: Registered icalls for Suspend and Resume.
13830         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
13831           Thread.Abort.
13832         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
13833         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
13834         * process.c: Use WaitForSingleObjectEx.
13835         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
13836           checkpoints.
13837         * threads.c, threads.h: Make use of new Ex wait methods. Improved
13838           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
13839           for Suspend and Resume. Added new mono_thread_stop, used for stoping
13840           background threads. Added basic support for Abort in Windows.
13841           Start new threads using a managed delegate invoke wrapper. This wrapper
13842           has an interruption checkpoint that is needed since an interruption
13843           can be requested before the thread leaves the unmanaged code that starts 
13844           the thread.
13845         * marshal.c: Added interruption checkpoint after every native call, and
13846           also before managed calls for wrappers called from unmanaged code to
13847           go into managed code.
13848         * object.h: Added new field in MonoThread to keep track of interruption
13849           requests.
13850
13851 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
13852
13853         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
13854         calls.
13855
13856 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13857
13858         * appdomain.c:
13859         * assembly.c:
13860         * gc.c:
13861         * locales.c:
13862         * mono-config.c:
13863         * rand.c: getenv -> g_getenv (windows!)
13864
13865         * process.c: complete_path is also used on non-windows platforms.
13866
13867 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13868
13869         * icall.c: new signature for Process_Start.
13870
13871         * process.[ch]: new signature for Process_Start. If we're on windows
13872         and UseShellExecute is false, we have to search for the program by
13873         ourselves if we don't get a full path.
13874
13875 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
13876
13877         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
13878         marshalling and call CleanUpNativeData if needed. Fixes #58646.
13879
13880 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13881
13882         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
13883         Fixes bug #58373.
13884
13885 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13886
13887         * process.c: use double quotes to quote program name and arguments on
13888         windows. Fixes bug #58575.
13889
13890 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13891
13892         * file-io.c: don't return "." and ".." when using windows Find*File.
13893
13894 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
13895
13896         * marshal.c: Don't pass wrappers to message init because method 
13897         addressed used to lookup metadata. part of remoting[2|3] fix.
13898
13899 2004-05-15  Jackson Harper  <jackson@ximian.com>
13900
13901         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
13902         path is essentially the same as MONO_PATH except that it points to
13903         GACs instead of lib directories.
13904         * loader.h: The user gac is gone so we dont need function to
13905         enable/disable it.
13906         * mono-config.c: user gac option is now gone.
13907         
13908 2004-05-15  Jackson Harper  <jackson@ximian.com>
13909
13910         * culture-info.h: Make defines more consistent, add calendar data
13911         to the culture info table.
13912         * culture-info-tables.h: Add basic calendar data. Basically
13913         everyone gets default gregorian until all the data is
13914         updated.
13915         * locales.c: Use the new consistent defines. Set calendar data for
13916         culture info objects.
13917         * object.h: add a field for calendar data to CultureInfo
13918         
13919 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
13920
13921         * image.c: image->runtime_invoke_cache is keyed on signatures now.
13922         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
13923         a signature.
13924         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
13925         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
13926         an extra param that is the pointer of the method to invoke. The IL for
13927         the invoke method is no longer specific to the method, but to the
13928         signature of the method. Thus, we can share the same code for multiple
13929         methods. This reduces the number of methods that have to be compiled.
13930
13931 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
13932
13933         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
13934
13935         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13936
13937         * icall.c: Optimize Buffer.BlockCopy.
13938
13939 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13940
13941         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
13942         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
13943         quote). Changed them to "MMMM yyyy".
13944
13945 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
13946
13947         * rand.c
13948         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
13949
13950 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
13951
13952         * reflection.h: Updated after changes to managed structures.
13953
13954         * appdomain.c: Bump corlib version.
13955
13956 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13957
13958         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
13959         windows.
13960
13961 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13962
13963         * Makefile.am: link to ../os/libmonoos.la on windows.
13964
13965         * assembly.c:
13966                 -If MONO_DEBUG, warn about non-existing directories in
13967                 MONO_PATH.
13968                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
13969                 compile time variable.
13970                 -Removed init_default_path and call mono_set_rootdir from
13971                 libmonoos.a instead (windows only).
13972
13973         * assembly.h: declare mono_assembly_getrootdir().
13974
13975         * domain.c:
13976         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
13977
13978         * loader.c: s/getenv/g_getenv/
13979
13980 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
13981
13982         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
13983
13984         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
13985
13986         * metadata.h: Add new marshalling conversions.
13987
13988         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
13989         function.
13990
13991         * reflection.c (mono_reflection_get_type): Lookup the type in all
13992         modules of a multi-module assembly. Fixes #58291.
13993
13994 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
13995
13996         * threads.c: Before aborting a background, set the StopRequested
13997         state.  This avoids throwing the Abort exception.
13998         In mono_thread_manage, don't continue with the shutdown until all
13999         aborted threads have actually stopped.
14000
14001 2004-05-10  Jackson Harper  <jackson@ximian.com>
14002
14003         * locales.c: Remove the modifier from culture names.
14004         
14005 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14006
14007         * Makefile.am: monosn is not installed any more. It has been deprecated
14008         in favor of sn.
14009
14010 2004-05-07  Jackson Harper  <jackson@ximian.com>
14011
14012         * locales.c
14013         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
14014         Fix array construction, add bailout if the length is 0.
14015
14016 2004-05-07  Dick Porter  <dick@ximian.com>
14017
14018         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
14019         machine doesn't have a DNS entry.  Patch by Urs Muff
14020         (umuff@quark.com), fixes bug 57928.
14021
14022 2004-05-06  Jackson Harper  <jackson@ximian.com>
14023
14024         * reflection.c: Handle null PublicTokens properly. alloc mem for
14025         assembly names culture so we dont crash when freeing it.
14026         
14027 2004-05-06  Jackson Harper  <jackson@ximian.com>
14028
14029         * assembly.c: Check the usergac when loading with partial names.
14030         
14031 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
14032
14033         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
14034         does nothing for now (not required for Linux/Windows) but the class
14035         library can call it (and a newer or modified runtime could need it).
14036         * icall.c: Registred icall.
14037
14038 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14039
14040         * loader.c: prints a message on module loading error we set MONO_DEBUG
14041         environment variable.
14042
14043 2004-05-05  Jackson Harper  <jackson@ximian.com>
14044
14045         * appdomain.c: Handle PublicKeyToken=null properly.
14046         
14047 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
14048
14049         * environment.c|h: Added icall ves_icall_System_Environment_
14050         GetOSVersionString to get the current OS version as a string.
14051         * icall.c: Registred icall.
14052
14053 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
14054
14055         * object.c: in mono_object_get_virtual_method(), take into account that
14056         non-virtual methods don't have a slot in the vtable. Check needed when
14057         the object is a proxy.
14058
14059 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
14060
14061         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
14062         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
14063
14064         * object.c (mono_class_compute_gc_descriptor): Fix warning.
14065
14066         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
14067         passed when a valuetype is expected.
14068
14069         * object.c (mono_unhandled_exception): Only set the exit code if the
14070         exception happens in the main thread. Fixes thread5.exe.
14071
14072         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
14073         invalid names. Fixes #58047.
14074
14075 2004-05-03  Jackson Harper  <jackson@ximian.com>
14076
14077         * assembly.c: This line was committed accidently and is unneeded.
14078         
14079 2004-05-03  Jackson Harper  <jackson@ximian.com>
14080
14081         * icall.c: Add new icall for Assembly::LoadWithPartialName
14082         * assembly.c/.h: new function that probes the GAC to load partial
14083         assembly names by Paolo Molaro.
14084         
14085 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14086
14087         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
14088         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
14089         (type_get_fully_qualified_name): Added PublicKeyToken when building a
14090         full type name.
14091
14092 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14093
14094         * appdomain.c: fixed check for 'neutral' culture and removed warning.
14095         * reflection.c: fix bug when parsing a full type name and Version is not
14096         the last thing in the string.
14097
14098 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
14099
14100         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
14101         crashes when it is freed.
14102
14103 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14104
14105         * assembly.c: print the compat warning to stderr.
14106
14107 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
14108
14109         * assembly.c (mono_assembly_load_references): Add a compatibility
14110         hack to run old applications that might be still referencing the
14111         3300-based assemblies, only do this for System.xxx.
14112
14113 2004-05-01  Jackson Harper  <jackson@ximian.com>
14114
14115         * appdomain.c: If the culture is neutral we set it to "".
14116         
14117 2004-04-29  Jackson Harper  <jackson@ximian.com>
14118
14119         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
14120
14121 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
14122  
14123         * string-icalls.c: added low overhead function for copying chars
14124         * icall.c: added needed icall for the above function
14125  
14126 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14127
14128         * icall.c: fix return value of get_global_assembly_cache.  Implemented
14129         Environment.GetLogicalDrives.
14130
14131 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
14132
14133         * rand.c: try and talk to egd or prngd
14134         for random bytes if opening devices fail.
14135
14136 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
14137
14138         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
14139         alignment for the type using the native alignment of its members 
14140         instead of using klass->min_align.
14141
14142         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
14143
14144 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14145
14146         * file-io.c:
14147         * socket-io.c: added check for sys/aio.h.
14148
14149 2004-04-28  Dick Porter  <dick@ximian.com>
14150
14151         * threads.c: Don't abort a thread thats already aborting, when
14152         terminating everything.
14153
14154 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14155
14156         * icall.c: added 2 new async calls for Socket.
14157
14158         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
14159         IO on *nix systems.
14160
14161         * threadpool.c: removed unused variable.
14162
14163 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
14164
14165         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
14166
14167 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
14168
14169         * locales.c: put back string_invariant_tolower () and
14170         string_invariant_toupper ().
14171
14172 2004-04-26 David Waite <mass@akuma.org>
14173
14174         * file-io.h:
14175         * socket-io.h:
14176         * threads.h:
14177         * unicode.h: remove comma from end of enumeration declarations
14178
14179 2004-04-26 David Waite <mass@akuma.org>
14180
14181         * debug-mono-symfile.h:
14182         * decimal.c:
14183         * mono_debug.h:
14184         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
14185
14186
14187 2004-04-26  Jackson Harper  <jackson@ximian.com>
14188
14189         * appdomain.c: Increment version number.
14190         
14191 2004-04-26  Jackson Harper  <jackson@ximian.com>
14192
14193         * appdomain.c: Set assembly references public token value when
14194         PublicKeyToken is specified, not the hash_value. Free public token
14195         values when free assembly name data. Previously the public key
14196         token was hex decoded, however we are using hex encoded public key
14197         tokens, so this is not neccasary.
14198         * assembly.c: Lookup assemblies in the gac if their public token
14199         value is set. Add function to allow enabling user gac
14200         lookups. Specify whether or not the assembly was loaded from the
14201         GAC. Compare full assembly names when checking the cache for
14202         assemblies (Temporarily disabled see comment in code). Remove
14203         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
14204         specifies trace-loader they get extra info to stdout on the
14205         loading of assemblies.
14206         * image.h: Add a field for an assembly references public token
14207         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
14208         whether an assembly has been loaded from the GAC.
14209         * image.c: Remove a corlib -> mscorlib name mapping.
14210         * loader.h: Add function to enable/disable the user gac.
14211         * mono-config.c: Check if the usergac is enabled in the config
14212         file.
14213         * icall.c: New icall to determine whether or not an assembly has
14214         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
14215         * tabldefs.h: Add constant for assemblyref flag that specifies a
14216         full public key is used instead of a public token.
14217         * reflection.c: Remove mscorlib -> corlib mappings. Set
14218         PublicTokenValue instead of hash value. This value is a hex
14219         string so it does not need to be expanded.
14220
14221 2004-04-26  Martin Baulig  <martin@ximian.com>
14222
14223         * mono-debug-debugger.c (mono_debugger_initialize): Set
14224         `mono_debugger_initialized' before calling mono_debug_lock().
14225
14226 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
14227
14228         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
14229           InternalToUpper/InternalToLower.
14230         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
14231           removed invariant culture shortcut.  This is now done in managed code.
14232         * locales.c: (string_invariant_toupper/tolower) removed.
14233
14234 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14235
14236         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
14237         Added Poll internal call.
14238
14239         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
14240         call for Poll. Select was too heavy for polling a single socket.
14241
14242         * threadpool.[ch]: added mono_threadpool_cleanup.
14243         * threads.c: use it. Don't use Thread_Abort on windows.
14244
14245 2004-04-23  Martin Baulig  <martin@ximian.com>
14246
14247         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
14248
14249 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
14250
14251         * icall.c: Registred new icalls for key pair protection and added an
14252         icall for Environment.GetFolderPath on Windows.
14253         * security.c|h: Added new icalls for key pair protection.
14254
14255 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14256
14257         * socket-io.c: don't display the non-supported family warning for known
14258         families. Now this is not displayed on windows when checking support
14259         for IPv4/IPv6.
14260
14261 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14262
14263         * class.c: don't display the layout warning for static fields.
14264
14265 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
14266
14267         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
14268         * locales.c, locales.h: Added new icalls for culture-specific
14269         Char.ToLower and Char.ToUpper.
14270
14271 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14272
14273         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
14274         by David Waite.
14275
14276 2004-04-20  Martin Baulig  <martin@ximian.com>
14277
14278         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
14279         of the type name before passing it to mono_reflection_type_from_name().
14280
14281 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
14282
14283         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
14284         encodings here. Fixes #56965.
14285
14286 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
14287
14288         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
14289         fix test on strstr result not that I can see anything that
14290         relies on the result.
14291
14292 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
14293
14294         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
14295         Fixes #57081.
14296
14297         * marshal.c (mono_marshal_get_string_encoding): New helper function.
14298
14299         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
14300         function to determine which marshalling to use for strings. Fixes
14301         #56965.
14302
14303         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
14304
14305         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
14306
14307 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
14308
14309         * icall.c: #include mono-config.h
14310
14311 2004-04-15  Jackson Harper  <jackson@ximian.com>
14312
14313         * culture-info-tables.h: Fix date formats for en-US culture.
14314         
14315 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
14316
14317         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
14318         ThreadPool.SetMinThreads.
14319         * threadpool.c: Implemented ThreadPool.GetMinThreads and
14320         ThreadPool.SetMinThreads.
14321
14322 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
14323
14324         * mono-config.c: also load the .config file in the directory
14325         where the assembly was found.
14326
14327 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
14328
14329         * assembly.c: load per-assembly config files.
14330         * icall.c: decrapified code to get the config dir and moved to
14331         mono-config.c.
14332         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
14333         per-assembly config files. When doing a dll map lookup give precedence
14334         to the per-assembly data.
14335
14336 2004-04-14  Martin Baulig  <martin@ximian.com>
14337
14338         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
14339         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
14340         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
14341
14342         * mono-debugger-debugger.c: While the debugger is locked, remember
14343         whether the symbol tables have changes and send one single
14344         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
14345
14346 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
14347
14348         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
14349
14350         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
14351         function.
14352
14353         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
14354         account when marshalling string arrays. Fixes #56965.
14355
14356 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
14357
14358         * icall.c: Add new icalls mapping for security.
14359         * security.c|h: Add internal calls for WindowsIdentity,
14360         WindowsImpersonationContext and WindowsPrincipal.
14361
14362 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
14363
14364         * class.c: Added comment to ensure the System.MonoDummy class
14365         is removed when no longer necessary
14366
14367 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
14368
14369         * appdomain.c: Pass arguments to the bootstraping exceptions to
14370         minimize JITed methods at boot
14371
14372         * metadata.c (mono_exception_from_name_two_strings): Allow for the
14373         second string to be null.
14374
14375         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
14376         Change the protocol to minimize the JIT methods at startup.  Now
14377         it Returns the internal codepage, if the value of "int_code_page"
14378         is 1 at entry, and we can not compute a suitable code page
14379         number, returns the code page as a string.
14380
14381 2004-04-13  Jackson Harper  <jackson@ximian.com>
14382
14383         * culture-info-tables.h: Fix number of decimal digits for all
14384         english locales.
14385
14386 2004-04-13  Jackson Harper  <jackson@ximian.com>
14387
14388         * icall.c: Clairfy out of sync error message. It is not always
14389         your corlib that is out of sync.
14390
14391 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
14392
14393         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
14394         properties when only the set accessor is overriden. Fixes #55874.
14395
14396 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
14397
14398         * assembly.c (mono_assembly_load_references): Make this thread safe.
14399         Fixes #56327.
14400
14401 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
14402
14403         * monosn.c: Add missing initialization calls.
14404
14405 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
14406
14407         * locales.c:
14408         ves_icall_System_Globalization_CultureInfo_construct_number_format
14409         Fix g_assert so it compiles on fussier compilers re int/ptr
14410         mismatch
14411
14412 2004-04-08  Dick Porter  <dick@ximian.com>
14413
14414         * socket-io.h:
14415         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
14416         53992.  Also rearrange the code so that the internal calls return
14417         an error value and exceptions are thrown from managed code.
14418
14419         * icall.c: Add type info to the socket icalls.
14420
14421 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14422
14423         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
14424         owes me a beer.
14425
14426 2004-04-07  Martin Baulig  <martin@ximian.com>
14427
14428         * class.c (mono_class_from_generic_parameter): Don't default
14429         `klass->parent' to `mono_defaults.object_type'.
14430
14431 2004-04-07  Martin Baulig  <martin@ximian.com>
14432
14433         * reflection.c (mono_reflection_initialize_generic_parameter): Set
14434         `param->pklass->reflection_info'.       
14435
14436 2004-04-07  Jackson Harper  <jackson@ximian.com>
14437
14438         * culture-info-tables.h: Fix date separator symbol.
14439         
14440 2004-04-07  Martin Baulig  <martin@ximian.com>
14441
14442         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
14443         from System.Type to System.MonoType.
14444
14445 2004-04-07  Martin Baulig  <martin@ximian.com>
14446
14447         * reflection.h
14448         (MonoReflectionGenericParam): Added `has_reference_type' and
14449         `has_value_type' fields.
14450
14451         * reflection.c (mono_image_get_generic_param_info): Encode the
14452         correct flags if we have the `class' or `struct' constraint.
14453
14454 2004-04-07  Martin Baulig  <martin@ximian.com>
14455
14456         * reflection.h
14457         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
14458
14459 2004-04-07  Jackson Harper  <jackson@ximian.com>
14460
14461         * appdomain.c: Revert extra patches, just wanted to bump the
14462         version number.
14463         
14464 2004-04-07  Jackson Harper  <jackson@ximian.com>
14465
14466         * Makefile.am: Add culture-info private headers.
14467         * icall.c: Add new icalls for contructing locales.
14468         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
14469         * locales.h: Declare new culture info construction methods.
14470         * object.h: Add new fields used to avoid the CultureMap to
14471         MonoCultureInfo.
14472         * culture-info.h: Definition of structs used in the culture info
14473         tables.
14474         * culture-info-tables.h: Autogenerated tables that contain culture
14475         info data. This file was generated with the locale-builder tool.
14476         * appdomain.c: Incement corlib version number.
14477         
14478 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
14479
14480         * appdomain.c: (mono_runtime_init) move mono_thread_init
14481         to before mono_object_new calls so critical sections
14482         are initialized before use.
14483
14484 2004-04-07  Martin Baulig  <martin@ximian.com>
14485
14486         * icall.c
14487         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
14488         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
14489         (ves_icall_MonoGenericParam_initialize): Removed.
14490         (monogenericparam_icalls): Removed.
14491         (generictypeparambuilder_icalls): Added new table for
14492         System.Reflection.Emit.GenericTypeParameterBuilder.
14493
14494         * reflection.c
14495         (mono_reflection_define_generic_parameter): Removed.
14496         (mono_reflection_initialize_generic_parameter): This is now called
14497         from GenericTypeParameterBuilder's .ctor.
14498
14499 2004-04-06  Martin Baulig  <martin@ximian.com>
14500
14501         * class.c (mono_class_init): Don't inflate nested classes in a
14502         generic instance.
14503         (mono_type_get_name_recurse): Include the generic arguments for
14504         generic instances and generic type declarations.
14505         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
14506         (_mono_class_get_instantiation_name): Removed.
14507         (mono_class_create_generic): Always use `gklass->name' as our name.
14508
14509         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
14510
14511         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
14512         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
14513         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
14514         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
14515         closed generic methods here.
14516
14517         * reflection.c
14518         (mono_reflection_generic_inst_get_nested_types): Removed.
14519         (inflate_mono_method): Copy the generic parameters from the
14520         MonoMethodHeader into out MonoGenericMethod.
14521
14522 2004-04-06  Martin Baulig  <martin@ximian.com>
14523
14524         * row-indexes.h
14525         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
14526
14527         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
14528
14529         * reflection.c (build_compressed_metadata): If we have any entries
14530         in the GenericParam, MethodSpec or GenericParamConstraint tables,
14531         set the header version to 1.1.
14532
14533 2004-04-06  Martin Baulig  <martin@ximian.com>
14534
14535         * class.c (mono_class_init): If we're a generic instance,
14536         initialize our nested classes, too.
14537         (_mono_class_get_instantiation_name): Deal with the new `!%d'
14538         suffix. 
14539
14540 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14541
14542         * process.c: quote the argument passed to the shell on windows.
14543
14544 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
14545
14546         * threads.c (mono_alloc_special_static_data): Allow this to be
14547         called during startup.
14548
14549 2004-04-02  Martin Baulig  <martin@ximian.com>
14550
14551         * icall.c
14552         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
14553
14554 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
14555
14556         * icall.c: Fix build.
14557
14558 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
14559
14560         * Makefile.am: Added security.c|h.
14561         * icall.c: Added icall for get_UserName;
14562         * security.c: New file for security related icalls. Added function
14563         get_UserName for System.Environment (fix #56144).
14564         * security.h: New. Header file for security.c
14565
14566 2004-04-02  Dick Porter  <dick@ximian.com>
14567
14568         * icall.c: Deleted the icalls that were obsoleted some time ago
14569         by the ICU string code, and which were mixed into the icall
14570         rearranging.  Fixes bug 55969.
14571
14572         * string-icalls.h: 
14573         * string-icalls.c: Deleted the code that those icalls reference.
14574
14575 2004-04-01  Martin Baulig  <martin@ximian.com>
14576
14577         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
14578
14579         * class.c (mono_class_from_generic_parameter): Don't set 
14580         TYPE_ATTRIBUTE_INTERFACE.
14581         (my_mono_class_from_generic_parameter): Likewise.
14582
14583 2004-04-01  Martin Baulig  <martin@ximian.com>
14584
14585         * loader.c (find_method): Added an optional `MonoClass *ic'
14586         argument to search in a specific interface.
14587         (mono_get_method_constrained): New public function.
14588
14589 2004-04-01  Martin Baulig  <martin@ximian.com>
14590
14591         * reflection.c (mono_image_get_generic_field_token): Use the
14592         `handleref' cache here.
14593
14594 2004-04-01  Martin Baulig  <martin@ximian.com>
14595
14596         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
14597
14598         * reflection.c (create_generic_typespec): Use the `typespec' hash
14599         here, not the `typeref' one.    
14600
14601 2004-04-01  Martin Baulig  <martin@ximian.com>
14602
14603         * class.c (mono_class_inflate_generic_type): Moved the
14604         functionality into a new static inflate_generic_type() which
14605         returns NULL if it didn't do anything.  Only increment the
14606         `mono_stats.inflated_type_count' if we actually inflated
14607         something.
14608         (mono_class_get_full): Check the classes type to see whether we
14609         need to inflate it; also inflate MONO_TYPE_(M)VAR.
14610
14611 2004-04-01  Jackson Harper  <jackson@ximian.com>
14612
14613         * reflection.c: Set culture for assembly references.
14614         
14615 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
14616
14617         * reflection.[ch], icall.[ch], Fix support for pinning variables.
14618
14619 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14620
14621         * assembly.c:
14622         (do_mono_assembly_open): the critical section also covers
14623         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
14624
14625 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14626
14627         * threads.c:
14628         (mono_manage_threads): abort the background threads when finishing.
14629         Fixes bug #47232.
14630
14631 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14632
14633         * gc.c: only close the done_event handle if there was no timeout.
14634         C-ified comments.
14635
14636 2004-03-30  Martin Baulig  <martin@ximian.com>
14637
14638         * icall.c (icall_entries): It's called "System.Activator", not
14639         "System.Activation".    
14640
14641 2004-03-30  Martin Baulig  <martin@ximian.com>
14642
14643         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
14644         (mono_class_create_from_typespec): Likewise.
14645
14646 2004-03-30  Martin Baulig  <martin@ximian.com>
14647
14648         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
14649         `has_ctor_constraint' and `initialized'.
14650
14651 2004-03-30  Martin Baulig  <martin@ximian.com>
14652
14653         * reflection.c (encode_new_constraint): New static function to add
14654         the constructor constraint attribute to a type parameter.
14655         (encode_constraints): Call encode_new_constraint() if necessary.
14656
14657         * reflection.h
14658         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
14659
14660         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
14661         
14662 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
14663
14664         * reflection.c, icall.c: add support for pinning variables. 
14665
14666 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
14667
14668         * marshal.c (mono_marshal_get_managed_wrapper):
14669         init bool local with zero rather than null.
14670
14671 2004-03-29  Martin Baulig  <martin@ximian.com>
14672
14673         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
14674         the "official" behavior here.
14675         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
14676
14677 2004-03-29  Martin Baulig  <martin@ximian.com>
14678
14679         * icall.c: Reflect latest API changes.
14680
14681 2004-03-29  Martin Baulig  <martin@ximian.com>
14682
14683         * loader.c (mono_get_method_from_token): Also call
14684         mono_metadata_load_generic_params () for abstract and interface
14685         methods; replace the type arguments in the method signature with
14686         the ones which are loaded from the metadata.
14687
14688 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
14689
14690         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
14691         of the lock is not the current thread. MS.NET don't do it, in spite of
14692         what the documentation says. See bug #56157.
14693
14694 2004-03-28  Martin Baulig  <martin@ximian.com>
14695
14696         * class.c (mono_class_init): Don't call init_properties() and
14697         init_events() for generic instances; set `prop->parent' when
14698         inflating properties.
14699
14700         * reflection.c (mono_generic_inst_get_object): Call
14701         `mono_class_init (ginst->klass)'.
14702         (mono_type_get_object): Only create a MonoGenericInst if your
14703         generic type is a TypeBuilder.
14704         (do_mono_reflection_bind_generic_parameters): Only set
14705         `ginst->is_dynamic' if our generic type is a TypeBuilder.
14706
14707 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
14708
14709         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
14710         Fixes #56091.
14711
14712 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14713
14714         * icall.c: added Kill_internal icall.
14715         * process.[ch]: added Kill_internal icall.
14716
14717 2004-03-25  Martin Baulig  <martin@ximian.com>
14718
14719         * class.h (MonoStats): Added `generic_instance_count',
14720         `inflated_method_count', `inflated_type_count' and
14721         `generics_metadata_size'.       
14722
14723 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14724
14725         * reflection.c: no warnings now.
14726
14727 2004-03-25  Martin Baulig  <martin@ximian.com>
14728
14729         * class.c (mono_class_get_full): New public function; does a
14730         mono_class_get(), but also takes a `MonoGenericContext *'.
14731
14732         * loader.c (mono_field_from_memberref): Renamed to
14733         `field_from_memberref', made static and added `MonoGenericContext *'
14734         argument.
14735         (mono_field_from_token): Added `MonoGenericInst *' argument.
14736         (method_from_memberef): Likewise.
14737         (mono_get_method_from_token): Likewise.
14738         (mono_get_method_full): New public function; does a
14739         mono_get_method(), but also takes a `MonoGenericContext *'.
14740
14741         * verify.c (mono_method_verify): Get the method's generic context
14742         and pass it to mono_field_from_token(), mono_get_method_full() and
14743         mono_class_get_full().
14744
14745 2004-03-25  Martin Baulig  <martin@ximian.com>
14746
14747         * class.c (mono_class_inflate_generic_type): Take a
14748         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
14749         `MonoGenericMethod *'.
14750
14751 2004-03-25  Martin Baulig  <martin@ximian.com>
14752
14753         * loader.h (MonoMethodInflated): Store the MonoGenericContext
14754         instead of the MonoGenericMethod here.
14755
14756 2004-03-25  Martin Baulig  <martin@ximian.com>
14757
14758         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
14759         each time we create a new MonoGenericInst, we also create a new
14760         context which points back to us.
14761
14762         * class.c (inflate_method): Use `ginst->context' instead of
14763         creating a new context.
14764
14765         * loader.c (method_from_memberref): Use
14766         `klass->generic_inst->context' instead of creating a new context.
14767
14768 2004-03-25  Martin Baulig  <martin@ximian.com>
14769
14770         * class.h (MonoGenericContext): New struct.
14771         (MonoGenericMethod): Removed `generic_inst'.
14772
14773         * class.c (mono_class_inflate_generic_method): Take a
14774         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
14775
14776 2004-03-25  Martin Baulig  <martin@ximian.com>
14777
14778         * loader.h (MonoMethodInflated): New typedef.
14779
14780         * metadata.h (MonoMethodSignature): Removed `gen_method', make
14781         `generic_param_count' consume just 30 bits, added `is_inflated'
14782         and `has_type_parameters' flags (one bit each).
14783
14784         * class.c (mono_class_inflate_generic_method): Create a
14785         MonoMethodInflated instead of a MonoMethodNormal and set
14786         `is_inflated' in the method signature.
14787
14788         * class.h (MonoGenericMethod): Removed `generic_method'.
14789
14790 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
14791
14792         * image.c: Make sure the name of a MonoImage is always an absolute path.
14793           This fixes bug #54415.
14794
14795 2004-03-24  Martin Baulig  <martin@ximian.com>
14796
14797         * class.c (mono_class_setup_vtable): If we're a generic instance,
14798         use our generic type's vtable size.
14799
14800 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
14801
14802         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
14803         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
14804         problems.
14805
14806 2004-03-23  Martin Baulig  <martin@ximian.com>
14807
14808         * class.h (MonoDynamicGenericInst): Added `int count_events' and
14809         `MonoEvent *events'.
14810
14811         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
14812         (typebuilder_icalls): Added "get_event_info"; calls
14813         mono_reflection_event_builder_get_event_info(). 
14814
14815         * reflection.c (mono_reflection_generic_inst_initialize): Added
14816         `MonoArray *events'.
14817         (mono_reflection_event_builder_get_event_info): New function.
14818
14819 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
14820
14821         * object.h: add mono_type_initialization_init
14822
14823         * object.c (mono_runtime_class_init): 
14824         implement class constructor synchronization rules
14825         to cope with threading issues.  
14826         add mono_type_initialization_init
14827
14828         * appdomain.c (mono_runtime_init): call 
14829         mono_type_initialization_init
14830
14831         * class.h: removing initializing field from MonoVTable
14832
14833 2004-03-23  Martin Baulig  <martin@ximian.com>
14834
14835         * class.c (my_mono_class_from_generic_parameter): Use
14836         `param->name' if it's not NULL. 
14837
14838 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
14839
14840         * class.c: do not insert non-virtual methods in the vtable.
14841         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
14842         that means the method is non-virtual. This never would have
14843         happened before.
14844
14845 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
14846
14847         * profiler.c: Added lock for accessing coverage_hash.
14848
14849 2004-03-22  Martin Baulig  <martin@ximian.com>
14850
14851         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
14852         `method->method->signature->generic_param_count != 0' to make it
14853         work for interface methods.
14854
14855 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14856
14857         * process.c: quote the string passed to the shell using g_shell_quote.
14858
14859 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14860
14861         * threads.c:
14862         (mono_threads_manage): don't remove the finalizer thread and self
14863         from the threads hash table so that mono_thread_manage can be called
14864         more than once.
14865
14866 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14867
14868         * process.c: quote the arguments when UseShellExecute is true. Fixes
14869         bug #55790.
14870
14871 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14872
14873         * threads.c: set mono_thread_detach as a cleanup routine for every
14874         thread. This way it's always executed upon thread termination, either
14875         aborted or finished normally. No more xsp hangs!
14876
14877 2004-03-17  Martin Baulig  <martin@ximian.com>
14878
14879         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
14880         `int count_nested' and a `MonoType **nested'.
14881
14882         * reflection.c (mono_reflection_bind_generic_parameters): Moved
14883         most of the functionality into a new static
14884         do_mono_reflection_bind_generic_parameters() and don't take a
14885         `MonoType *nested_in' argument any more.  Don't compute nested
14886         types here.
14887         (mono_reflection_generic_inst_get_nested_types): New public method
14888         to get nested types.
14889
14890         * class.c (mono_class_create_generic): Set `klass->nested_in' if
14891         we're a nested class.
14892
14893         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
14894         mono_reflection_generic_inst_get_nested_types() to compute the
14895         nested types.
14896
14897 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
14898
14899         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
14900         descriptive error message under windows.
14901         
14902 2004-03-17  Martin Baulig  <martin@ximian.com>
14903
14904         * class.c (dup_type): Added `const MonoType *original' argument;
14905         copy the attrs from the original type.
14906
14907 2004-03-17  Martin Baulig  <martin@ximian.com>
14908
14909         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
14910         `m->generic_inst_cache' here.
14911
14912 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
14913
14914         * exception.h exception.c: Add stack_overflow_exception.
14915
14916 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14917
14918         * threadpool.c:
14919         (overlapped_callback): call SetEvent *after* invoking the callback.
14920         No need to call CloseHandle.
14921
14922 2004-03-16  Martin Baulig  <martin@ximian.com>
14923
14924         * reflection.c (mono_image_get_fieldref_token): Take a
14925         `MonoReflectionField *' instead of a `MonoClassField *' and a
14926         `MonoClass *'; store the `MonoReflectionField *' in the hash.
14927
14928 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14929
14930         * appdomain.c: don't add the culture to the filename we're looking for
14931         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
14932
14933 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14934
14935         * locales.c: don't ignore symbols when doing case insensitive compares.
14936         Thanks Dick! Fixes bug #54046.
14937
14938         * threads.c: surround 'threads' usage with enter/leave in
14939         mono_thread_manage.
14940
14941 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
14942
14943         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
14944         implicitly marshalled as [Out]. Fixes #55450.
14945
14946         (mono_marshal_get_runtime_invoke): Zero out the result if there is
14947         an exception.
14948
14949 2004-03-16  Martin Baulig  <martin@ximian.com>
14950
14951         * class.c (mono_class_from_generic_parameter): Use the actual
14952         parameter name. 
14953
14954 2004-03-16  Martin Baulig  <martin@ximian.com>
14955
14956         * reflection.c (type_get_signature_size): New static function.
14957         Compues the size of the type in a method signature.
14958         (method_get_signature_size): New static function; calls
14959         type_get_signature_size() to compute the actual size of the
14960         method's signature.
14961         (method_encode_signature): Use method_get_signature_size() to get
14962         the signature's size rather than using `nparams * 10'.
14963
14964 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14965
14966         * file-io.h: define here WapiOverlapped on windows. I don't want the
14967         regular OVERLAPPED one.
14968
14969         * file-io.c:
14970         * threadpool.c: somehow, BindIoCompletionCallback is not found.
14971         Disabling AIO on windows.
14972
14973 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14974
14975         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
14976         bug #55385.
14977
14978 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14979
14980         * appdomain.c: upgraded corlib version.
14981
14982         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
14983         and BeginWrite. Allow opening files for asynchrnous operations.
14984
14985         * file-io.h: new struct that maps FileStreamAsyncResult.
14986         * icall.c: added new icalls.
14987         * process.[ch]: support setting child process environment variables
14988         and use the SHELL or COMSPEC when UseShellExecute is true.
14989
14990         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
14991         callback for async. IO is here and also BindHandle.
14992
14993         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
14994         from here.
14995
14996 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
14997
14998         * reflection.c (create_custom_attr): Allow len == 0.
14999
15000         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
15001         computation on big-endian machines.
15002
15003 2004-03-13  Martin Baulig  <martin@ximian.com>
15004
15005         * class.h (MonoGenericInst): Added `int count_ifaces'.
15006
15007         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
15008         `ginst->count_ifaces' instead `klass->interface_count' since we
15009         may get called before the vtable is created.
15010
15011         * loader.c (mono_method_get_param_names): If we're a generic
15012         instance, return and don't initialize the class.
15013
15014         * reflection.c (mono_reflection_setup_generic_class): Don't call
15015         ensure_runtime_vtable().
15016         (mono_reflection_bind_generic_parameters): Set
15017         `ginst->count_ifaces'.
15018
15019 2004-03-11  Jackson Harper <jackson@ximian.com>
15020
15021         * icall.c:
15022         * unicode.c:
15023         * unicode.h: Remove unused System.Char icalls.
15024         
15025 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
15026
15027         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
15028         code when we P/Invoke the first library in Windows.Forms, instead
15029         of when we first open the assembly.
15030
15031         * assembly.c: Drop the lookup from here.
15032
15033 2004-03-10  Martin Baulig  <martin@ximian.com>
15034
15035         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
15036         class for properties, fields and events.  Finally fixes #54945.
15037
15038 2004-03-10  Martin Baulig  <martin@ximian.com>
15039
15040         * metadata.c (mono_metadata_class_equal): New static function;
15041         checks whether two generic instances or two generic parameters are
15042         equal.
15043         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
15044         compare classes.        
15045
15046 2004-03-10  Martin Baulig  <martin@ximian.com>
15047
15048         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
15049
15050         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
15051         argument and write it into the `reflection_info' field.
15052
15053         * icall.c
15054         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
15055         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
15056
15057 2004-03-09  Jackson Harper  <jackson@ximian.com>
15058
15059         * char-conversions.h: use 8 bits for numeric data its all we need
15060         * icall.c: numeric data is only 8 bits now.
15061
15062 2004-03-09  Martin Baulig  <martin@ximian.com>
15063
15064         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
15065
15066         * class.c (init_properties, init_events): Initialize the new
15067         `parent' field.
15068
15069         * reflection.c (typebuilder_setup_properties): Likewise.
15070         (typebuilder_setup_events): Likewise.
15071
15072         * reflection.h (MonoEventInfo): Replaced `parent with
15073         `declaring_type' and `reflected_type'.
15074
15075         * icall.c (ves_icall_get_property_info): Distinguish between
15076         declaring and reflected type.
15077         (ves_icall_get_event_info): Likewise.
15078
15079 2004-03-09  Martin Baulig  <martin@ximian.com>
15080
15081         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
15082         (ves_icall_Type_GetField): Correctly set field->klass.
15083
15084 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
15085
15086         * loader.h: Fix warning.
15087
15088 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
15089
15090         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
15091         library routine if present.  Notice that it will still continue
15092         executing even if its missing, for those working on the Gtk#
15093         edition of Windows.Forms.
15094
15095         * assembly.c (do_mono_assembly_open): If loading the
15096         System.Windows.Forms call mono_loader_wini_init.
15097
15098 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
15099
15100         * class.h: Added MonoRemoteClass struct.
15101         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
15102         function for MonoStrings.
15103         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
15104         Added internal call for getting the proxy type.
15105         * marshal.c: Get the type of transparent proxies from its remote_class.
15106         Added methods that generate the IL for type checks and casts:
15107         mono_marshal_get_isinst, mono_marshal_get_castclass, 
15108         mono_marshal_get_proxy_cancast.
15109         * marshal.h: Declaration of the previous new methods.
15110         * object.c: Added new moethods for creating and updating MonoRemoteClass
15111         instances: mono_remote_class, mono_upgrade_remote_class, 
15112         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
15113         * verify.c: FIx transparent_proxy_fields layout.
15114         * appdomain.c: Bump corlib version.
15115
15116 2004-03-04  Jackson Harper  <jackson@ximian.com>
15117
15118         * icall.c: Add icall to access char conversion tables.
15119         * char-conversions.h: Character conversion tables.
15120         * Makefile.am: Add char-conversions.h private header file.
15121         
15122 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
15123
15124         * appdomain.c (unload_thread_main): Increase unloading timeout to
15125         10 sec as a temporary workaround for Nant problems.
15126
15127 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
15128
15129         * gc.c: Add checks for GC_enable and GC_disable.
15130
15131         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
15132         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
15133         (bug #54988).
15134         
15135 2004-02-27  Martin Baulig  <martin@ximian.com>
15136
15137         * reflection.c (mono_reflection_bind_generic_parameters): Take a
15138         `MonoReflectionType *' instead of a `MonoType *'.
15139
15140 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
15141
15142         * gc.c (run_finalize): Avoid finalizing the object representing the
15143         finalizer thread.
15144         (finalizer_thread): Fix warning.
15145
15146 2004-02-25  Martin Baulig  <martin@ximian.com>
15147
15148         * class.c (_mono_class_get_instantiation_name): Added `int offset'
15149         argument for nested types.
15150         (mono_class_create_generic): Added support for nested generictypes.
15151
15152         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
15153         `GList *nested'.
15154
15155         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
15156
15157         * reflection.c (method_encode_signature): Increase the minimum
15158         value of `size' from 10 to 11.
15159         (mono_reflection_bind_generic_parameters): Take `int type_argc'
15160         and `MonoType **types' arguments instead of the `MonoArray
15161         *types'; added `MonoType *nested_in'.  Recursively instantiate
15162         nested classes. 
15163
15164 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
15165
15166         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
15167         stack_overflow_ex members which are used by exception handling.
15168
15169         * appdomain.c (mono_runtime_init): Initialize the new members.
15170
15171         * gc.c (mono_gc_enable): New helper function.
15172         * gc.c (mono_gc_disable): New helper function.
15173
15174 2004-02-23  Martin Baulig  <martin@ximian.com>
15175
15176         * icall.c: I must have been really stupid - make it actually work
15177         this time ;-)
15178
15179 2004-02-23  Martin Baulig  <martin@ximian.com>
15180
15181         * loader.c (method_from_memberref): Only inflate the method if
15182         it's in another klass.
15183
15184 2004-02-23  Martin Baulig  <martin@ximian.com>
15185
15186         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
15187         (mono_class_init): If we're a generic instance and an interface,
15188         compute `class->interface_id'; also create `class->interfaces'
15189         here and inflate them.
15190
15191         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
15192         `ginst->is_open'.
15193         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
15194
15195         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
15196
15197 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
15198
15199         * reflection.c (method_encode_code): Improved the error message
15200         generated by the exception.
15201
15202 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15203
15204         * icall.c: Martin did not do what he said in the ChangeLog for
15205         2004-02-18, but put back the changes for properties and events.
15206         Commenting those changes out again and adding comment to bug #54518.
15207         
15208         * process.c: removed warning.
15209
15210 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
15211
15212         * marshal.c (emit_struct_conv): Print an error message instead of
15213         asserting when a type does not have the StructLayout attribute.
15214
15215 2004-02-20  Martin Baulig  <martin@ximian.com>
15216
15217         * reflection.c (mono_type_get_object): Also use the cache for
15218         generic instances.
15219         (mono_reflection_bind_generic_parameters): Always compute
15220         `ginst->ifaces'.        
15221
15222 2004-02-20  Martin Baulig  <martin@ximian.com>
15223
15224         * class.h (MonoGenericMethod): Removed `klass'.
15225
15226         * class.c (mono_class_inflate_generic_method): Added `MonoClass
15227         *klass' argument.
15228
15229 2004-02-20  Martin Baulig  <martin@ximian.com>
15230
15231         * reflection.c (method_encode_methodspec): Actually use the
15232         uninflated signature for the memberref.
15233
15234 2004-02-20  Martin Baulig  <martin@ximian.com>
15235
15236         * class.h (MonoGenericMethod): Removed `declaring'.
15237
15238         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
15239         is NULL, compute it here.
15240
15241 2004-02-20  Martin Baulig  <martin@ximian.com>
15242
15243         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
15244
15245         * metadata.c (mono_metadata_generic_inst_hash): New method.
15246         (mono_metadata_generic_inst_equal): New method.
15247
15248         * reflection.c (mono_reflection_bind_generic_parameters): Use the
15249         `klass->image->generic_inst_cache' cache to avoid creating
15250         duplicate MonoGenericInst's.
15251
15252         * class.c (mono_class_inflate_generic_type): Use the cache.
15253
15254 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
15255
15256         * object.c: fixed gc descriptor calculation for embedded valuetypes.
15257
15258 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15259
15260         * icall.c: added Socket.WSAIoctl icall.
15261
15262         * socket-io.[ch]: implemented
15263         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
15264
15265 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
15266
15267         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
15268
15269 2004-02-18  Urs C Muff  <umuff@quark.com>
15270
15271         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
15272         this work on PPC and other big-endian architectures.
15273
15274         * debug-mono-symfile.h: Prepended the names of all the `guint32'
15275         fields with an underscore to make sure they're only accessed by
15276         the read32() macro.
15277
15278 2004-02-18  Martin Baulig  <martin@ximian.com>
15279
15280         * icall.c: Put the klass->refclass changes back for methods and
15281         fields, but not for properties and events.  We're currently not
15282         distinguishing between DeclaringType and ReflectedType for
15283         properties and events, that's what caused the regressions.
15284
15285 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15286
15287         * object.c:
15288         (mono_async_result_new): the handle can be NULL.
15289
15290         * threadpool.c: Use an event instead of a semaphore, don't initialize
15291         it until needed. This saves quite a few semaphores from being created
15292         when using the threadpool.
15293
15294 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
15295
15296         * object.c (mono_string_is_interned_lookup): Fix interning of long
15297         strings. Fixes #54473.
15298
15299         * domain.c (ldstr_equal): Optimize if the two strings are equal.
15300
15301         * icall.c: Revert the klass->refclass changes since they introduce
15302         regressions (bug #54518).
15303
15304 2004-02-18  Martin Baulig  <martin@ximian.com>
15305
15306         * class.c (mono_class_init): If we're a generic instance and don't
15307         come from a TypeBuilder, inflate our members here.
15308         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
15309         (mono_class_create_generic): New public method.
15310         (mono_class_initialize_generic): Removed.
15311         (get_instantiation_name): Renamed to
15312         _mono_class_get_instantiation_name() and made it public.
15313
15314 2004-02-18  Martin Baulig  <martin@ximian.com>
15315
15316         * class.c (mono_class_inflate_generic_type): Clear the new
15317         instance's `nginst->klass' when inflating a generic instance.
15318         (mono_class_is_subclass_of): Added (basic) support for generic
15319         instances.
15320
15321 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
15322
15323         * appdomain.h, domain.c: use a MonoCodeManager instead of a
15324         MonoMempool to hold compiled native code.
15325
15326 2004-02-17  Martin Baulig  <martin@ximian.com>
15327
15328         * class.h (MonoDynamicGenericInst): Added `count_properties' and
15329         `properties'.
15330
15331         * reflection.c (mono_reflection_generic_inst_initialize): Added
15332         `MonoArray *properties' argument.
15333
15334         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
15335
15336 2004-02-17  Martin Baulig  <martin@ximian.com>
15337
15338         * icall.c (ves_icall_Type_GetFields): Renamed to
15339         ves_icall_Type_GetFields_internal() and added a
15340         `MonoReflectionType *rtype' argument; pass it to
15341         mono_field_get_object() to set the field's "reflected" type.
15342         (ves_icall_Type_GetConstructors): Likewise.
15343         (ves_icall_Type_GetEvents): Likewise.
15344         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
15345         argument; pass it to mono_method_get_object() to set the method's
15346         "reflected" type.       
15347
15348 2004-02-17  Martin Baulig  <martin@ximian.com>
15349
15350         * class.h (MonoDynamicGenericInst): New type.
15351         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
15352
15353         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
15354         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
15355         (ves_icall_MonoGenericInst_GetFields): New interncall.
15356
15357         * class.c (mono_class_from_generic): Don't call
15358         mono_class_initialize_generic() if this is a dynamic instance;
15359         ie. it's being created from a TypeBuilder.
15360         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
15361         `class->byval_arg.type'.
15362
15363         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
15364         to `inflate_method' and made static.
15365         (mono_reflection_inflate_field): Removed.
15366         (mono_reflection_generic_inst_initialize): New public method.
15367
15368         * reflection.h (MonoReflectionGenericInst): Removed `methods',
15369         `ctors' and `fields'; added `initialized'.
15370
15371 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
15372
15373         * debug-helpers.c (mono_method_full_name): Fix output for empty
15374         namespaces.
15375
15376 2004-02-12  Martin Baulig  <martin@ximian.com>
15377
15378         * class.h (MonoClassField): Added `MonoType *generic_type'.
15379
15380         * reflection.c (mono_image_get_fieldref_token): Added support for
15381         instantiated generic types.
15382         (field_encode_inflated_field): Removed.
15383         (mono_image_get_inflated_field_token): Removed.
15384         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
15385
15386         * reflection.h (MonoReflectionInflatedField): Removed.
15387
15388 2004-02-12  Martin Baulig  <martin@ximian.com>
15389
15390         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
15391         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
15392
15393         * reflection.c (mono_image_get_methodspec_token): Take a
15394         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
15395         (mono_image_create_token): Check whether we have a
15396         `method->signature->gen_method' and call
15397         mono_image_get_methodspec_token() if appropriate.
15398         (inflated_method_get_object): Removed.
15399         (mono_reflection_bind_generic_method_parameters): Return a
15400         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
15401         (mono_reflection_inflate_method_or_ctor): Likewise.
15402
15403         * reflection.h (MonoReflectionInflatedMethod): Removed.
15404
15405 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
15406
15407         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
15408         for custom valuetype marshalling.
15409
15410         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
15411
15412 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15413
15414         * icall.c: fixed WSAGetLastError_internal name.
15415
15416 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
15417
15418         * threads.c (mono_thread_attach): Allow this to be called multiple
15419         times for a thread.
15420         
15421         * threads.c (build_wait_tids): Do not wait for ourselves.
15422
15423         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
15424         appdomain list is empty.
15425
15426         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
15427         memory returned by mono_string_builder_to_utf16, since it points into
15428         managed memory. Thanks to Bernie Solomon for noticing this.
15429
15430         * icall.c: Add AppDomainSetup icalls.
15431
15432         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
15433
15434         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
15435         types.
15436
15437         * reflection.c (reflection_methodbuilder_to_mono_method): Save
15438         custom attributes to the method_aux struct. Also fix array indexes etc.
15439
15440         * loader.c (mono_method_get_param_names): Make dynamic case work again.
15441         
15442 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
15443
15444         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
15445         (both static and runtime) and reduce startup time.
15446
15447 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
15448
15449         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
15450         AsAny marshalling conversion instead of crashing.
15451
15452         * marshal.c: Fix warnings.
15453
15454 2004-02-09  Martin Baulig  <martin@ximian.com>
15455
15456         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
15457
15458         * reflection.h (MonoReflectionInflatedMethod): Removed the
15459         `declaring' field, it's now in the unmanaged MonoGenericMethod.
15460
15461         * reflection.c (method_encode_methodspec): Removed the `method'
15462         argument; we get it from `gmethod->declaring'.
15463         (inflated_method_get_object): Removed the `declaring' argument.
15464
15465 2004-02-09  Martin Baulig  <martin@ximian.com>
15466
15467         * class.h (MonoGenericMethod): New type.
15468         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
15469         `generic_method'.
15470
15471         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
15472         a `MonoGenericMethod *gen_method' one.
15473
15474         * class.c (mono_class_inflate_generic_type): Take an additional
15475         `MonoGenericMethod * argument.  This is only non-NULL if we're
15476         inflating types for a generic method.   
15477         (mono_class_inflate_generic_signature): Renamed to
15478         inflate_generic_signature() and made static; take a
15479         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
15480         (inflate_generic_header): Take a `MonoGenericMethod *' argument
15481         instead of a `MonoGenericInst *' one.
15482         (mono_class_inflate_generic_method): Likewise.
15483
15484         * reflection.c (encode_generic_method_sig): Take a
15485         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
15486         (method_encode_methodspec): Likewise.
15487         (inflated_method_get_object): Likewise. 
15488
15489         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
15490         field with a `MonoGenericMethod *gmethod' one.  
15491
15492 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
15493
15494         * class.h (mono_class_has_parent): add parens to expansion
15495         so you can ! this.
15496
15497 2004-02-08  Martin Baulig  <martin@ximian.com>
15498
15499         * image.h (MonoImage): Removed `generics_cache'.
15500
15501         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
15502         instead of a `MonoType *' argument; removed the `inflate_methods'
15503         argument.  Don't inflate methods here.
15504
15505         * loader.c (find_method): If it's a generic instance, call
15506         mono_class_init() on the `sclass->generic_inst->generic_type'.
15507
15508         * metadata.c (mono_type_size): Make this work on uninitialized
15509         generic instances; call it on the `ginst->generic_type's class.
15510
15511         * reflection.c (mono_reflection_bind_generic_parameters): Call
15512         mono_class_from_generic() to create the `ginst->klass'.
15513
15514 2004-02-08  Martin Baulig  <martin@ximian.com>
15515
15516         * class.h (MonoClass): Changed type of `generic_inst' from
15517         `MonoType *' to `MonoGenericInst *'.
15518
15519 2004-02-08  Martin Baulig  <martin@ximian.com>
15520
15521         * icall.c (ves_icall_Type_BindGenericParameters): Just call
15522         mono_type_get_object(), this is now creating a `MonoGenericInst'
15523         for MONO_TYPE_GENERICINST.
15524         (ves_icall_MonoGenericInst_GetParentType): Likewise.
15525         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
15526
15527         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
15528         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
15529         (inflated_method_get_object): Added `MonoClass *refclass' argument.
15530         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
15531         and reflected type.
15532
15533         * reflection.h (MonoReflectionInflatedMethod): Removed
15534         `declaring_type' and `reflected_type'.
15535
15536 2004-02-08  Martin Baulig  <martin@ximian.com>
15537
15538         * class.h (MonoGenericInst): Added `MonoType *parent' and
15539         `MonoType **ifaces'.
15540
15541         * reflection.h (MonoReflectionGenericInst): Removed `klass',
15542         `parent' and `interfaces'.
15543
15544         * reflection.c (mono_reflection_bind_generic_parameters): Take a
15545         `MonoType *' argument and return a `MonoType *'.
15546
15547         * icall.c
15548         (ves_icall_MonoGenericInst_GetParentType): New interncall.
15549         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
15550
15551 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
15552
15553         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
15554         valuetype marshalling.
15555
15556 2004-02-06  Martin Baulig  <martin@ximian.com>
15557
15558         * class.c
15559         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
15560         (my_mono_class_from_generic_parameter): Likewise.
15561
15562 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
15563
15564         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
15565         contents of the symbol files lazily.
15566
15567         * object.h (MonoThread): Add 'name' and 'name_len' fields.
15568
15569         * threads.h threads.c icall.c: New icalls for getting and setting the
15570         threads name.
15571
15572 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
15573
15574         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
15575         Raise an exception when the domain is not found.
15576
15577 2004-02-03  Martin Baulig  <martin@ximian.com>
15578
15579         * reflection.c (mono_image_get_methodspec_token): Use the
15580         uninflated signature; fixes gen-33.
15581
15582 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
15583
15584         * gc.c threads.c: Make the finalizer thread a normal managed thread so
15585         the finalizer code can use thread functionality.
15586
15587         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
15588         the finalizer thread.
15589
15590         * threads.c: Make some functions more robust.
15591
15592         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
15593
15594         * metadata.h: Add new marshalling conventions.
15595
15596         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
15597         stringbuilder marshalling. Fixes #53700.
15598
15599         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
15600
15601         * reflection.c (mono_image_get_type_info): Save declarative security
15602         info.
15603
15604         * reflection.c (mono_image_get_field_info): Handle uninitialized 
15605         unmanaged fields as well.
15606
15607         * appdomain.c: Bump corlib version.
15608
15609 2004-02-01  Martin Baulig  <martin@ximian.com>
15610
15611         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
15612         method type arguments.  
15613
15614 2004-01-30  Duncan Mak  <duncan@ximian.com>
15615
15616         * marshal.h: Add prototype for
15617         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
15618         and
15619         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
15620         fix the build.
15621
15622 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
15623
15624         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
15625         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
15626
15627 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
15628
15629         * marshal.c (mono_marshal_get_native_wrapper): Add support for
15630         custom marshalling of valuetypes.
15631
15632         * marshal.c: Fix some warnings.
15633
15634 2004-01-29  Martin Baulig  <martin@ximian.com>
15635
15636         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
15637         for generic method parameters.
15638
15639         * reflection.c (method_encode_methodspec): Write the uninflated
15640         signature into the methodspec table.
15641         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
15642         is always the uninflated method.
15643         (reflection_methodbuilder_to_mono_method): Copy the generic
15644         parameters from the MethodBuilder into `header->gen_params'.
15645
15646 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
15647
15648         * class.c (mono_class_from_generic_parameter): Fix warning.
15649
15650 2004-01-27  Martin Baulig  <martin@ximian.com>
15651
15652         * class.c (mono_class_from_generic_parameter): Don't create
15653         `klass->methods' here.  
15654
15655 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
15656
15657         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
15658         extension since it does not work with libraries named lib<FOO>.dll.so.
15659
15660 2004-01-25  Martin Baulig  <martin@ximian.com>
15661
15662         * class.c (mono_class_inflate_generic_type): Added support for
15663         MONO_TYPE_GENERICINST.
15664
15665         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
15666         inflate methods on open constructed types.      
15667
15668 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15669
15670         * object.c: fire ProcessExit event in the root AppDomain after running
15671         Main. Fixes bug #53299.
15672
15673 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
15674
15675         * socket-io.c: include the new socket-wrappers.h header.
15676         Use the wrappers instead of the unix socket functions to make the code
15677         more clear.
15678
15679 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
15680
15681         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
15682
15683         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
15684         Fixes #22532.
15685
15686 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
15687
15688         * reflection.c (mono_image_create_pefile): Handle the case when the
15689         entry point is not a MethodBuilder.
15690
15691         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
15692         field to ReflectionMethod since it is not allways a builder.
15693
15694         * reflection.c (type_get_fully_qualified_name): New helper function to
15695         return the fully qualified name of a type.
15696
15697         * reflection.c (encode_marshal_blob): Always emit the fully qualified
15698         type name for custom marshallers.
15699
15700         * reflection.c (mono_marshal_spec_from_builder): Ditto.
15701
15702         * class.c (mono_class_setup_vtable): If a parent class already 
15703         implements an interface, use the implementing methods from that class.
15704         Fixes #53148.
15705
15706 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15707
15708         * threadpool.c: just return instead of ExitThread to allow for thread
15709         clean up earlier.
15710
15711 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
15712
15713         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
15714         when closing resource modules.
15715
15716         * reflection.c (mono_image_create_pefile): Handle the case when the
15717         entry point is not a MethodBuilder.
15718
15719         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
15720         field to ReflectionMethod since it is not allways a builder.
15721
15722 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
15723
15724         * marshal.c (mono_marshal_get_managed_wrapper): 
15725         mono_marshal_alloc takes native int so CONV_I
15726         the arg for 64bits.
15727
15728 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
15729
15730         * reflection.c (fixup_cattrs): New function to fixup the methoddef
15731         tokens in the cattr table. Fixes #53108.
15732
15733 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15734
15735         * loader.c: don't trim ".dll" before looking up in the config file.
15736         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
15737
15738 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
15739
15740         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
15741         Return the module which contains the resource as well.
15742         (ves_icall_System_Reflection_Module_Close): New icall.
15743
15744         * appdomain.c: Bump corlib version number.
15745
15746         * image.c (mono_image_addref): New public function.
15747
15748         * assembly.c: Call mono_image_addref.
15749
15750         * reflection.c (mono_module_get_object): Increase reference count of 
15751         the image.
15752
15753         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
15754         Fixes #22532.
15755
15756         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
15757         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
15758         proper exceptions on DllImport problems.
15759
15760 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
15761
15762         * class.c, metadata.c: eliminate CSIZE macro.
15763
15764 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
15765
15766         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
15767         * object.h: Added async_callback field in MonoAsyncResult.
15768         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
15769         * verify.c: Added async_callback in MonoAsyncResult layout.
15770
15771 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
15772
15773         * reflection.c (mono_reflection_get_custom_attrs): Add support
15774         for Modules.
15775
15776 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
15777
15778         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
15779         marshalling.
15780         (mono_marshal_method_from_wrapper): Add null pointer check.
15781
15782 2004-01-16  Martin Baulig  <martin@ximian.com>
15783
15784         * debug-mono-symfile.h: Set version number to 36 and reflect
15785         latest symbol writer changes.
15786
15787 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
15788
15789         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
15790         multi-dimensional arrays.
15791         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
15792         (mono_class_from_mono_type): Use bounded_array_class_get.
15793         
15794         * class.c (mono_bounded_array_class_get): New function which takes
15795         a 'bounded' bool argument to distinguish vectors from one dimensional
15796         arrays.
15797
15798         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
15799         bounded_array_class_get if the array has bounds.
15800
15801         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15802         Search modules loaded using AssemblyBuilder:AddModule as well.
15803
15804 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15805
15806         * appdomain.c: increased corlib version.
15807         * filewatcher.c: removed g_print.
15808         * icall.c:
15809         (get_property_info): only allocate what is actually requested.
15810         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
15811
15812 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15813
15814         * Makefile.am: added filewatcher.[ch]
15815         * filewatcher.[ch]: FileSystemWatcher runtime support.
15816         * icall.c: added new FSW icalls.
15817
15818 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
15819
15820         * string-icalls.c: fix stringbuilder regression as suggested by
15821         Iain McCoy <iain@mccoy.id.au>.
15822
15823 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
15824
15825         * process.c (process_read_stringtable_block): Recognize '007f' as
15826         a language neutral stringtable block.
15827
15828 2004-01-12  Patrik Torstensson
15829
15830         * object.h (MonoStringBuilder) : Changed layout to support our
15831         new stringbuilder class.
15832         * marshal.c: Change marshalling to support the new layout of 
15833         string builder.
15834         * appdomain.c: increased version number because new layout of
15835         string builder.
15836
15837 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
15838
15839         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
15840         assembly name as an string instead of an AssemblyName, since it is
15841         easier to extract info from it.
15842
15843         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
15844         the culture subdirectories too. Fixes #52231.
15845
15846 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15847
15848         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
15849         It takes 2 new parameters with an optional name for the method to look
15850         for and case ignoring info.
15851
15852         * threadpool.c: removed unused variable.
15853
15854 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15855
15856         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
15857         It takes 2 new parameters with an optional name for the property to look
15858         for and case ignoring info.
15859         Fixes bug #52753.
15860
15861 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
15862
15863         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
15864         Fix #52451.
15865
15866 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15867
15868         * appdomain.c:
15869         * assembly.c: escape the uri before passing it to g_filename_from_uri.
15870         Fixes bug #52630.
15871
15872 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
15873
15874         * reflection.c: Add support for more than one unmanaged resource.
15875
15876         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
15877         in field->def_value, as done in all other cases.
15878
15879         * reflection.c (mono_reflection_get_custom_attrs): Add support for
15880         TypeBuilders.
15881
15882         * reflection.c (mono_reflection_create_runtime_class): Remove 
15883         errorneous assignment to klass->element_class, since it is already
15884         done in mono_reflection_setup_internal_class.
15885
15886 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15887
15888         * gc.c: added missing LeaveCriticalSection.
15889         * icall.c: indented a couple of lines.
15890         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
15891         if we call EndInvoke inside a callback. Fixes bug #52601.
15892
15893 2004-01-07  Martin Baulig  <martin@ximian.com>
15894
15895         * mono-debug-debugger.h
15896         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
15897
15898 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
15899
15900         * appdomain.c: Use messages in NotImplementedException.
15901
15902         * exception.c (mono_get_exception_not_implemented): Now this takes
15903         a message argument.
15904
15905         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
15906         exception instead of g_asserting an aborting when something is not
15907         implemented.
15908
15909         Add some inline docs.
15910
15911 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
15912
15913         * reflection.h: Update after changes to object layout.
15914
15915         * reflection.c: Implement saving of unmanaged aka win32 resources.
15916
15917         * appdomain.c: Bump version number.
15918
15919         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
15920         Handle missing domains gracefully.
15921
15922 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
15923
15924         * file-io.c : On Windows, there are much more invalid_path_chars.
15925
15926 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
15927
15928         * class.h, object.c: prepare for GetType () speedup.
15929
15930 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
15931
15932         * profiler.c: workaround for --profile null reference exception on
15933           cygwin. Patch by Patrik Torstensson.
15934
15935 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
15936
15937         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
15938         make work for unaligned access.
15939
15940 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
15941
15942         * class.c: small cleanup (class->fields [i] -> field).
15943         * image.c: check address of metadata is valid.
15944
15945 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
15946
15947         * assembly.h assembly.c (mono_assembly_loaded): New public function to
15948         search the list of loaded assemblies.
15949
15950         * reflection.c (mono_reflection_type_from_name): Use 
15951         mono_assembly_loaded instead of mono_image_loaded.
15952
15953         * reflection.c: Fix warnings.
15954
15955 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
15956
15957         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
15958         is dynamic. This is needed since an assembly can contain both dynamic and
15959         non-dynamic images.
15960
15961         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
15962         assembly->dynamic.
15963
15964         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
15965
15966         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
15967         to store modules loaded using AddModule.
15968
15969         * reflection.c (mono_image_fill_file_table): Generalize this so it works
15970         on Modules.
15971
15972         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
15973
15974         * reflection.c (mono_image_fill_export_table_from_module): New function to
15975         fill out the EXPORTEDTYPES table from a module.
15976
15977         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
15978         into a separate function. Also handle loaded non-dynamic modules.
15979
15980         * reflection.c (mono_image_basic_init): Fix memory allocation.
15981
15982         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15983
15984         * assembly.c (mono_assembly_load_references): Make this public.
15985
15986 2003-12-19  Martin Baulig  <martin@ximian.com>
15987
15988         * class.c (mono_class_initialize_generic): Made this static, take
15989         a `MonoGenericInst *' instead of a `MonoClass *'.
15990         (mono_class_from_generic): Call mono_class_initialize_generic()
15991         unless we're already initialized or being called from
15992         do_mono_metadata_parse_generic_inst().
15993
15994         * class.h (MonoGenericInst): Added `initialized' and
15995         `init_pending' flags.
15996
15997         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
15998         `mono_class_init (gklass)' or mono_class_initialize_generic()
15999         here; set `generic_inst->init_pending' while parsing the
16000         `type_argv'.
16001
16002 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
16003
16004         * locales.c: include string.h for memxxx prototypes
16005
16006 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
16007
16008         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
16009         constructor when accessing literal fields.
16010
16011 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
16012
16013         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16014
16015         * reflection.c (assembly_add_resource_manifest): New function to fill
16016         the MANIFESTRESOURCE table.
16017
16018         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
16019
16020         * reflection.h: Update to changes in class layout.
16021
16022         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
16023         Reenable call to mono_runtime_is_shutting_down ().
16024
16025         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
16026         determine if the runtime is shutting down.
16027
16028 2003-12-16  Jackson Harper <jackson@ximian.com>
16029
16030         * icall.c: comment out call to mono_runtime_is_shutting_down to
16031         fix build.
16032         
16033 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
16034
16035         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
16036         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
16037
16038 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
16039
16040         * reflection.c: move definition of swap_with_size
16041         to before its first call
16042
16043 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
16044
16045         * appdomain.c (mono_runtime_is_shutting_down): New public function.
16046
16047         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
16048         icall.
16049
16050         * object.c: Fix warnings.
16051
16052         * icall.c (ves_icall_Type_Get...): Only consider inherited static
16053         members if FlattenHierarchy is set.
16054
16055         * reflection.c (mono_image_add_decl_security): New function to emit
16056         declarative security.
16057
16058         * reflection.h reflection.c: Add support for declarative security.
16059
16060         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
16061         
16062 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
16063
16064         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
16065         
16066         * appdomain.c verify.c: Moved corlib version checking into its own
16067         function in appdomain.c since it needs to create vtables etc.
16068
16069 2003-12-13  Patrik Torstensson <p@rxc.se>
16070
16071         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
16072         instead of unwrapped server.
16073
16074 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
16075
16076         * verify.c (check_corlib): Fix field index.
16077
16078 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
16079
16080         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
16081         GetGacPath icall.
16082
16083 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
16084
16085         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
16086         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
16087         cope with sizeof(size_t) != sizeof(guint32).
16088
16089 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16090
16091         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
16092         in case of failure.
16093
16094 2003-12-10  Mark Crichton <crichton@gimp.org>
16095
16096         * icall.c: removed the GetNonZeroBytes.  We now handle this case
16097         in managed code.
16098
16099         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
16100
16101 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
16102
16103         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
16104         marked as deleted.
16105
16106 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
16107
16108         * verify.c (check_corlib): Handle the case when the version field is 
16109         initialized by a static constructor.
16110
16111 2003-12-08  Patrik Torstensson  <p@rxc.se>
16112
16113     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
16114
16115 2003-12-08  Martin Baulig  <martin@ximian.com>
16116
16117         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
16118         a MonoReflectionGenericParameter, also take the parameter index
16119         and name as arguments.
16120         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
16121         (ves_icall_MonoGenericParam_initialize): New interncall.
16122         (ves_icall_Type_make_byref_type): New interncall.
16123
16124         * reflection.h (MonoReflectionGenericParam): Derive from
16125         MonoReflectionType, not just from MonoObject.  Added `refobj' and
16126         `index' fields.
16127
16128         * reflection.c (mono_reflection_define_generic_parameter): Create
16129         and return a new MonoReflectionGenericParam; don't initialize the
16130         constraints here.
16131         (mono_reflection_initialize_generic_parameter): New public method;
16132         initializes the constraints and creates the `param->pklass'.
16133
16134 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
16135
16136         * reflection.h reflection.c: Use the new fields 'num_types', 
16137         'num_fields' and 'num_methods' to track the number of types etc.
16138
16139         * verify.c (check_corlib): Check corlib version number.
16140
16141 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
16142
16143         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
16144         function works on all methods.
16145
16146 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
16147
16148         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
16149         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
16150         the custom_type_info flag of the transparent proxy.
16151         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
16152         objects that supports IRemotingTypeInfo.
16153         * object.h: Added custom_type_info field in transparent proxy.
16154
16155 2003-12-06  Martin Baulig  <martin@ximian.com>
16156
16157         * class.c (mono_class_create_from_generic): Removed.
16158         (mono_class_from_generic): Check `ginst->klass' before doing
16159         anything else.  This is important to fully support "recursive"
16160         generic types.
16161
16162         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
16163         empty `generic_inst->klass' before doing anything else.
16164
16165 2003-12-06  Dick Porter  <dick@ximian.com>
16166
16167         * verify.c: 
16168         * object.h:
16169         * icall.c:
16170         * locales.c: Use C structs to access class fields.  Don't do a
16171         conversion between MonoString and UChar because both are
16172         platform-endian UTF-16.  Compare now takes startindex and count
16173         parameters.  Add a char overload for IndexOf.  Speed up the
16174         invariant string IndexOf.
16175
16176 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
16177
16178         * Makefile.am (monosn_LDADD): Fix parallel build.
16179
16180 2003-12-04  Martin Baulig  <martin@ximian.com>
16181
16182         * icall.c
16183         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16184         (ves_icall_Type_make_array_type): New interncall.       
16185
16186 2003-12-04  Martin Baulig  <martin@ximian.com>
16187
16188         * locales.c: also change it in the !HAVE_ICU case.
16189
16190 2003-12-04  Dick Porter  <dick@ximian.com>
16191
16192         * icall.c:
16193         * locales.c: construct_compareinfo is now in CompareInfo, not
16194         CultureInfo.
16195
16196 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
16197
16198         * image.c (mono_image_load_file_for_image): Cache loaded images in the
16199         image->files array.
16200
16201         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
16202         table as well.
16203
16204         * assembly.c (mono_assembly_load_references): Only load references
16205         once.
16206
16207         * class.c (mono_class_from_name): Avoid linear search of the 
16208         EXPORTEDTYPE table.
16209
16210         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
16211
16212 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
16213
16214         * image.h (MonoImage): Add 'field_cache' field.
16215
16216         * loader.c (mono_field_from_token): Cache field lookups.
16217         
16218         * reflection.c (mono_module_get_object): Fix name property.
16219
16220         * icall.c (ves_icall_get_enum_info): Update after changes to 
16221         mono_metadata_get_constant_index ().
16222
16223         * icall.c: Get rid of get_type_info icall, use a separate icall for
16224         each type property to avoid needless memory allocations. Fixes #51514.
16225
16226         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
16227         to avoid needless binary searches.
16228
16229         * class.c (class_compute_field_layout): Move the initialization of
16230         field->def_value to mono_class_vtable ().
16231
16232         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
16233         non-corlib types.
16234
16235         * object.c (mono_object_allocate): Make it inline.
16236
16237         * object.c (mono_object_allocate_spec): Make it inline.
16238         
16239 2003-12-02  Dick Porter  <dick@ximian.com>
16240
16241         * locales.c (create_NumberFormat): NumberFormatInfo construction.
16242         Patch by Mohammad DAMT (mdamt@cdl2000.com).
16243
16244 2003-12-01  Dick Porter  <dick@ximian.com>
16245
16246         * threads.c: Fix signature and call in CreateMutex and
16247         CreateEvent.
16248
16249 2003-12-01  Dick Porter  <dick@ximian.com>
16250
16251         * icall.c: 
16252         * locales.c: Implement string compares and searching
16253
16254         * object.h: Add extra Thread field
16255
16256 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
16257
16258         * reflection.c (fixup_method): Add support for MonoCMethod.
16259
16260 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
16261
16262         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
16263
16264         * reflection.c (assembly_name_to_aname): Allow extra characters in
16265         assembly names. Fixes #51468.
16266
16267 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
16268
16269         * exception.c (mono_exception_from_name_domain): New helper function.
16270
16271         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
16272         exception object in the correct domain.
16273
16274         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
16275         formatting + make a copy a the input data.
16276
16277         * loader.c (mono_get_method_from_token): Methods which contain
16278         native code do not have entries in the ImplMap.
16279
16280         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
16281         Thanks to Gonzalo for spotting this.
16282         
16283         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
16284         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
16285
16286         * assembly.h (mono_assembly_load_from): Split the second part of 
16287         assembly loading into a new public function.
16288
16289         * exception.h (mono_get_exception_bad_image_format): New function.
16290
16291 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
16292
16293         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
16294         Enumerate all modules inside a dynamic assembly. Fixes #51293.
16295         
16296         * icall.c: Add new icall for creating dynamic methods.
16297
16298         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
16299
16300         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
16301
16302         * reflection.c (mono_reflection_create_dynamic_method): New icall to
16303         create a dynamic method.
16304
16305         * reflection.c (resolve_object): New helper function.
16306
16307         * reflection.c: Generalize ReflectionMethodBuilder and the functions
16308         which manipulate it so they can also work on dynamic methods.
16309
16310         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
16311         creating the MonoReflectionMethodAux structure if it is not needed.
16312         
16313         * reflection.h verify.c: Update after changes to object layout.
16314
16315         * reflection.c (method_builder_encode_signature): Fix compilation on
16316         gcc 2.95.x.
16317
16318 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
16319
16320         * appdomain.h: Added support for context static fields. Added static_data
16321           field to MonoAppContext and renamed thread_static_fields to a more
16322           generic special_static_fields in MonoAppDomain, since it can now contain
16323           context static fields.
16324         * domain.c: Updated hashtable name.
16325         * object.c: Replaced field_is_thread_static() for a more generic
16326           field_is_special_static() which also checks for context static attribute.
16327           In mono_class_vtable(), added support for static context fields.
16328         * threads.c: Changed methods that manage thread static fields to more
16329           generic methods so they can be reused both for thread and context static
16330           data.
16331         * threads.h: Declared some new methods.
16332
16333 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
16334
16335         * reflection.h: Update after changes to the managed types.
16336
16337         * reflection.c (encode_custom_modifiers): New helper function.
16338
16339         * reflection.c (method_encode_signature): Emit custom modifiers.
16340
16341         * reflection.c (field_encode_signature): Emit custom modifiers.
16342
16343 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
16344
16345         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
16346
16347         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
16348         implementation.
16349
16350         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
16351         icall.
16352
16353         * object.c (mono_field_get_value_object): New function.
16354
16355         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
16356         specific.
16357
16358 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
16359
16360         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
16361         return a preallocated out-of-memory exception instance.
16362
16363         * object.c (out_of_memory): Use the new function.
16364
16365         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
16366         flag is before the custom modifiers. Fixes #49802.
16367
16368 2003-11-16  Martin Baulig  <martin@ximian.com>
16369
16370         * class.c (mono_class_is_open_constructed_type): Implemented the
16371         MONO_TYPE_GENERICINST case.
16372
16373 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
16374
16375         * assembly.c (mono_assembly_fill_assembly_name): New function to
16376         fill out the MonoAssemblyName structure.
16377         (mono_assembly_open): Use the new function.
16378
16379         * icall.c (fill_reflection_assembly_name): New helper function.
16380
16381         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
16382         new function.
16383
16384         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
16385
16386 2003-11-15  Martin Baulig  <martin@ximian.com>
16387
16388         * class.c (mono_class_is_open_constructed_type): New public
16389         function; checks whether a type is an open constructed type,
16390         ie. whether it still contains type parameters.
16391         (mono_class_inflate_generic_type): If we're a type parameter and
16392         the inflated type is also a MONO_TYPE_(M)VAR, return the original
16393         type.
16394
16395         * class.h (MonoGenericInst): Added `guint32 is_open'.
16396
16397         * loader.c (method_from_methodspec): Check whether we're an open
16398         or closed constructed type and set `ginst->is_open'.
16399
16400         * reflection.c (mono_reflection_bind_generic_parameters): Check
16401         whether we're an open or closed constructed type and set
16402         `ginst->is_open'.
16403         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
16404         from open constructed types.
16405
16406 2003-11-15  Martin Baulig  <martin@ximian.com>
16407
16408         * reflection.c (mono_reflection_bind_generic_parameters): If we're
16409         a generic instance (instead of a generic type declaration) with
16410         unbound generic parameters, bind them to our actual types.
16411
16412 2003-11-14  Martin Baulig  <martin@ximian.com>
16413
16414         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
16415
16416         * reflection.c (mono_reflection_bind_generic_parameters): If we're
16417         an interface type, populate `res->interfaces' with instantiated
16418         versions of all the interfaces we inherit.
16419
16420 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
16421
16422         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
16423         when MONO_PATH is set but doesn't contain the install dir.
16424
16425 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16426
16427         * icall.c:
16428         (ves_icall_Type_GetInterfaces): don't return an interface twice when
16429         it's also implemented in base classes. Fixes bug #50927.
16430
16431 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
16432
16433         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
16434         if this method is called from a finalizer. Fixes #50913.
16435
16436 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
16437
16438         * threads.c: Implement VolatileRead/VolatileWrite
16439
16440         * icall.c: Add new icalls for VolatileRead/VolatileWrite
16441
16442 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
16443
16444         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
16445         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
16446         2.95.3.
16447
16448         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
16449         from Peter Ross (pro@missioncriticalit.com).
16450         
16451 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
16452
16453         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
16454
16455 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
16456
16457         * assembly.c (mono_assembly_load_references): Disable check because it
16458         triggers on older corlibs which lots of people have.
16459
16460 2003-11-12  Jackson Harper  <jackson@ximian.com>
16461
16462         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
16463         load corlib.dll if mscorlib.dll is not found.
16464         * assembly.h: Remove corlib name define.
16465         * class.c:
16466         * domain.c:
16467         * image.c: Change corlib name to mscorlib.
16468         
16469 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
16470
16471         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
16472
16473 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
16474
16475         * appdomain.h: Added loader_optimization here to sync with the C#
16476         code, and add disallow_binding_redirects field.
16477
16478 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
16479
16480         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
16481
16482         * reflection.c (mono_image_build_metadata): Fix crash on modules
16483         with no types.
16484
16485         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
16486
16487         * icall.c (ves_icall_get_method_info): Return callingConvention as
16488         well.
16489
16490         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
16491         namespaces from the EXPORTEDTYPE table as well.
16492
16493         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
16494         from all modules inside the assembly.
16495         
16496 2003-11-11  Martin Baulig  <martin@ximian.com>
16497
16498         * reflection.c (mono_reflection_bind_generic_parameters): Make
16499         this work for interfaces.
16500
16501 2003-11-11  Martin Baulig  <martin@ximian.com>
16502
16503         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
16504
16505 2003-11-11  Martin Baulig  <martin@ximian.com>
16506
16507         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
16508         "MonoInflatedMethod" and "MonoInflatedCtor".
16509
16510 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
16511
16512         * reflection.c (resolution_scope_from_image): Use the assembly table
16513         from the manifest module, since other modules don't have it.
16514
16515         * debug-helpers.c (mono_type_full_name): New helper function.
16516
16517         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
16518
16519         * image.c (mono_image_load_file_for_image): New public function which
16520         is a replacement for the load_file_for_image in class.c.
16521
16522         * assembly.c (mono_assembly_load_module): A wrapper for the function
16523         above which does assembly association and reference loading too.
16524
16525         * class.c (mono_class_from_name): Call mono_assembly_load_module.
16526
16527 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16528
16529         * appdomain.c: not all of the attributes for the full assembly name
16530         are required and the order doesn't matter. Fixes bug #50787.
16531
16532 2003-11-10  Dick Porter  <dick@ximian.com>
16533
16534         * locales.c: Use platform-endian UTF16
16535
16536 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
16537
16538         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
16539         
16540 2003-11-10  Martin Baulig  <martin@ximian.com>
16541
16542         * metadata.c
16543         (mono_metadata_load_generic_params): Make this actually work.
16544
16545         * reflection.c (mono_reflection_bind_generic_parameters): If our
16546         parent is a generic instance, pass all the `types' to it, no
16547         matter whether it has the same number of type parameters or not.
16548
16549 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
16550
16551         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
16552
16553         * assembly.c (mono_assembly_load_references): Move the image<->assembly
16554         assignment code to this function so it gets called recursively for all
16555         modules.
16556
16557         * image.c (load_modules): Remove the assembly assignment since it is
16558         now done by mono_assembly_load_references.
16559         
16560         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
16561         Add 'module' argument.
16562         (mono_module_get_types): New helper function.
16563         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
16564
16565 2003-11-08  Martin Baulig  <martin@ximian.com>
16566
16567         * class.c (mono_class_inflate_generic_method): Interface method
16568         don't have a header.
16569
16570         * reflection.c (mono_image_get_methodspec_token): Take an
16571         additional `MonoGenericInst *' argument instead of reading it from
16572         the header; this is necessary to support interfaces.
16573         (mono_image_create_token): Pass the `MonoGenericInst *' from the
16574         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
16575         (inflated_method_get_object): Take an additional `MonoGenericInst *'
16576         argument.
16577
16578         * reflection.h (MonoReflectionInflatedMethod): Added
16579         `MonoGenericInst *ginst'.
16580
16581 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
16582
16583         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
16584
16585 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
16586
16587         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
16588
16589 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
16590
16591         * reflection.c 
16592         (reflection_methodbuilder_from_method_builder):
16593         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
16594         initialize a ReflectionMethodBuilder structure.
16595         (mono_image_get_methodbuilder_token):
16596         (mono_image_get_ctorbuilder_token): New functions to emit memberref
16597         tokens which point to types in another module inside the same assembly.
16598
16599         * reflection.c: Use the new helper functions.
16600         
16601         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
16602
16603         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
16604         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
16605
16606         * reflection.c (resolution_scope_from_image): Emit a moduleref if
16607         neccesary.
16608
16609         * reflection.c (mono_image_build_metadata): Emit metadata only for the
16610         current module. Emit the manifest only for the main module.
16611
16612         * reflection.c (mono_image_create_token): Add assertion when a 
16613         memberref needs to be created.
16614
16615         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
16616
16617         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
16618         larger buffer for the custom attribute blob. Fixes #50637.
16619         
16620 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16621
16622         * threadpool.c: notify listener on async processing handles after
16623         invoking the async callback. Thanks to Zoltan.
16624
16625 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
16626
16627         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
16628         avoid code duplication.
16629
16630         * reflection.h (MonoDynamicImage): New type which is currently unused,
16631         but will be used through the ref.emit code in place of 
16632         MonoDynamicAssembly.
16633
16634         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
16635         object layout.
16636
16637         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
16638         a MonoDynamicImage instead of just a MonoImage.
16639         
16640         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
16641         icalls to ModuleBuilder but keep their semantics, so they will work
16642         with moduleb->assemblyb. This will change later.
16643         
16644 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
16645
16646         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
16647         object layout.
16648
16649         * reflection.c (mono_image_build_metadata): Avoid creation of a default
16650         main module, since it is now done by the managed code.
16651
16652 2003-11-03  Martin Baulig  <martin@ximian.com>
16653
16654         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
16655         `ginst->klass' here.
16656         (method_encode_methodspec): Don't use the `ginst->generic_method's
16657         klass if it's a generic instance, use `ginst->klass' in this case.
16658
16659 2003-11-03  Martin Baulig  <martin@ximian.com>
16660
16661         * reflection.c (mono_image_get_generic_method_param_info):
16662         Removed, use mono_image_get_generic_param_info() instead.
16663         (mono_image_get_type_info): Write the GenericParam table before
16664         the Method table.  This is neccessary because in the GenericParam
16665         table, type parameters of the class (ie. '!0' etc.) must come
16666         before the ones from its generic methods (ie. '!!0' etc).
16667
16668 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
16669
16670         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
16671
16672 2003-11-02  Martin Baulig  <martin@ximian.com>
16673
16674         * reflection.c (create_generic_typespec): Take a
16675         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
16676         the generic parameters from it.
16677
16678 2003-11-02  Martin Baulig  <martin@ximian.com>
16679
16680         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
16681         instead of a `MonoClassField *' since we just need the type.
16682         (create_generic_typespec): New static function.  Creates a
16683         TypeSpec token for a generic type declaration.
16684         (mono_image_get_generic_field_token): New static function.
16685         (mono_image_create_token): If we're a FieldBuilder in a generic
16686         type declaration, call mono_image_get_generic_field_token() to get
16687         the token.
16688
16689 2003-11-02  Martin Baulig  <martin@ximian.com>
16690
16691         * reflection.h
16692         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
16693         `MonoReflectionGenericInst *declaring_type' and
16694         `MonoReflectionGenericInst *reflected_type' fields.
16695
16696         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
16697         `MonoReflectionGenericInst *declaring_type' and a
16698         `MonoReflectionGenericInst *reflected_type' argument instead of a
16699         single `MonoReflectionGenericInst *type' one.  Set
16700         `res->declaring_type' and `res->reflected_type' from them.
16701         (mono_reflection_inflate_field): Likewise.      
16702
16703 2003-11-02  Martin Baulig  <martin@ximian.com>
16704
16705         * class.c (mono_class_setup_vtable): Don't store generic methods
16706         in the vtable.  
16707
16708 2003-11-02  Martin Baulig  <martin@ximian.com>
16709
16710         * reflection.h (MonoReflectionGenericInst): Added
16711         `MonoReflectionType *declaring_type'.
16712
16713         * reflection.c (mono_reflection_bind_generic_parameters): Use
16714         `if (tb->parent)' instead of `klass->parent'.
16715
16716 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
16717
16718         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
16719         with an empty ASSEMBLY table.
16720
16721         * reflection.c (mono_image_build_metadata): Avoid using the same loop
16722         variable in the inner and outer loops.
16723
16724 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
16725
16726         * metadata.h (mono_metadata_make_token): Put parentheses around macro
16727         argument.
16728
16729         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
16730         
16731         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
16732         icalls. Instead, do everything in managed code. This is needed since
16733         it is hard to restore the original domain etc. in unmanaged code in the
16734         presence of undeniable exceptions.
16735
16736         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
16737         New icalls to push and pop appdomain refs.
16738
16739 2003-10-31  Martin Baulig  <martin@ximian.com>
16740
16741         * class.c (inflate_generic_type): Renamed to
16742         mono_class_inflate_generic_type() and made it public.
16743
16744         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
16745         New interncall.
16746
16747         * loader.c (mono_field_from_memberref): Also set the retklass for
16748         typespecs.
16749
16750         * fielder.c (mono_image_get_inflated_field_token): New static
16751         method; creates a metadata token for an inflated field.
16752         (mono_image_create_token, fixup_method): Added support for
16753         "MonoInflatedField".
16754         (fieldbuilder_to_mono_class_field): New static function.
16755         (mono_reflection_inflate_field): New public function.
16756
16757         * reflection.h
16758         (MonoReflectionGenericInst): Added `MonoArray *fields'.
16759         (MonoReflectionInflatedField): New typedef.     
16760
16761 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
16762
16763         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
16764         for Solaris and other platforms without s6_addr16
16765
16766 2003-10-30  Martin Baulig  <martin@ximian.com>
16767
16768         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
16769         argument instead of two.
16770         (mono_class_inflate_generic_signature): Likewise.
16771         (inflate_generic_header): Likewise.
16772         (mono_class_inflate_generic_method): Likewise.  In addition, if
16773         `ginst->klass' is set, it becomes the new `method->klass'.
16774
16775         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
16776         field.
16777
16778         * reflection.c (encode_generic_method_sig): Write a 0xa as the
16779         first byte. [FIXME]
16780         (method_encode_methodspec): If we have generic parameters, create
16781         a MethodSpec instead of a MethodRef.
16782         (fixup_method): Added support for "MonoInflatedMethod" and
16783         "MonoInflatedCtor".
16784         (mono_image_create_token): Added support for "MonoInflatedMethod"
16785         and "MonoInflatedCtor".
16786         (inflated_method_get_object): New static function; returns a
16787         managed "System.Reflection.MonoInflatedMethod" object.
16788         (mono_reflection_bind_generic_method_parameters): Return a
16789         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
16790         (mono_reflection_inflate_method_or_ctor): Likewise.
16791         (mono_image_get_generic_method_param_info): Initialize unused
16792         fields to zero.
16793         (mono_image_get_generic_param_info): Likewise.
16794
16795         * reflection.h (MonoReflectionInflatedMethod): New public
16796         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
16797         "S.R.MonoInflatedCtor" classes.
16798
16799         * loader.c (method_from_memberref): If we're a TypeSpec and it
16800         resolves to a generic instance, inflate the method.
16801
16802 2003-10-28  Dick Porter  <dick@ximian.com>
16803
16804         * object.c (mono_runtime_run_main): Convert command-line arguments
16805         into utf8, falling back to the user's locale encoding to do so.
16806
16807 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
16808
16809         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
16810         at this time.
16811
16812         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
16813
16814         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
16815         up icalls at method definition time. Partially fixes #33569.
16816
16817 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
16818
16819         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
16820         marshalling of arrays. Fixes #50116.
16821
16822         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
16823
16824         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
16825         points to a vtable in the dying appdomain.
16826
16827         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
16828         listeners into unmanaged code inside the lock.
16829
16830         * object.c (mono_class_vtable): Turn off typed allocation in non-root
16831         domains and add some comments.
16832
16833 2003-10-25  Martin Baulig  <martin@ximian.com>
16834
16835         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
16836
16837         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
16838
16839         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
16840         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
16841         currently parsing.  Create the generic class and store it in
16842         `generic_inst->klass' before parsing the type arguments.  This is
16843         required to support "recursive" definitions; see mcs/tests/gen-23.cs
16844         for an example.
16845         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
16846         to support recursive typespec entries.
16847
16848         * class.c (mono_class_setup_parent): If our parent is a generic
16849         instance, we may get called before it has its name set.
16850         (mono_class_from_generic): Splitted into
16851         mono_class_create_from_generic() and mono_class_initialize_generic().
16852
16853 2003-10-25  Martin Baulig  <martin@ximian.com>
16854
16855         * icall.c (ves_icall_Type_BindGenericParameters): Return a
16856         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
16857         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
16858         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
16859
16860         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
16861         (create_typespec): Likewise.
16862         (mono_reflection_bind_generic_parameters): Return a
16863         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
16864         (mono_reflection_inflate_method_or_ctor): New public function.
16865
16866         * reflection.h (MonoReflectionGenericInst): New typedef.        
16867
16868 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
16869
16870         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
16871         inside the domain lock. Fixes #49993.
16872         
16873         * object.c (mono_class_vtable): When typed allocation is used, 
16874         allocate vtables in the GC heap instead of in the mempool, since the
16875         vtables contain GC descriptors which are used by the collector even
16876         after the domain owning the mempool is unloaded.
16877
16878         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
16879
16880         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
16881         reflect what it does. Also invalidate mempools instead of freeing
16882         them if a define is set.
16883
16884         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
16885         of the appdomain.
16886         
16887         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
16888         hold the finalizable objects in this domain.
16889
16890         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
16891         appdomain.
16892
16893         * appdomain.c (mono_domain_set): New function to set the current
16894         appdomain, but only if it is not being unloaded.
16895
16896         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
16897         appdomain which is being unloaded.
16898         
16899         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
16900         unloading of the root appdomain.
16901
16902         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
16903         icall to execute a method in another appdomain. Intended as a 
16904         replacement for InternalSetDomain, which can confuse the code 
16905         generation in the JIT.
16906
16907         * appdomain.c (mono_domain_is_unloading): New function to determine
16908         whenever an appdomain is unloading.
16909
16910         * appdomain.c (mono_domain_unload): New function to correctly unload
16911         an appdomain.
16912
16913         * assembly.c (mono_assembly_load_references): Check that an assembly
16914         does not references itself.
16915
16916         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
16917         domain manually, it asks the finalizer thread to do it, then waits for
16918         the result. Also added a timeout.
16919
16920         * icall.c: Register the new icalls.
16921
16922         * threads.h threads.c: Export the mono_gc_stop_world and 
16923         mono_gc_start_world functions.
16924         
16925         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
16926         function to fill out the mempool with 0x2a.
16927
16928 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
16929
16930         * reflection.h (MonoReflectionMethodAux): New structure to store
16931         information which is rarely used, thus is not in the MonoMethod
16932         structure.
16933
16934         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
16935         store the aux info.
16936
16937         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
16938         and marshalling info into the aux structure.
16939
16940         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
16941         from the aux structure.
16942
16943         * loader.c (mono_method_get_param_names): Retrieve the param names from
16944         the aux structure.
16945         
16946 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
16947
16948         * exception.h exception.c: Add AppDomainUnloadedException && fix 
16949         warning.
16950
16951 2003-10-21  Dick Porter  <dick@ximian.com>
16952
16953         * socket-io.c
16954         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
16955         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
16956
16957 2003-10-21  Martin Baulig  <martin@ximian.com>
16958
16959         * reflection.c (mono_reflection_bind_generic_parameters):
16960         `klass->parent' is NULL for interfaces.
16961
16962 2003-10-21  Martin Baulig  <martin@ximian.com>
16963
16964         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16965
16966 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
16967
16968         * exception.c (mono_exception_from_name_msg): New helper function for
16969         creating exceptions and initializing their message field.
16970
16971         * exception.c: Simplify functions using the new helper.
16972
16973         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
16974         New function.
16975
16976         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
16977         mono_raise_exception, since otherwise gcc doesn't generate the function
16978         epilog for raise_exception, confusing the stack unwinding in the JIT.
16979         Fixes #45043.
16980
16981         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
16982         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
16983         Fixes #49499.
16984
16985 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16986
16987         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
16988         utf8.
16989
16990 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
16991
16992         * icall.c: Removed GetUninitializedObject method because
16993           AllocateUninitializedClassInstance does the same.
16994
16995 2003-10-18  Martin Baulig  <martin@ximian.com>
16996
16997         * class.c (inflate_generic_signature): Renamed to
16998         mono_class_inflate_generic_signature() and made it public.
16999         (my_mono_class_from_generic_parameter): New static function; if we
17000         don't already have the generic parameter's MonoClass, create a
17001         very simple one which is just used internally in the runtime and
17002         not passed back to managed code.
17003
17004         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
17005
17006         * metadata.h (MonoMethodSignature): Moved the
17007         `MonoGenericParam *gen_params' to the MonoMethodHeader.
17008         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
17009
17010         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
17011         ves_icall_MonoMethod_GetGenericArguments(); this is now an
17012         interncall on the MonoMethod class, not on MethodInfo.
17013         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
17014         calling mono_reflection_bind_generic_method_parameters() directly.
17015
17016         * loader.c (mono_method_get_signature): If this is a MethodSpec;
17017         return the already computed `method->signature'.
17018         (method_from_methodspec): New static function to load a method
17019         from a MethodSpec entry.
17020         (mono_get_method_from_token): Call the new method_from_methodspec()
17021         for MethodSpec tokens.  
17022         (mono_get_method_from_token): If we're a generic method, load the
17023         type parameters.
17024
17025         * reflection.c (mono_image_get_memberref_token): Allow
17026         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
17027         table.
17028         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
17029         (mono_image_create_token): First check whether it's a generic
17030         method (so we'd need to create a MethodSpec), then do the other
17031         two alternatives.
17032         (mono_reflection_bind_generic_method_parameters): Return a
17033         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
17034         called directly from the interncall.
17035
17036 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
17037
17038         * reflection.c (load_public_key): Move loading of the public key
17039         into managed code.
17040
17041         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
17042
17043         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
17044         fields.
17045
17046         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
17047         culture, hash_alg and public_key. Fixes #49555.
17048
17049 2003-10-17  Martin Baulig  <martin@ximian.com>
17050
17051         * class.h (MonoGenericInst): Moved this declaration here and added
17052         `MonoMethod *generic_method'.
17053
17054         * icall.c
17055         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
17056         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
17057
17058         * metadata.c (mono_metadata_type_equal): Two types of
17059         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
17060         index; ie. don't compare the address of the `MonoGenericParam'
17061         structure.
17062         (mono_metadata_load_generic_params): Removed the `MonoMethod
17063         *method' argument.
17064
17065         * metadata.h (MonoGenericInst): Moved declaration to class.h.
17066         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
17067
17068         * reflection.c (method_encode_signature): Encode the number of
17069         generic parameters.
17070         (encode_generic_method_sig): New static function.
17071         (method_encode_methodspec): New static function; creates an entry
17072         in the MethodSpec table for a generic method.
17073         (mono_image_get_methodspec_token): New static function.
17074         (mono_image_create_token): Call mono_image_get_methodspec_token()
17075         for generic methods.
17076         (mono_reflection_bind_generic_method_parameters): New public
17077         function.  Instantiates a generic method.
17078
17079 2003-10-16  Martin Baulig  <martin@ximian.com>
17080
17081         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
17082         *gen_params' here from MonoMethodHeader.
17083
17084         * metadata.c (mono_metadata_parse_method_signature): If we have
17085         generic parameters, initialize `method->gen_params' and then set
17086         the correct `type->data.generic_param' in all the parameters.
17087
17088 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
17089
17090         * threads.c (mono_threads_get_default_stacksize): New function to 
17091         return the default stacksize.
17092
17093         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
17094         termination of the finalizer thread, since the previous method had
17095         race conditions. Fixes #49628.
17096
17097         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
17098         as for the other managed threads.
17099
17100 2003-10-16  Martin Baulig  <martin@ximian.com>
17101
17102         * class.c (inflate_generic_signature): Copy `generic_param_count'
17103         and `gen_params'.
17104
17105         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
17106         New interncall.
17107
17108         * metadata.c (mono_metadata_parse_method_signature): Actually set
17109         the `method->generic_param_count' here.
17110         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
17111
17112 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
17113
17114         * object.h: Add a new field to TypedRef to simplify the implementation
17115         of the REFANY opcodes in the JIT.
17116
17117         * icall.c: Make use of the new field.
17118
17119         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
17120         dynamically.
17121
17122 2003-10-15  Martin Baulig  <martin@ximian.com>
17123
17124         * class.c (mono_class_from_gen_param): Renamed to
17125         mono_class_from_generic_parameter() and moved most of the
17126         functionality from mono_reflection_define_generic_parameter()
17127         here; ie. we create a "real" class here.
17128         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
17129         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
17130         previously been called.
17131
17132         * class.h (MonoGenericParam): Moved the declaration of this struct
17133         here from metadata.h and added `MonoMethod *method'.
17134
17135         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
17136         interncall.
17137
17138         * loader.c (mono_get_method_from_token): If we have any generic
17139         parameters, call mono_metadata_load_generic_params() to read them
17140         from the MONO_TABLE_GENERICPAR.
17141
17142         * metadata.c (mono_metadata_load_generic_params): Added
17143         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
17144
17145         * metadata.h (MonoMethodSignature): Replaced
17146         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
17147         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
17148
17149         * reflection.c (mono_reflection_define_generic_parameter): Moved
17150         most of the functionality into the new
17151         mono_class_from_generic_parameter(); set the `method' field if
17152         we're a method parameter.       
17153
17154 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
17155
17156         * marshal.c (emit_struct_conv): if native size is 0
17157         emit no code.
17158
17159 2003-10-14  Martin Baulig  <martin@ximian.com>
17160
17161         * icall.c: The generics API has changed in the spec since it was
17162         added to System.Type; these modifications make it match the spec
17163         again.
17164         (ves_icall_Type_GetGenericParameters): Renamed to
17165         `ves_icall_Type_GetGenericArguments'.
17166         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
17167         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
17168         `ves_icall_MonoType_get_HasGenericArguments'.
17169         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
17170         `ves_icall_MonoType_get_IsGenericParameter'.
17171         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
17172         this is no interncall anymore.
17173         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
17174         `ves_icall_TypeBuilder_get_IsGenericParameter'.
17175
17176 2003-10-14  Martin Baulig  <martin@ximian.com>
17177
17178         * reflection.c (mono_reflection_bind_generic_parameters): Also
17179         inflate generic methods if we're reading the class from IL.
17180
17181 2003-10-13  Martin Baulig  <martin@ximian.com>
17182
17183         * reflection.c (mono_reflection_define_generic_parameter): This
17184         method isn't called directly from the icall anymore; take a
17185         `MonoReflectionAssemblyBuilder *' so we can use this for type and
17186         method generic parameters.
17187         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
17188         (method_builder_encode_signature): Encode generic parameters.
17189         (mono_image_get_method_info): Write generic params to the
17190         MONO_TABLE_GENERICPARAM table.
17191
17192         * reflection.h (MonoReflectionMethodBuilder): Added
17193         `MonoArray *generic_params'.
17194
17195         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
17196
17197         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
17198         wrapper for mono_reflection_define_generic_parameter().
17199         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
17200
17201 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
17202
17203         * marshal.h: Add missing function to fix build.
17204
17205         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
17206         the SetLastError pinvoke attribute.
17207
17208         * marshal.c (mono_marshal_set_last_error): New helper function called
17209         by the generated code.
17210         
17211         * marshal.c (mono_mb_emit_branch): New helper function.
17212
17213         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
17214
17215         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17216         classes as parameters and return values of delegates. Fixes #29256. 
17217
17218 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
17219
17220         * locales.c: use gint32 in non HAVE_ICU case
17221
17222 2003-10-11  Martin Baulig  <martin@ximian.com>
17223
17224         * mono-debug.c (mono_debug_add_method): Added a workaround for
17225         bug #48591.
17226
17227 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
17228
17229         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
17230         delegates passed to native code must use the STDCALL calling 
17231         convention. Fixes #35987.
17232
17233 2003-10-10  Martin Baulig  <martin@ximian.com>
17234
17235         * class.c (inflate_generic_type): If we're inflating for a generic
17236         type instance (and not for a generic method), return
17237         MONO_TYPE_MVAR unchanged.
17238
17239 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17240
17241         * string-icalls.c: Join ignores null strings in the source array.
17242         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
17243         * threads.c: GetAvailableTheads is slightly more accurate.
17244
17245 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
17246
17247         * threads.h threads.c : add mono_threads_set_default_stacksize
17248         and pass default to CreateThread calls.
17249
17250 2003-10-09  Dick Porter  <dick@ximian.com>
17251
17252         * icall.c:
17253         * locales.h:
17254         * locales.c: Internal calls for constructing CultureInfo and
17255         related objects from libicu (if its available.)
17256
17257 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
17258
17259         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
17260
17261 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17262
17263         * threadpool.c: added an argument to async_invoke_thread that is the
17264         item to process, pass the MonoAsyncResult to the thread start function
17265         when creating a new thread. This way we don't need to acquire any lock
17266         when we're creating a new thread. Readded a semaphore for faster
17267         response times (instead of that Sleep i added).
17268
17269 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
17270
17271         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
17272         get daylight change dates better on Windows, fix handling
17273         of platforms without tm_gmtoff.
17274
17275 2003-10-06  Martin Baulig  <martin@ximian.com>
17276
17277         * class.c (inflate_generic_method): Renamed to
17278         mono_class_inflate_generic_method() and made public.
17279         (mono_class_init): Don't inflate the generic methods here.
17280         (mono_class_from_generic): Added `gboolean inflate_methods'
17281         argument.  Inflate the methods here.
17282
17283         * loader.c (mono_method_get_param_names): Ignore instances of
17284         generic types for the moment.
17285
17286         * reflection.c (fixup_method): Added support for inflated methods.
17287         (mono_image_create_token): Use mono_image_get_methodref_token()
17288         for inflated methods.
17289         (mono_custom_attrs_from_param): Ignore instances of generic types
17290         for the moment.
17291         (mono_reflection_bind_generic_parameters): New public function.
17292         Moved all the functionality from
17293         ves_icall_Type_BindGenericParameters() here and added support for
17294         dynamic types.
17295         (mono_reflection_define_generic_parameter): Initialize
17296         `klass->methods' here.
17297
17298         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
17299         functionality into mono_reflection_define_generic_parameter().
17300         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
17301         TypeBuilder, return that TypeBuilder.
17302
17303 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17304
17305         * appdomain.c: removed mono_delegate_semaphore.
17306
17307         * threadpool.c:
17308         (mono_thread_pool_add): moved hash table creation inside and the thread 
17309         creation outside of the critical region.
17310         (mono_thread_pool_finish): removed obsolete code.
17311         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
17312         continue or exit the thread depending on the queue.
17313
17314 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
17315
17316         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
17317         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
17318         handle more bool marshalling options
17319
17320 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
17321
17322         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
17323         arrays of structs. Also add a more descriptive error message when
17324         a structure member is marshalled as LPArray.
17325
17326 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
17327
17328         * marshal.c (mono_marshal_get_native_wrapper): Add support for
17329         marshalling arrays of complex types. Fixes #29098. Also remove an
17330         usused and incomplete function.
17331
17332 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
17333
17334         * gc.c: report heap_size - free_bytes as total memory allocated
17335         (bug#49362).
17336
17337 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
17338
17339         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
17340         fix timezone handling problems on Windows.
17341         
17342         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
17343         asserts when the year is outside the range handled by ms the functions.
17344
17345         * class.c (setup_interface_offsets): If the class is an interface,
17346         fill out its interface_offsets slot.
17347
17348 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17349
17350         * threadpool.c: mark threadpool threads as background.
17351
17352 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
17353
17354         * decimal.c - define DECINLINE to nothing if not using GCC
17355
17356 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
17357
17358         * assembly.c: More refcount fixes.
17359
17360 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17361
17362         * string-icalls.c: if we're not trimming, return the same string.
17363         When not splitting, don't create a new string.
17364
17365 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17366
17367         * image.c:
17368         (mono_image_open): increment the ref_count inside the critical section.
17369
17370 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
17371
17372         * image.c (mono_image_open): Fix reference counting bug.
17373
17374 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
17375
17376         * marshal.c (mono_marshal_type_size) struct alignment changed for 
17377         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
17378         64bits. Avoid leak in mono_marshal_get_native_wrapper when
17379         mono_lookup_pinvoke_call throws.        
17380
17381 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
17382
17383         * reflection.c (mono_reflection_parse_type): Fix #49114.
17384
17385         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
17386         temporary workaround for cygwin header problem.
17387
17388         * object.c (mono_object_isinst): Synchronize this with the code
17389         generated by the JIT for casts.
17390
17391 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
17392
17393         * reflection.c (encode_type): Fix #38332.
17394
17395 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
17396
17397         * marshal.c (mono_marshal_method_from_wrapper): New function to return
17398         the original method from the wrapper method.
17399
17400 2003-09-25  Martin Baulig  <martin@ximian.com>
17401
17402         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
17403         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
17404         (ves_icall_Type_get_IsGenericInstance): New interncall.
17405
17406 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
17407
17408         * object.c: fix cast warning in big endian code.
17409
17410 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
17411
17412         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
17413         
17414 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17415
17416         * assembly.c: don't call check_env from mono_assembly_load. It's
17417         already done once in mono_assemblies_init and may cause headaches when
17418         multiple threads are loading assemblies.
17419
17420 2003-09-19  Martin Baulig  <martin@ximian.com>
17421
17422         * reflection.c (mono_reflection_define_generic_parameter): Don't
17423         allocate `klass->methods', set `klass->flags' to
17424         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
17425
17426 2003-09-18  Martin Baulig  <martin@ximian.com>
17427
17428         * class.c (mono_class_init): Don't create `class->methods' if it's
17429         already initialized.
17430
17431         * metadata.c (mono_metadata_load_generic_params): Make this
17432         actually work.
17433
17434         * reflection.c (mono_reflection_define_generic_parameter): Set
17435         parent class and interfaces from the constraints.
17436
17437         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
17438         to keep this struct in sync with the declaration in TypeBuilder.cs.
17439
17440 2003-09-17  Martin Baulig  <martin@ximian.com>
17441
17442         * metadata.h (MonoType): Replaced the data's `int type_param'
17443         field with `MonoGenericParam *generic_param'.
17444         (MonoGenericParam): Added `MonoClass *klass'.
17445
17446         * class.c (mono_class_from_gen_param): Removed the
17447         `MonoImage *image' and `int type_num' arguments.
17448
17449         * metadata.c (mono_metadata_parse_generic_param): New static
17450         method; creates a MonoGenericParam which just contains the index.
17451         (do_mono_metadata_parse_type): Call
17452         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
17453         MONO_TYPE_MVAR.
17454
17455         * reflection.c (mono_image_typedef_or_ref): Generic type
17456         parameters may be in the same assembly, but never use a typedef
17457         for them.
17458         (mono_reflection_define_generic_parameter): We're now creating a
17459         "real" class for the type parameter; it's now safe to call
17460         mono_class_from_mono_type() on the class'es type, it'll do the
17461         right thing.
17462
17463 2003-09-16  Martin Baulig  <martin@ximian.com>
17464
17465         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
17466         `symfile->range_entry_size' and `symfile->class_entry_size' here;
17467         the `symfile' data structure must be fully initialized before it
17468         gets added to the table.
17469
17470 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
17471
17472         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
17473
17474         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
17475         class init trampolines.
17476
17477 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
17478
17479         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
17480         to the built-in profiler to turn off time and allocation profiling
17481         respectively.
17482
17483 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
17484
17485         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
17486         g_direct_equal.
17487
17488         * debug-helpers.c (mono_method_full_name): Print the wrapper type
17489         in human readable form.
17490
17491 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
17492
17493         * reflection.c icall.c: Fixed warnings.
17494
17495         * image.c (load_class_names): Use a temporary hash table to hold the
17496         namespaces in order to avoid doing many string comparisons.
17497
17498         * image.h: Fix typo.
17499
17500         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
17501         Pass NULL instead of g_direct_equal to the GHashTable constructor 
17502         since the NULL case is short-circuited inside g_hash_table_lookup, 
17503         leading to better performance.  
17504
17505         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
17506         obtain the first custom attribute for a given index. Depends on the
17507         CustomAttribute table being sorted by the parent field.
17508
17509         * reflection.c (mono_custom_attrs_from_index): Use the new function 
17510         for better performance.
17511
17512 2003-09-07  Martin Baulig  <martin@ximian.com>
17513
17514         * class.c (mono_class_init): If we're a generic instance, inflate
17515         all our methods instead of loading them from the image.
17516         (mono_class_from_generic): Set `class->methods = gklass->methods'.
17517
17518 2003-09-07  Martin Baulig  <martin@ximian.com>
17519
17520         * mono-debug-debugger.c: Added support for constructors.
17521
17522 2003-09-06  Martin Baulig  <martin@ximian.com>
17523
17524         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
17525         New interncall.
17526
17527         * reflection.c (mono_reflection_setup_generic_class): Call
17528         ensure_runtime_vtable() to create the vtable.
17529
17530 2003-09-05  Martin Baulig  <martin@ximian.com>
17531
17532         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
17533         MONO_TYPE_MVAR.
17534
17535 2003-09-04  Martin Baulig  <martin@ximian.com>
17536
17537         * reflection.c (mono_reflection_define_generic_parameter): Generic
17538         parameters start with zero.
17539
17540 2003-09-04  Martin Baulig  <martin@ximian.com>
17541
17542         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
17543
17544         * reflection.h (MonoReflectionGenericParam): New typedef.
17545         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
17546         the generic parameters from the managed TypeBuilder.
17547
17548         * reflection.c (mono_reflection_define_generic_parameter): New function.
17549         (mono_reflection_create_runtime_class): Encode generic parameters.
17550         (mono_reflection_setup_generic_class): New function; this is
17551         called after adding adding all generic params to the TypeBuilder.
17552         (encode_type): Added MONO_TYPE_VAR.
17553
17554 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
17555
17556         * class.h class.c (mono_class_needs_cctor_run): Moved this method
17557         here from the JIT.
17558
17559         * assembly.h assembly.c: Moved the AOT loading code into an assembly
17560         load hook.
17561
17562 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
17563
17564         * reflection.h reflection.c class.h class.c: Delete duplicate 
17565         definition of mono_type_get_name () from reflection.c and export the
17566         one in class.c.
17567
17568         * class.c: Class loading fixes from Bernie Solomon 
17569         (bernard@ugsolutions.com).
17570
17571         * reflection.c: Endianness fixes from Bernie Solomon 
17572         (bernard@ugsolutions.com).
17573         
17574 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
17575
17576         * assembly.h assembly.c: Define a file format version for AOT
17577         libraries.
17578         
17579         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
17580
17581         * appdomain.h (MonoJitInfo): New field to determine whenever the
17582         code is domain neutral.
17583         
17584 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
17585
17586         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
17587
17588 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
17589
17590         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
17591         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
17592         Avoid caching the result since strings must be domain specific. Fixes
17593         #48050.
17594
17595 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
17596
17597         * marshal.c (mono_marshal_init): Make this callable multiple times
17598         since it is hard to find a correct place to call it.
17599
17600         * object.c (mono_runtime_class_init): Execute static constructors in
17601         the correct appdomain.
17602
17603         * image.c (build_guid_table): Handle the case when multiple images have
17604         the same GUID.
17605
17606 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17607
17608         * icall.c: added a couple of icalls for System.Web.
17609
17610 2003-08-28  Martin Baulig  <martin@ximian.com>
17611
17612         * icall.c (ves_icall_Type_BindGenericParameters): Use
17613         `klass->generic_inst' instead of `&klass->byval_arg' in the
17614         mono_type_get_object() call.  The returned type must be
17615         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
17616
17617 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
17618
17619         * NOTES: New file.
17620
17621         * object.c (mono_class_proxy_vtable): Make it thread safe.
17622
17623         * pedump.c: Fix warning.
17624
17625         * object.c appdomain.h: Get rid of metadata_section. 
17626         It is no longer needed and it was causing deadlocks with domain->lock.
17627
17628         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
17629
17630 2003-08-26  Martin Baulig  <martin@ximian.com>
17631
17632         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
17633
17634 2003-08-26  Martin Baulig  <martin@ximian.com>
17635
17636         * pedump.c (main): Call mono_metadata_init(),
17637         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
17638         and mono_loader_init().
17639
17640 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
17641
17642         * loader.h: Add missing include to fix build.
17643
17644         * image.h: mono_image_load_references is no more.
17645
17646         * assembly.c: Reworked assembly loading to make it really thread safe.
17647         After these changes, the assembly returned by mono_assembly_open is
17648         fully initialized, i.e. all its references assemblies are loaded.
17649
17650         * assembly.c (mono_image_load_references): Renamed to 
17651         mono_assembly_load_references, and made private, since clients no
17652         longer need to call it.
17653
17654         * class.c: Removed calls to mono_assembly_load_references, since it was
17655         a source of deadlocks.
17656
17657         * loader.h loader.c class.h class.c: Protect data structures using a 
17658         new lock, the loader lock.
17659
17660         * class.c (mono_class_setup_vtable): Create temporary hash tables and
17661         GPtrArrays only when needed.
17662
17663         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
17664         into empty structures by mcs. Fixes pinvoke7.cs.
17665         
17666         * domain.c (mono_init): Call a new initialization function.
17667
17668         * appdomain.c (mono_runtime_init): Call the new initializer function
17669         of the marshal module.
17670
17671         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
17672         inserted into empty structures by mcs. Fixes pinvoke7.cs.
17673
17674         * marshal.h marshal.c: Added locks around the wrapper caches to make
17675         this module thread safe.
17676
17677         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
17678         this argument. Fixes pinvoke1.exe.
17679
17680 2003-08-25  Lluis Sanchez <lluis@ximian.com>
17681
17682         * object.h: Added call_type field to MonoMethodMessage and the corresponding
17683         enumeration of values. Removed fields to store remote call output values in
17684         MonoAsyncResult. Not needed any more.
17685         * object.c: Initialize call_type and async_result fields in mono_message_init.
17686         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
17687         dispatching the message.
17688         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
17689         async call to finish. To do it use a message with EndInvoke call type.
17690
17691 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
17692
17693         * loader.h loader.c (mono_method_hash_marhal_info): New function which
17694         determines whenever a method has marshalling info.
17695
17696 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17697
17698         * assembly.c: fix the build on windows.
17699
17700 2003-08-22 Lluis Sanchez <lluis@ximian.com>
17701
17702         * object.cs: Fixed bug #47785.
17703
17704 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
17705
17706         * string-icalls.c (StringReplace): If their are no occurances of
17707         the old string found return a reference to the supplied
17708         string. This saves some memory and matches MS behavoir.
17709         
17710 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17711
17712         * socket-io.c: fixed compilation for systems that define AF_INET6
17713         and don't define SOL_IP/SOL_IPV6.
17714
17715 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
17716
17717         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
17718         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
17719
17720         * rawbuffer.c rawbuffer.h: Make this module thread safe.
17721
17722         * domain.c: Make this module thread safe.
17723
17724         * domain.c (mono_init): Call new initialization function.
17725
17726         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
17727         reference types too. Fixes #38812.
17728
17729         * image.c (mono_image_init): Fixed warnings.
17730
17731         * class.c (mono_class_from_typeref): Handle assembly load failure
17732         correctly.
17733
17734         * appdomain.c (add_assemblies_to_domain): Handle the case when
17735         the references of an assembly are not yet loaded.
17736
17737         * metadata.c image.c assembly.c: Moved initialization of global
17738         variables to a separate function called at startup since lazy 
17739         initialization of these variables is not thread safe.
17740         
17741         * image.c assembly.c: Made this module thread safe by adding locks in 
17742         the appropriate places.
17743
17744         * domain.c (mono_init): Call the new initialization functions of the
17745         three modules.
17746
17747 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
17748
17749         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
17750           make a direct call. It is proxy's work to make the call asynchronous.
17751           mono_delegate_end_invoke(): If the targe is a proxy, just collect
17752           the return values.
17753         * object.cs: mono_method_call_message_new(): read AsyncResult and
17754           state object from parameters list, if this info is requested.
17755         * object.h: Added fields to store remote call output values in
17756           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
17757
17758 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17759
17760         * object.h: add needed fields to MonoThread.
17761         * threads.c, threads.h: allow registering a function to cleanup data
17762         allocated per thread by the JIT.
17763
17764 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17765
17766         * loader.h: portability fix by Bernie Solomon
17767         * <bernard@ugsolutions.com>.
17768
17769 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
17770
17771         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
17772         return a MonoArray. This simplifies the code and also ensures that
17773         the cache allways contains an object reference as a value.
17774
17775         * icall.c (ves_icall_get_parameter_info): Simplified using the new
17776         function.
17777
17778 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17779
17780         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
17781         fixes a problem with byte ordering when getting the address family for
17782         a socket.
17783
17784 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
17785
17786         * .cvsignore: Added monosn.
17787
17788         * reflection.h reflection.c loader.c: Added support for parameter
17789         marshalling to dynamically created types. Fixes #47295.
17790
17791 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
17792
17793         * rand.c: remove useless warnings.
17794
17795 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
17796
17797         * class.c: implemented ldtoken for methods and fieldrefs.
17798
17799 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17800
17801         * threadpool.c: when mono_async_invoke was called, no one took care of
17802         monitoring the queue. So if the method invoked took some time and we
17803         got new async invoke requests after 500 ms (the thread created waited
17804         that long in WaitForSingleObject), the new async invoke was not called
17805         until the previous one finished.
17806
17807         This is fixed now. Thanks to Totte for helping with it.
17808
17809 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17810
17811         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
17812
17813 2003-08-11  Martin Baulig  <martin@ximian.com>
17814
17815         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
17816
17817 2003-08-06  Martin Baulig  <martin@ximian.com>
17818
17819         * mono-debug-debugger.c: Added support for static fields,
17820         properties and methods.
17821
17822 2003-08-06  Martin Baulig  <martin@ximian.com>
17823
17824         * mono-debug-debugger.c: Don't store the MonoString's vtable to
17825         make this work for applications with multiple application domains.
17826
17827 2003-08-04  Martin Baulig  <martin@ximian.com>
17828
17829         * mono-debug-debugger.c: Completely reworked the type support; the
17830         most important thing is that we're now just using one single
17831         `MonoType' instance per type.
17832
17833 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
17834
17835         * mono-endian.h, mono-endian.c, icall.c: Added icall
17836         ves_icall_System_Double_AssertEndianity to assert double word endianity
17837         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
17838
17839 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17840
17841         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
17842         support, icalls and fixes.
17843
17844 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
17845
17846         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
17847         classes that are a punctuation character in .NET is not the same a
17848         g_unichar_ispunct.
17849
17850 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17851
17852         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
17853
17854 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
17855
17856         * icall.c: Add new MemCopy internalcall.
17857         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
17858         Simplified code; It is not necessary to handle all the cases here,
17859         as the C# code takes care of it.  Only handle the case of the name
17860         resource embedded into the assembly.
17861
17862         Changed signature to return the data pointer and the size of the
17863         data. 
17864
17865 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
17866
17867         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
17868         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
17869
17870 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
17871
17872         * socket-io.c: ignore EINTR error in select.
17873
17874 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17875
17876         * class.h, class.c: removed unused subclasses field in MonoClass.
17877
17878 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
17879
17880         * icall.c: improve fix of get_base_definition(). If the parent class
17881           doesn't have the mehod, look at the parent of the parent.
17882         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
17883           to check if a parameter is an in or out parameter
17884           (PARAM_ATTRIBUTE_IN is not set by default).
17885           mono_method_return_message_restore(): Use mono_class_value_size to
17886           get the size of a value type. mono_type_stack_size (parameterType)
17887           does not return the correct value if parameterType is byRef.
17888           mono_load_remote_field(), mono_load_remote_field_new(),
17889           mono_store_remote_field(), mono_store_remote_field_new():
17890           raise exception if the remote call returns an exception.
17891
17892 2003-07-28  Martin Baulig  <martin@ximian.com>
17893
17894         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
17895         method.  This is a wrapper around mono_runtime_invoke() which
17896         boxes the instance object if neccessary.
17897
17898 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17899
17900         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
17901         metadata.h, row-indexes.h, verify.c: first cut of generics support.
17902
17903 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17904
17905         * icall.c: disable mcs bug workaround.
17906
17907 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
17908
17909         * object.c (mono_runtime_class_init): Take the metadata_section
17910         mutex before obtaining the domain mutex.
17911
17912         * appdomain.h: Added definition of metadata_section mutex here. 
17913
17914         * object.c: define metadata_mutex here.
17915
17916 2003-07-24  Ravi Pratap  <ravi@ximian.com>
17917
17918         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
17919         fixed.
17920
17921 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
17922
17923         * reflection.c: Fix bug #46669
17924
17925 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17926
17927         * exception.c:
17928         * exception.h:
17929         * icall.c:
17930         * object.h: fill in the type name for TypeLoadException.
17931
17932 2003-07-23  Ravi Pratap  <ravi@ximian.com>
17933
17934         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
17935         relationship between TypeBuilders while compiling corlib) and bug
17936         45993 (Array types returned from the runtime while compiling
17937         corlib were from the loaded corlib).
17938
17939 2003-07-22  Martin Baulig  <martin@ximian.com>
17940
17941         * mono-debug-debugger.c: Reworked the type support a bit more;
17942         distinguish between types and classes.
17943
17944 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
17945
17946         * icall.c: add IsArrayImpl icall.
17947
17948 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
17949
17950         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
17951         initializing real_size only once. Also fix bug #46602.
17952
17953 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
17954
17955         * object.c: Renamed mono_metadata_section to metadata_section.
17956
17957 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
17958
17959         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
17960           empty array if the type is an array. Fixed.
17961           ves_icall_MonoMethod_get_base_definition: if the base method
17962           is abstract, get the MethodInfo from the list of methods of
17963           the class.
17964         * reflection.c: ParameterInfo.PositionImpl should be zero-based
17965           and it was 1-based. Fixed in mono_param_get_objects.
17966
17967 2003-07-20  Martin Baulig  <martin@ximian.com>
17968
17969         * mono-debug.h: Set version number to 31.
17970         (mono_debug_init): Added `MonoDomain *' argument.
17971
17972         * mono-debug-debugger.c: Reworked the type support; explicitly
17973         tell the debugger about builtin types; pass the `klass' address to
17974         the debugger.
17975
17976 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
17977
17978         * image.c: Allow new metadata tables to be loaded without a
17979         warning. Also update the warning message to give the new constant value.
17980                 
17981 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
17982
17983         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
17984         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
17985         array type representation changes.
17986
17987 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
17988
17989         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
17990         on Environment.Exit () call.
17991
17992 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
17993
17994         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
17995         requires a matching corlib.
17996
17997 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
17998
17999         * Changelog: My editor decided to add a CR to each line. Sorry about that.
18000           Committed again without the CRs.
18001         
18002 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
18003
18004         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
18005           getting it from the "this" socket instance. Did not work
18006           if the socket is a subclass of Socket.
18007           Also fixed bug #35371.
18008
18009 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
18010
18011         * metadata.c: fixed size for TypedByRef.
18012         * loader.c: when searching for a method, consider the vararg amrker.
18013         * unicode.c, decimal.c: constify some arrays.
18014
18015 2003-07-15  Dick Porter  <dick@ximian.com>
18016
18017         * socket-io.c: Fixed compilation for gcc < 3.2.
18018
18019         Fixed compilation for machines that don't have AF_INET6 (thanks to
18020         Bernie Solomon <bernard@ugsolutions.com> for that part.)
18021
18022         Fixed compile warnings.
18023         
18024         Fixed formatting and line endings.
18025
18026 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
18027
18028         * socket-io.h:
18029         * socket-io.c: Added IPv6 support.
18030
18031 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
18032
18033         * class.c (mono_class_is_assignable_from): New function to implement
18034         the is_assignable_from logic. Used by mono_object_isinst, 
18035         Type::IsAssignableFrom () and the interpreter.
18036
18037         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
18038         Object, even interfaces.
18039         
18040         * object.c (mono_object_isinst): Implement in terms of 
18041         is_assignable_from.
18042
18043         * icall.c (ves_icall_type_is_assignable_from): New icall.
18044
18045 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
18046
18047         * domain.c (foreach_domain): fix compiler warning.
18048
18049 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
18050
18051         * image.c (load_metadata_ptrs): use g_strndup because strndup is
18052         not available on all plattforms
18053
18054 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
18055
18056         * image.h image.c: Store the metadata version string in MonoImage.
18057         * icall.c: New icall to retrieve the image version.
18058         * reflection.c (create_dynamic_image): Fill in the image version field
18059         * reflection.c (build_compressed_metadata): Use the image version
18060         from the image structure.
18061
18062 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18063
18064         * appdomain.c: modified comment.
18065         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
18066         That will be its last iteration when mono_gc_cleanup is called from
18067         mono_runtime_cleanup and before the domain is unloaded.
18068
18069         Fixes bug #45962.
18070
18071 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
18072
18073         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
18074         attributes.
18075
18076 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18077
18078         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
18079         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
18080         Bernie Solomon <bernard@ugsolutions.com>.
18081
18082 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
18083
18084         * object.c, object.h: provide mono_object_new_fast() for faster
18085         allocation in some special cases.
18086
18087 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
18088
18089         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
18090         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
18091
18092 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
18093
18094         * threadpool.c: fix leaks.
18095
18096 2003-07-01  Dick Porter  <dick@ximian.com>
18097
18098         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
18099         using MonoGHashTables.  Fixes threadpool bug posted to list.
18100
18101 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
18102
18103         * image.h, image.c: added support to load an assembly from a byte array.
18104         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
18105         assembly bundle support.
18106
18107 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
18108
18109         * threadpool.c (mono_thread_pool_add): keep a reference to the
18110         AsyncResult to prevent GC
18111
18112 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
18113
18114         * class.c: leak fix.
18115
18116 2003-06-25  Dick Porter  <dick@ximian.com>
18117
18118         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
18119         for the async object, the WaitHandle object will close the handle.
18120         Fixes bug 45321.
18121
18122 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
18123
18124         * class.c: in mono_array_class_get (), lookup from the hash with the
18125         same type we insert: this works around a bug in
18126         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
18127         lluis. The real fix will have to wait for after the release.
18128
18129 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
18130
18131         * icall.c: fix memory leak when getting type members.
18132
18133 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
18134
18135         * reflection.c: added more pubtoken special cases.
18136
18137 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
18138
18139         * class.c: handle field offset correctly when class size
18140         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
18141
18142 2003-06-20  Martin Baulig  <martin@ximian.com>
18143
18144         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
18145         *image' field.
18146
18147 2003-06-20  Martin Baulig  <martin@ximian.com>
18148
18149         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
18150
18151 2003-06-20  Martin Baulig  <martin@ximian.com>
18152
18153         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
18154         just distinguish between variables in registers and variables at
18155         an offset relative to a register.
18156
18157 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18158
18159         * icall.c: #ifdef out latest changes until mcs is fixed.
18160
18161 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
18162
18163         * icall.c: return members in metadata order.
18164
18165 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
18166
18167         * icall.c: avoid infinite loop in GetTimeZoneData.
18168
18169 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
18170
18171         * icall.c: added Marshal.Prelink/All icalls.
18172
18173 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
18174
18175         * object.c, object.h: fix warnings and do some overflow checking
18176         when creating arrays.
18177
18178 2003-06-17  Dick Porter  <dick@ximian.com>
18179
18180         * file-io.h:
18181         * file-io.c: File attributes need to be tweaked slightly when
18182         passed from the managed to the w32 world.
18183
18184 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
18185         * profiler.h profiler-private.h profiler.c: Rework last patch
18186         based on suggestion by Paolo.
18187         
18188 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
18189
18190         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
18191         instruction level coverage data collection.
18192         * profiler.h profiler.c (: Added new callback function which can be
18193         used by the profiler to limit which functions should have coverage
18194         instrumentation.
18195         * profiler.c (mono_profiler_load): Call g_module_build_path to
18196         generate the file name of the profiler library.
18197
18198 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18199
18200         * profiler.c, profiler.h, profiler-private.h: added basic block 
18201         coverage profiling API.
18202
18203 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
18204
18205         * reflection.c (mono_reflection_create_runtime_class): Add support
18206         for events in dynamically generated code.
18207
18208         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
18209         not allocated.
18210
18211 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
18212
18213         * icall.c: when getting timezone info, return reasonable values if we
18214         can't get the actual data.
18215
18216 2003-06-14  Dick Porter  <dick@ximian.com>
18217
18218         * threads.c (start_wrapper): Remove the reference to the thread
18219         object in the TLS data, so the thread object can be finalized.
18220         This won't be reached if the thread threw an uncaught exception,
18221         so those thread handles will stay referenced :-( (This is due to
18222         missing support for scanning thread-specific data in the Boehm GC
18223         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
18224
18225 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
18226
18227         * reflection.c: ensure streams and tables are first allocated with
18228         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
18229
18230 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
18231
18232         * icall.c: fixed GetElementType for byrefs (bug# 44792).
18233
18234 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
18235
18236         * reflection.c (mono_reflection_create_runtime_class): Add support for
18237         properties to dynamically created classes.
18238         * reflection.c: Fix a few places where non-MonoObjects were inserted
18239         into the tokens hashtable.
18240
18241 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
18242
18243         * object.c: some support to handle out of memory exceptions.
18244
18245 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
18246
18247         * marshal.c (mono_marshal_get_native_wrapper): support reference
18248         return types
18249
18250 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
18251
18252         * object.h, object.c: more portability stuff from Bernie Solomon.
18253         Unexport mono_object_allocate(). Added mono_object_unbox ().
18254         Set exitcode when an unhandled exception is thrown.
18255
18256 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
18257
18258         * marshal.c (mono_marshal_get_native_wrapper): use custom
18259         marshaler for return types.
18260
18261 2003-06-10  Dick Porter  <dick@ximian.com>
18262
18263         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
18264         ip_mreq is available
18265
18266 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
18267
18268         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
18269         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
18270         by Bernie Solomon <bernard@ugsolutions.com>.
18271
18272 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
18273
18274         * gc.c (mono_gc_init): Avoid error message on shutdown when
18275         GC_DONT_GC=1 is used.
18276
18277         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
18278         New icall to return the GUID of a module.
18279
18280 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
18281
18282         * class.c: ensure instance size always includes the parent's size
18283         even whem class size is set explicitly (fixes bug#44294).
18284
18285 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
18286
18287         * profiler.h, profiler.c: made the simple profiler thread-safe,
18288         get more accurate timing info. Allow the loading of an
18289         externally-developed profiler module.
18290
18291 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
18292
18293         * marshal.c (mono_marshal_get_native_wrapper): improved
18294         class/byref arguments.
18295         (mono_marshal_get_native_wrapper): better string marshaling support.
18296
18297 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
18298
18299         * class.c: ensure .pack and .size are handled correctly and
18300         simplified layout of static fields.
18301
18302 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
18303
18304         * appdomain.c
18305         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
18306
18307         * loader.c (mono_lookup_pinvoke_call): look for modules in the
18308         current directory (fix bug 44008)
18309
18310 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
18311
18312         * marshal.c (mono_marshal_get_native_wrapper): started support for
18313         custom marshalers.
18314         (mono_delegate_to_ftnptr): consider marshalling specifications
18315
18316 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
18317
18318         * reflection.c, reflection.h: emit custom marshal info.
18319
18320 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18321
18322         * object.c: free the GError.
18323         * icall.c: added CloseEvent_internal.
18324         * threads.[ch]:
18325         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
18326         call.
18327
18328 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
18329
18330         * loader.c (mono_method_get_signature): Add support for dynamic
18331         assemblies.
18332
18333 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
18334
18335         * reflection.c: fixed bug #43905.
18336
18337 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
18338
18339         * class.c, domain.c, icall.c, metadata.h, object.h: support for
18340         handling TypedReference and ArgIterator.
18341         * loader.c, loader.h: added function to get signature at call site.
18342
18343 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
18344
18345         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
18346         data readonly. Buglets and warning fixes. Some MethodSpec support.
18347
18348 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
18349
18350         * class.h, class.c, object.c: remove relative numbering support.
18351
18352 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
18353
18354         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
18355         free the string, until we get a chance to fix Gtk#
18356
18357 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18358
18359         * marshal.c: revert last patch.
18360
18361 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
18362
18363         * icall.c: updates for new mono_class_vtable() not calling
18364         the type constructor anymore.
18365
18366 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
18367
18368         * object.h, object.c: separate vtable creation from type
18369         initialization. Make running the .cctor thread safe.
18370
18371 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
18372
18373         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
18374
18375 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
18376
18377         * loader.c (mono_get_method): consider calling convention
18378
18379 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
18380
18381         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
18382         to return the invisible global type for a module.
18383
18384         * reflection.c (mono_image_build_metadata): Emit global fields too.
18385
18386 2003-05-20  Peter Williams  <peterw@ximian.com>
18387
18388         * loader.c (mono_lookup_internal_call): Add a few newlines.
18389
18390 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
18391
18392         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
18393         literal strings.
18394
18395         * appdomain.c (set_domain_search_path): Recalculate search path when
18396         AppDomainSetup.PrivateBinPath changes.
18397
18398         * object.c (mono_class_compute_gc_descriptor): It turns out some
18399         parts of the class libs (like System.Thread) holds pointers to
18400         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
18401         to treat native int a pointer type here.
18402         
18403 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
18404
18405         * appdomain.h, domain.c: add hashtable for jump target resolution.
18406
18407 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
18408
18409         * reflection.h reflection.c icall.c: Added new icalls 
18410         GetManifestResourceInfoInternal, GetModulesInternal and support
18411         infrastructure.
18412
18413 2003-05-16  Dick Porter  <dick@ximian.com>
18414
18415         * icall.c:
18416         * file-io.h:
18417         * file-io.c: Implement System.IO.MonoIO::GetTempPath
18418
18419 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
18420
18421         * object.c: mono_store_remote_field: little fix to previous patch.
18422
18423 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
18424
18425         * class.c: add constructors to array classes.
18426         * icall.c: special case array construction for InternalInvoke (),
18427
18428 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
18429
18430         * class.h class.c reflection.c object.c: Added support for field
18431         defaults in dynamically generated classes.
18432
18433 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
18434
18435         * reflection.c: properly encode charset for ddlimport.
18436
18437 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
18438
18439         * threads.c: allow compiling without GC.
18440
18441 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
18442
18443         * appdomain.h, object.c, object.h, threads.c, threads.h: added
18444         handling of thread static data.
18445
18446 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
18447
18448         * reflection.h, reflection.c: added mono_custom_attrs_free ().
18449
18450 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
18451
18452         * class.c (mono_array_class_get): always set the serializable flags
18453         (mono_array_class_get): always set the SEALED attribute for array types
18454
18455 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
18456
18457         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
18458         attributes (fix for bug 42021).
18459
18460 2003-05-12  Dick Porter  <dick@ximian.com>
18461
18462         * gc.c: Don't run finalizers when the finalizer thread is
18463         finishing up, because the default domain has already been
18464         destroyed.
18465
18466 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
18467
18468         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
18469         value is null, we should throw an exception.   This is slightly
18470         different than the other conventions used for the constructor.
18471
18472 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18473
18474         * socket-io.c: fixed windows build.
18475
18476 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18477
18478         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
18479
18480 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
18481
18482         * object.c (mono_string_new_wrapper): Compatibility fix for MS
18483         compilers.
18484
18485 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
18486
18487         * class.c (mono_class_layout_fields): Add experimental GC aware
18488         auto layout facility. Requires class library changes to work correctly.
18489
18490         (mono_class_setup_vtable): Avoid overriding explicit interface
18491         method implementations. Fixes iface3.exe test.
18492
18493         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
18494         object reference.
18495         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
18496         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
18497
18498         * metadata.h: Add new type classification macro which determines
18499         whenever the type holds an object reference.
18500
18501 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
18502
18503         * marshal.c (mono_marshal_get_native_wrapper): cleanups
18504
18505 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
18506
18507         * gc.c (finalizer_thread): Work around a GC bug.
18508
18509 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
18510
18511         * marshal.c (emit_struct_conv): allow unions
18512
18513         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
18514
18515 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
18516
18517         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
18518
18519 2003-05-06  Martin Baulig  <martin@ximian.com>
18520
18521         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
18522
18523 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18524
18525         * socket-io.c:
18526         (Select_internal): allow NULLs, don't create arrays if not needed.
18527         Coupled with Socket.cs changes.
18528
18529         * threadpool.c:
18530         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
18531         register a finalizer for it that will close the semaphore handle. This
18532         fixes the leak and make Lupus' test run with > 4080 loops.
18533
18534 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
18535
18536         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
18537         Jerome Laban (bug #42287)
18538
18539 2003-05-02  Martin Baulig  <martin@ximian.com>
18540
18541         * debug-mono-symfile.h
18542         (MonoSymbolFile): Moved declaration into mono-debug.h.
18543         (MonoDebugMethodJitInfo): Likewise.
18544         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
18545         argument.
18546         (_mono_debug_address_from_il_offset): Take a
18547         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
18548
18549         * mono-debug.h
18550         (MonoDebugDomainData): New struct.
18551         (mono_debug_get_domain_data): New function.
18552         (mono_debug_add_method): Take an additional `MonoDomain *'
18553         argument.
18554         (mono_debug_source_location_from_address): Likewise.
18555         (mono_debug_il_offset_from_address): Likewise.
18556         (mono_debug_address_from_il_offset): Likewise.
18557
18558 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
18559
18560         * reflection.c: one more check for null type in custom attrs.
18561
18562 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18563
18564         * reflection.c: avoid warning (comparison is always false due to limited
18565         range of data type).
18566
18567 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18568
18569         * icall.c: throw an exception in Type.GetField if the argument 'name'
18570         is NULL.
18571
18572 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
18573
18574         * reflection.c: fixed handling of enums in named arguments to custom
18575         attributes (bug #42123).
18576
18577 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
18578
18579         * reflection.c: use the right array element type and handle
18580         a null for a Type argument, too.
18581
18582 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
18583
18584         * reflection.c: handle arrays as arguments to custom attributes.
18585
18586 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
18587
18588         * reflection.c: handle a string value in a custom attr
18589         ctor that takes an object.
18590
18591 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
18592
18593         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
18594         (fix bug #42063)
18595
18596 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
18597
18598         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
18599
18600 2003-04-27  Martin Baulig  <martin@ximian.com>
18601
18602         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
18603         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
18604         MONO_DEBUGGER_EVENT_BREAKPOINT.
18605         (mono_breakpoint_trampoline_code): Removed.
18606         (mono_debugger_event_handler): The last argument is now a
18607         `guint32'.
18608         (mono_debugger_insert_breakpoint_full): Removed the
18609         `use_trampoline' argument.
18610         (mono_debugger_method_has_breakpoint): Likewise.
18611         (mono_debugger_trampoline_breakpoint_callback): Renamed to
18612         mono_debugger_breakpoint_callback(); take the method and
18613         breakpoint number as arguments.
18614
18615 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
18616
18617         * metadata.c: fix off by one when loading parameters attributes.
18618
18619 2003-04-24  Martin Baulig  <martin@ximian.com>
18620
18621         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
18622
18623 2003-04-24  Martin Baulig  <martin@ximian.com>
18624
18625         * mono-debug-debugger.c: Moved all code which interacts with the
18626         Mono Debugger here.
18627
18628         * debug-mono-symfile.c: This code now just deals with the symbol
18629         file itself, the debugger code is now in mono-debug-debugger.c.
18630
18631 2003-04-23  Martin Baulig  <martin@ximian.com>
18632
18633         * mono-debug.c (mono_debug_source_location_from_il_offset):
18634         New method; like mono_debug_source_location_from_address(), but
18635         takes an IL offset instead of a machine address.
18636
18637 2003-04-23  Martin Baulig  <martin@ximian.com>
18638
18639         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
18640         `line' field; this is now computed by the debugger.
18641
18642 2003-04-23  Martin Baulig  <martin@ximian.com>
18643
18644         * mono-debug.[ch]: New files.  This is the new debugging interface.
18645
18646         * mono-debug-debugger.[ch]: New files.  Moved all code which
18647         interacts with the Mono Debugger here.
18648
18649 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
18650
18651         * domain.c (mono_init): initialize mono_defaults.monitor_class
18652
18653 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
18654
18655         * reflection.c (method_encode_code): Add a spicy exception to help
18656         future compiler authors.
18657
18658 2003-04-21  Martin Baulig  <martin@ximian.com>
18659
18660         * icall.c
18661         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18662         Make this work with relative pathnames; g_filename_to_uri() needs
18663         an absolute filename.
18664
18665 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
18666
18667         * icall.c: Track name changes in Object and ValueType.
18668
18669 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
18670
18671         * metadata.c (mono_type_stack_size): size should be a multiple of
18672         sizeof (gpointer)
18673
18674 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18675
18676         * gc.c:
18677         (internal_domain_finalize): moved into mono_domain_finalize. No need
18678         to create another thread because the finalizers will be run in the
18679         finalizer thread.
18680         
18681         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
18682         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
18683         to be run (MS does this too).
18684
18685 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
18686
18687         * object.c (mono_class_compute_gc_descriptor): Update comment.
18688
18689         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
18690
18691         * image.h: Add synchronized wrapper cache.
18692
18693         * image.c (do_mono_image_open): Initialize cache.
18694
18695         * reflection.c (create_dynamic_mono_image): Initialize cache.
18696
18697 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18698
18699         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
18700         ves_icall_System_Buffer_ByteLengthInternal.
18701
18702 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
18703
18704         * reflection.c: setup klass->nested_in earlier. Allow
18705         a dash in the assembly name.
18706
18707 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
18708
18709         * metadata.c (mono_type_to_unmanaged): dont access
18710         type->data.klass for MONO_TYPE_OBJECT
18711         (mono_type_to_unmanaged): consider System.Delegate class
18712
18713 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
18714
18715         * class.c: just setup supertypes in the proper place instead of
18716         initializing the full element class for arrays.
18717
18718 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
18719
18720         * class.c: ensure the element class of arrays is initialized.
18721         Setup the supertype info for array classes, too.
18722
18723 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
18724
18725         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
18726
18727 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18728
18729         * Makefile.am: re-added -m option when running cygpath. This way,
18730         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
18731         separator.
18732         * mono-config.c: same codepath for locating mono config file for WIN32
18733         and the rest.
18734         * assembly.c: if mono_assembly_setrootdir is called, don't override
18735         the value set.
18736
18737 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18738
18739         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
18740         MONO_ASSEMBLIES variable.
18741
18742 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
18743
18744         * icall.c: added Assembly::GetNamespaces() icall.
18745
18746 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18747
18748         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
18749
18750 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
18751
18752         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
18753         * object.c: fixed bug in the construction of vtable for proxies
18754
18755 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
18756
18757         * object.c (mono_array_new): Mark mono_array_new as an icall.
18758
18759 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18760
18761         * class.c: fixed test for public method when overriding interfaces.
18762         Closes bug #40970.
18763
18764 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
18765
18766         * appdomain.h, domain.c: added mono_domain_foreach() to
18767         be able to access the currently loaded appdomains.
18768         * object.c: make string interning work across sppdomains.
18769         Mark some functions for use as icalls.
18770
18771 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
18772
18773         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
18774
18775         * reflection.h reflection.c: Allocate long living data using 
18776         GC_MALLOC_ATOMIC so the collector does not need to scan it.
18777
18778         * reflection.c: Double the allocation size in streams instead of
18779         increasing it, to prevent unneccesary copying on large assemblies.
18780         
18781         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
18782         creation if the assembly does not have the Run flag set.
18783
18784 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
18785
18786         * class.h: avoid the C++ keywords in header files (Jerome Laban
18787         spotted and fixed this).
18788
18789 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18790
18791         * object.c:
18792         (mono_unhandled_exception): fill in the arguments for the
18793         UnhandledException event. Only trigger that event for the default
18794         domain (as MS does).
18795
18796 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
18797
18798         * object.c: Improve typed allocation stuff based on suggestions from
18799         Paolo. Also turn it on if the GC library supports it.
18800
18801 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
18802
18803         * object.c object.h class.h: Added experimental typed allocation
18804         facility using the interfaces in gc_gcj.h.
18805
18806         * os/gc_wrapper.h: Added new include files.
18807         
18808 2003-04-03  Martin Baulig  <martin@ximian.com>
18809
18810         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
18811         which is not yet enabled by default.
18812
18813         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
18814         functions.
18815         (mono_gc_lock, mono_gc_unlock): New static functions.
18816
18817         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
18818         functions; stop/start the world for the garbage collector.  This
18819         is using the windows API; we need to complete the SuspendThread()/
18820         ResumeThread() implementation in the io-layer to make this work on Unix.
18821         (mono_gc_push_all_stacks): New public function; tells the garbage
18822         collector about the stack pointers from all managed threads.
18823
18824 2003-04-03  Martin Baulig  <martin@ximian.com>
18825
18826         * object.h (MonoThread): Added `gpointer stack_ptr'.
18827
18828         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
18829
18830 2003-04-03  Martin Baulig  <martin@ximian.com>
18831
18832         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
18833
18834 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
18835
18836         * reflection.c (typebuilder_setup_fields): Initialize field.first and
18837         field.last.
18838
18839 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
18840
18841         * loader.c (mono_lookup_internal_call): Report the corlib that is
18842         out of sync.
18843
18844 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
18845
18846         * icall.c (ves_icall_type_GetTypeCode): fixed check for
18847         System.DBNull (it's class not valuetype).
18848
18849 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
18850
18851         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
18852         if the array method was already assigned a token (fixes bug#40646).
18853
18854 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
18855
18856         * reflection.c (mono_reflection_get_type): Attempt type resolve even
18857         if no assembly is given.
18858
18859 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
18860
18861         * metadata.h: Added the new tables.
18862
18863         * row-indexes.h: Added definitions for new tables.
18864
18865         * metadata.c: Add schemas for new tables, and add support for
18866         computing the sizes of them.
18867
18868         * class.c: Update for handling the new type cases.
18869
18870 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
18871
18872         * metadata.h (MONO_TYPE_IS_VOID): new macro
18873
18874 2003-03-31  Martin Baulig  <martin@ximian.com>
18875
18876         * threads.h (MonoThreadCallbacks): Added `thread_created'.
18877
18878         * threads.c (mono_thread_new_init): Call `thread_created' in the
18879         mono_thread_callbacks.
18880
18881 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
18882
18883         * loader.h: added marshalbyrefobject_class to mono_defaults
18884         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
18885         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
18886           generation of output parameters.
18887           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
18888         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
18889           contextbound and the target object belongs to the context of the caller.
18890         * object.h: added context and unwrapped_server variables in MonoRealProxy.
18891         * object.c: Implemented support for interfaces and abstract classes
18892           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
18893           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
18894
18895 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
18896
18897         * class.h class.c (mono_class_is_subclass_of): New function.
18898         
18899         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
18900         routines for most common case (calls from ArrayList::ToArray).
18901
18902         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
18903         routine so programs which call Environment::Exit() can be profiled.
18904
18905         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
18906         Added MONO_ARCH_SAVE_REGS.
18907
18908         * icall.c (ves_icall_type_is_subtype_of): Use new function.
18909
18910 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
18911
18912         * blob.h: Add a couple of new MonoType types definitions.
18913
18914         * tabledefs.h: Add a couple of new call convs.
18915
18916 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
18917
18918         * reflection.h (MonoReflectionDynamicAssembly): track changes in
18919         the layout of the class.
18920
18921         * reflection.c (alloc_table): double the size on overflow to avoid
18922         unnecessary copying.
18923
18924         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
18925         avoid filling out metadata tables and blobs. Also set mb->ilgen to
18926         null so it can be garbage collected.
18927         
18928 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
18929
18930         * reflection.c (mono_reflection_get_type): Return the resolved type
18931         only if it is in the assembly we searched.
18932
18933         * reflection.c (ensure_runtime_vtable): Initialize method slots.
18934
18935         * class.c (mono_class_setup_vtable): Set the slot of the overriding
18936         method.
18937
18938 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18939
18940         * appdomain.c:
18941         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
18942         the right one is 'file:///blah', but MS allows it.
18943         * assembly.c:
18944         (mono_assembly_open): allow 'file://blah'
18945
18946         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
18947
18948 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
18949
18950         * socket-io.c: fixes bug #40310.
18951
18952 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
18953
18954         * reflection.c (mono_reflection_parse_type): handle deeply nested
18955         types correctly.
18956
18957         * reflection.c (mono_image_create_token): Use unique token values
18958         since they will be put into a hash table.
18959
18960         * class.c (mono_class_setup_vtable): If a method occurs in more than
18961         one place in the vtable, and it gets overriden, then change the
18962         other occurances too.
18963
18964         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
18965         object as return type.
18966
18967 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18968
18969         * icall.c: Deleted "ToString" implementation for double and float
18970         because they are full implemented in managed code.
18971
18972 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18973
18974         * reflection.c, reflection.h: implemented and exported functions
18975         to retrieve info about custom attributes.
18976
18977 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18978
18979         * appdomain.c: moved Uri handling to assembly.c
18980         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
18981         work when using a file Uri in *nix and windows.
18982
18983         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
18984         GetReferencedAssemblies.
18985
18986 2003-03-18  Dick Porter  <dick@ximian.com>
18987
18988         * icall.c: Rename a couple of internal calls
18989
18990         * threads.c: Set the thread state to Stopped when a thread exits.
18991         Fixes bug 39377.
18992
18993 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
18994
18995         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
18996         New icall.
18997
18998         * object.c (mono_class_vtable): fix warning.
18999
19000 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
19001
19002         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
19003
19004         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
19005         memory.
19006         (method_encode_clauses): Create exception info structures in the right
19007         order.
19008         (mono_reflection_setup_internal_class): Initialize supertypes field.
19009
19010         * class.c object.c: Handle interfaces which implement other interfaces 
19011         correctly.
19012
19013         * class.h class.c: Move the supertypes array initialization code into 
19014         a separate function so it can be used for dynamic types too. Also call
19015         it earlier, in mono_class_init(), since it can be used before the
19016         type is initialized.
19017
19018 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19019
19020         * Makefile.am:
19021         * assembly.c:
19022         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
19023
19024         * appdomain.c:
19025         * appdomain.h:
19026         * marshal.c:
19027         * object.c: remove warnings.
19028
19029 2003-03-13  Martin Baulig  <martin@ximian.com>
19030
19031         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
19032         (MonoDebugLexicalBlockEntry): New types.
19033
19034         * debug-mono-symfile.c
19035         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
19036
19037 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19038
19039         * process.c: ret can be any non-zero value accroding to MS doc.
19040
19041 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
19042
19043         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
19044         fixing a warning for a miss-used prototype, would have cause
19045         random memory corruption.
19046
19047 2003-03-07  Martin Baulig  <martin@ximian.com>
19048
19049         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
19050         getting really annoying ....
19051
19052 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
19053
19054         * reflection.c (fixup_method): added support for array methods.
19055
19056 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
19057
19058         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
19059         (pointed out by Michael Adams).
19060
19061 2003-03-04  Dick Porter  <dick@ximian.com>
19062
19063         * icall.c: Temporarily reverted the Double and Single ToString()
19064         change, because it broke nunit.
19065
19066 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
19067
19068         * object.h, threads.h: make include files compatible with C++
19069         (patch by Jerome Laban <jlaban@wanadoo.fr>).
19070
19071 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
19072
19073         * icall.c: Erased ToString helper functions for Double and Single.
19074         Now, that implementations ar all in managed code (Double and Single
19075         Formatters).
19076
19077 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
19078
19079         * appdomain.c: Added method for initializing the default context of
19080         a domain. Added internal call for getting the default context.
19081         * appdomain.h: Added context variable in MonoDomain struct.
19082         * domain.c: mono_domain_set also sets the default context of the domain
19083         * icall.c: Mapped internal method InternalGetDefaultContext.
19084         * object.c: mono_object_get_virtual_method returns always a remoting
19085         wrapper if the object is a transparent proxy.
19086         mono_runtime_invoke_array: when creating an object by calling the
19087         constructor, if the created object is a proxy, then the constructor should
19088         be called using the a remoting wrapper.
19089
19090 2003-03-03  Dick Porter  <dick@ximian.com>
19091
19092         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
19093         variable so it compiles on solaris.  Problem spotted by
19094         Christopher Taylor <ct@cs.clemson.edu>
19095
19096 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19097
19098         * appdomain.c:
19099         (get_info_from_assembly_name): don't leak value.
19100
19101         * icall.c:
19102         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
19103         result.
19104
19105 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
19106
19107         * assembly.c: export mono_image_load_references ().
19108         * class.c: handle function pointers. mono_class_from_name() now
19109         supports nested type names directly.
19110
19111 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
19112
19113         * reflection.h reflection.c: Encode already created dynamic methods 
19114         and fields correctly as a DEF instead of a REF.
19115
19116         * reflection.c: Get rid of the force_ref argument to 
19117         mono_image_typedef_or_ref since it was wrong in the first place.
19118
19119         * string-icalls.c: add error checking to string constructors according
19120         to the MSDN docs.
19121
19122         * reflection.c: Emit types in the order their TypeBuilders were 
19123         created. Previously, a new table index was assigned to each type before
19124         the tables were emitted. This was wrong because the signature blob
19125         might already refer to a type by its original table index.
19126
19127 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
19128
19129         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
19130         change.
19131         
19132 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19133
19134         * Makefile.am: make assemblies dir have \ instead of / on windows.
19135
19136 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
19137
19138         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
19139         iterate over the NESTEDCLASS table using a linear search since the
19140         table is not guaranteed to be sorted by the secondary key.
19141
19142         * class.c (mono_class_create_from_typedef): fixed up call to
19143         mono_metadata_nesting_typedef.
19144         
19145 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
19146
19147         * marshal.c (mono_string_to_byvalstr): clear the memory as
19148         suggested by Jerome Laban <jlaban@wanadoo.fr>
19149
19150 2003-02-26  Dick Porter  <dick@ximian.com>
19151
19152         * process.c: Cope with padding in .rsrc blocks
19153
19154 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
19155
19156         * metadata.h: reverted the filter_len change, it breaks reflection
19157         
19158 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
19159
19160         * metadata.h: added a new field to store the filter_len
19161         
19162
19163 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
19164
19165         * reflection.c: handle custom attributes for types and members
19166         created with Reflection.Emit (bug#38422).
19167
19168 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
19169
19170         * reflection.c: define RTSpecialName automatically for constructors for
19171         compatibility with MS.NET.
19172
19173         * reflection.c (mono_reflection_create_runtime_class): initialize
19174         nested_in field of dynamically created classes.
19175
19176 2003-02-22  Martin Baulig  <martin@ximian.com>
19177
19178         * debug-mono-symfile.h: Incremented version number.
19179
19180 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
19181
19182         * object.h icall.c process.c: fix warnings.
19183
19184 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
19185
19186         * appdomain.h appdomain.c:
19187         (mono_domain_try_type_resolve): split the 
19188         name_or_tb argument into a name and a tb argument.
19189         (mono_domain_has_type_resolve): new function to check whenever the
19190         application has registered a TypeResolve event handler.
19191         
19192         * icall.c reflection.h reflection.c: move the type resolve logic into
19193         mono_reflection_get_type () so it will be invoked when 
19194         Assembly::GetType () is called.
19195
19196         * reflection.c:
19197         (mono_reflection_get_type): renamed to get_type_internal.
19198         (mono_reflection_get_type): fixed type name generation so it works 
19199         for nested types too.
19200         (mono_reflection_get_type): call has_type_resolve () to avoid the 
19201         costly type name generation if there is no resolve event handler.
19202
19203 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
19204
19205         * class.c, image.c: load exported types from file references.
19206
19207 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
19208
19209         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
19210           used to cache the managed methods used to create proxies and make 
19211           remote invocation of methods.
19212         * class.h: Added in MonoVTable a flag to indicate that a class needs 
19213           to be remotely created.
19214         * object.c: Modified the method mono_class_vtable(). It now initializes 
19215           the remote flag of the vtable. Modified mono_object_new_specific(), 
19216           so now it checks the remote flag.
19217         * icall.c: Added a couple of internal methods, one for enabling instance 
19218           creation interception for a type, and one for creating objects bypassing
19219           the remote check.
19220
19221 2003-02-18  Martin Baulig  <martin@ximian.com>
19222
19223         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
19224         New interncall to get a method's metadata token.
19225
19226         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
19227         New interncall for the debugger.
19228
19229 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
19230
19231         * class.c (mono_class_setup_vtable): allocate supertype array
19232
19233 2003-02-18  Martin Baulig  <martin@ximian.com>
19234
19235         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
19236
19237 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19238
19239         * reflection.c:
19240         (assembly_name_to_aname): jump over unknown properties (i've found
19241         something like: 'type, assembly, version=xxx, custom=null, public...',
19242         so now will ignore custom=null and still get the rest of the values).
19243
19244 2003-02-17  Dick Porter  <dick@ximian.com>
19245
19246         * threads.c: Have Thread.Start() wait for a semaphore to signal
19247         that the thread has set up all its local data.  This fixes bug
19248         34323, where Abort() raced the new thread's TLS data.
19249
19250         Also removes the handle_store() call from start_wrapper, because
19251         threads are now always created suspended and there is no longer a
19252         race between the parent and child threads to store the info.
19253
19254 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
19255
19256         * image.c: explain the #- heap issue in a message, hopefully
19257         avoiding FAQs on mono-list.
19258
19259 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19260
19261         * icall.c:
19262         (GetEntryAssembly): if the domain has not invoked
19263         AppDomain.ExecuteAssembly yet, return the assembly of the default
19264         AppDomain.
19265
19266 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
19267
19268         * class.c (mono_ldtoken): make it work in dynamic assemblies.
19269
19270 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
19271
19272         * metadata.c, reflection.c: simple speedup to type hash
19273         and equals code.
19274
19275 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
19276
19277         * image.c, image.h, class.c, assembly.c: move module loading
19278         to MonoImage. When loading metadata, consider alignemnet from
19279         the start of metadata, not from the metadata address in memory.
19280
19281 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
19282
19283         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
19284         AssemblyBuilder objects. Factored out custom attribute creation into
19285         a separate function.
19286         (create_custom_attr): new function to create custom attributes.
19287
19288 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
19289
19290         * Makefile.am: Got tired of typing the full pathname to pedump.
19291         Until there is another option, am installing this.
19292
19293 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
19294
19295         * class.c (class_compute_field_layout): always set field->parent 
19296         (mono_ldtoken): use mono_defaults.fieldhandle_class;
19297
19298 2003-02-11  Dick Porter  <dick@ximian.com>
19299
19300         * threads-types.h:
19301         * monitor.c: Rewrote Monitor, making lock much faster and
19302         Pulse/Wait work as specified.  Also uses much fewer handles, and only
19303         creates them as needed.
19304
19305         * exception.c: Added SynchronizationLockException
19306
19307         * threads.c: Deleted old Monitor implementation.  The new one is
19308         in a new file.
19309
19310 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
19311
19312         * class.c: handled TypedReference type code. Set the correct size for
19313         class data. Setup interface_offsets for interface classes, too.
19314
19315 2003-02-09  Martin Baulig  <martin@ximian.com>
19316
19317         * debug-mono-symfile.h: Reflect latest symbol writer changes.
19318
19319 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
19320
19321         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
19322         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
19323         * object.c: fixed mono_object_get_virtual_method () for interfaces.
19324         * verify.c: check for code that runs after the end of the method.
19325
19326 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
19327
19328         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
19329         "System.Math::Round2".
19330         * sysmath.h: Added Floor, Round and Round2 definitions.
19331         * sysmath.c: Modified certain functions that were not 100% compliant
19332         with MS.NET (math precision) and added the implementation of Floor,
19333         Round and Round2.
19334
19335 2003-02-07  Martin Baulig  <martin@ximian.com>
19336
19337         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
19338
19339 2003-02-07  Martin Baulig  <martin@ximian.com>
19340
19341         * debug-mono-symfile.c: Reflected latest symwriter changes.
19342         (mono_debug_create_mono_symbol_file): Removed.
19343         (mono_debug_open_mono_symbol_file): Take an argument which
19344         specifies whether to create a dynamic symbol file.
19345
19346 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
19347
19348         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
19349
19350 2003-02-05  Martin Baulig  <martin@ximian.com>
19351
19352         * reflection.c (mono_image_build_metadata): Make this public,
19353         protect it against being called multiple times, don't create
19354         resources and don't build the compressed metadata here.
19355         (mono_image_create_pefile): Do this here.
19356
19357         * icall.c
19358         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
19359
19360 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19361
19362         * socket-io.c: fixed bug #36322.
19363
19364 2003-02-06  Piers Haken <piersh@friskit.com>
19365
19366         * appdomain.[ch]:
19367         * class.h:
19368         * debug-mono-symfile.c:
19369         * icall.c:
19370         * loader.c:
19371         * mono-config.c:
19372         * monosn.c:
19373         * reflection.c:
19374         * socket-io.c: warning cleanups
19375
19376 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
19377
19378         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
19379         function. works like remoting invoke, but does a check for the Proxy first.
19380
19381 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
19382
19383         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
19384
19385 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
19386
19387         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
19388         array of pointers.
19389         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
19390         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
19391
19392         * object.c (mono_store_remote_field_new): used by the new jit
19393         instead of mono_store_remote_field
19394         (mono_load_remote_field_new): used by the new jit
19395         instead of mono_load_remote_field
19396
19397 2003-02-05  Patrik Torstensson
19398
19399         * appdomain.c: changed unload to take the domain id instead
19400         of domain
19401         
19402         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
19403
19404
19405 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19406
19407         * appdomain.c: don't look for assemblies in ApplicationBase if
19408         PrivateBinPathProbe is set.
19409
19410 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19411
19412         * object.c: make the first argument in main_args contain the absolute
19413         path to the assembly. Fixes bug #37511.
19414
19415 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19416
19417         * icall.c: get correct UTC offset for countries not using daylight
19418         time saving. Fixes bug #30030.
19419
19420 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19421
19422         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
19423         and 1 are the family).
19424
19425 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
19426
19427         * icall.c (ves_icall_InternalExecute): removed wrong assertion
19428
19429         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
19430
19431 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
19432
19433         * reflection.c: added support for SignatureHelper tokens, which is
19434         needed by the Calli opcode.
19435
19436         * reflection.h: track changes to SignatureHelper class.
19437
19438         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
19439
19440 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19441
19442         * appdomain.c: fixed loading assemblies from PrivateBinPath.
19443
19444 2003-02-03  Patrik Torstensson
19445         * appdomain.[c|h], domain.c : 
19446          - Added support for getting a domain via domain id
19447          - Support for setting and getting domain from System.AppDomain 
19448            (used in cross appdomain channel)
19449          - Added support for get/set for a MonoAppContext on a thread 
19450            (Context class in System.Runtime.Remoting.Contexts),
19451          - Removed hack in Get/SetData and ExecuteAssembly.
19452         
19453         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
19454         the managed world to get control when a proxy is created.
19455
19456         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
19457         
19458 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
19459
19460         * icall.c
19461         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
19462         Populate the codebase field as well.
19463
19464 2003-02-02  Martin Baulig  <martin@ximian.com>
19465
19466         * debug-mono-symfile.c
19467         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
19468         (mono_debug_symfile_add_method): Allow interncalls.
19469
19470 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19471
19472         * icall.c: throw parse exception if strtod fails or the string is empty.
19473
19474 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
19475
19476         * marshal.c: handle object type separately from defined
19477         class types.
19478
19479 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
19480
19481         * marshal.c: handle NATIVE_LPSTR for strings when it's
19482         explicitly specified.
19483
19484 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
19485
19486         * reflection.c, reflection.h, icall.c: setup the reflection
19487         handle cache for ModuleBuilders and AssemblyBuilders.
19488
19489 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
19490
19491         * reflection.c (reflection_methodbuilder_to_mono_method): set
19492         pinvoke flag
19493
19494 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19495
19496         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
19497
19498 2003-01-29  Dick Porter  <dick@ximian.com>
19499
19500         * threads.c: No need for the fake_thread kludge now that Thread
19501         doesn't run a class constructor
19502         
19503 2003-01-29  Dick Porter  <dick@ximian.com>
19504
19505         * threads.c: Use g_direct_hash instead of the rather bogus
19506         g_int_hash
19507
19508 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
19509
19510         * marshal.c (mono_marshal_get_native_wrapper): add check for null
19511         (fix pinvoke12.exe)
19512         (mono_marshal_get_struct_to_ptr): generate valid IL code
19513         (mono_marshal_get_ptr_to_struct): generate valid IL code
19514         (*): correctly set sig->pinvoke, we need to memdup the signature
19515         to do that
19516
19517 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
19518
19519         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
19520         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
19521
19522 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
19523
19524         * profiler.c: provide more callers information.
19525
19526 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
19527
19528         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
19529
19530         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
19531
19532         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
19533
19534 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19535
19536         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
19537         exception instead of going into an infinite loop on dates which it 
19538         can't yet handle.
19539
19540         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
19541         out-of-range exception if needed.
19542
19543         * class.c (mono_class_setup_vtable): allow a virtual method to provide
19544         an implementation for an interface method and to override an inherited
19545         method at the same time. 
19546         Imagine a scenario when a virtual method is used to override a
19547         virtual abstract method in a parent class, and this same method 
19548         provides an implementation for an method inherited from an interface. 
19549         In this case, the interface resolution code will set im->slot, which 
19550         means that the virtual method override pass will skip this method 
19551         which means a pointer to the abstract method inherited from the parent
19552         will remain in the vtable of this non-abstract class.
19553
19554         * class.c: (mono_class_setup_vtable): continue search for a real 
19555         method if only an abstract method is found.     
19556
19557 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
19558
19559         * reflection.c: add size to encoding for ByValStr and ByValArray
19560         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
19561
19562 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19563
19564         * class.c (mono_class_setup_vtable): pass the override info as an
19565         argument.
19566
19567         * class.c (mono_class_setup_vtable): set the slot of overriding methods
19568         correctly.
19569         
19570         * reflection.c (ensure_runtime_vtable); add support for method 
19571         overrides.
19572         
19573 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19574
19575         * reflection.c (resolution_scope_from_image): Hack to work to work with
19576         dynamic assemblies.
19577
19578         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
19579         added a 'force_ref' argument to force this function to allways return 
19580         a TypeRef. This is needed by mono_image_get_memberref_token ().
19581         
19582 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19583
19584         * reflection.c (mono_image_get_type_info): interfaces really don't have
19585         a parent.
19586
19587         * reflection.c (mono_image_basic_init): fill out missing fields of
19588         image structure.
19589
19590         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
19591         dynamic assemblies. This is required so dynamic assemblies show up in
19592         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
19593         Type::GetType() etc. This is consistent with MS behaviour.
19594
19595         * image.c image.h reflection.c: add newly created classes to the name 
19596         cache so mono_class_get () will find them.      
19597
19598 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
19599
19600         First part of changes to get IKVM.NET running under mono.
19601         
19602         * appdomain.h, appdomain.c: added new function 
19603         mono_domain_try_type_resolve() which will emit TypeResolve events. 
19604         This function will call AppDomain::DoTypeResolve to do the actual work.
19605
19606         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
19607         moved existing code dealing with dynamic tokens to a new function 
19608         called mono_reflection_lookup_dynamic_token (). This function will 
19609         raise TypeResolve events when appropriate. Since reflection.c is not 
19610         part of libmetadata, a new hook function called 
19611         mono_lookup_dynamic_token() is added to class.c which will call this.
19612
19613         * assembly.h assembly.c: make the invoke_load_hook function public,
19614         so it can be called for dynamic assemblies.
19615
19616         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
19617
19618         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
19619         type isn't found.
19620
19621         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
19622         MonoGHashTable, since it contains pointers to objects which the GC 
19623         needs to track.
19624
19625         * assembly.c (search_loaded): remove unused variable.
19626         
19627 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
19628
19629         * object.c: fixed issue exposed by gcc-generated IL programs
19630         that use RVA data for pointers.
19631
19632 2003-01-25  Martin Baulig  <martin@ximian.com>
19633
19634         * threads.c (start_wrapper): Moved the initialization of
19635         `start_func' above the mono_new_thread_init() call to which we
19636         pass it as argument.
19637
19638 2003-01-24  Martin Baulig  <martin@ximian.com>
19639
19640         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
19641         the MonoThread pointer.
19642
19643 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
19644
19645         * icall.c: Rename `PowImpl' to Pow.
19646
19647 2003-01-23  Dick Porter  <dick@ximian.com>
19648
19649         * threads.c (start_wrapper): Create a Thread object if needed, so
19650         the Main() thread can do the class initialisation in a subthread
19651         that has been set up to allow managed code execution.
19652
19653         Pass the thread ID instead of the MonoThread pointer to the thread
19654         start and attach callbacks.  This change is required, because the
19655         jit thread start callback must be called _before_ the Thread
19656         object can be created.
19657         
19658         (mono_thread_init): Removed much object creation code that is no
19659         longer needed.  No managed code is called from here now.
19660
19661         * object.c (mono_runtime_exec_managed_code): Create a subthread
19662         for Main, and call back to the runtime to use it.
19663         Set the exit code when Main exits.
19664
19665         * gc.c: Make sure domain finalisation happens in a subthread.
19666         Re-enable threaded GC, fixing bug 31333 (again).
19667
19668         * environment.c: System.Environment internall calls (so far just
19669         ExitCode is here, the others are still in icall.c)
19670
19671         * appdomain.c (mono_runtime_cleanup): All threads running managed
19672         code should have finished before mono_runtime_cleanup() is
19673         reached, so no need to clean up threads.
19674
19675 2003-01-22  Martin Baulig  <martin@ximian.com>
19676
19677         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
19678         `gpointer func' arguments.      
19679         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
19680         but added `MonoThread *thread' argument.
19681         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
19682
19683         * threads.c (mono_new_thread_init): Added `gpointer func' argument
19684         and pass it to the mono_thread_start_cb callback.
19685         (mono_install_thread_callbacks): New public function to install a
19686         set of callbacks which are set by the debugger.
19687         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
19688
19689 2003-01-22  Martin Baulig  <martin@ximian.com>
19690
19691         * Makefile.am: Install debug-mono-symfile.h.
19692
19693 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
19694
19695         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
19696
19697 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
19698
19699         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
19700         * class.c (mono_ptr_class_get): correctly set access levels of pointers
19701         (mono_array_class_get): correctly set access levels of arrays
19702
19703 2003-01-20      Patrik Torstensson
19704         * image.h (MonoAssemblyName): changed major, minor, build, revision
19705         from signed to unsigned.
19706
19707 2003-01-20  sean kasun <skasun@azstarnet.com>
19708
19709         * reflection.c (load_cattr_value): Now this handles
19710         MONO_TYPE_SZARRAY.  Fixes bug #35629
19711
19712 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
19713
19714         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
19715         integer value
19716
19717 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19718
19719         * decimal.c: fixed bug #26056.
19720
19721 2003-01-17  Martin Baulig  <martin@ximian.com>
19722
19723         * gc.c: Raise an ExecutionEngineException instead of using g_error().
19724
19725 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19726
19727         * exception.[ch]:
19728         (mono_get_exception_type_initialization): new function.
19729
19730         * object.c: throw a TypeInitializationException when an exception is
19731         thrown invoking the class constructor.
19732
19733 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19734
19735         * reflection.c: fixed attribute reading.
19736
19737 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19738
19739         * icall.c:
19740         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
19741         provided, look for the type in the calling assembly and then in
19742         mscorlib; if the assembly name is provided, only try that one.
19743
19744 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
19745
19746         * object.c: register the vtable before there is a chance it's
19747         queried again recursively.
19748
19749 2003-01-13  Duncan Mak  <duncan@ximian.com>
19750
19751         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
19752         gc-internal.h. 
19753         
19754 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
19755
19756         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
19757
19758 2003-01-11  Martin Baulig  <martin@ximian.com>
19759
19760         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
19761         this to 20 for the release.
19762
19763 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
19764
19765         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
19766
19767         * loader.c (mono_method_get_marshal_info): bug fix
19768
19769         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
19770         structures with explicit layout
19771
19772 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
19773
19774         * profiler.c: made the output more readable (and sorted). 
19775         Added caller information for the allocation profiler.
19776
19777 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
19778
19779         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
19780
19781 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19782
19783         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
19784         to get value types.
19785         
19786 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
19787
19788         * object.c, profiler.h, profiler.c, profiler-private.h:
19789         Added object allocation profiler.
19790
19791 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
19792
19793         * reflection.h, reflection.c: handle global methods.
19794         Compress blob entries.
19795
19796 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
19797
19798         * marshal.c: fix compilation.
19799
19800 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
19801
19802         * loader.c (mono_method_get_marshal_info): impl.
19803
19804         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
19805
19806 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19807
19808         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
19809         for reference types.
19810
19811 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
19812
19813         * loader.c: fixed off by one error in loaded parameter names.
19814
19815 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
19816
19817         * marshal.c (mono_marshal_get_icall_wrapper): like
19818         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
19819         instead of a MonoMethod.
19820
19821 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19822
19823         * decimal.c: fixed bug #36537.
19824
19825 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
19826
19827         * marshal.c: throw a missing method exception if a
19828         P/Invoke method is not found.
19829
19830 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
19831
19832         * icall.c: allow a null this for constructors.
19833
19834 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
19835
19836         * icall.c: raise the proper exceptions if the arguments to the
19837         internal Invoke are incorrect.
19838
19839 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
19840
19841         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
19842
19843 2003-01-03  Martin Baulig  <martin@ximian.com>
19844
19845         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
19846
19847 2002-12-31  Martin Baulig  <martin@ximian.com>
19848
19849         * debug-mono-symfile.c: Completely rewrote the type section.
19850         Instead of using individual malloc()ed fields, we use one big
19851         continuous memory area and offsets into this area.
19852         See the comments in the source code for details.
19853
19854 2002-12-30  Martin Baulig  <martin@ximian.com>
19855
19856         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
19857
19858 2002-12-30  Martin Baulig  <martin@ximian.com>
19859
19860         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
19861         line number table in this data blob instead of using an external
19862         pointer.
19863
19864 2002-12-28  Martin Baulig  <martin@ximian.com>
19865
19866         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
19867
19868 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
19869
19870         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
19871         as a boxed return type.
19872
19873 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
19874
19875         * appdomain.c
19876         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
19877         g_build_filename to properly get separators on the filename created.
19878
19879         * object.h: Small change, introduce MonoMarshalByRefObject to
19880         track the layout of that structure in the C# universe as we make
19881         changes there.
19882
19883 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
19884
19885         * object.c: removed assert to allow static fields on interfaces.
19886         * loader.c: a TypeSpec may be used for any type, not just arrays.
19887
19888 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19889
19890         * class.c, class.h: added mono_class_array_element_size ().
19891         Ignore static methods in interfaces.
19892
19893 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19894
19895         * threads.c: fixed the build under cygwin.
19896
19897 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19898
19899         * reflection.c: handle nullref constants. Allocate keys for
19900         reflection handles with the GC.
19901
19902 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19903
19904         * threads.c, threads.h: added mono_thread_get_abort_signal()
19905         to get a suitable signal for thread abort.
19906
19907 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19908
19909         * metadata.c: fix handling of ExportedType table.
19910
19911 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19912
19913         * icall.c: added WriteWindowsDebugString internal call.
19914
19915 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19916
19917         * reflection.h: added fields to match C# implementation.
19918
19919 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19920
19921         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
19922
19923 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
19924
19925         * gc.h, gc-internal.h: Rename header for GC internal calls to
19926         gc-internal.h from gc.h as to not clash with Boehm GC having its
19927         header installed as <gc.h> in outside include paths.
19928         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
19929         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
19930
19931 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19932
19933         * icall.c: assign minor, build and revision in FillName.
19934
19935 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
19936
19937         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
19938         Added support for running code generated by Reflection.Emit.
19939
19940 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19941
19942         * appdomain.c: check for NULL argument in LoadFrom.
19943
19944 2002-12-10  Dick Porter  <dick@ximian.com>
19945
19946         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
19947
19948 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19949
19950         * appdomain.c: fix buglet when building exe file name.  Handle full
19951         assembly name (needed after latest changes to AssemblyName).
19952         * image.c:
19953         (mono_image_close): free some hashtables.
19954
19955 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
19956
19957         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
19958         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
19959         on some systems (redhat 7.3) 
19960
19961 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
19962
19963         * threads.c: delete the critical section of a sync block,
19964         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
19965
19966 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
19967
19968         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
19969
19970 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19971
19972         * appdomain.[ch]: handle the assembly preload event to try loading the
19973         assemblies using the paths we have in the current domain.
19974
19975         * assembly.[ch]: created an assembly preload hook that is called to try
19976         loading the assembly by other means that the ones provided here.
19977
19978         * domain.c: initialize the domain search path.
19979
19980         From now on, assemblies (TODO: except corlib and System) are loaded
19981         according to these rules when using mono_assembly_load ():
19982
19983                 1. It tries to load the assembly from the ApplicationBase
19984                 of the current domain appending .dll and .exe (TODO: have to
19985                 try loading from name/name.dll and name/name.exe).
19986
19987                 2. It tries the search path specified in PrivateBinPath for the
19988                 current domain (if any).
19989
19990                 3. Previous behavior.
19991
19992 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
19993
19994         * icall.c: implemented GetInterfaceMap() related icall.
19995         * domain.c, loader.h: load MethodInfo in mono_defaults.
19996
19997 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19998
19999         * gc.c: disable the finalizer thread for now, untill all the issues
20000         with it are resolved.
20001
20002 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20003
20004         * string-icalls.c: handle embedded nulls in string ctor when the
20005         length is specified.
20006
20007 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20008
20009         * class.c: look for explicit interface implementation in parent
20010         classes, too.
20011
20012 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
20013
20014         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
20015
20016 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
20017
20018         * gc.c: protect handles with a critical section.
20019
20020 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20021
20022         * icall.c:
20023         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
20024         parameters. If no assembly specified, try getting the type from all
20025         the assemblies in the current domain, else, load the assembly and get
20026         the type from it.
20027
20028 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20029
20030         * marshal.c: applied patch from Aleksey Demakov that fixes
20031         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
20032
20033 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20034
20035         * icall.c: fixed get_location.
20036
20037 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
20038
20039         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
20040         declarations to make it work with older gcc. 
20041
20042         * loader.c (mono_get_method): set signature->pinvoke for native calls
20043
20044 2002-11-20  Dick Porter  <dick@ximian.com>
20045
20046         * threads.c (mono_thread_init): Set the main thread's handle
20047
20048 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
20049
20050         * gc.c: allow compilation without GC support. Changed to match the
20051         mono coding style.
20052
20053 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20054
20055         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
20056
20057 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
20058
20059         * reflection.c: set a public key token on the core assemblies.
20060
20061 2002-11-18  Dick Porter  <dick@ximian.com>
20062
20063         * threads.c: Split out some thread initialisation so that other
20064         files can set the start callback function.
20065
20066         * gc.c: Run finalisers in a separate thread, to avoid stack
20067         overflow.  Fixes bug 31333.
20068
20069         * appdomain.c: Set up GC finalisation thread.
20070
20071         * reflection.c: 
20072         * object.c: 
20073         * domain.c: Use gc.h macros for GC_malloc
20074         
20075 2002-11-15  Dick Porter  <dick@ximian.com>
20076
20077         * threadpool.c: 
20078         * threads.c:
20079         * appdomain.c: Removed mono_runtime_init_with_attach(),
20080         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
20081         merging the extra parameter with the existing function.  Removed
20082         unneeded code in mono_thread_attach().
20083
20084 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
20085
20086         * image.c (mono_image_loaded_by_guid): a method to get loaded
20087         images by guid. 
20088         (load_metadata_ptrs): we store the guid as string.
20089
20090 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
20091
20092         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
20093
20094         * metadata.c (mono_guid_to_string): imported method form Zoltan
20095         Varga (slightly modified)
20096
20097         * assembly.c (mono_assembly_open): load precompiled code
20098
20099         * loader.h (MonoMethod): we store the method token for use in the
20100         aot compiler. 
20101
20102 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20103
20104         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
20105         the hook function called when an assembly is loaded.
20106         
20107         * domain.c: Modified file.
20108         (mono_domain_assembly_load): removed hash table insertion of assemblies.
20109
20110         Fixes bug #33196.
20111
20112 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
20113
20114         * reflection.c: Map PEFileKind to the value expected by the WinNT
20115         image loader. 
20116
20117 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20118
20119         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
20120         Read until the buffer is filled completely.
20121
20122 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20123
20124         * icall.c: implemented MonoType.InternalGetEvent ().
20125
20126 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20127
20128         * appdomain.c: implemented InitAppDomainSetup. Delayed
20129         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
20130         the entry_assembly.
20131
20132         * assembly.c: base_dir is now an absolute path ending with
20133         G_DIR_SEPARATOR.
20134
20135         * icall.c: modified get_location according to the above changes.
20136
20137         * object.c: init AppDomain.SetupInformation for the default domain after
20138         we have the entry assembly.
20139
20140         * domain.c: when unloading a domain, setup = NULL.
20141
20142 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
20143
20144         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
20145
20146 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
20147
20148         * object.h, object.c: introduced mono_object_get_virtual_method ()
20149         to lookup the method invoked on an object when a callvirt is done on
20150         a method.
20151         * icall.c: make MethodInfo::Invoke() always do a virtual call.
20152
20153 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20154
20155         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
20156         current domain when loaded an assembly and failed to load it.
20157
20158         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
20159
20160 2002-10-31  Dick Porter  <dick@ximian.com>
20161
20162         * icall.c: 
20163         * file-io.h: 
20164         * file-io.c: Return the error status in a parameter, as the
20165         GetLastError() value has long since been blown away if we try and
20166         look it up in a subsequent internal call invocation.  Delete the
20167         GetLastError() internal call, because it's useless.
20168
20169 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
20170
20171         * class.[ch]: added cast_class to fix bug 29517
20172
20173 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
20174
20175         * marshal.c: create valid IL code in the filter clause:
20176         the new JIT is less forgiving:-)
20177
20178 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20179
20180         * icall.c: removed get_property internal call.
20181
20182 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
20183
20184         * appdomain.h domain.c: Added an ID to appdomains.
20185         
20186         * threads.c threads.h icall.c: Implement icall
20187         Thread:GetDomainID(), and remove unused icall 
20188         CurrentThreadDomain_internal.
20189
20190 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20191
20192         * icall.c: Don't recurse through the base types in GetConstructor.
20193         Fixes bug #32063. 
20194
20195 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20196
20197         * mempool.h, mempool.c: added mono_mempool_empty() and
20198         mono_mempool_stats().
20199
20200 2002-10-23  Dick Porter  <dick@ximian.com>
20201
20202         * file-io.c: 
20203         * file-io.h: 
20204         * icall.c: Added MonoIO.GetFileType internal call
20205
20206 2002-10-17  Dick Porter  <dick@ximian.com>
20207
20208         * appdomain.c (mono_runtime_cleanup): Don't signal the async
20209         delegate semaphore before waiting for all threads to finish,
20210         because new threads can also call async delegates.  Fixes bug
20211         32004.
20212
20213         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
20214         of 3 seconds, in case another async job is queued.  (This part is
20215         needed because the bug fix reintroduced the 3s exit lag.)  This
20216         makes the mono_runtime_shutdown flag superfluous.
20217
20218 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20219
20220         * reflection.c: include ehader size in method section headers.
20221         Really check for suplicated modules entries.
20222
20223 2002-10-17  Martin Baulig  <martin@gnome.org>
20224
20225         * debug-mono-symfile.c: Added back support for locals.
20226
20227 2002-10-14  Martin Baulig  <martin@gnome.org>
20228
20229         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
20230         MONO_TYPE_VOID.
20231
20232 2002-10-14  Martin Baulig  <martin@gnome.org>
20233
20234         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
20235         mono_class_get() instead of looking in the class cache. 
20236
20237 2002-10-13  Martin Baulig  <martin@gnome.org>
20238
20239         * debug-mono-symfile.c: Set version number to 28, include the
20240         signature in method names.
20241
20242 2002-10-13  Martin Baulig  <martin@gnome.org>
20243
20244         * debug-mono-symfile.h: Set version number to 27.
20245
20246 2002-10-11  Martin Baulig  <martin@gnome.org>
20247
20248         * gc.c: Don't register/unregister NULL pointers as disappearing links.
20249
20250 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20251
20252         * metadata.c, metadata.h: added helper function to allocate signatures.
20253
20254 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20255
20256         * icall.c: added internal call to get the location of machine.config.
20257
20258 2002-10-08  Martin Baulig  <martin@gnome.org>
20259
20260         * debug-mono-symfile.c: Ignore classes with a pending init for the
20261         moment.
20262
20263 2002-10-03  Dick Porter  <dick@ximian.com>
20264
20265         * threads.c: Freebsd pthread_t is a pointer
20266
20267 2002-10-03  Dick Porter  <dick@ximian.com>
20268
20269         * socket-io.c: Implemented GetHostName_internal
20270
20271 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20272
20273         * mono-config.c:
20274         (mono_config_parse_file): don't leak the text.
20275
20276 2002-10-02  Martin Baulig  <martin@gnome.org>
20277
20278         * debug-mono-symfile.c: Added support for methods.
20279
20280 2002-10-01  Martin Baulig  <martin@gnome.org>
20281
20282         * debug-mono-symfile.c: Don't emit methods and line numbers for
20283         the dynamic symbol file, just write the type table.  We can easily
20284         have an external helper program which creates a symbol file for an
20285         IL file.        
20286
20287 2002-10-01  Dick Porter  <dick@ximian.com>
20288
20289         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
20290         Only add the handle to the cleanup array when we're about to
20291         launch the thread.  Bug 31425 deadlocked when the test was run on
20292         mono under w32.
20293
20294 2002-10-01  Martin Baulig  <martin@gnome.org>
20295
20296         * debug-mono-symfile.c: Added support for properties.
20297
20298 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20299
20300         * reflection.c: unaligned store fix from Mark Crichton
20301         <crichton@gimp.org>.
20302
20303 2002-09-27  Martin Baulig  <martin@gnome.org>
20304
20305         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
20306         New interncall.
20307
20308 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20309
20310         * assembly.h, assembly.c: use a sane API to hook into the assembly
20311         loading process instead of a useless special-purpouse hack
20312         (ngen needs a hook, too, for example).
20313
20314 2002-09-27  Dick Porter  <dick@ximian.com>
20315
20316         * threads.c (mono_thread_init): Call GetCurrentProcess() so
20317         io-layer can set up some process handle info.  Not needed on w32,
20318         but doesn't hurt either.
20319
20320         * process.c: Pass the program name in the second parameter to
20321         CreateProcess, so the path is searched.  Include the working
20322         directory. Implemented process name, process enumeration, and some
20323         process detail internal calls.
20324         
20325         * icall.c: Added internal calls for process lookup, and some
20326         process details
20327
20328 2002-09-26  Martin Baulig  <martin@gnome.org>
20329
20330         * assembly.c (mono_install_open_assembly_hook): New global
20331         function to install a function to be invoked each time a new
20332         assembly is loaded.
20333         (mono_assembly_open): Run this callback function if set.
20334
20335         * debug-mono-symfile.c: Put back line numbers for the dynamic
20336         symbol file and also record the .il file as source file.  This
20337         allows us to install the temporary symbol file as `file.dbg' just
20338         like a compiler-generated one.
20339
20340 2002-09-26  Nick Zigarovich <nick@chemlab.org>
20341
20342         * Corrected typo in gc.c (BOHEM vs BOEHM).
20343
20344 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20345
20346         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
20347         GetProperties. Also avoid calling g_slist_length in GetProperties and
20348         GetMethods.
20349
20350 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20351
20352         * reflection.c: avoid unaligned stores (bug spotted by
20353         Mark Crichton  <crichton@gimp.org>).
20354
20355 2002-09-25  Martin Baulig  <martin@gnome.org>
20356
20357         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
20358         instead of guint64 for addresses and added prologue/epilogue info.
20359
20360 2002-09-25  Martin Baulig  <martin@gnome.org>
20361
20362         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
20363         store line number info.  For the dynamic symbol file, we only need
20364         to provide the JIT generated dynamic line number info for the dynamic
20365         symbol file.
20366
20367 2002-09-25  Martin Baulig  <martin@gnome.org>
20368
20369         * debug-mono-symfile.h: Incremented version number.
20370
20371 2002-09-24  Martin Baulig  <martin@gnome.org>
20372
20373         * class.c (mono_debugger_class_init_func): New global function
20374         pointer variable.
20375         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
20376         call it.
20377
20378         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
20379         function.  This is called via the mono_debugger_class_init_func
20380         hook to add all types to the dynamic type table.
20381         (ves_icall_MonoDebugger_GetType): New interncall to get a class
20382         from its metadata token.
20383
20384         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
20385         New interncall for the debugger.
20386
20387 2002-09-24  Nick Drochak <ndrochak@gol.com>
20388
20389         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
20390         before using it in case it is null.
20391         
20392 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20393
20394         * metadata.c: allow custom modifiers in local var signatures
20395         (bug spotted by Zoltan Varga).
20396
20397 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20398
20399         * class.c: deal with the <Module> class that may have a NULL vtable.
20400         Eliminate warnings.
20401
20402 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20403
20404         * image.c, image.h: more strong name helpers.
20405         * monosn.c: more work: convert pem keys to cryptoapi format.
20406
20407 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20408
20409         * string-icalls.c: speedup IndexOf.
20410
20411 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20412
20413         * icall.c: updates from Zoltan.2.Varga@nokia.com.
20414
20415 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
20416
20417         * icall.c: cleanup: use mono_object_domain ().
20418
20419 2002-09-23  Martin Baulig  <martin@gnome.org>
20420
20421         * debug-mono-symfile.c: Improved type support.
20422
20423 2002-09-22  Martin Baulig  <martin@gnome.org>
20424
20425         * debug-mono-symfile.c: Added support for reference types and strings.
20426
20427 2002-09-22  Martin Baulig  <martin@gnome.org>
20428
20429         * debug-mono-symfile.c: Started to work on the type table.
20430
20431 2002-09-21  Martin Baulig  <martin@gnome.org>
20432
20433         * debug-mono-symfile.c: Largely reworked the symbol table format.
20434         The symbol table is now incrementally updated each time a new
20435         method is added.  We're now also using our own magic and version
20436         so that you don't need to recompile all your classes if the
20437         dynamic table changes.
20438         (mono_debug_update_mono_symbol_file): Removed.
20439         (mono_debug_symfile_add_method): New function to add a method.
20440
20441 2002-09-21  Martin Baulig  <martin@gnome.org>
20442
20443         * icall.c
20444         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
20445         New interncall.
20446
20447         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
20448         New interncall to get a method from its metadata token.
20449
20450 2002-09-21  Martin Baulig  <martin@gnome.org>
20451
20452         * debug-mono-symfile.c: Create type table.
20453
20454 2002-09-20  Martin Baulig  <martin@gnome.org>
20455
20456         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
20457
20458 2002-09-20  Martin Baulig  <martin@gnome.org>
20459
20460         * debug-mono-symfile.c: Provide information about params and locals.
20461
20462 2002-09-20  Martin Baulig  <martin@gnome.org>
20463
20464         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
20465         New interncall.
20466
20467         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
20468         interncall to get a method from its metadata token.
20469
20470 2002-09-20  Martin Baulig  <martin@gnome.org>
20471
20472         * debug-mono-symfile.c: Added a few checks for method->header
20473         being non-NULL.  This should never happen, but for the moment
20474         let's use a g_warning() rather than a g_assert().
20475
20476 2002-09-19  Mark Crichton  <crichton@gimp.org>
20477
20478         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
20479         even if support for it isn't present.  Added an #ifdef to fix this.
20480
20481         * socket-io.c: Added checks back for Solaris support.
20482
20483 2002-09-19  Martin Baulig  <martin@gnome.org>
20484
20485         * debug-mono-symfile.c (read_string, write_string): Reflect latest
20486         changes in the symbol file format.
20487
20488 2002-09-18  Martin Baulig  <martin@gnome.org>
20489
20490         * debug-mono-symfile.c: Set version number to 21.
20491
20492 2002-09-18  Dick Porter  <dick@ximian.com>
20493
20494         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
20495         on netbsd.  Fixes bug 30051.
20496
20497 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20498
20499         * reflection.c:
20500         (set_version_from_string): little fix.
20501
20502 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20503
20504         * monosn.c, Makefile.am: added strong name utility.
20505         * reflection.h, reflection.c: implemented delayed signing,
20506         locale, version and hash id assembly attributes.
20507
20508 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20509
20510         * loader.c, metadata.c: load param attributes in signatures.
20511
20512 2002-09-16  Martin Baulig  <martin@gnome.org>
20513
20514         * debug-mono-symfile.c: Added string table with all method names.
20515
20516 2002-09-14  Martin Baulig  <martin@gnome.org>
20517
20518         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
20519         fast method lookup.
20520
20521 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20522
20523         * reflection.c: record the public key token of referenced assemblies.
20524
20525 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20526
20527         * image.c, image.h: added functions to get the strong name and the
20528         public key of an assembly.
20529         * pedump.c: use them.
20530
20531 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
20532
20533         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
20534
20535 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
20536
20537         * marshal.c (mono_marshal_get_managed_wrapper): Added
20538         MONO_TYPE_BOOLEAN 
20539
20540 2002-09-11  Martin Baulig  <martin@gnome.org>
20541
20542         * gc.c: Call GC_unregister_disappearing_link() on all links when
20543         finalizing them, this is necessary to aviod a crash in boehm's
20544         finalize handler.
20545
20546 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20547
20548         * gc.c: handle GetTarget for finalized objects spotted and fixed by
20549         nick@chemlab.org.
20550
20551 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
20552
20553         * icall.c: implemented MonoType::Module.
20554         * reflection.c, reflection.h: mono_module_get_object () from
20555         Tomi Pakarinen <tomi.pakarinen@welho.com>.
20556
20557 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20558
20559         * icall.c: ignore overridden methods in GetMethods ().
20560         Fix for FieldInfo::SetValue().
20561         * object.c: handle float/double in runtime invoke.
20562
20563 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20564
20565         * object.c: allow a constructor to be called again on an object.
20566
20567 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20568
20569         * class.h, class.c: move field layout code to it's own function and
20570         export it. Get an interface id earlier. Move fields in MonoClass
20571         so they are more cache friendly and align the bitfields.
20572         * loader.c: temporary handle get_param_names() for a runtime method.
20573         * reflection.c, reflection.h: more code to handle runtime creation of
20574         types.
20575
20576 2002-09-09  Martin Baulig  <martin@gnome.org>
20577
20578         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
20579         signature with the pinvoke field being set for the actual call.
20580
20581 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20582
20583         * icall.c: removed some unused icalls. Start of map of glib charsets
20584         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
20585
20586 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20587
20588         * debug-helpers.c: break infinite loop (found and fixed by
20589         Holger Arnold <harnold@gmx.de>).
20590
20591 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20592
20593         * icall.c: target may be null in create_delegate.
20594
20595 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20596
20597         * marshal.c: handle a boolean return type.
20598
20599 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20600
20601         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
20602
20603 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20604
20605         * gc.c: fix weakreferences.
20606
20607 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20608
20609         * icall.c: added icall to get default codepage.
20610
20611 2002-09-03  Dick Porter  <dick@ximian.com>
20612
20613         * threads.h: 
20614         * threads.c: Use MonoThread instead of MonoObject where
20615         apropriate.
20616
20617         Store running thread objects in a hash table, so that we have all
20618         the info to hand when waiting for them to finish
20619         (means we don't need OpenThread() any more, so mingw builds should
20620         be fully functional again.)
20621
20622         * verify.c:
20623         * object.h: Added thread ID to MonoThread
20624
20625 2002-09-03  Martin Baulig  <martin@gnome.org>
20626
20627         * icall.c (System.Reflection.Assembly::get_location): New interncall.
20628
20629 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20630
20631         * icall.c: fixed leak in get_temp_path. Thanks lupus.
20632
20633 2002-09-03  Martin Baulig  <martin@gnome.org>
20634
20635         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
20636         argument to store the end address of the disassembled instruction.
20637
20638         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
20639         here from debug-symfile.h.
20640         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
20641         JIT into this struct.
20642         (MonoSymbolFile): Added `char *image_file' field.
20643         (MonoDebugGetMethodFunc): Removed.
20644         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
20645         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
20646         (mono_debug_find_method): New method.
20647
20648         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
20649         create a full symbol file.
20650         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
20651         and static symbol files.
20652         (mono_debug_find_method): The symbol file keeps an internal method hash,
20653         call this to get a MonoDebugMethodInfo from a MonoMethod.
20654
20655         * debug-symfile.[ch]: Removed.
20656
20657 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
20658
20659         * image.c (do_mono_image_open): Remove linker version check.
20660
20661 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
20662
20663         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
20664         wrappers for instance methods.
20665         
20666 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20667
20668         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
20669
20670 2002-08-28  Dick Porter  <dick@ximian.com>
20671
20672         * Makefile.am: Export HOST_CC for w32 builds
20673
20674 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20675
20676         * file-io.c process.c: MonoString are null terminated, no
20677         need for mono_string_to_utf16() anymore.
20678
20679 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20680
20681         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
20682
20683 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
20684
20685         * icall.c, reflection.h: speedup System.MonoType.
20686
20687 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20688
20689         * reflection.c: allow null as the value of a string argument in
20690         custom attributes constructors.
20691
20692 2002-08-27  Martin Baulig  <martin@gnome.org>
20693
20694         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
20695         `trampoline_address' field.
20696
20697 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
20698
20699         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
20700         check (fixes bug #29486) 
20701
20702 2002-08-27  Martin Baulig  <martin@gnome.org>
20703
20704         * debug-mono-symfile.c: Changed the file format in a way that allows us
20705         open it read-only and to use a specially malloced area for all the
20706         dynamic data.  We can now also generate a symbol file on-the-fly if we're
20707         debugging IL code and there is no MCS generated symbol file for it.
20708
20709 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20710
20711         * object.c: added a define for a good string and array
20712         creation speedup (not enabled by default because we need to deal with
20713         the synch stuff).
20714
20715 2002-08-26  Martin Baulig  <martin@gnome.org>
20716
20717         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
20718         function to create a dynamic symbol file.  This is used by the
20719         debugger to create a symbol file for IL code on-the-fly.
20720
20721 2002-08-26  Martin Baulig  <martin@gnome.org>
20722
20723         * loader.c (mono_lookup_pinvoke_call): Include the error message
20724         from g_module_error() in the error message.
20725
20726 2002-08-24  Martin Baulig  <martin@gnome.org>
20727
20728         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
20729         function to update the symbol file.  The symbol file is mmap()ed
20730         writable, but private.  This allows us to install the symbol file
20731         together with the assembly.
20732
20733 2002-08-24  Martin Baulig  <martin@gnome.org>
20734
20735         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
20736         but they can read the new symbol file format which mcs is now creating.
20737
20738         * debug-symfile.c (mono_debug_find_source_location): Moved to
20739         debug-mono-symfile.c; this is now operating on the new symbol file.
20740
20741 2002-08-23  Martin Baulig  <martin@gnome.org>
20742
20743         * debug-helpers.c (mono_method_desc_from_method): New function to get
20744         a MonoMethodDesc from a MonoMethod.
20745
20746 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20747
20748         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
20749         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
20750
20751 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20752
20753         * string-icalls.[ch]: make helper methods static.
20754
20755 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20756
20757         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
20758         types to it and to SetValueInternal.
20759
20760         * object.c: Moved handle_enum label to its proper place. This was the
20761         f... bug! ;-)
20762
20763         This time i compiled mcs and gtk-sharp and they both work.
20764
20765 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20766
20767         * icall.c: reverted partially my previous patch until 
20768         object.c:set_value handles enums correcly.
20769
20770 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20771
20772         * icall.c:
20773         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
20774         (ves_icall_System_Environment_get_MachineName): removed warning when
20775         compiling under cygwin.
20776
20777 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20778
20779         * object.c: fixed field_get_value() for reference types.
20780
20781 2002-08-22  Dick Porter  <dick@ximian.com>
20782
20783         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
20784         Don't free a buffer while it's still needed.  Patch from Jonathan
20785         Liger <Jonathan.liger@wanadoo.fr>
20786
20787 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
20788
20789         * icall.c (ves_icall_System_Environment_get_Platform): Add new
20790         internal call.
20791
20792 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
20793
20794         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
20795         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
20796
20797         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
20798         we call unmanaged code which throws exceptions.
20799
20800 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20801
20802         * appdomain.h: added per-domain entry_assembly.
20803         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
20804         arguments.
20805         * icall.c: Assembly::GetEntryAssembly icall.
20806         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
20807         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
20808
20809 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
20810
20811         * appdomain.h, gc.c: added mono_domain_finalize ().
20812
20813 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20814
20815         * object.c:
20816         (mono_print_unhandled_exception): changed g_warning by g_printerr
20817         because g_log has a 1024 characters limit (yeah, i got a big stack
20818         trace). Don't print exception name, that should be in ToString 
20819         returned string.
20820
20821 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20822
20823         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
20824         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
20825
20826 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20827
20828         * object.c:
20829         (mono_print_unhandled_exception): after previous commit, i realized
20830         that MS calls ToString on the exception. I changed this function to
20831         do that. This way we get stack_trace for free.
20832
20833 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20834
20835         * object.c:
20836         (mono_print_unhandled_exception): invoke Message property instead of
20837         getting 'message' field from Exception. Don't allocate memory for
20838         'trace' and 'message' if not needed.
20839
20840 2002-08-18  Dick Porter  <dick@ximian.com>
20841
20842         * unicode.c: Fix asserts to match Encoder.cs checks
20843
20844 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20845
20846         * marshal.c: fix unaligned store issue and a few wrong
20847         opcode argument types.
20848
20849 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20850
20851         * icall.c: added GetUninitializedObjectInternal internal call.
20852
20853 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
20854
20855         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
20856         to the right domain.
20857
20858 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
20859
20860         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
20861
20862         * class.c (class_compute_field_layout): set blittable to false for Strings
20863
20864         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
20865
20866 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20867
20868         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
20869         first chunk of code to create types at runtime. Code to
20870         handle ReflectedType/DeclaringType. Make reflection handles
20871         domain specific.
20872
20873 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20874
20875         * class.c: set correct name in arrays.
20876
20877 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
20878
20879         * appdomain.c (mono_domain_transfer_object): make it work with
20880         valuetypes. bug fixes.
20881
20882 2002-08-12  Dick Porter  <dick@ximian.com>
20883
20884         * object.h: Rename some parameters to avoid c++ keywords (Patch
20885         from Joseph Wenninger <kde@jowenn.at>)
20886
20887 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
20888
20889         * icall.c: added icall to implement Assembly.GetFile*.
20890
20891 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
20892
20893         * reflection.h, reflection.c: code to embed managed resources.
20894
20895 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20896
20897         * class.c: move all the type size stuff into
20898         class_compute_field_layout().
20899
20900 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20901
20902         * class.c: ensure enums have always the correct instance size.
20903         * unicode.c: remove wrong assert.
20904
20905 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20906
20907         * assembly.c: fix mem corruption issue.
20908         * image.h, image.c: added mono_image_get_resource () to access
20909         managed resources.
20910         * icall.c: implemented Assembly.EntryPoint property and some
20911         Managed Resources related internalcalls.
20912
20913
20914 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20915
20916         * image.c, image.h: impemented mono_image_get_entry_point ().
20917         * appdomain.c: use mono_image_get_entry_point.
20918
20919 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
20920
20921         * reflection.c: support the object type argument when loading
20922         custom attributes.
20923
20924 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
20925
20926         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
20927         String as return type.
20928
20929 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
20930
20931         * reflection.c: fix encoding of named args for custom attrs to match
20932         the ms implementation. Read them back when instantiating custom
20933         attributes.
20934
20935 2002-08-02  Radek Doulik  <rodo@ximian.com>
20936
20937         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
20938         by Dietmar as quick fix
20939         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
20940         16 as stack size, used on more places as quick fix before Dietmar
20941         will fix it properly
20942
20943 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
20944
20945         * object.h, object.c: added accessors for fields and properties.
20946
20947 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
20948
20949         * class.c, class.h: made mono_class_get_field_from_name ()
20950         loop on parent types.
20951         Added mono_class_get_property_from_name ().
20952
20953 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20954
20955         * class.c, class.h: move the code to setup the type vtable in its own
20956         function so that it can be reused also for types created at runtime.
20957         Eliminate the "class" identifier from the header file.
20958         * reflection.c: setup the vtable for enums so that we can create
20959         objects for use in SetConstant ().
20960
20961 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
20962
20963         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
20964         instead of the delegate itself as this pointer (bug #28383)
20965
20966 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
20967
20968         * marshal.c (mono_marshal_get_managed_wrapper): added return type
20969         conversions.
20970
20971 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20972
20973         * loader.c: don't set the pinvoke bit on icalls.
20974
20975 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
20976
20977         * debug-helpers.c (mono_method_full_name): only print a number to
20978         indicate wrapper type (so that the output is more readable in traces).
20979
20980 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
20981
20982         * class.c (mono_class_init): include method override patch from Paolo
20983
20984 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
20985
20986         * icall.c: fixed GetTypeCode().
20987
20988 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
20989
20990         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
20991         use real delegate invoke function to make it work with multicast
20992         delegates (fix bug# 28291).
20993
20994 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20995
20996         * object.c: load constant strings.
20997
20998 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20999
21000         * reflection.c: no magic numbers.
21001         * tabledefs.h: security action enum.
21002
21003 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21004
21005         * assembly.c: fix possible memory corruption.
21006
21007 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
21008
21009         * reflection.h, reflection.c: added support for linking resources.
21010         * verify.c: check we have an updated corlib.
21011
21012 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
21013
21014         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
21015         string arrays.
21016         (mono_marshal_string_array): null terminate unmanaged string arrays.
21017         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
21018
21019 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21020
21021         * icall.c: Type.GetType () can now return also types from the
21022         calling assembly.
21023
21024 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
21025
21026         * loader.h, loader.c: stack walking support.
21027         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
21028         GetCallingAssembly.
21029
21030 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
21031
21032         * marshal.c: added optimisations for blittable types 
21033
21034         * class.c (mono_array_class_get): do not set blittable attribute on arrays
21035         (mono_class_setup_mono_type): set blittable attribute for single
21036         and double.
21037
21038         * marshal.c (mono_string_utf8_to_builder): impl.
21039         (mono_string_builder_to_utf8): impl.
21040         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
21041
21042 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
21043
21044         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
21045         (mono_marshal_get_managed_wrapper): impl. byref types
21046
21047 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21048
21049         * icall.c:
21050         (search_method): don't display debug message. 
21051
21052 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
21053
21054         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
21055
21056 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
21057
21058         * appdomain.c: set the missing filename when throwing exception.
21059
21060 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
21061
21062         * metadata.c (mono_type_size): code cleanup
21063         (mono_type_stack_size): removed some test code
21064
21065 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
21066
21067         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
21068         mono_get_exception_file_not_found now.
21069
21070         * exception.c (mono_exception_from_name_two_strings): New version
21071         that will call a constructor with two string arguments. 
21072         (mono_get_exception_file_not_found): New helper routine, used to
21073         report file-not-found errors.
21074
21075 2002-07-20  Dick Porter  <dick@ximian.com>
21076
21077         * process.h:
21078         * process.c: Pass file handles to CreateProcess
21079         
21080         * icall.c:
21081         * file-io.h:
21082         * file-io.c: Implemented CreatePipe
21083
21084 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
21085
21086         * metadata.c (mono_get_param_info): set alignment for value types
21087
21088 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21089
21090         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
21091         Constify mono_domain_assembly_open().
21092         * loader.c: handle null namespace in icalls.
21093
21094 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
21095
21096         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
21097         (emit_str_to_ptr_conv): marshal object as structs
21098
21099         * metadata.c (mono_type_to_unmanaged): marshal object as structs
21100
21101         * marshal.c (mono_marshal_get_runtime_invoke): support value types
21102
21103 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
21104
21105         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
21106         (mono_marshal_get_native_wrapper): we an now return value types
21107
21108 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21109
21110         * verify.c: more checks implemented.
21111
21112 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
21113
21114         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
21115         (fix bug #27695)
21116         (mono_marshal_get_native_wrapper): allow byref arguments
21117         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
21118         impl. PtrToStringXXX methods
21119         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
21120         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
21121         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
21122         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
21123         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
21124
21125 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21126
21127         * reflection.c: fix buglet in parsing an assembly name.
21128
21129 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
21130
21131         * marshal.c (emit_ptr_to_str_conv): first impl.
21132
21133 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
21134
21135         * object.c, class.h: cache the vtable in the class as suggested by
21136         vargaz@freemail.hu (Zoltan Varga).
21137
21138 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21139
21140         * class.h, loader.c: added mono_field_from_token().
21141         * verify.c: first cut of type checking code.
21142
21143 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
21144
21145         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
21146
21147 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
21148
21149         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
21150         (fix bug #27782)
21151         (mono_marshal_get_remoting_invoke): impl.
21152         (mono_delegate_begin_invoke): impl.
21153         (mono_mb_emit_save_args): impl.
21154         (mono_delegate_end_invoke): impl.
21155         (mono_marshal_get_delegate_begin_invoke):
21156         (mono_marshal_get_delegate_end_invoke):
21157         (mono_marshal_get_delegate_invoke): generate a special name for
21158         those methods (including the signature) and associate them whith
21159         the delegate class. 
21160
21161 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
21162
21163         * reflection.[ch]: 
21164         (mono_reflection_type_from_name): now it has a MonoImage parameter
21165         which is used as the default image to search the type in. If the image
21166         is NULL or getting the type from it fails, it defaults to corlib.
21167
21168         * icall.c: changed 1 call to mono_reflection_type_from_name to match
21169         new parameter.
21170
21171 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21172
21173         * reflection.c: update the parameter table index.
21174
21175 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
21176
21177         * domain.c: don't include the mark byte in the string hash.
21178
21179 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
21180
21181         * icall.cs: icall for Type.GetTypeCode ().
21182         * verify: a couple of fixes and disabled local initialization checks.
21183
21184 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
21185
21186         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
21187
21188         * debug-helpers.c (mono_method_full_name): print the type of the
21189         runtime wrapper
21190
21191         * metadata.c (mono_signature_hash): a hash function for signatures
21192         (mono_signature_hash): better hash algorithm
21193
21194         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
21195
21196         * debug-helpers.c (mono_method_full_name): this can now generate
21197         method names with signatures
21198
21199         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
21200         method dont have this pointers.
21201
21202 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21203
21204         * reflection.c: fixup typebuilder tokens.
21205         * image.c: fix buglet.
21206         * marshal.h: remove whitespace.
21207         * metadata.h, metadata.c: reinstate code that was removed.
21208         * verify.c: handle catch directives and fix another couple of bugs.
21209
21210 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
21211
21212         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
21213         (mono_marshal_get_native_wrapper): make it comp. with the old code
21214         (mono_marshal_get_native_wrapper): support boolean
21215         (mono_marshal_get_managed_wrapper): support more types
21216
21217 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
21218
21219         * class.c (class_compute_field_layout): compute class->blittable attribute.
21220
21221 2002-07-09  Dick Porter  <dick@ximian.com>
21222
21223         * threads.c: Make the thread cleaning up cope with threads that
21224         call ExitThread()
21225
21226 2002-07-08  Radek Doulik  <rodo@ximian.com>
21227
21228         * reflection.c (method_encode_code): use non-translated values to
21229         compute finally_start, this fixes exception handling on ppc, yay!
21230
21231         * decimal.h (struct signscale): fix endianess
21232
21233 2002-07-07  Radek Doulik  <rodo@ximian.com>
21234
21235         * reflection.c: swap box_val and not val
21236
21237 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
21238
21239         * reflection.c, reflection.h: handle full assembly info in type name.
21240         Handle Type arguments when loading custom attributes.
21241         * icall.c: updated to use new mono_reflection_type_from_name () method.
21242
21243 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21244
21245         * loader.c:
21246         (method_from_memberref): also print assembly name when method not found.
21247
21248 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21249
21250         * icall.c:
21251         (ves_icall_TypeGetProperties): fixed bug #27473. 
21252
21253 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21254
21255         * reflection.c: display image name and token when cannot find the
21256         .ctor for an attribute.
21257
21258 2002-07-05  Martin Baulig  <martin@gnome.org>
21259
21260         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
21261
21262 2002-07-04  Dick Porter  <dick@ximian.com>
21263
21264         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
21265         compile on mingw.  This will cause mingw builds to not wait for
21266         subthreads to terminate after the main thread does.  I've lodged a
21267         bug with the mingw developers for them to wrap OpenThread().
21268
21269 2002-07-03  Dick Porter  <dick@ximian.com>
21270
21271         * threads.c: Store thread IDs instead of handles, because
21272         GetCurrentThread() returns a pseudohandle and therefore stores
21273         useless values.  mono_thread_cleanup() continues checking the
21274         array of threads until it is empty, to cope with subthreads
21275         spawning new threads after the main thread has finished.
21276
21277         * profiler.h:
21278         * profiler.c:
21279         * profiler-private.h: Pass the thread ID to thread profiler
21280         functions, instead of a handle
21281
21282 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21283
21284         * verify.c: fixes to make it more usable.
21285         * pedump.c: added --verify code to verify IL code in an assembly.
21286
21287 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21288
21289         * reflection.c: turn errors into warnings to allow compiling corlib.
21290
21291 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
21292
21293         * reflection.c: add special cases to compile corlib.
21294
21295 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21296
21297         * reflection.c: handle properties with only a set method.
21298
21299 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21300
21301         * opcodes.h: add enum with opcodes in opval order.
21302
21303 2002-07-01  Dick Porter  <dick@ximian.com>
21304         
21305         * object.h:
21306         * object.c (mono_runtime_run_main): Removed unneeded argument
21307
21308 2002-06-28  Martin Baulig  <martin@gnome.org>
21309
21310         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
21311
21312 2002-06-27  Dick Porter  <dick@ximian.com>
21313
21314         * threads.c: Store the handle in both the parent thread and in the
21315         subthread, to minimise the time between starting a new thread and
21316         storing its ID.
21317
21318 2002-06-26  Dick Porter  <dick@ximian.com>
21319
21320         * appdomain.c (mono_runtime_cleanup): Close the socket library
21321         after all the threads have finished, not before
21322
21323 2002-06-26  Martin Baulig  <martin@gnome.org>
21324
21325         * debug-symfile.c (mono_debug_find_source_location): Added
21326         `guint32 *line_number' argument.  If it's not NULL, store the line number
21327         there and return the file name without the line number.
21328
21329 2002-06-25  Dick Porter  <dick@ximian.com>
21330
21331         * icall.c:
21332         * process.h:
21333         * process.c: Process forking and other support functions
21334
21335 2002-06-25  Dick Porter  <dick@ximian.com>
21336
21337         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
21338         things dont happen when the image is closed.
21339         (mono_image_lookup_resource): Walk the resource section looking
21340         for a particular entry
21341
21342         * cil-coff.h: PE resource section decoding
21343
21344 2002-06-25  Dick Porter  <dick@ximian.com>
21345         
21346         * assembly.h:
21347         * assembly.c: 
21348         (mono_assembly_foreach): Accessor functions to walk the list of
21349         loaded assemblies
21350         (mono_assembly_set_main):
21351         (mono_assembly_get_main): Process methods need to know which
21352         assembly is the "main" one
21353
21354         * object.c (mono_runtime_run_main): Record the main assembly
21355
21356         * debug-helpers.c: Fix typo
21357
21358 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
21359
21360         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
21361         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
21362
21363 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
21364
21365         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
21366
21367 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
21368
21369         * image.c (do_mono_image_open): Initialize reference count,
21370         otherwise we leak the MonoImage.
21371
21372 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
21373
21374         * reflection.c: small tweak to handle self-hosting.
21375
21376 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
21377
21378         * reflection.c: fix type name parse code.
21379
21380 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21381
21382         * reflection.c: break out of the loop.
21383         * image.c: special case corlib.
21384
21385 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21386
21387         * reflection.c: add all the custom attrs at the end to ensure the
21388         ctors have been properly initialized when the attributes are defined
21389         in the current assembly.
21390
21391 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21392
21393         * reflection.c: handle correctly multiple-nested types.
21394
21395 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
21396
21397         * row-indexes.h: fix typos.
21398         * reflection.c: adjust for typos and fix method_def_or_ref
21399         encoding in MethodImpl table.
21400
21401 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21402
21403         * reflection.c: fix entry point patching (thanks Serge!).
21404
21405 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
21406
21407         * verify.c: add check for System.Exception
21408
21409 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
21410
21411         * image.c, class.c: minifix for code just c&p'ed.
21412         * reflection.c: warning fix.
21413         * object.h, loader.h, domain.c: load also StringBuilder.
21414
21415 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
21416
21417         * marshal.h, marshal.c: some support code to handle complex marshaling.
21418
21419 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21420
21421         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
21422         Better signatures with vtable error dump.
21423
21424 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
21425
21426         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
21427
21428 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
21429
21430         * icall.c (ves_icall_Type_GetField): impl.
21431
21432 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21433
21434         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
21435         to retrieve a marshal description blob for a field or param.
21436
21437 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
21438
21439         * reflection.h, reflection.c: change order of nested type emission
21440         to avoid table corruption. The NestedTypes table is sorted.
21441         * icall.c: change order of GetConstructor results to workaround mcs bug.
21442
21443 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21444
21445         * reflection.h, reflection.c: handle field and param marshal
21446         information.
21447
21448 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21449
21450         * icall.c, marshal.c marshal.h: more Marshal class implementation.
21451
21452 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21453
21454         * reflection.c: fix call convention.
21455
21456 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21457
21458         * reflection.h, reflection.c: mono_image_get_memberref_token()
21459         takes a type instead of a class, now. Added
21460         mono_image_get_array_token() to create tokens for the special
21461         multi-dim array methods.
21462
21463 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21464
21465         * assembly.c: handle modules (no assembly table). Split
21466         loading references in its own function.
21467         * class.c: handle moduleref resolution scope.
21468         * image.c, image.h: cache module name in image.
21469
21470 2002-06-07  Martin Baulig  <martin@gnome.org>
21471
21472         * reflection.c (mono_image_get_type_info): Only add a class layout entry
21473         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
21474
21475 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
21476
21477         * icall.c: more signature fixes that used uint instead of int.
21478
21479 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21480
21481         * reflection.c: fixed signature of field refs.
21482
21483 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21484
21485         * class.c, reflection.c: handle typerefs of nested types
21486         (both on read and when writing files).
21487
21488 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
21489
21490         * icall.c: fix method signatures that tried to workaround the previous
21491         typo, d'oh!
21492
21493 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
21494
21495         * debug-helpers.c: fix typo.
21496
21497 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21498
21499         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
21500         rewrote the PE/COFF writing code (our programs are understood by the
21501         ms runtime, now).
21502
21503 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
21504
21505         * gc.c, gc.h, icall.c: weakreference support.
21506
21507 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
21508
21509         * Makefile.am, mono-config.c: use $(sysconfdir).
21510
21511 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21512
21513         * icall.c: changed default precision of Double.ToString() to 15.
21514         Fixed memory leak. Unified with Single.ToString.
21515
21516 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
21517
21518         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
21519
21520 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
21521
21522         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
21523         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
21524         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
21525         and myself.
21526
21527 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21528
21529         * debug-symfile.c, sysmath.c: yet more compilation fixes.
21530
21531 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21532
21533         * reflection.c, socket-io.c: more compilation fixes.
21534
21535 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21536
21537         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
21538         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
21539         unicode.c: warning and compiler compatibility fixes.
21540
21541 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21542
21543         * class.h, metadata.c: fixed warnings/compilation errors.
21544
21545 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
21546
21547         * Makefile.am, mono-config.c, mono-config.h: configuration file
21548         support routines.
21549         * loader.c, loader.h: make Dll mapping configurable at runtime in the
21550         config file. Export methods to insert and lookup mappings.
21551
21552 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
21553
21554         * reflection.c: handle types and boxed objects in custom attr
21555         constructors.
21556
21557 2002-05-30  Martin Baulig  <martin@gnome.org>
21558
21559         * debug-symfile.c
21560         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
21561
21562 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
21563
21564         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
21565         to lookup the implmap row for a P/Invoke method.
21566         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
21567         P/Invoke method from the runtime on an as needed basis.
21568
21569 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
21570
21571         * metadata.c (mono_metadata_parse_signature): impl.
21572
21573 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21574
21575         * class.c: handle .pack directive.
21576
21577 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
21578
21579         * object.c: initialize static fields with RVA data.
21580
21581 2002-05-25  Martin Baulig  <martin@gnome.org>
21582
21583         * debug-symfile.c
21584         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
21585
21586 2002-05-24  Martin Baulig  <martin@gnome.org>
21587
21588         * debug-symfile.c
21589         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
21590         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
21591         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
21592
21593 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21594
21595         * object.c: special case string ctros in invoke.
21596         * gc.c: silly whitespace changes.
21597
21598 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
21599
21600         * threadpool.[ch]: impl. a threadpool that can
21601         be used by mint and mono.
21602
21603 2002-05-22  Martin Baulig  <martin@gnome.org>
21604
21605         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
21606         The first argument is now a `MonoReflectionModuleBuilder *', the return
21607         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
21608         `methods' field to get the method builder.  The `token' argument is the
21609         unfixed token.
21610
21611         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
21612         invalid characters instead of g_assert_not_reached()ing.  This seems
21613         to be the behaviour of mscorlib.
21614
21615 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
21616
21617         * object.c (mono_runtime_invoke_array): applied patch from Rachel
21618         Hestilow to fix bug #25104
21619
21620 2002-05-21  Martin Baulig  <martin@gnome.org>
21621
21622         * debug-symfile.c (mono_debug_find_source_location): New function.
21623         Looks up an IL offset in the line number table and returns the source
21624         location as a string.
21625
21626 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21627
21628         * icall.c:
21629         (mono_double_ToStringImpl): changed %f by %g until we have something
21630         better.
21631
21632 2002-05-21  Nick Drochak  <ndrochak@gol.com>
21633
21634         * icall.c : Use different name for Math.Pow's icall.  Needed to check
21635         parameters first in C#.
21636
21637 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21638
21639         * icall.c, reflection.h: added icall to get info about an event.
21640
21641 2002-05-20  Radek Doulik  <rodo@ximian.com>
21642
21643         * object.c (mono_value_box): don't use memcpy for boxing on BIG
21644         endian
21645         (mono_value_box): don't use memcpy for small sizes on
21646         architectures with unaligned access
21647
21648 2002-05-20  Martin Baulig  <martin@gnome.org>
21649
21650         * reflection.c (mono_reflection_setup_internal_class): Don't crash
21651         if `tb->parent == NULL'.
21652         (mono_reflection_create_internal_class): New function.  This is
21653         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
21654         for enum types.
21655
21656         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
21657         New interncall.
21658
21659 2002-05-19  Martin Baulig  <martin@gnome.org>
21660
21661         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
21662         argument to get the length, don't default to the array length.
21663
21664 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
21665
21666         * assembly.c (mono_assembly_setrootdir): New function used to
21667         override the MONO_ASSEMBLIES directory.
21668
21669 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21670
21671         * icall.c: ValueType_GetHashCode() initialize local var.
21672
21673 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21674
21675         * reflection.c: sort custom attributes table.
21676
21677 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21678
21679         * reflection.c: support named args in custom attributes (write support).
21680
21681 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
21682
21683         * reflection.c: fix finally position calculation.
21684
21685 2002-05-15  Radek Doulik  <rodo@ximian.com>
21686
21687         * reflection.c: fixed endianess at many places
21688
21689         * icall.c (ves_icall_InitializeArray): comment out debug msg
21690
21691 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
21692
21693         * object.c (mono_unhandled_exception): new function to handle
21694         unhandled exceptions.
21695         (mono_unhandled_exception): call the UnhandledException event.
21696         (mono_runtime_delegate_invoke): impl.
21697
21698 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
21699
21700         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
21701         returns the RVA, not the direct pointer to the data. Handle the case
21702         when the class size is fixed.
21703
21704 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
21705
21706         * reflection.c: fix some endianess issues.
21707
21708 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
21709
21710         * object.c (mono_runtime_invoke): is now able to catch exceptions.
21711
21712         * threads.c (mono_thread_init): added a callback which is invoked
21713         at thread start.
21714
21715 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
21716         
21717         * icall.c: make GetHashCode return non-negative values.
21718
21719 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
21720
21721         * object.c, icall.c, gc.c: revert to address-based hashcode.
21722
21723 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
21724
21725         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
21726
21727 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21728
21729         * icall.c, class.c: special case <Module>.
21730
21731 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
21732
21733         * icall.c: fix bug in GetNow().
21734
21735 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
21736
21737         * object.c (mono_runtime_class_init): make sure that we call all
21738         static class constructors.
21739
21740 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
21741
21742         * reflection.c: sort methodsemantics table.
21743
21744 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
21745
21746         * reflection.h, reflection.c: honour init locals setting.
21747
21748 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
21749
21750         * icall.c: copied Double ToStringImpl for Single ToStringImpl
21751
21752 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21753
21754         * reflection.c: support ContructorBuilders in attribute blob creation.
21755
21756 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21757
21758         * reflection.c: some changes to build a binary that can be run
21759         directly in windows.
21760
21761 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
21762
21763         * loader.c: print a big message when an icall can't be found.
21764
21765 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21766
21767         * string-icalls.c: fix bug 24248.
21768
21769 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
21770
21771         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
21772         icall.c, reflection.h: separate assembly loading by pathname and by
21773         assembly name. Use the MONO_PATH env var to search for assemblies.
21774
21775 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21776
21777         * assembly.c, image.h: add some support for assemblies
21778         with multiple modules.
21779         * class.c, class.h: export mono_class_from_typeref().
21780         * loader.c: remove duplicated code and use mono_class_from_typeref(),
21781         instead.
21782
21783 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21784
21785         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
21786         documentation says (the ECMA one is correct).
21787
21788 2002-05-02  Dick Porter  <dick@ximian.com>
21789
21790         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
21791         Don't name the synchronisation mutex.
21792
21793 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
21794
21795         * rand.c
21796         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
21797         Make the prototypes match.
21798         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
21799         Same.
21800
21801         * icall.c
21802         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
21803         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
21804         all systems have tm.tm_zone, so use strftime() with %Z to print
21805         the timezone abreviation into a temp string.
21806
21807         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
21808         rather than mono_array_addr() on a MonoString on Big Endian
21809         machines.
21810
21811 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
21812
21813         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
21814         fix bug 24041
21815
21816 2002-04-30  Dick Porter  <dick@ximian.com>
21817
21818         * socket-io.c: Cope with SOCKET being an integer rather than a
21819         pointer now.
21820
21821         * threads.c: Added Thread_free_internal, to deal with thread
21822         handle cleanup.  Moved calls to handle_store() and handle_remove()
21823         to start_wrapper(), so each can only be called once.  Allocate
21824         synchronisation blocks with GC_malloc(), and use GC finalisation
21825         to close the handles.
21826
21827         * icall.c: added System.Threading.Thread::Thread_free_internal
21828
21829 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21830
21831         * icall.c: support Environment.Exit, CommandLineArgs().
21832
21833 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
21834
21835         * object.c, object.h: added mono_runtime_run_main () and
21836         mono_runtime_get_main_args () for use in System.Environment.
21837
21838 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
21839
21840         * gc.c: fix thinko, enable actual finalization since the jit is now
21841         fixed.
21842
21843 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21844
21845         * gc.c, object.c: take into account that an object may be offset wrt the address
21846         returned by GC_malloc().
21847
21848 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
21849
21850         * image.c: handle files without entries in the assembly table (modules).
21851
21852 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
21853
21854         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
21855         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
21856         allowed to be null when it's System.Object class setup.
21857
21858 2002-04-27  Martin Baulig  <martin@gnome.org>
21859
21860         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
21861         if `tb->parent == NULL' rather than crashing.
21862
21863 2002-04-28  Nick Drochak  <ndrochak@gol.com>
21864
21865         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
21866         calling acos() where asin() should have been called.
21867
21868 2002-04-26  Martin Baulig  <martin@gnome.org>
21869
21870         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
21871         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
21872         there's a subdirectory called `System', but we don't want to read that
21873         subdirectory as an assembly.
21874
21875 2002-04-25  Martin Baulig  <martin@gnome.org>
21876
21877         * debug-symfile.c: Reflect latest MonoString changes.
21878
21879 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
21880
21881         * rand.c, rand.h: instance method icalls need to have an explicit
21882         this pointer as first argument in the C implementation.
21883
21884 2002-04-25  Nick Drochak <ndrochak@gol.com>
21885
21886         * icall.c: Fix typo in map for GetNonZeroBytes
21887
21888 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
21889
21890         * string-icalls.c : String does now passes unit tests without any 
21891         errors, the following changes has been made:
21892         
21893         Implemented replace methods.
21894         Renaming of methods to (try) follow the standard.
21895         Fixed compare ordinal
21896         Made all memory allocated directly to function instead of via icall function.
21897         Small performance fix in is_in_array function
21898                         
21899  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
21900
21901         c (mono_string_Internal_ctor_charp_int_int):
21902         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
21903         sindex < 0, throw ArgumentOutOfRangeException instead of
21904         ArgumentNullException.
21905
21906         Added new check for length == 0, however
21907         I need to make it return String.Empty from the C code.
21908         
21909         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
21910         that calculate the length for us here.
21911         
21912         (mono_string_Internal_ctor_sbytep_int_int): Replaced
21913         mono_string_new_utf16 with mono_string_new, since value is utf8.
21914
21915 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21916
21917         * object.c: register the object for finalization if needed.
21918         Allocate one more char in the string for the terminating 0 char.
21919
21920 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
21921
21922         * class.c, class.h, image.c: check if a type implemenst a destructor.
21923         Use the proper key for array class lookups.
21924         * icall.c: register the icalls in the System.GC class.
21925         * gc.c, gc.h: GC-related functions and icalls.
21926
21927 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21928
21929         * icall.c:
21930         * socket-io.c:
21931         * unicode.c: free some strings gotten from mono_string_to_utf8 and
21932         changed a couple of free () by g_free ().
21933
21934         * decimal.c: one-liner in the comments for decimal2string ().
21935
21936 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
21937
21938         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
21939
21940 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
21941
21942         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
21943         * object.c (mono_runtime_invoke_array) : handle null in params
21944
21945 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
21946
21947         * string-icalls.c: fixed bug in split (one off bug)
21948
21949 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
21950
21951         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
21952         * icalls.c: added String::Equals as internal method
21953
21954 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
21955
21956         * threads.c: fixed bug in the double interlocked functions
21957
21958 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
21959
21960         * threads.c: implemented all of the new interlocked icalls.
21961         * string-icalls.c: fix a bug in insert.
21962         * icalls.c: added the icalls for interlocked, removed old string functions.
21963         
21964 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21965
21966         * loader.c: fix off-by-one error when reading argument names.
21967
21968 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21969
21970         * profiler.c: win32 counter implementation (untested).
21971         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
21972         (the latter needs testing and more complete impl. from win32 folks).
21973
21974 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
21975
21976         * object.c: mono_array_new_full workaround mono_array_class_get
21977         problem.
21978
21979 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21980
21981         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
21982         * object.h (mono_string_chars): Changed casting type.
21983
21984 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21985
21986         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
21987                            method signatures to use gunichar2 instead of gint16.
21988
21989 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
21990
21991         * object.h, object.c: domain-specific versions of mono_object_new and
21992         mono_array_new.
21993
21994 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
21995
21996         * object.c: changed String layout
21997
21998         * string-icalls.c (mono_string_Internal_ctor_chara): added
21999         internal string constructors.
22000
22001 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
22002
22003         * threads.c: pass 'this' to the thread start routine.
22004
22005 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22006
22007         * string-icalls.c: fix IndexOf and LastIndexOf. Now
22008         InternalCompareStr don't call twice mono_string_cmp_char for the last
22009         character. Improved performance in mono_string_cmp_char.
22010
22011 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22012
22013         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
22014         code into its own library: libmonoruntime.
22015
22016 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
22017
22018         * object.h, object.c: changed array format so that szarrays do not
22019         require a bounds structure.
22020         * icall.c, appdomain.c: support for new szarray format.
22021
22022 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
22023
22024         * metadata.c: compare also the retuns type when comparing signatures:
22025         we didn't do this as an optimization since really overloaded methods
22026         must differ also in the arguments, but this doesn't work with
22027         low-level IL code (or when using explicit conversion operators: see
22028         bug#23498 for an example).
22029
22030 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
22031
22032         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
22033
22034 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
22035
22036         * icall.c: make MonoType::GetElementType its own icall.
22037
22038 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
22039
22040         * icall.c: remove MonoMethod_get_Name().
22041         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
22042         object.
22043
22044 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22045
22046         * string-icalls.c: optimized a few methods.
22047
22048 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
22049
22050         * icall.c: added all new string internal calls
22051         * string-icalls.c: added, new string internal call implementation.
22052         * object.c: added mono_string_new_size for allocating a string a size
22053
22054 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
22055
22056         * object.c (mono_object_isinst): use the same code as in the
22057         optimized x86 version.
22058
22059 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
22060
22061         * profiler.c: TSC-based timer code (faster and more accurate).
22062         Not hooked up in configure, yet (set USE_X86TSC to 1).
22063
22064 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
22065
22066         * profiler.c, profiler.h: track time spent compiling methods.
22067         * threads.c: track thread creation/destruction.
22068
22069 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
22070
22071         * profiler.c, profiler.h, profiler-private.h: profiling interface
22072         and sample implementation. Moved here so that it can be used also by
22073         the jit.
22074
22075 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
22076
22077         * reflection.c, reflection.h: keep types and other handles separate in
22078         the hash tables for referred tokens. Add guid for modules.
22079
22080 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
22081
22082         * assembly.c: fix bugs found with valgrind.
22083         * metadata.h, metadata.c: added mono_metadata_guid_heap().
22084
22085 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
22086
22087         * threads: added icall support for getting current domain for
22088                    the thread.
22089  
22090 2002-04-13  Martin Baulig  <martin@gnome.org>
22091
22092         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
22093         (MonoDebugVarInfo): Added `index' field for register based addresses.
22094         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
22095         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
22096         `MonoDebugVarInfo *params' and `guint32 this_offset' with
22097         `MonoDebugVarInfo *this_var'.
22098
22099         * debug-symfile.c (relocate_variable): New static function to write
22100         a location description for a local variable or method parameter.
22101
22102 2002-04-12  Martin Baulig  <martin@gnome.org>
22103
22104         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
22105         stack offset and begin/end scope address of a local variable.
22106         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
22107         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
22108         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
22109
22110         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
22111         Added new relocation types for start/end scope of a local variable.
22112
22113 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
22114
22115         * object.h: add mono_object_domain() macro.
22116         * reflection.c: handle typespecs.
22117         * icall.c: MonoMethod::get_Name() implementation.
22118
22119 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22120
22121         * icall.c: String::GetHashCode() icall implementation.
22122
22123 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22124
22125         * icall.c: String::IndexOfAny icall.
22126         * object.c, object.h: make array->max_length more useful.
22127         Intrduced mono_object_class() and mono_string_length() macros.
22128
22129 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22130
22131         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
22132         instead of g_unichar_isdigit.
22133
22134 2002-04-11  Nick Drochak  <ndrochak@gol.com>
22135
22136         * icall.c: Implement a simple Double.ToString().
22137
22138 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
22139
22140         * appdomain.h: only io-layer.h is supposed to be included.
22141         * icall.c: explicitly import environ. Fix warning.
22142
22143 2002-04-10  Nick Drochak  <ndrochak@gol.com>
22144
22145         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
22146                 return true even if it's not Daylight Savings time.
22147                 Only return false for the case where the function isn't
22148                 implemented for a plaform (read Windows).
22149
22150 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22151
22152         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
22153         data with a mutex.
22154
22155 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
22156
22157         * mempool.c (mono_mempool_alloc): only use g_malloc when
22158         absolutely necessary.
22159
22160 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
22161
22162         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
22163
22164         * class.c (mono_class_vtable): use domain mempool to allocate vtable
22165         (mono_class_proxy_vtable): use domain mempool
22166
22167 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
22168
22169         * appdomain.h, appdomain.c: split initialization that requires the
22170         execution engine support into mono_runtime_init().
22171
22172 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
22173
22174         * class.c (mono_class_init): don't include vtable inside MonoClass
22175         to save some memory, gather some statistics.
22176         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
22177
22178 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22179
22180         * icall.c: internalcall implementation for ValueType.Equals().
22181
22182 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
22183
22184         * object.c (mono_message_init): moved 
22185         (mono_runtime_exec_main): new arch. independent impl.
22186         (mono_runtime_invoke_array): new method - like
22187         mono_runtime_invoke, but you can pass an array of objects.
22188         (mono_remoting_invoke): new arch. independent impl.
22189         (mono_message_invoke): new arch. independent impl.
22190         (mono_runtime_class_init): new arch. independent impl.
22191         (mono_runtime_object_init): new arch. independent impl.
22192
22193 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
22194
22195         * metadata.c, object.c, reflection.c: documented the exported
22196         functions.
22197
22198 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
22199
22200         * icall.c: simpler code to pass the assembly builder data to corlib.
22201         Implement GetNestedTypes() internalcall.
22202
22203 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
22204
22205         * class.c: warn if a type can't be loaded.
22206
22207 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
22208
22209         * image.h: typedef MonoImageOpenStatus
22210         * types.h: removed unused file
22211         
22212 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
22213
22214         * icall.c: Enum_ToObject accepts enum value arguments.
22215
22216 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22217
22218         * class.c: move initialization of properties, events and nested
22219         classes, so that they happen for interfaces, too.
22220
22221 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
22222
22223         * icall.c: cleanup some ugly casts in Array_SetValue*.
22224
22225 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22226
22227         * icall.c: the values array fro enums is of the correct type, now.
22228         Implement (correctly) getFullName instead of assQualifiedName for
22229         MonoType.
22230         * reflection.h, reflection.c: added mono_type_get_name ().
22231
22232 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
22233
22234         * assembly.c, image.h: for each MonoImage, record from wich assembly
22235         it was loaded.
22236         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
22237         Make Type.Assembly work.
22238
22239 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
22240
22241         * debug-symfile.h: use char* instead of gpointer to avoid
22242         unnecessary casts.
22243
22244         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
22245
22246         * icall.c (ves_icall_InternalExecute): impl. FielSetter
22247         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
22248
22249 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
22250
22251         * icall.c (mono_message_init): impl. (code cleanup)
22252         (ves_icall_InternalExecute): impl. FieldGetter
22253
22254         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
22255         defined we call all (non-static)methods through the vtable. 
22256
22257 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
22258
22259         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
22260         finalizer even though the memory is still referenced (and the chunk of
22261         memory is not freed).
22262
22263 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
22264
22265         * assembly.c: fix brokeness.
22266
22267 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
22268
22269         * class.c: kill some warnings. Check explicit interface method
22270         implementation also without considering the namespace.
22271         Load also literal strings in static class data.
22272
22273 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
22274
22275         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
22276         (default_assembly_name_resolver): Make the resolver take the
22277         "base" directory where the assembly was originally defined, so we
22278         can load DLLs that are in the same directory as the assembly that
22279         is being referenced.
22280
22281 2002-03-28  Dick Porter  <dick@ximian.com>
22282
22283         * file-io.h: 
22284         * file-io.c:
22285         * socket-io.c: 
22286         * unicode.h: 
22287         * unicode.c: Warning cleanups
22288
22289 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
22290
22291         * object.h, reflection.h: use the correct type instead of MonoObject.
22292
22293 2002-03-28  Martin Baulig  <martin@gnome.org>
22294
22295         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
22296         (mono_debug_update_symbol_file): Initialize classes if necessary.
22297
22298 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
22299
22300         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
22301         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
22302
22303 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
22304
22305         * assembly.h: fix function prototype.
22306         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
22307         * mono-endian.h: use const cast.
22308
22309 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
22310
22311         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
22312
22313 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
22314
22315         * loader.c: don't assert when a typeref can't be loaded, give
22316         a chance to the runtime to trow an exception instead.
22317         * loader.h: fix warning.
22318
22319 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
22320
22321         * class.c (mono_class_proxy_vtable): added proxy support
22322
22323 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
22324
22325         * icall.c: removed last of PAL calls, added System.Environment
22326         * file-io.h, file-io.c: MonoIO implementation
22327         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
22328
22329 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
22330
22331         * appdomain.c: do not use the byte marker in ldstr table lookup.
22332         * debug-helpers.c: allow two ':' to separate class and method name.
22333         * object.c: allocate arrays bounds with the GC, too.
22334         * verify: add a few more checks.
22335
22336 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
22337
22338         * reflection.c: output also literal strings. Allocate parameter data
22339         with GC_malloc() (thanks, Martin, for catching this!).
22340
22341 2002-03-26  Martin Baulig  <martin@gnome.org>
22342
22343         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
22344         include the `this' offset in the `param_offsets'.
22345
22346 2002-03-25  Martin Baulig  <martin@gnome.org>
22347
22348         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
22349         mono_debug_get_class() function to get the classes. Added new
22350         relocation types for arrays and strings.
22351         (mono_debug_get_class): New static function to search in all
22352         referenced assemblies for a metadata token.
22353
22354         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
22355
22356 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
22357
22358         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
22359         hold gc-allocated objects. Make the string heap a stream like the
22360         others. Removed duplicated code when writing stream info.
22361         Added asserts to catch possible buffer overflows. Set the sorted map
22362         for tables that need sorting. Added some documentation.
22363
22364 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
22365
22366         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
22367         for interned strings and vtables.
22368
22369 2002-03-24  Martin Baulig  <martin@gnome.org>
22370
22371         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
22372         it in the array since it was created with g_slist_prepend().
22373
22374 2002-03-24  Martin Baulig  <martin@gnome.org>
22375
22376         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
22377         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
22378         (mono_debug_method_from_token): Renamed to
22379         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
22380         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
22381
22382         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
22383         relocation types.
22384
22385         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
22386
22387 2002-03-24  Martin Baulig  <martin@gnome.org>
22388
22389         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
22390         (mono_debug_method_from_token): New func.
22391
22392         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
22393         New interncall, calls mono_debug_local_type_from_signature().
22394         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
22395         calls mono_debug_method_from_token().
22396
22397 2002-03-23  Martin Baulig  <martin@gnome.org>
22398
22399         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
22400         specifies the number of bytes to be converted, not the array size.
22401         Return the number of chars, not the number of bytes.
22402         (ves_icall_iconv_get_chars): The `byteCount' argument
22403         specifies the number of bytes to be converted, not the array size.
22404
22405 2002-03-23  Martin Baulig  <martin@gnome.org>
22406
22407         * reflection.h (MonoReflectionSigHelper): New type.
22408
22409         * reflection.c (mono_reflection_sighelper_get_signature_local),
22410         (mono_reflection_sighelper_get_signature_local): New functions.
22411
22412         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
22413         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
22414         interncalls.
22415
22416 2002-03-23  Martin Baulig  <martin@gnome.org>
22417
22418         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
22419         is_writeable is set.
22420         (mono_raw_buffer_update): New function to write the modified map
22421         back to disk.
22422
22423         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
22424
22425         * debug-symfile.c (mono_debug_update_symbol_file): Call
22426         mono_raw_buffer_update() when done writing.
22427
22428 2002-03-23  Martin Baulig  <martin@gnome.org>
22429
22430         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
22431
22432         * debug-symfile.c: Added support for arguments and local variables.
22433
22434 2002-03-23  Dick Porter  <dick@ximian.com>
22435
22436         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
22437         protected by ifdefs, hence breaking the w32 build.
22438
22439 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22440
22441         * object.c: implement is_interned() the right way.
22442
22443 2002-03-21  Martin Baulig  <martin@gnome.org>
22444
22445         * debug-symfile.[ch]: New files to handle debugging information
22446         files. There's also support to dynamically update these symbol
22447         files to include machine dependent information.
22448
22449 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
22450
22451         * threads.c (mono_thread_create): new function to create thread
22452         from C
22453
22454 2002-03-20  Martin Baulig  <martin@gnome.org>
22455
22456         * icall.c (ves_icall_InternalInvoke): Create a new object if the
22457         method is a constructor.
22458         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
22459         points to ves_icall_InternalInvoke().
22460
22461 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
22462
22463         * file-io.c: Flush shouldn't throw exceptions.
22464
22465 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
22466
22467         * file-io.c: FileStream flush support; FileSetLength now
22468         restores file pointer.
22469
22470 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
22471
22472         * class.c: set image for pointer classes.
22473
22474 2002/03/19  Nick Drochak <ndrochak@gol.com>
22475
22476         * sysmath.c: Forgot one.
22477
22478 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
22479
22480         * sysmath.c: Avoid redefining existing names.
22481
22482 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
22483
22484         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
22485         handled by runtime as icall rather than dllimport from libm.so
22486         * file-io.c, file-io.h: fixed handle argument type.
22487
22488 2002-03-18  Dick Porter  <dick@ximian.com>
22489
22490         * reflection.c (mono_image_get_type_info): rename interface to
22491         iface, because of "#define interface struct" on windows.
22492
22493 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
22494
22495         * class.c, class.h: rename and export mono_ptr_class_get().
22496         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
22497         * reflection.c, reflection.h, icall.c: better/saner type name
22498         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
22499         method signatures.
22500
22501 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
22502
22503         * class.c (mono_class_init): removed hardcoded GHC_SLOT
22504
22505         * icall.c (ves_icall_InternalInvoke): impl.
22506
22507 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
22508
22509         * reflection.c: output the interface map table, too.
22510
22511 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
22512
22513         * class.c (class_compute_field_layout): separate computation of 
22514         static field layout
22515
22516 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
22517
22518         * icall.c: added System.Buffer support.
22519         * file-io.c: moved file icalls from PAL to FileStream.
22520
22521 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
22522
22523         * icall.c (ves_icall_System_Object_GetHashCode): impl.
22524
22525 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
22526
22527         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
22528
22529 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22530
22531         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
22532
22533 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
22534
22535         * debug-helpers.{c,h}: moved here from monograph some useful functions
22536         to locate a method by name/signature in a class or image. Included
22537         also a small and flexible IL disassembler.
22538
22539 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
22540
22541         * reflection.c: fixup tokens in methods with small header size, too.
22542
22543 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
22544
22545         * object.c (mono_string_to_utf8): remove assert(!error), instead
22546         print a warning. 
22547
22548 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
22549
22550         * icall.c: update to the new mono_Array_class_get interface.
22551
22552 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
22553
22554         * appdomain.c, object.c: Boehm-GC enable.
22555         * icall.c: make get_data_chunk() support split data requests.
22556         Ensure a class is initialized in more cases. Return only the first
22557         property found in GetProperties() or the compiler gets confused. 
22558         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
22559         * reflection.h, reflection.c: add fixup mechanism for field and method
22560         tokens. Initialize assembly->typeref in a single place. Output
22561         properties after events. Support custom attributes for events, too.
22562         Typo fix for paramter custom attrs.
22563
22564 2002-03-07  Martin Baulig  <martin@gnome.org>
22565
22566         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
22567
22568 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
22569
22570         * class.c (mono_array_class_get): fix. for multi. dim. arrays
22571
22572 2002-03-06  Martin Baulig  <martin@gnome.org>
22573
22574         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
22575         non-zero lower bounds. See testcases #F10-#F13.
22576
22577 2002-03-05  Martin Baulig  <martin@gnome.org>
22578
22579         * exception.c (mono_get_exception_argument_out_of_range): New exception.
22580
22581         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
22582         ves_icall_System_Array_GetValue(), only calculate the absolute array position
22583         here.
22584         (ves_icall_System_Array_SetValue): Likewise.
22585         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
22586         as argument and does the actual work. This function is used when copying a
22587         multi-dimensional array.
22588         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
22589         now do all the widening conversions of value types.
22590         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
22591
22592 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22593
22594         * class.c: remove some magic numbers and use the smbolic names,
22595         instead. Added init_events() to load event info at class init time.
22596         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
22597         and mono_metadata_methods_from_event().
22598         * reflection.h, reflection.c: added support for writing out the evnets
22599         related information.
22600
22601 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
22602
22603         * reflection.h, icall.c: use a different method (GetInterfaces)
22604         to gather interface info and add isbyref, isprimitive and
22605         ispointer to the ves_icall_get_type_info() return value.
22606
22607 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
22608
22609         * class.h: stared adding support for events.
22610         * icall.c: split find_members implementation. Added debug icall to get
22611         the address of an object.
22612         * reflection.c: handle TypeBuilders in mono_type_get_object().
22613
22614 2002-03-01  Martin Baulig  <martin@gnome.org>
22615
22616         * icall.c (ves_icall_System_Array_GetLength): This must throw an
22617         ArgumentOutOfRangeException(), not an ArgumentException().
22618         (ves_icall_System_Array_GetLowerBound): Likewise.
22619         (ves_icall_System_Array_GetValue): Improved argument checking.
22620         (ves_icall_System_Array_SetValue): Improved argument checking.
22621
22622 2002-03-01  Martin Baulig  <martin@gnome.org>
22623
22624         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
22625         called with invalid arguments rather than just dying with g_assert().
22626         (ves_icall_System_Array_SetValue): Likewise.
22627         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
22628         raise a NotImplementedException instead.
22629         (ves_icall_System_Array_GetLength): Added argument checking.
22630         (ves_icall_System_Array_GetLowerBound): Added argument checking.
22631
22632 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
22633
22634         * object.h (mono_assert): new macros mono_assert and
22635         mono_assert_not_reached
22636
22637 2002-02-28  Martin Baulig  <martin@gnome.org>
22638
22639         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
22640         and "System::String::IsInterned" to "System::String::_IsInterned".
22641
22642 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
22643
22644         * icall.c: remove hacks for typebuilder. Added icall to create a
22645         modified type from a tybebuilder.
22646         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
22647         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
22648         to create a backing MonoClass for a TypeBuilder.
22649
22650 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22651
22652         * class.c, class.h: more refactoring of class init.
22653         Export mono_class_setup_mono_type() and mono_class_setup_parent().
22654
22655 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
22656
22657         * marshal.c, marshal.h: start of marshaling interface.
22658
22659 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
22660
22661         * icall.c: fix order in assembly qualified name icall.
22662
22663 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
22664
22665         * class.c: do not free str, since we store it in the hash table.
22666         * reflection.h: add label field to MonoILExceptionInfo.
22667         * reflection.c: handle references to more than one assembly. Handle
22668         case when there isn't a module created in the assembly.
22669
22670 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
22671
22672         * class.c: Fix typo. Start refactoring of class init code.
22673
22674 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
22675
22676         * appdomain.c: exit with 1 on error.
22677         * class.c: we already have the name in MonoClassField.
22678         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
22679         MonoStreamHeader instead of an offset of image->raw_metadata.
22680
22681 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
22682
22683         * appdomain.c (mono_init): Be even more descriptive about the error.
22684
22685 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
22686
22687         * appdomain.c: give the user an informative message when corlib can't
22688         be loaded.
22689
22690 2002-02-26  Martin Baulig  <martin@gnome.org>
22691
22692         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
22693         New icall to get the time zone data.
22694
22695 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22696
22697         * reflection.c: set virtual and raw size of section correctly.
22698         * threads.c: transfer domain information to newly created threads.
22699
22700 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
22701
22702         * class.c: when instancing a class in a domain, load the default
22703         vaules for static fields from the constant table. Fix System.Enum to
22704         not be an enum.
22705         * icall.c: implement Object::GetType() internalcall. Implemented
22706         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
22707         Fixed checking of binding flags in find_members().
22708         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
22709         * reflection.c: handle enumerations when writing to the constant
22710         table. Use a different object cache for types.
22711
22712
22713 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
22714
22715         * object.c (mono_object_isinst): fix for arrays
22716
22717         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
22718
22719 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
22720
22721         * object.c: don't use mprotect ()  and fix intern pool hash table
22722         lookup for big endian systems.
22723
22724 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
22725
22726         * icall.c: change type_is_subtype_of () signature.
22727
22728 2002-02-21  Mark Crichton  <crichton@gimp.org>
22729
22730         * rand.c, rand.h: Added random number generator for
22731         System.Security.Cryptography classes.
22732
22733         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
22734
22735         * icall.c: Added System.Security.Cryptography calls.
22736
22737 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
22738
22739         * class.c, icall.c, metadata.c: better support for pointer types.
22740         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
22741         * reflection.c: Add support for getting custom attrs for properties
22742         and simplify some code.
22743
22744 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
22745
22746         * icall.c: change getToken () and add custom attribute GetBlob()helper
22747         method.
22748         * reflection.h: add custom attrs array to the reflection builder structures.
22749         * reflection.c: encode and emit custom attributes for all the relevant
22750         reflection objects. Cache fieldref and methodref tokens. Change
22751         mono_image_create_token() interface to take a MonoDynamicAssembly.
22752         More complete custom attributes decoder. Load custom attributes for
22753         Assembly, Field, Method and Constructor objects, too. Make the
22754         returned array an Attribute[] one, not object[]. Added
22755         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
22756         custom attribute constructor.
22757
22758 2002-02-20  Dick Porter  <dick@ximian.com>
22759
22760         * icall.c:
22761         * rawbuffer.c:
22762         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
22763         problem code out for now).
22764
22765 2002-02-19  Radek Doulik  <rodo@ximian.com>
22766
22767         * object.c (mono_ldstr): use hash table to avoid multiple swapping
22768
22769 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
22770
22771         * icall.c: register the GetCustomAttributes method.
22772         * object.c, object.h: add mono_string_new_len ().
22773         * reflection.h, reflection.c: added mono_runtime_invoke(),
22774         mono_install_runtime_invoke(). Added
22775         mono_reflection_get_custom_attrs () to load custom attributes and
22776         create the attribute objects.
22777
22778 2002-02-19  Dick Porter  <dick@ximian.com>
22779         * threads-dummy-types.c:
22780         * threads-dummy-types.h:
22781         * threads-dummy.c:
22782         * threads-dummy.h:
22783         * threads-pthread-types.c:
22784         * threads-pthread-types.h:
22785         * threads-pthread.c:
22786         * threads-pthread.h:  Deleted obsolete files
22787
22788 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
22789
22790         * class.c (mono_class_vtable): runtime init the class when we
22791         allocate static class data.
22792
22793         * icall.c (ves_icall_System_Array_SetValue): check for null values.
22794
22795         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
22796         and String - but we will need generic marshalling support in the
22797         future. 
22798         (mono_init): set the domain name in a ms compatible way
22799
22800         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
22801         String[].
22802
22803 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
22804
22805         * object.c (mono_array_clone): use alloca() instead of g_malloc  
22806         for sizes
22807
22808         * appdomain.c (mono_domain_unload): impl.
22809
22810 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
22811
22812         * appdomain.c, object.c: fix intern pool implementation.
22813         * class.c: fix alignment code.
22814
22815 2002-02-16  Radek Doulik  <rodo@ximian.com>
22816
22817         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
22818         and s2 > s1, just copy lower bytes to be compatible with little
22819         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
22820         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
22821
22822         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
22823         force big_endian to be 1 for big endian machines 
22824         (ves_icall_iconv_new_decoder): ditto
22825
22826 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
22827
22828         * socket-io.c (convert_sockopt_level_and_name): If the system
22829         doesn't define SOL_IP or SOL_TCP, get them by hand using
22830         getprotobyname() and caching the values (because this could be a
22831         slow operation).
22832         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
22833         Use the appropriate struct when the system does support it. Ie,
22834         not all systems have struct ip_mreqn so use struct ip_mreq when
22835         appropriate.
22836
22837 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
22838
22839         * reflection.c: handle finally clauses.
22840
22841 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
22842
22843         * socket-io.c: use g_snprintf() instead of snprintf.
22844
22845 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
22846
22847         * reflection.c (mono_param_get_objects): Cast second argument to
22848         mono_method_get_param_names to a const char** to silence the
22849         compiler warning.
22850
22851         * appdomain.c (mono_domain_assembly_open): Put parens around the
22852         truth statement in the for-loop.
22853
22854         * unicode.c (iconv_convert): Got rid of a compiler warning about
22855         int i being unused when the system has a new iconv.
22856         (iconv_get_length): Same.
22857
22858         * image.c (load_class_names): Cast the second argument to
22859         g_hash_table_insert() to char* to hush compiler warnings about the
22860         arg being a const.
22861         (mono_image_open): Same here.
22862
22863         * socket-io.c: Don't conditionally include sys/filio.h or
22864         sys/sockio.h here anymore since we now get them from
22865         io-layer/io-layer.h
22866         (inet_pton): If the system doesn't support inet_aton, implement
22867         using inet_addr and also #define INADDR_NONE if it isn't defined
22868         by the system.
22869
22870 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
22871
22872         * metadata.c, metadata.h: added function to get packing and size info
22873         of a typedef.
22874         * reflection.h, reflection.c: handle field RVA data. Save info about
22875         the table layout if needed. Assign typedef indexes to all the types
22876         before dumping the info about them to avoid forward reference problems.
22877
22878 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
22879
22880         * socket-io.c (convert_sockopt_level_and_name): ifdef
22881         SO_ACCEPTCONN because it is not defined on my system (old debian)
22882
22883 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
22884
22885         * opcode.c: use stddef.h to get NULL.
22886
22887 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
22888
22889         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
22890         for FIONBIO, FIONREAD and SIOCATMARK.
22891         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
22892         define INADDR_NONE and besides, inet_addr() is deprecated and
22893         should not be used. Use inet_pton() instead - it also has the
22894         added bonus that it can easily handle IPv6 addresses as well.
22895         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
22896
22897 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
22898
22899         * decimal.c: remove _MSC_VER conditional.
22900
22901 2002-02-13  Dick Porter  <dick@ximian.com>
22902
22903         * socket-io.c: 
22904         * icall.c: Internal calls for Blocking, Select, Shutdown,
22905         GetSocketOption and SetSocketOption
22906
22907 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22908
22909         * assembly.cs: better resolver: use it instead of some kludgy
22910         code.
22911
22912 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
22913
22914         * reflection.c: the best way to speed-up the compiler is to avoid
22915         infinite loops.
22916
22917 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
22918
22919         * class.c (mono_class_vtable): changed the object layout
22920         (obj->vtable->class). 
22921         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
22922
22923 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22924
22925         * assembly.c: look for assemblies in the assembly dir, too.
22926
22927 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22928
22929         * class.c: fix thinko in mono_class_from_type().
22930
22931 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22932
22933         * exception.h, exception.c: added TypeLoadException.
22934         * object.h, object.c: added mono_array_clone ().
22935         * icall.c: handle throwOnError in AssemblyGetType().
22936         Added Array.Clone().
22937         * opcode.h, opcode.c: use a single value for the opcode val.
22938         Compile fix for non-gcc compilers.
22939
22940 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
22941
22942         * opcodes.c, opcodes.h: export interesting info about opcodes.
22943
22944 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
22945
22946         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
22947         icalls. 
22948
22949         * class.c (class_compute_field_layout): set element_class for enums
22950         (mono_class_create_from_typedef): set element_class for normal classes
22951
22952         * icall.c (ves_icall_System_Enum_get_value): impl.
22953
22954         * class.c (mono_class_create_from_typedef): do not set valuetype
22955         flag for System.ValueType and System.Enum
22956
22957 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
22958
22959         * unicode.c (iconv_convert): fix big endian problem.
22960
22961 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
22962
22963         * class.c: add asserts if we are ever going to scribble over memory.
22964         * socket-io.c: not all systems have AF_IRDA defined.
22965
22966 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
22967
22968         * class.c (class_compute_field_layout): do not consider static
22969         fields to compute alignment
22970
22971 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
22972
22973         * appdomain.c (mono_appdomain_get): impl.
22974         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
22975
22976 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
22977
22978         * icall.c: ignore "file://" prefix when loading an assembly.
22979
22980 2002-01-23  Dick Porter  <dick@ximian.com>
22981
22982         * socket-io.c:
22983         * icall.c:
22984         * Makefile.am: Added socket support
22985
22986 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
22987
22988         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
22989         code back.  This should return the assemblies that are loaded by
22990         the runtime on behalf of an application domain. 
22991
22992         The current implementation is still broken, it just returns every
22993         assembly loaded, but until we get real applications domain this
22994         will do.
22995
22996 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
22997
22998         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
22999         AppDomain object.
23000
23001 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
23002
23003         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
23004         the mono_class_from_name lookup.
23005         (ves_icall_get_parameter_info): ditto.
23006         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
23007         method.
23008         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
23009
23010 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
23011
23012         * class.c: load also nested classes on class init.
23013         System.ValueType instance methods gets passed boxed
23014         values, unless methods in derived classed that get a pointer to the
23015         data.
23016         * icall.c: use better name parsing code in GetType().
23017         * image.c, image.h: add mono_image_loaded ().
23018         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
23019         * reflection.c, reflection.h: added mono_reflection_parse_type().
23020
23021 2002-01-22  Veronica De Santis <veron78@interfree.it>
23022
23023         * icall.c : Added mapping of internal calls for Manual and Auto reset events
23024         * threads.c : Added the implementation of internal calls for events
23025         * threads.h : Added prototypes of internal calls for events
23026         
23027 2002-01-21  Radek Doulik  <rodo@ximian.com>
23028
23029         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
23030
23031 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
23032
23033         * class.c (mono_class_init): set min_align to 1 (instead of 0)
23034         (mono_class_value_size): use min_align
23035
23036 2002-01-20  Dick Porter  <dick@ximian.com>
23037
23038         * threads.h:
23039         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
23040         so it compiles on w32.
23041
23042 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
23043
23044         * metadata.c (mono_type_stack_size): impl.
23045
23046         * class.c (mono_class_get_field): impl. memberref token
23047
23048 2002-01-16 Veronica De Santis <veron78@@interfree.it>
23049
23050         * icall.h : Added the internal calls mapping for CreateMutex_internal
23051                     and ReleaseMutex_internal.
23052         * threads.h : Added the prototype of mutexes internal calls.
23053         * threads.c : Added the implementations of mutexes internal calls.
23054
23055 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
23056
23057         * metaparse.h: removed unused file.
23058         * reflection.c, reflection.h: added stream_data_align () function 
23059         to align data in streams and keep stream aligned. Add support for
23060         exception support in method headers.
23061
23062 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
23063
23064         * unicode.c: make iconv_convert () return the number of bytess written
23065         in the output buffer.
23066
23067 2002-01-15  Dick Porter  <dick@ximian.com>
23068         * threads.c: Make the runtime's idea of infinite timeouts coincide
23069         with the class library's
23070
23071         Fix a particularly egregious bug in mono_thread_cleanup(). That
23072         code was so utterly bogus it must have been written on a Monday.
23073
23074 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
23075
23076         * reflection.h: add subtypes field to TypeBuilder.
23077         * reflection.c: encode constants for literal fields.
23078         Handle subtypes. Fix user string token (and add a zero byte)
23079         at the end.
23080         
23081 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
23082
23083         * class.c (mono_class_init): bug fix: assign slot numbers for
23084         abstract methods.
23085
23086 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23087
23088         * reflection.c: don't try to output a code RVA for abstract methods.
23089         Small fixes for method header format. Output parameter info to the
23090         ParamDef table. Save method overriding info to MethodImpl table.
23091         Fix property support. Allow typedef.extends to be a type in the
23092         building assembly.
23093         * verify.c: fix off-by-one error.
23094
23095 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
23096
23097         * class.c: fix mono_class_from_mono_type () for szarray types.
23098         Remove unused cache check in mono_class_from_type_spec().
23099         * icall.c: *type_from_name () functions handle simple arrays and byref.
23100         * reflection.c: handle byref and szarray types. Handle methods without
23101         body (gets P/Invoke compilation working). Handle types and fields in
23102         get_token ().
23103         * reflection.h: add rank to MonoTypeInfo.
23104
23105 2002-01-10  Dick Porter  <dick@ximian.com>
23106
23107         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
23108         internal calls
23109
23110 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
23111
23112         * icall.c: initialize class in type_from_handle ().
23113         Loop also in parent classes for get_method ().
23114         * reflection.c: properly encode class and valuetype types.
23115         Start on encoding TypeBuilder types. Handle fieldrefs.
23116         Use correct length when registering a user string.
23117         Handle ConstructorBuilder and MonoMethod in get_token ().
23118         Make mono_type_get_object () aware of cached types.
23119         * object.c: back out change to mono_string_new ().
23120
23121 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
23122         * object.c: mono_string_new should return a NULL when the string 
23123         passed in is NULL -- not try to deference it.
23124         
23125 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
23126
23127         * icall.c: hack to make IsSubType work for TypeBuilders.
23128         * reflection.c: emit constructors before methods.
23129         Retrieve param names in mono_param_get_objects().
23130
23131 2002/01/05  Nick Drochak  <ndrochak@gol.com>
23132
23133         * Makefile.am: fix list of headers and sources so automake 1.5
23134         doesn't complain. Removed \# at end of list.
23135
23136 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
23137
23138         * reflection.c: get token for a method ref. Set return type of
23139         constructor to void.
23140         * loader.c: debug message.
23141         * class.c: typo fix.
23142
23143 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
23144
23145         * icall.c: fix array init with rank > 1. FindMembers
23146         loops in parent class as well.
23147         * image.c: do not insert nested types in name cache.
23148         * reflection.c: warning fix.
23149         * reflection.h: add override method (for interface impl).
23150
23151 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
23152
23153         * metadata.c: fix customattr decoding.
23154
23155 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
23156
23157         * rawbuffer.cs: Added native Win32 implementation, avoids using
23158         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
23159
23160 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
23161
23162         * class.c: make the low-level routines handle the cache.
23163
23164 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
23165
23166         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
23167
23168 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
23169
23170         * class.c: fix mono_array_element_size() for objects.
23171         * class.h, class.c: add properties to MonoClass and load them
23172         at init time.
23173         * icall.c: check with isinst() when assigning a value to an array
23174         instead of requiring the classes to match exactly.
23175         Implemented icall for System.Type::GetType().
23176         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
23177         enums. Handle bindingflags when looking for methods and fields.
23178         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
23179         and mono_metadata_methods_from_property().
23180         * reflection.h, reflection.c: added structures for propreties,
23181         parameters and enums. Implemented mono_property_get_object() and
23182         mono_param_get_objects().
23183
23184 2001-12-18  Dick Porter  <dick@ximian.com>
23185
23186         * file-io.c: Use mono_string_to_utf16() instead of
23187         mono_string_chars()
23188
23189         * object.c: Added mono_string_to_utf16(), which copies the non
23190         NULL-terminated MonoString into a new double-null-terminated
23191         buffer.
23192
23193 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
23194
23195         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
23196
23197 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
23198
23199         * file-io.c: raise exceptions if handle is invalid.
23200
23201 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
23202
23203         * assembly.c: yet another check for mscorlib.
23204         * class.c, class.h: load nesting info for classes.
23205         * icall.c: many new functions to support the Reflection classes.
23206         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
23207         * reflection.h, reflection.c: mono_image_create_token(),
23208         mono_assembly_get_object(), mono_type_get_object(),
23209         mono_method_get_object(), mono_field_get_object(): methods to return
23210         objects that parallel the C representation of assemblies, types,
23211         methods, fields.
23212
23213 2001-12-11  Dick Porter  <dick@ximian.com>
23214
23215         * icall.c:
23216         * file-io.c: Internal calls for file IO.
23217
23218 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
23219
23220         * tabledefs.h: missing FileAttributes.
23221         * verify.h, verify.c: use is_valid_string () to simplify and check for
23222         valid strings more correctly. Fix warnings and speeling.
23223         Check more tables: Filed, File, ModuleRef, StandAloneSig.
23224         Check code: branches, maxstack, method calls.
23225
23226 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
23227
23228         * object.c (mono_object_allocate): removed static, so that the jit
23229         can allocate value types.
23230
23231         * icall.c (ves_icall_System_DateTime_GetNow): impl.
23232
23233 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
23234
23235         * class.c: init enum types right away and register the
23236         token->MonoClass map in mono_class_create_from_typedef ().
23237         * verify.h, verify.c: first cut of the verifier.
23238         * pedump.c: add --verify switch to verify metadata tables.
23239         * tabledefs.h: add some missing enums.
23240
23241 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
23242
23243         * class.c (mono_install_runtime_class_init): impl.
23244         (mono_class_init): renamed mono_class_metadata_init to
23245         mono_class_init, also removed the metadata_inited flag
23246
23247         * object.c (mono_object_isinst): use faster algorithm
23248
23249 2001-11-30  Radek Doulik  <rodo@ximian.com>
23250
23251         * mono-endian.h: reverted last change
23252         added function prototypes
23253
23254         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
23255         add mono-endian.c back
23256
23257         * mono-endian.c: returned back, as Paolo pointed out, it's needed
23258         for unaligned access, I've mistaked it with endianess. I am
23259         sorry.
23260         (mono_read16): fix reverted endianess
23261         (mono_read64): ditto
23262         (mono_read32): ditto
23263
23264 2001-11-30  Dick Porter  <dick@ximian.com>
23265
23266         * exception.c: Implement mono_exception_from_name()
23267
23268 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
23269
23270         * metadata.h, metadata.c: remove params_size and locals_size and their
23271         calculation from the metadata code: they are only usefult to the
23272         interp.
23273
23274 2001-11-29  Radek Doulik  <rodo@ximian.com>
23275
23276         * object.c (mono_ldstr): swap bytes here, it's probably not the
23277         best place, but works for me now, I'll redo it once I know mono
23278         better, also note that I add PROT_WRITE and don't reset back, also
23279         note that it's only affects big endians, so x86 should be OK
23280
23281         * mono-endian.h (read16): use just glib macros for both endians
23282
23283         * mono-endian.c: removed as glib macros are used in in
23284         mono-endian.h so we don't need to care about endianess for read
23285         macros as glib does that for us already
23286
23287 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
23288
23289         * class.h, class.h: take minimum alignment into consideration so
23290         that the fields of a class remain aligned also when in an array.
23291
23292 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
23293
23294         * loader.h, loader.c: add mono_method_get_param_names().
23295         * class.c: 0-init class fields.
23296
23297 2001-11-26  Dick Porter  <dick@ximian.com>
23298
23299         * icall.c:
23300         * threads-types.h:
23301         * threads.c: New file that handles System.Threading on all platforms
23302
23303         * object.c: 
23304         * object.h: Remove the synchronisation struct from MonoObject,
23305         replace it with a pointer that gets initialised on demand
23306
23307         * Makefile.am: Replace all the system-specific threading code with
23308         a single file that uses the new wrapper library
23309
23310 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
23311
23312         * class.c, class.h: add mono_install_trampoline() so that the runtime
23313         can register a function to create a trampoline: removes the ugly
23314         requirement that a runtime needed to export arch_create_jit_trampoline.
23315         * object.h, object.c: added mono_install_handler() so that the runtime
23316         can install an handler for exceptions generated in C code (with
23317         mono_raise_exception()). Added C struct for System.Delegate.
23318         * pedump.c: removed arch_create_jit_trampoline.
23319         * reflection.c: some cleanups to allow registering user strings and
23320         later getting a token for methodrefs and fieldrefs before the assembly
23321         is built.
23322         * row-indexes.h: updates and fixes from the new ECMA specs.
23323
23324 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
23325
23326         * class.h, class.c: add enum_basetype field to MonoClass.
23327         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
23328         to get index in the constant table reated to a field, param or
23329         property.
23330         * reflection.h, reflection.c: handle constructors. Set public-key and
23331         version number of the built assembly to 0.
23332         * row-indexes.h: update from new ECMA spec.
23333
23334 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
23335
23336         * class.h, class.c: add a max_interface_id to MonoClass.
23337         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
23338         since it's used to do that. Added mono_type_type_from_obj().
23339         Make GetType() return NULL instead of segfaulting if the type was not
23340         found. Handle simple arrays in assQualifiedName.
23341         * object.h: add a struct to represent an Exception.
23342         * reflection.c: output call convention in method signature.
23343         Add code to support P/Invoke methods and fixed offsets for fields.
23344
23345 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
23346
23347         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
23348         the value.
23349         * icall.c: use mono_array_addr instead of array->vector: fixes the
23350         reflection image writing.
23351         * reflection.c: init call convention byte to 0 in method signature.
23352         Encode the property signature. Don't output property-related methods
23353         twice. Really process the properties for a type (don't cast a field to
23354         a property, my mom always told me that).
23355         Fix 64 bit issues in pointer alignment in a different and more
23356         readable way.
23357
23358 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
23359
23360         * loader.h: Removed type class from MonoDefaults, added monotype
23361
23362         * loader.c: Loaded MonoType, removed loading of Type
23363
23364         * icall.c (my_mono_new_object): Now returns a System.MonoType,
23365         and fills in System.Type._impl with a RuntimeTypeHandle rather
23366         than the actual MonoClass *
23367
23368         (ves_icall_type_from_handle): change from type_class to
23369         monotype_class
23370
23371         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
23372         implemented
23373
23374         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
23375         implemented
23376
23377         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
23378
23379         (ves_icall_System_Reflection_Assembly_GetType): implemented
23380
23381         (ves_icall_System_MonoType_assQualifiedName): implemented
23382
23383         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
23384
23385 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
23386
23387         * assembly.c (mono_assembly_open): Implement a cache for the
23388         assemblies. 
23389
23390         (mono_assembly_close): only destroy the assembly when the last
23391         reference is gone.
23392         
23393 2001-11-09  Dick Porter  <dick@ximian.com>
23394
23395         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
23396
23397 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
23398
23399         * class.c (mono_class_metadata_init): bug fix: compute the right slot
23400
23401 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
23402
23403         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
23404         from Martin Weindel.
23405         * object.h: add mono_string_chars ().
23406
23407 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
23408
23409         * reflection.c (build_compressed_metadata): Eliminates warnings
23410         and uses 64-bit clean code.
23411
23412         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
23413         (mono_type_equal): Change signature to eliminate warnings.
23414
23415 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
23416
23417         * icall.c, loader.c: remove the internalcall array constructors.
23418         Changes to match the new MonoArray structure.
23419         * object.h, object.c: an array object doesn't allocate an extra
23420         vector. Add mono_array_new_full () to create jagged arrays easily.
23421
23422 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
23423
23424         * metadata.h, metadata.c: add mono_metadata_field_info () to
23425         retreive all the info about a field from vairous tables.
23426         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
23427         * class.h, class.c: augment MonoClassField with more info.
23428         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
23429         policy and load a field's RVA if needed.
23430
23431 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
23432
23433         * class.c (mono_class_metadata_init): create a trampoline for all
23434         virtual functions instead of actually compiling them.
23435
23436 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
23437
23438         * class.h, class.c: include name in MonoClassField.
23439         * class.c: fix fundamental type of System.Object and System.String.
23440         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
23441         tokens in ldtoken.
23442         * icall.c: remove internalcalls for the Reflection stuff that is now
23443         done in C# code.
23444         * loader.c: mono_field_from_memberref () implementation.
23445         * mono-endian.c: thinko (s/struct/union/g).
23446         * object.c, object.h: make the mono_string_* prototypes actually use
23447         MonoString instead of MonoObject.
23448         * reflection.c, reflection.h: updates for changes in the reflection
23449         code in corlib: we use C structures that map to the actual C# classes.
23450         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
23451         fat method header if needed and use the info from the ILGenerator for
23452         methods. Handle fields in types. Misc fixes.
23453
23454 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
23455
23456         * class.c (mono_class_metadata_init): bug fix: always allocate
23457         space for static class data
23458
23459 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
23460
23461         * class.c (mono_compute_relative_numbering): use relative
23462         numbering to support fast runtime type checks.
23463
23464 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
23465
23466         * class.c (mono_class_create_from_typeref): added debugging output
23467         to print class name when MonoDummy is returned instead of real class
23468
23469 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
23470
23471         * class.c (mono_class_metadata_init): interface offset table now
23472         contains pointers into the vtable - this is more efficient for the jit
23473
23474 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
23475
23476         * class.c (mono_class_metadata_init): use a temporary vtable (the
23477         old algorithm only worked for the interpreter, but not for the jit)
23478
23479 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
23480
23481         * loader.c (method_from_memberref): use mono_class_get to get the
23482         class of an array instead of using System.Array directly.
23483         (mono_get_method): also add MEMBERREF methods to the method cache
23484         which usefull for arrays.
23485
23486 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
23487
23488         * pedump.c (arch_compile_method): added to compute vtable entry
23489
23490         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
23491         number of interfaces.
23492         
23493         * class.h: merged MonoArrayClass into MonoClass
23494
23495         * class.c (mono_class_create_from_typedef): compute the vtable size and
23496         allocate space to include the vtable inside MonoClass
23497         (mono_class_metadata_init): initialize the vtable
23498
23499 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
23500
23501         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
23502         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
23503         * image.c: endian fixes by Laurent Rioux.
23504         * object.h, object.c: rename MonoStringObject to MonoString and
23505         MonoArrayObject to MonoArray. Change some function names to conform to
23506         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
23507         guint16* as first argument, so don't use char*.
23508         Provide macros to do the interesting things on arrays in a portable way.
23509         * threads-pthread.c: updates for the API changes and #include <sched.h>
23510         (required for sched_yield()).
23511         * icall.c: updates for the API changes above.
23512         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
23513         platforms that need them.
23514
23515 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
23516
23517         * class.c: set the correct type for all the fundamental
23518         type when loading the class.
23519
23520 2001-10-05  Dick Porter  <dick@ximian.com>
23521
23522         * threads-pthread.c (pthread_mutex_timedlock): Simple
23523         compatibility version for C libraries that lack this call.
23524
23525 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
23526
23527         * class.c: MonoTypes stored in MonoClass are stored as
23528         fundamental MonoTypes when the class represents a
23529         fundamental type (System.Int32, ...).
23530         The TypeHandle return by ldtoken is a MonoType*.
23531         * icall.c: ves_icall_get_data_chunk () write out all the
23532         PE/COFF stuff. Implement ves_icall_define_method (),
23533         ves_icall_set_method_body (), ves_icall_type_from_handle ().
23534         * image.c: properly skip unknown streams.
23535         * loader.h, loader.c: add type_class to mono_defaults.
23536         * metadata.c, metadata.h: export compute_size () as
23537         mono_metadata_compute_size () with a better interface.
23538         Typo and C&P fixes.
23539         * pedump.c: don't try to print the entry point RVA if there is no entry point.
23540         * reflection.c, reflection.h: many cleanups, fixes, output method
23541         signatures and headers, typedef and typeref info, compress the metadata
23542         tables, output all the heap streams, cli header etc.
23543         * row-indexes.h: typo fixes.
23544
23545 2001-10-04  Dick Porter  <dick@ximian.com>
23546
23547         * object.h: Add a synchronisation mutex struct to MonoObject
23548
23549         * object.c (mono_new_object): Initialise the object
23550         synchronisation mutexes
23551
23552         * icall.c: System.Threading.Monitor internal calls
23553         
23554         * threads-pthread.h:
23555         * threads-pthread.c: System.Threading.Monitor internal calls
23556
23557         * threads-types.h: New file, includes the system-specific thread
23558         structures
23559         
23560         * threads-pthread-types.h:
23561         * threads-pthread-types.c: New files, handle pthread-specific
23562         synchronisation types
23563
23564         * threads-dummy-types.h: 
23565         * threads-dummy-types.c: New files of dummy support for
23566         thread-specific types
23567
23568         * metadata.c:
23569         * image.c:
23570         * pedump.c: include mono-endian.h not endian.h
23571         
23572         * Makefile.am: More threads files.
23573         Name mono-endian.h not endian.h
23574
23575 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
23576
23577         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
23578         stuff and implement a few more bits.
23579         * icall.c: a field needs to be dereferenced twice. Do not use the same
23580         name for two variables in the same scope.
23581         * image.c, image.h: cleanups.
23582
23583 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
23584
23585         * class.c (mono_class_metadata_init): bug fix: compute the right size
23586
23587 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
23588
23589         * icall.c: implemented some of the Reflection internalcalls.
23590         * image.c, image.h: start writing out the PE/COFF image.
23591         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
23592         that does the reverse than decode_blob_size ().
23593         * object.c: use mono_metadata_encode_value (). Move here
23594         temporary implementation of mono_string_to_utf8 ().
23595         * rawbuffer.c: make malloc_map static.
23596
23597 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
23598
23599         * metadata.c: fix type comparison for arrays.
23600         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
23601         Added a couple of new classes to monodefaults.
23602         * icall.c: added a couple of Reflection-related internalcalls.
23603         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
23604         Added a byval_arg MonoType to MonoClass.
23605
23606 2001-09-28  Dick Porter  <dick@ximian.com>
23607
23608         * icall.c:
23609         * threads-pthread.h: 
23610         * threads-pthread.c: Implemented internal calls for
23611         LocalDataStoreSlot operations.  Applied mutexes around all shared
23612         data.  Reworked the thread creation and Start() operations to
23613         avoid a race condition.
23614         
23615         * threads-dummy.h:
23616         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
23617
23618 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
23619
23620         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
23621
23622 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
23623
23624         * class.c, loader.c: warn and return NULL instead of erroring out.
23625         * icall.c: added System.AppDomain::getCurDomain().
23626         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
23627
23628 2001-09-25  Dick Porter  <dick@ximian.com>
23629
23630         * threads-pthread.h:
23631         * threads-pthread.c: Implemented timed thread joining and added
23632         System.Threading.Thread::Join_internal internal call
23633
23634         * icall.c: Added System.Threading.Thread::Join_internal internal call
23635
23636         * threads-dummy.h:
23637         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
23638
23639 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
23640
23641         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
23642         mono_string_intern () to implement the semantics of the ldstr opcode
23643         and the interning of System.Strings.
23644         * icall.c: provide hooks to make String::IsIntern and String::Intern
23645         internalcalls.
23646
23647 2001-09-23  Dick Porter  <dick@ximian.com>
23648
23649         * threads-dummy.c: 
23650         * threads-dummy.h: New files of dummy threading routines
23651
23652         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
23653         support code based on system specifics
23654
23655         Rename PTHREAD_LIBS to THREAD_LIBS
23656         
23657 2001-09-23  Dick Porter  <dick@ximian.com>
23658
23659         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
23660         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
23661         internal calls.
23662         (mono_thread_init): Set up a Thread object instance to return when
23663         the main thread calls Thread.CurrentThread
23664         (mono_thread_cleanup): Wait for all subthreads to exit
23665
23666         * icall.c: New internal calls for System.Threading.Thread::Sleep
23667         (including Schedule) and CurrentThread
23668
23669         * threads.h: New file, to insulate thread-specific stuff from the
23670         rest of the code
23671
23672 2001-09-21  Dick Porter  <dick@ximian.com>
23673
23674         * threads-pthread.h: 
23675         * threads-pthread.c: New file, for handling pthreads-style
23676         threading support.  Start() now starts a new thread and executes
23677         the ThreadStart delegate instance.
23678
23679         * icall.c: Added the internalcall for
23680         System.Threading.Thread::Start_internal
23681
23682         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
23683
23684 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
23685
23686         * loader.c: work around the different signatures for delegates
23687         constructors csc generates in compiled code vs the ones compiled in mscorlib.
23688
23689 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
23690
23691         * class.h, class.c: add mono_class_get_field_from_name ().
23692         * *: Fix C comments and other ANSI C issues.
23693
23694 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
23695
23696         * endian.h, assembly.c: fix some endianness issues.
23697
23698 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
23699
23700         * loader.h, load.c: add delegate_class to mono_defaults.
23701         Handle runtime provided methods in mono_get_method ().
23702
23703 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
23704
23705         * loader.c (mono_get_method): use pinvoke for internal call
23706
23707         * icall.c: use pinvoke for internal call
23708
23709         * loader.c (method_from_memberref): set the method name
23710
23711 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
23712
23713         * metadata.c: help the compiler generate better code for
23714         mono_class_from_mono_type ().
23715
23716 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
23717
23718         * class.c (mono_class_metadata_init): delayed computing of the
23719         class size to mono_class_metadata_init ()
23720
23721 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
23722
23723         * class.c, class.h: add an interfaces member to MonoClass.
23724         * image.c, image.h: add assembly_name field to MonoImage
23725         from the assembly table.
23726         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
23727
23728 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
23729
23730         * class.c: Handle Array in mono_class_from_mono_type ().
23731         * metadata.c, pedump.c: some endian fixes.
23732
23733 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
23734
23735         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
23736         * metadata.c: fix small problem introduced with the latest commit.
23737
23738 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
23739
23740         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
23741         We don't need a MonoMetadata pointer anymore to compare signatures in
23742         mono_metadata_signature_equal (), update callers.
23743         Reduced memory usage an number of allocations for MonoMethodHeader and
23744         MonoMethodSignature.
23745
23746 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
23747
23748         * metadata.c: added compare for szarray.
23749
23750 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
23751
23752         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
23753         and add a couple more types to it and mono_defaults. Give an hint on
23754         classes that need implementing in our corlib and are referenced
23755         in mscorlib.
23756
23757 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
23758
23759         * class.h, class.c: keep track if a class is also an Enum.
23760         * loader.c: Implement a couple more types for use in libffi
23761         marshalling. Gives better diagnostics when failing to dlopen
23762         a library. Set method->klass for P/Invoke methods, too.
23763
23764 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
23765
23766         * class.c, class.h: add a MonoType this_arg to MonoClass that
23767         represents a pointer to an object of the class' type that
23768         can be used by the interpreter and later the type cache.
23769         Add best guess alignment info for valuetype objects.
23770
23771 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
23772
23773         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
23774         into MonoType: one less level of indirection and allocation and
23775         simplifies quite a bit of code. Added cache for MonoTypes that are
23776         used frequently, so that we don't need to allocate them all the time.
23777
23778 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
23779
23780         * class.c (mono_class_create_from_typedef): System.Enum is also a
23781         value type, although it does not derive from System.ValueType
23782         (maybe a bug in the ms compiler?)
23783
23784         * metadata.c (mono_type_size): return the right size for value types
23785
23786         * loader.c (mono_get_method): only initialize method header if not abstract
23787
23788         * class.c (mono_class_from_mono_type): use mono_default values. 
23789
23790 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
23791
23792         * *: use MonoClass pointers instead of <type_tokens>
23793         
23794         * class.h: new flag: metadata_inited.
23795
23796         * class.c (mono_class_metadata_init): impl.
23797         (mono_class_instance_size): impl.
23798         (mono_class_data_size): impl.
23799
23800 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
23801
23802         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
23803         MonoClass now has the name and name_space fields. 
23804         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
23805         mono_get_method () takes and optional MonoClass as argument.
23806         Removed mono_typedef_from_name() and added mono_class_token_from_name()
23807         instead that takes advantage of a map from class names to typedef
23808         tokens in MonoImage.
23809
23810 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
23811
23812         * metadata.c: zero is not a valid alignment boundary.
23813         Merge MONO_TYPE_VOID in default decoding code.
23814
23815 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
23816
23817         * image.h: merged MonoMetadata into MonoImage
23818
23819         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
23820         identify the type of elements.
23821
23822 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
23823
23824         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
23825         * cil-coff.h: split MonoMSDOSHeader and add size info.
23826         * image.c: add some consistency checks.
23827         * metadata.c: fix row size computation: one programmer
23828         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
23829         add explanation for the locator routine.
23830         Fix decoding of size in method header.
23831         
23832 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
23833
23834         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
23835         (g_concat_dir_and_file): Bring g_concat_dir_and_file
23836         function from gnome-libs.  This uses the right path separator
23837         based on the OS, and also works around a bug in some systems where
23838         a double slash is not allowed. 
23839         (default_assembly_name_resolver): Use g_concat_dir_and_file
23840         (mono_assembly_open): ditto.
23841
23842 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
23843
23844         * metadata.c (mono_metadata_signature_equal): impl.
23845
23846         * *: void is now a realy MonoType (instead of using NULL)
23847         
23848         * metadata.c (do_mono_metadata_parse_type): use
23849         mono_metadata_parse_type to parse void value.
23850
23851 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
23852
23853         * metadata.c, metadata.h: in the signature and method header store
23854         only the space required for holding the loca vars and incoming arguments.
23855
23856 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
23857
23858         * metadata.c (do_mono_metadata_parse_type): treat void like any
23859         other type (instead of assigning NULL);
23860
23861 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
23862
23863         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
23864
23865 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
23866
23867         * image.c (do_mono_image_open): added a cache for arrays.
23868
23869 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
23870
23871         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
23872         decode a single column from a row in a metadata table and changes
23873         to take advantage of it in the typedef locator (gives a nice speed up).
23874         Store offset info for function params.
23875
23876 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
23877
23878         * image.h (MONO_IMAGE_IS_CORLIB): removed 
23879
23880 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
23881
23882         * assembly.c: how could mono_assembly_close () had ever worked?
23883         * metadata.c, metadata.h: provide offset info for local vars.
23884         Implement mono_type_size () to take care of alignment as well
23885         as size (it was mono_field_type_size in cli/class.c before).
23886
23887 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
23888
23889         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
23890
23891         * assembly.h (CORLIB_NAME): set to corlib.dll
23892
23893         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
23894
23895 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
23896
23897         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
23898         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
23899         tokentype.h: massive namespace cleanup.
23900
23901 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
23902
23903         * metadata.h, metadata.c: decode exception clauses when parsing method header.
23904
23905 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
23906
23907         * metadata.c (mono_metadata_free_type): added check for type !=
23908         NULL (void) before calling mono_metadata_free_type()
23909
23910 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
23911
23912         * metadata.h, row_indexes.h: added header with enumerations to use
23913         to index in the columns from tables in metadata and to decode coded
23914         tokens: we should start using this instead of embedding magic numbers
23915         all over the code.
23916
23917 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
23918
23919         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
23920         Move metadata_t info from cli_image_info_t to MonoImage, where
23921         it's easily accessible. Changed all the uses accordingly.
23922         Added the method and class caches to MonoImage.
23923         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
23924         and mono_metadata_decode_value () signature to be more consistent
23925         with the other parse functions (and simplify code). Taken advantage
23926         of zero-length array allocation with GCC. Removed reduntant (and
23927         wrong) MonoFieldType struct and use MonoParam instead. Changed
23928         mono_metadata_parse_field_type () to use common code for parsing.
23929         Added mono_metadata_typedef_from_field () and
23930         mono_metadata_typedef_from_method () to lookup a typedef index from a
23931         field or method token.
23932         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
23933
23934 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
23935
23936         * metadata.c (mono_metadata_parse_field_type): Implement. 
23937         (do_mono_metadata_parse_type): Split engine from
23938         mono_metadata_parse_type, so that we can create smaller structures
23939         for things that just have one pointer to the MonoType (look at
23940         the MonoFieldType)
23941
23942 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
23943
23944         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
23945         as Jan Gray found out, it is incorrect. 
23946
23947 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
23948
23949         * assembly.c: Implement asssembly loading.  This loads an image
23950         and loads all the referenced assemblies.  Come to think of it, we
23951         could always do lazy loading of the assemblies. 
23952
23953         * image.c (mono_image_open): Keep loaded images in a hashtable.
23954
23955         * image.h (MonoImage): Add reference count.
23956
23957 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
23958
23959         * assembly.c (mono_assembly_open): Keep track of the file name in
23960         case the assembly has no ASSEMBLY table.
23961
23962         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
23963         from get.c here.
23964
23965 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
23966
23967         * metadata.c, metadata.h: decode local vars in method header
23968         parse function. Change callers accordingly.
23969
23970 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
23971
23972         * metadata.h, cil-coff.h: protect against multiple inclusion.
23973         Added some new structures to hold information decoded from metadata:
23974         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
23975         and relevant decoding/free functions.
23976         * metadata.c: implement decoding functions. Add warning for out of bounds
23977         index in mono_metadata_locate(). Implement mono_get_method () to retreive
23978         all the info about a method signature and invocation. Remove check on
23979         uninitialized local var in parse_mh() and fix memory leak.
23980
23981 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
23982
23983         * metadata.h: More macros.
23984
23985         * tokentype.h: New file.
23986
23987 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
23988
23989         * assembly.c: added a consistency check and initialize
23990         some structures with g_new0().
23991         * metadata.c: fixed a couple more bugs in table size computation
23992         and add other checks for out-of bound access to metadata.
23993
23994 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
23995
23996         * metatada.c: fix bugs computing table sizes. Spew a
23997         warning when index in string heap is out of bounds.
23998
23999 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
24000
24001         * metadata.h: Add a couple of macros to manipulate tokens. 
24002
24003 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
24004
24005         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
24006         cli_section_tables).
24007
24008 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
24009
24010         * metadata.c (mono_metadata_user_string): New function, provides
24011         access to the UserString heap. 
24012
24013 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
24014
24015         * metadata.c: Add inline documentation.
24016
24017 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
24018
24019         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
24020         files. 
24021
24022 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
24023
24024         * typeattr.h: New file, TypeAttribute flags. 
24025
24026 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
24027
24028         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
24029         mono_assembly_ensure_section): Section loading code.
24030         (load_section_tables): Load the sections.
24031
24032         * mono/metadata/metadata.c (mono_metadata_locate_token,
24033         mono_metadata_locate): Functions to locate the information
24034         definition given a token or a table and an index.
24035         (mono_metadata_compute_table_bases): New.
24036         (compute_size): New function to compute the sizes of the various
24037         tables.
24038
24039         * mono/metadata/metadata.h: Finish listing the different index
24040         types. 
24041
24042         * mono/metadata/pedump.c: Improve to dump new information.
24043
24044 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
24045
24046         * mono/metadata/metadata.c: Entered all the tables matching
24047         Beta2. 
24048
24049         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
24050
24051
24052