2006-06-02 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
2
3         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
4         avoid clobbering its value.
5         (mono_string_to_lpstr): Fix a warning on windows.
6
7 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
8
9         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
10         it gets GC tracking.
11
12         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
13         GC tracking.
14         
15         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
16
17         * marshal.c threadpool.c: Update callers of mono_async_result_new.
18
19         * appdomain.c: Bump corlib version.
20
21 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
22
23         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
24         CEE_STIND_REF when working with object references.
25
26 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
27
28         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
29         Fixes #78539.
30
31 2006-05-30  Miguel de Icaza  <miguel@novell.com>
32
33         * loader.c (method_from_memberref): Fix argument value for
34         mono_loader_set_error_method_load (I was passing the MonoClass
35         instead of the class name char *).
36
37 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
38
39         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
40         CEE_STIND_REF when working with object references.
41
42 2006-05-30  Martin Baulig  <martin@ximian.com>
43
44         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
45         mono_method_full_name() change and replace the ':' with a '.'
46         here.
47
48 2006-05-30  Martin Baulig  <martin@ximian.com>
49
50         * debug-mono-symfile.c
51         (mono_debug_symfile_lookup_location): Fix the algorithm:
52         when looking up B which is between A and C, return A not C.
53
54 2006-05-29  Martin Baulig  <martin@ximian.com>
55
56         * mono-debug.h
57         (MonoDebugMethodInfo): Make the typedef public.
58         (MonoDebugSourceLocation): New public struct.
59
60         * mono-debug.c
61         (mono_debug_source_location_from_address): Removed.
62         (mono_debug_source_location_from_il_offset): Removed.
63         (mono_debug_il_offset_from_address): Removed.
64         (mono_debug_address_from_il_offset): Removed.
65         (mono_debug_lookup_method): New public function.
66         (mono_debug_lookup_source_location): New public function; replaces
67         the old mono_debug_source_location_from_*() functions; see the
68         inline documentation.
69         (mono_debug_free_source_location): New public function.
70         (mono_debug_print_stack_frame): New public function; see the
71         inline documentation.
72
73         * debug-mono-symfile.c
74         (mono_debug_find_source_location): Renamed into
75         mono_debug_symfile_lookup_location(); only take a
76         `MonoDebugMethodInfo *' and an `offset' argument; added inline
77         documentation.
78         (mono_debug_find_method): Renamed into
79         mono_debug_symfile_lookup_method().
80
81 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
82
83         * assembly.c (mono_assembly_open_full): Dont overwrite the status
84         returned by mono_image_open_full ().
85
86         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
87         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
88         #78517.
89
90         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
91         #78518.
92
93 2006-05-27  Miguel de Icaza  <miguel@novell.com>
94
95         * class.c (mono_class_from_typeref): handle missing images
96         earlier, deals with bug #78418.   Refactor code; 
97
98         Fix a warning introduced in my previous commit (some stale code
99         from before I revisited my patch).
100
101         * class.c (mono_class_create_from_typedef): On failure, remove the
102         class from the MonoImage->class_cache as the class is not
103         initialized;   Fixes the leak pointed out by Paolo.
104
105 2006-05-25  Dick Porter  <dick@ximian.com>
106
107         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
108         DeleteCriticalSections until I figure out which one may still be
109         sometimes locked when mono_thread_cleanup is called.
110
111 2006-05-24  Dick Porter  <dick@ximian.com>
112
113         * threads.c (mono_thread_cleanup): Move the threading cleanup out
114         of mono_thread_manage and back into its own function, so it can be
115         called after the finalizer thread has finished.
116
117         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
118
119 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
120
121         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
122         Fixes #78495.
123
124         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
125         with non-blittable elements.
126         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
127
128 2006-05-24  Martin Baulig  <martin@ximian.com>
129
130         * mono-debug-debugger.h (MonoDebuggerEvent): Added
131         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
132
133         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
134         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
135         `mono_debugger_event_handler' to NULL.
136
137 2006-05-24  Martin Baulig  <martin@ximian.com>
138
139         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
140
141 2006-05-24  Martin Baulig  <martin@ximian.com>
142
143         * mono-debug-debugger.h
144         (mono_debugger_create_notification_function): Added
145         `MonoCodeManager *' argument.
146
147 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
148
149         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
150
151 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
152
153         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
154         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
155         implementation.
156
157 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
158
159         * icall.c: precise GC support: objects can't be stored in unmanaged
160         memory anymore, even if they are kept alive by other references: since
161         they can move the GC needs to be able to always find them.
162
163 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
164
165         * object.c: precise GC support for static fields. Support
166         for moving GCs: write barriers and pinned allocation for interned
167         strings.
168
169 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
170
171         * domain.c, domain-internals.h: precise GC support for the MonoDomain
172         structure.
173
174 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
175
176         * class.c, gc.c: sgen and precise GC updates.
177
178 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
179
180         * marshal.h, marshal.c: added write barrier wrapper and precise type
181         fixes.
182
183 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
184
185         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
186         support.
187
188 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
189
190         * reflection.c: precise and sgen GC updates.
191
192 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
193
194         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
195
196 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
197
198         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
199
200 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
201
202         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
203         MONO_TYPE_OBJECT. Fixes #78462.
204
205 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
206
207         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
208         and blittable types.
209
210 2006-05-17  Miguel de Icaza  <miguel@novell.com>
211
212         * class.c (mono_class_get_exception_for_failure): Implement parts
213         of a TODO: if the loader error is set (instead of the class
214         error), we return a Loader exception that can be properly thrown
215         elsewhere.
216
217         This was exposed by some Winforms 2.0 code that I tried to run
218         (Atsushi pointed me to it).
219
220 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
221
222         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
223         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
224         
225         * marshal.c (emit_marshal_vtype): Add limited support for 
226         UnmanagedType.LPStruct. Fixes #78427.
227
228         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
229         Applied a patch from kangaroo to fix #77523.
230
231 2006-05-17  Martin Baulig  <martin@ximian.com>
232
233         * threads.c
234         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
235         (debugger_thread_created): Removed.
236         (debugger_thread_exited): Removed.
237
238 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
239
240         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
241
242         * object-internals.h (MonoReflectionResource): Sync with managed version.
243
244 2006-05-12  Wade Berrier <wberrier@novell.com>
245
246         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
247
248 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
249
250         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
251         functions try to allocate from the image mempool.
252
253 2006-05-12  Dick Porter  <dick@ximian.com>
254
255         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
256
257 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
258
259         * object.c: The FieldGetter and FieldSetter methods require the full
260         name of the class, not only the name. Fixes bug #78277.
261
262 2006-05-11  Miguel de Icaza  <miguel@novell.com>
263
264         * loader.c (method_from_memberref): Do not pass the NULL klass to
265         mono_loader_set_error_() methods.  Pass the non-NULL value
266         (class). 
267
268 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
269
270         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
271         (mono_assembly_close): Null out assembly->image->references after freeing it.
272
273         * image.c (mono_image_close): Free image->references.
274         
275         * reflection.c (mono_image_basic_init): Fix a small memory leak.
276
277 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
278
279         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
280         before checking if it's NULL (g_assert).
281
282 2006-05-10  Martin Baulig  <martin@ximian.com>
283
284         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
285         I thought I already killed that two months ago, but now it somehow reappeared.
286
287 2006-05-10  Martin Baulig  <martin@ximian.com>
288
289         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
290
291 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
292
293         * reflection.c: Allocate memory for dynamically created methods in the image
294         mempools.
295
296 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
297
298         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
299         don't use the ad pointer before checking if it's NULL (g_assert).
300
301 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
302
303         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
304         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
305
306         * marshal.c: Allocate all signatures from mempools.
307
308         * marshal.c: Allocate some more signatures from mempools.
309
310 2006-05-09  Miguel de Icaza  <miguel@novell.com>
311
312         * object.c (mono_load_remote_field): The code used to provide a
313         temporary variable for returning results if the user did not
314         provide a result pointer.  But our temporary variable was allocted
315         on the satck.
316
317         Fix calling code to always pass a result area.   Coverity ID 103.
318
319 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
320
321         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
322         value, not the old. Fixes #78312.
323         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
324
325         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
326         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
327         per-image cache.
328
329         * assembly.c (mono_assembly_close): Free image->references.
330
331         * assembly.c (mono_assembly_names_equal): Fix a warning.
332         (mono_assemblies_cleanup): Cleanup more global data.
333
334         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
335
336         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
337         ptr_cache and image->modules.
338
339         * image.c (mono_image_init): Allocate array_cache lazily.
340         
341 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
342
343         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
344         behavior was changed recently and has bad side effects.
345
346 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
347
348         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
349         
350         * assembly.c (mono_assembly_close): Remove a debug printf.
351
352         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
353
354         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
355         to also allow for temporary references between mono_image_open ()/close ().
356
357         * domain.c (get_runtimes_from_exe): Add a FIXME.        
358
359 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
360
361         * marshal.c: Fix support for dynamic methods.
362
363         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
364
365         * marshal.c (mono_marshal_cleanup): New cleanup function.
366
367         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
368         image mempools.
369
370         * class.c (mono_class_init): Fix leaking class->nested_classes.
371
372         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
373
374         * image.c (mono_image_init): Initialize the new cashes.
375
376         * image.c (mono_image_close): Destroy the new cashes.
377
378         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
379
380         * mempool.c (mono_mempool_strdup): New helper function.
381
382         * class-internals.h: Add prototype for mono_loader_unlock ().
383
384         * domain.c (mono_jit_info_table_find): Fix a warning.
385         (mono_debugger_check_runtime_version): Ditto.
386
387         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
388         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
389         functions to these modules.
390
391         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
392         metadata modules.
393         
394         * marshal.c (mono_free_bstr): Fix a warning.
395
396         * assembly.c (mono_assembly_open_full): Fix another small leak.
397
398         * object.c: Fix some unload leaks in the remoting code.
399
400         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
401         function.
402
403         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
404
405         * reflection.c: Fix some unload leaks in dynamic assemblies.
406
407 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
408
409         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
410         * marshal.h: Add BSTR support on Win32
411         * icall.c: Add BSTR icalls
412         * metadata.h: Add BSTR enums
413
414 2006-04-28  Miguel de Icaza  <miguel@novell.com>
415
416         Work to catch the crash from #76795 and turn it into an
417         exception.   As I stubbed out pieces of the VisualBasic support,
418         I found a number of places where the code was failing and I added
419         checks to those places. 
420         
421         * metadata.c (do_mono_metadata_parse_generic_class): Make this
422         function return a status code.  If we fail to parse the signature
423         from mono_metadata_parse_generic_inst, return FALSE.
424
425         * loader.c (mono_get_method_from_token): If we fail to load the
426         method (mono_class_get) return NULL.   
427
428         * (method_from_memberref): Return NULL if we are unable to parse
429         the method signature
430
431         (mono_loader_error_prepare_exception): Since we now use the
432         loader_error flag internally to stop processing, and obtaining
433         exceptions that might be thrown will walk this code path the
434         proper way of going from a MonoLoaderError into a
435         MonoException was convoluted.   This new routine encapsulates the
436         process of turning the error into an exception and *clearing* the
437         error afterwards.
438         
439 2006-04-27  Miguel de Icaza  <miguel@novell.com>
440
441         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
442         with missing assemblies), and to cope with:
443
444                 * Missing fieldref from a non-existing assembly.
445                 * Missing methodref from a non-existing assembly.
446
447         The first batch of work to address *some* of the issues from 76661.
448         
449         * object.c (mono_class_create_runtime_vtable): If we fail to
450         initialize the class raise the exception here. 
451
452         * metadata.c (mono_class_get_overrides_full): If any methods fail
453         to load return the failure to the caller.
454
455         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
456         flagging assemblies that failed to load.   
457
458         Do not crash if we are unable to load the assembly.
459
460         (mono_assembly_close): Do nothing with REFERENCE_MISSING
461         assemblies. 
462
463         * loader.c (mono_loader_set_error_type_load): Change the
464         convention to always pass unallocated strings, so we make our own
465         copies (I know our own code had duplicated strings before, but
466         this keeps the normal conventions).
467         (method_from_memberref): Call mono_loader_set_error_method_load
468         for all possible failures of loading the class. 
469         Remove assert, turn into a loader error.
470
471         (mono_loader_error_to_exception): Move this routine from mini
472         (mini_loader_error_to_exception) there was no need to have that in
473         mini. 
474
475         * class.c (mono_class_from_typeref): If we were not able to load
476         the assembly with mono_assembly_load_reference, call the
477         mono_loader_set_error_type_load to register the problem.
478
479         (mono_class_setup_fields): If we fail to load the type from
480         mono_metadata_parse_type_full, call mono_class_set_failure and
481         break from the loop.
482
483         If class->exception_type is set, we do not layout the fields as
484         that might crash the runtime, and instead return (from breaking
485         from the previous loop).
486
487         (mono_class_setup_vtable): This now returns a boolean indicating
488         whether the table was properly setup.   The decision is driven by
489         mono_class_get_overrides_full which might run into non-existing
490         methods. 
491         
492         (mono_class_init): Returns TRUE on success or FALSE if there was a
493         problem in loading the type (incorrect assemblies, missing
494         assemblies, methods, etc).
495
496         When we call mono_class_setup_fields we also check for a potential
497         error inside this call (either a class exception or a general
498         loader exception).
499
500         (mono_class_create_from_typedef): If the parent fails to load
501         (calling mono_class_get_full) return NULL.
502         
503         ** Important **
504
505         calls to mono_metadata_parse_type_full should be checked
506         everywhere and set the mono_class_set_failure
507         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
508
509         The current patch checks the places where my manually constructed
510         tests show the errors are showing up, but we should do it
511         everywhere. 
512
513         ** Important2 **
514
515         mono_class_init return values should be tested everywhere, like
516         the previous case this is something that we should audit
517         everywhere and not only on the cases exposed by the tests I
518         created. 
519
520 2006-04-26  Miguel de Icaza  <miguel@novell.com>
521
522         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
523         boolean parameter and instead pass the information on `options'
524         parameter (FileOptions).
525
526         * icall.c: Register the new signature for MonoIO.Open.
527
528         * debug-helpers.c (dis_one): Trying to understand how coverity
529         works.  Fix Run 5, item 78.
530
531 2006-04-26  Dick Porter  <dick@ximian.com>
532
533         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
534         dereference.
535
536 2006-04-25  Martin Baulig  <martin@ximian.com>
537
538         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
539
540         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
541         debugger_thread_created().
542         (debugger_gc_push_all_stacks): Don't handle the main thread in any
543         special way.
544         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
545         (mono_debugger_finalize_threads): New function; undo the effects
546         of mono_debugger_init_threads().
547         (mono_debugger_create_all_threads): Removed.
548
549 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
550
551         * image.c (mono_image_close): Tidy up trace messages.
552
553         * assembly.c (mono_assembly_close): Ditto.
554
555         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
556         no longer references an already freed assembly. Fixes #78168.
557
558 2006-04-21  Dick Porter  <dick@ximian.com>
559
560         * threads.c (mono_thread_detach): Fix reference counting when
561         detaching threads.
562
563 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
564
565         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
566         #78155.
567
568 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
569
570         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
571         (mono_type_to_stind): Ditto.
572
573         * marshal.c: Use the new helper functions to simplify code.
574
575         * image.c (mono_image_close): Add some code for help debug assembly unloading
576         problems.
577
578         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
579         image mempool.
580
581         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
582         assembly was already loaded in another appdomain. Fixes #78083.
583
584 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
585
586         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
587         referenced assemblies.
588         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
589
590         * domain.c (mono_domain_free): Add a trace message.
591
592         * appdomain.c (add_assemblies_to_domain): Ditto.        
593
594         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
595         field.  
596
597 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
598
599         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
600
601 2006-04-12  Martin Baulig  <martin@ximian.com>
602
603         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
604         `USE_INCLUDED_LIBGC'.   
605
606 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
607
608         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
609         the patch contains ../ and a small directory name later. Hopefully fixes
610         #78035.
611
612 2006-04-10  Martin Baulig  <martin@ximian.com>
613
614         Clean up the debugger's thread-handling code.
615
616         The debugger's thread-handling code has been moved from
617         ../mini/debug-debugger.c to threads.c.  We now iterate directly
618         over the `threads' hash, keep track of exiting threads and also
619         use proper locking.
620
621         We can now debug XSP and XSP based applications with the debugger.
622
623         * object-internals.h (MonoThread): Added `gpointer end_stack'.
624
625         * threads.h
626         (MonoThreadCallbacks): Removed; this was only used by the debugger.
627         (mono_install_thread_callbacks): Likewise.      
628
629         * threads.c (mono_thread_callbacks): Removed.
630         (debugger_thread_created, debugger_thread_exited): New static functions.
631         (start_wrapper): Call debugger_thread_created().
632         (thread_cleanup): Call debugger_thread_exited().
633         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
634         (mono_debugger_init_threads): New public function.
635         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
636         iterate directly over the `threads' hash and also use proper locking.
637
638         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
639
640         * mono-debug-debugger.h
641         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
642
643 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
644
645         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
646         argument type=array. Fixes #78057.
647
648 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
649
650         * culture-info-table.h : regenerated. Fixed bug #69652.
651
652 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
653
654         * loader.c metadata.c: Reapply a variant r59116.
655         
656         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
657
658         * class.c (mono_class_setup_interface_offsets): New internal function.
659
660         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
661         interfaces too. Fixes #77398.
662
663         * reflection.c (encode_cattr_value): Add support for 
664         parameter type=object, argument type=array.
665         (load_cattr_value): Ditto. Fixes #77916.
666
667         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
668         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
669
670         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
671         a byval char array and CharSet is Ansi.
672
673         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
674
675 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
676
677         * metadata.c: Add some locking comments.
678         
679         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
680         mempool.
681         (mono_metadata_free_method_signature): Don't free the signature itself.
682
683         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
684
685         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
686         reference the same MonoImage.
687         (mono_assembly_load_from_full): Add an assert.
688
689 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
690
691         * image.c (mono_image_close): Don't put the image we are about to free into the
692         loaded_images_guid_hash.
693
694         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
695         to reduce code duplication.
696
697         * marshal.c: Register the native functions called by this module as icalls, to
698         somewhat centralize the creation of MonoMethodSignature's.
699
700         * loader.c (mono_method_signature): Add a cache for method signatures.
701
702         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
703         the parameter attributes of a method.
704         (mono_metadata_parse_method_signature_full): Refactored the computation of
705         parameter attributes into a separate function. Also avoid one allocation in
706         most cases.
707
708         * assembly.c (mono_assembly_close): Ditto.
709
710         * image.c (mono_image_close): Log trace messages with INFO level.
711
712         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
713
714         * image.c reflection.c: Correct reference counting of image modules.
715         
716         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
717         of this function from the image mempool.
718         
719         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
720         to allow more cached types to be used.
721
722         * mono-debug.c (mono_debug_add_method): Appled patch from
723         David S. Miller  <davem@sunset.davemloft.net>: Access 
724         minfo->lexical_blocks[] entry elements using read32().
725
726 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
727
728         * loader.c (mono_free_method): No longer free the method header for non-dynamic
729         methods as it is allocated from the mempool.
730
731         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
732         image mempool.
733
734         * metadata-internals.h: Add comments describing the reference counting scheme
735         used for MonoImage and MonoAssembly.
736
737         * image.c assembly.c reflection.c: Rework reference counting of images and 
738         assemblies so they are freed when the runtime is shut down. Free some 
739         additional memory structures when an image is unloaded.
740         
741 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
742
743         * class.c loader.c reflection.c: Allocate more data structures in
744         the image mempool.
745
746 2006-03-31  Miguel de Icaza  <miguel@novell.com>
747
748         * icall.c
749         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
750         build on pre glib 2.4 systems.
751
752 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
753
754         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
755
756         * icall.c: Fix some warnings.
757
758 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
759
760         * culture-info-table.h : regenerated.
761
762 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
763
764         * threads.c, object-internals.h, verify.c: changed the culture caching
765         code to use a normal MonoArray for storage so the GC can keep track of
766         them easily. Fixed bits of the cache logic, too and simplified the
767         code.
768
769 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
770
771         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
772         thread for non-Boehm GCs.
773
774 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
775
776         * domain.c, object.c, domain-internals.h: reduce the amount of memory
777         needed to keep track of the data for static fields.
778
779 2006-03-29  Raja R Harinath  <rharinath@novell.com>
780
781         Fix #75172
782         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
783         for interface classes.  Use 'num_methods' instead.
784         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
785         before using '->vtable_size' field.
786
787 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
788
789         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
790         doesn't contain managed pointers, so use a normal hashtable.
791
792 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
793
794         * reflection.c, class-internals.h, domain.c: fixed handling of types
795         used as values for objects in custom attributes (bug #77915):
796
797 2006-03-24  Martin Baulig  <martin@ximian.com>
798
799         * class.c (mono_class_setup_fields): Added support for generic
800         instances; fixes #77580.
801
802 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
803
804         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
805
806 2006-03-24  Dick Porter  <dick@ximian.com>
807
808         * file-io.c (get_file_attributes): More stat macro breakage.
809         Fixes bug 77759.
810
811 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
812
813         * profiler.c: added the file=filename option in the default profiler
814         to output the profile data to filename.
815
816 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
817
818         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
819         bug #77877.
820
821 2006-03-22  Martin Baulig  <martin@ximian.com>
822
823         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
824         allocated `MonoClassField *' in `fb->handle'.
825
826 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
827
828         * class.c, image.c, metadata-internals.h: implemented new mechanism to
829         allocate interface ID to save memory and allow better ID reuse on
830         appdomain unload. setup_generic_vtable () removal from Martin.
831
832 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
833
834         * object.h, appdomain.c, domain.c, exception.c, icall.c,
835         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
836         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
837         write barriers for reference stores with managed objects accessed with
838         C structures in the runtime and in embedding programs.
839
840 2006-03-20  Raja R Harinath  <rharinath@novell.com>
841
842         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
843         'interface_id' and 'max_interface_id' fields of MonoClasses
844         representing open generic types.
845
846 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
847
848         * object.h, object.c, icall.c: added functions to deal with
849         storing valuetypes that contain references in managed objects.
850         * reflection.c, string-icalls.c, threads.c, marshal.c: small
851         fixes and comments around uses of mono_array_addr ().
852
853 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
854
855         * object.h, icall.c, monitor.c: object.GetHashCode ()
856         implementation that supports the moving garbage collector.
857
858 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
859
860         * icall.c, threads-types.h, threads.c: implemented finalizer for
861         LocalDataStoreSlot.
862
863 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
864
865         * metadata.c (mono_type_size): Add a fixme.
866         (mono_type_stack_size): Ditto.
867
868         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
869         'type_forwarders' field.
870
871         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
872         attribute from net 2.0.
873
874         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
875         from class.c.
876
877         * class.c (mono_class_setup_fields): Fix a warning.
878         
879         * class.c (mono_class_from_name): Add support for assemblyref entries
880         in the EXPORTEDTYPE table.
881
882         * reflection.c: Add support for handling type forwarders under net 2.0.
883
884         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
885         
886 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
887
888         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
889         overwriting entries in ModuleBuild->types, also clean up the code
890         a little. Fixes #77774.
891
892 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
893
894         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
895         load friend assembly info when present.
896
897 2006-03-14  Raja R Harinath  <rharinath@novell.com>
898
899         Fix crasher on gtest-158.cs.
900         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
901         the return value if the MonoClass we want is yet in an
902         inconsistent state.
903         * class.c (mono_class_create_from_typedef): Add an comment
904         explaining an order dependency between mono_class_setup_parent and
905         mono_class_setup_mono_type.
906
907 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
908
909         * class.c: documentation updates and events bug fix.
910
911 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
912
913         * class.c: some cleanup, locking fixes.
914
915 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
916
917         * class.c: fix the generics code to setup nested
918         type info to the instantiated type (bug #77770).
919
920 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
921
922         * marshal.c: fixed a few type correctness issues.
923
924 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
925
926         * loader.c: the Set/Get/Addrtess array methods should be public.
927
928 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
929
930         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
931         
932         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
933         info->wrapper.
934
935 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
936
937         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
938
939         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
940
941         * mempool.c (mono_mempool_alloc): Speed this up a bit.
942         (mono_mempool_alloc0): Ditto.
943
944 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
945
946         * socket-io.c:
947         (create_object_from_sockaddr): it was allocating 4 extra bytes
948         for the AF_UNIX data. Fixes bug #77747.
949
950 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
951
952         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
953
954 2006-03-09  Dick Porter  <dick@ximian.com>
955
956         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
957         Fixes bug 76966 again.
958
959 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
960
961         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
962         names from r57532
963         * appdomain.c: Bumped corlib version to 48 (due to r57532)
964
965 2006-03-07  Martin Baulig  <martin@ximian.com>
966
967         * object.c
968         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
969
970 2006-03-07  Martin Baulig  <martin@ximian.com>
971
972         * class.c
973         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
974         regression introduced in r56970; see gtest-252.cs.
975
976         * loader.c (mono_get_method_constrained): Correctly handle generic
977         methods; see gtest-253.cs.
978
979 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
980
981         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
982
983 2006-03-04  Martin Baulig  <martin@ximian.com>
984
985         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
986         compute the parent type at runtime, just like we're already doing
987         it for interfaces.
988
989         * reflection.c
990         (mono_reflection_bind_generic_parameters): Don't compute the
991         parent type anymore.
992
993         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
994
995 2006-03-04  Martin Baulig  <martin@ximian.com>
996
997         * mono-debug-debugger.h
998         (mono_debugger_create_notification_function): Allocate memory at
999         runtime and return a pointer to it.
1000
1001 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
1002
1003         * assembly.c: Fix windows build.
1004         
1005         * assembly.c: Fix build.
1006
1007         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
1008
1009         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
1010         
1011 2006-03-03  Dick Porter  <dick@ximian.com>
1012
1013         * process.c
1014         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
1015         Check parameters before dereferencing them.  Fixes Aaron's part of
1016         bug 77393.
1017
1018 2006-03-03  Raja R Harinath  <rharinath@novell.com>
1019
1020         Fix performance regression.
1021         * loader.c (find_method_in_class): Add 'from_class' argument.
1022         Rename 'klass' argument to 'in_class'.  The signature is compared
1023         against the method in 'in_class', and the corresponding method is
1024         returned from 'from_class'.
1025         (find_method): Walk both 'in_class' and 'from_class' in parallel.
1026         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
1027         type definition and generic instantiation in parallel.
1028         (mono_get_method_constrained): Update to changes.
1029
1030 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
1031
1032         * threads.c: make sure the domain is correct, too when doing
1033         mono_thread_attach ().
1034
1035 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
1036
1037         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
1038         windows. Fixes #77683.
1039
1040 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
1041
1042         * object.h, *: introduced specific way to set elements of an array
1043         of references to be used as write barrier. Still need to audit the
1044         uses of mono_array_addr.
1045
1046 2006-03-01  Miguel de Icaza  <miguel@novell.com>
1047
1048         * object-internals.h: New field to cache the assmebly name, patch
1049         from Tambet Ingo (tambet@ximian.com)
1050
1051 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1052
1053         * decimal.h, class-internals.h, metadata-internals.h,
1054         file-io.h: mark a few function declarations as internal, to
1055         reduce the number of PLT entries.
1056
1057 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1058
1059         * file-io.c: fix typo in warning message.
1060
1061 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
1062
1063         * loader.c: on unix, lookup the "*A" version of a function
1064         if charset is auto as a second option before failing.
1065
1066 2006-02-28  Raja R Harinath  <rharinath@novell.com>
1067
1068         * class.h (mono_class_inflate_generic_method): Revert to two
1069         argument version.
1070         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
1071         (mono_class_inflate_generic_method_full): Add.
1072         * class.c (mono_class_inflate_generic_method_full): Rename from
1073         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
1074         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
1075         * loader.c, reflection.c: Update to changes.
1076
1077 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
1078
1079         * icall.c: const fixes and small improvements.
1080
1081 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1082
1083         * threadpool.c: for asynchronous connect(), enable the same workaround
1084         for BSD 6 as for the Mac. Fixes bug #77637.
1085
1086 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
1087
1088         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
1089         formatted classes. Fixes #77524.
1090
1091 2006-02-24  Raja R Harinath  <rharinath@novell.com>
1092
1093         * class.c (inflate_generic_type): Add a couple more
1094         micro-optimizations.
1095         (inflate_generic_context): Don't use the 'gmethod' from
1096         'inflate_with'.
1097         (mono_class_inflate_generic_method): If the method has generic
1098         parameters, but the passed-in context doesn't have a 'gmethod',
1099         create one.  Use the possibly simplified generic instantiation
1100         from the declaring class instead of the one passed in.
1101
1102 2006-02-24  Raja R Harinath  <harinath@gmail.com>
1103
1104         Make generic method signature and method header handling lazy.
1105         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
1106         (inflate_generic_header): Likewise.
1107         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
1108         parameter to avoid inflating types.
1109         (mono_get_inflated_method): Empty out.
1110         * class.h (mono_class_inflate_generic_method): Update to changes.
1111         * loader.c (mono_get_method_from_token): Don't parse signature for
1112         generic methods, nor methods of generic classes.
1113         (mono_method_signature): Rename from 'mono_method_signature'.
1114         Inflate signature on demand.
1115         (mono_method_get_header): Inflate method header on demand.
1116         * reflection.c: Update to changes.
1117
1118 2006-02-23  Raja R Harinath  <rharinath@novell.com>
1119
1120         * metadata.c (mono_metadata_inflate_generic_inst): If the
1121         instantiation is closed, don't bother expanding it in the new
1122         context.
1123         * class.c (inflate_generic_class): If the generic instantiation
1124         doesn't change after inflation, return the argument itself.
1125         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
1126         Add bounds checks.
1127         (inflate_generic_context): If neither the generic class nor the
1128         generic method instantiations change, return the original context.
1129         * reflection.c (mono_method_get_object): Do
1130         'mono_get_inflated_method' before accessing the ->klass field.
1131         (inflate_mono_method): Don't create a MonoGenericMethod unless
1132         necessary.
1133         (inflate_method): Don't pass a constructed type as the declaring
1134         type of a methodbuilder.
1135
1136 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
1137
1138         * object.c: fix memory overwrite.
1139
1140 2006-02-22  Dick Porter  <dick@ximian.com>
1141
1142         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
1143         it doesn't work any more.
1144         (mono_threads_request_thread_dump): Fix unused variable warnings.
1145
1146 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1147
1148         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
1149         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
1150         the public header file.
1151
1152 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
1153
1154         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
1155
1156 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
1157
1158         * class-internals.h, object.c: reduce the size of MonoVTable
1159         and store the interface_offsets array at negative offsets.
1160
1161 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
1162
1163         * metadata.c: tweak table descriptors data structures to reduce
1164         size and runtime relocations.
1165
1166 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1167
1168         * marshal.c: fix some types and opcodes to be type-safe
1169         in marshaling wrappers.
1170
1171 2006-02-21  Ankit Jain  <jankit@novell.com>
1172
1173         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
1174
1175 2006-02-21  Raja R Harinath  <rharinath@novell.com>
1176
1177         * metadata.c (get_constraints): Relax debugging checks for monodis.
1178
1179 2006-02-21  Ankit Jain  <jankit@novell.com>
1180
1181         * metadata.c (mono_metadata_load_generic_params): Move the code
1182         checking for ambiguous generic params from here to mono/dis/get.c
1183         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
1184
1185 2006-02-21  Raja R Harinath  <harinath@gmail.com>
1186
1187         Fix assertion triggered when compiling nemerle.
1188         * class.c (mono_get_shared_generic_inst): Rename from
1189         get_shared_inst and make non-static.
1190         * loader.c (mono_get_shared_generic_method): New.  Used to create
1191         the MonoGenericContext-equivalent of a MonoGenericContainer.
1192         (mono_get_method_from_token): Initialize the 'context' field of
1193         the created MonoGenericContainer.
1194         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
1195         * metadata.c (get_constraints): Add sanity check.
1196         * class-internals.h: Add new internal methods.
1197
1198         * reflection.c (verify_safe_for_managed_space): New sanity check.
1199         Currently checks that owner-less generic parameters aren't allowed
1200         in managed space.
1201         (mono_type_get_object): Use it.
1202         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
1203         that are now in mono_type_get_object.
1204         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
1205
1206 2006-02-19  Raja R Harinath  <harinath@gmail.com>
1207
1208         * metadata.c (mono_type_create_from_typespec): Rename from
1209         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
1210         argument and caching of types in the generic container.
1211         (unwrap_arrays, find_generic_param): Remove.
1212         * metadata-internals.h: Update.
1213         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
1214
1215 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
1216
1217         * class.c (mono_class_get_exception_for_failure): Fix a warning.
1218
1219         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
1220         return values. Fixes #77581.
1221
1222         * class.c (mono_fnptr_class_get): Switch name and name_space.
1223
1224         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
1225         classes and add support for [In, Out] attributes.
1226         (mono_marshal_free_asany): Ditto. Fixes #77524.
1227
1228 2006-02-18  Raja R Harinath  <harinath@gmail.com>
1229
1230         * class.c (mono_class_from_generic_parameter): Make more robust to
1231         incomplete MonoGenericContainers from monodis.
1232
1233 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1234
1235         * class-internals.h: added some more exception types.
1236         * class.c, metadata.c: added a few checks to handle missing
1237         types.
1238
1239 2006-02-17  Raja R Harinath  <rharinath@novell.com>
1240
1241         Use owner-less generic-params some more.
1242         * class.c (my_mono_class_from_generic_parameter): Remove.
1243         (mono_class_from_generic_parameter): Handle null image,
1244         param->name and param->owner.
1245         (mono_class_from_mono_type): Update.
1246         (mono_class_create_from_typespec): Remove 'container' parameter.
1247         If that parameter is non-null, the result is always inflated by
1248         'mono_class_get_full' anyway.
1249         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
1250         parameter.
1251         (mono_class_get_full): Update.
1252
1253         * class.c (inflate_generic_type) [GENERICINST]: If the generic
1254         instance is not open, don't bother inflating.
1255         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
1256         parse metadata for inflated classes.
1257         (_mono_class_get): Change GenericContext* parameter to
1258         GenericContainer*.
1259         (mono_class_create_from_typespec): Likewise.  Simplify, and
1260         implement trivially.  All the cases are handled in
1261         mono_class_from_mono_type.  Don't inflate returned class.
1262         (mono_class_get_full): Delegate GENERICINST optimization to
1263         inflate_generic_type.
1264         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
1265
1266 2006-02-16  Dick Porter  <dick@ximian.com>
1267
1268         * socket-io.c (create_object_from_sockaddr): Fix typo.
1269         (create_sockaddr_from_object): Check array lengths before
1270         potentially accessing items off the end.
1271         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
1272         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
1273         (ves_icall_System_Net_Sockets_Socket_Send_internal)
1274         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
1275         length checks to avoid wraparound overflows.
1276         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
1277         contents of the array of sockets
1278         (hostent_to_IPHostEntry2)
1279         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
1280         Check return value of inet_ntop ().
1281         (addrinfo_to_IPHostEntry): Fix typo
1282
1283 2006-02-16  Raja R Harinath  <rharinath@novell.com>
1284
1285         Type metadata parsing doesn't use generic-instantiation information.
1286         * metadata.c (mono_metadata_parse_array_full): Change
1287         MonoGenericContext* parameter to MonoGenericContainer*.
1288         (mono_metadata_parse_type_full): Likewise.
1289         (mono_type_create_from_typespec_full): Likewise.
1290         (mono_metadata_parse_mh_full): Likewise.
1291         (mono_metadata_parse_generic_inst): Likewise.
1292         (do_mono_metadata_parse_generic_class): Likewise.
1293         (do_mono_metadata_parse_type): Likewise.
1294         * metadata-internals.h: Update to changes.
1295         * class.c (mono_class_find_enum_basetype): Likewise.
1296         (mono_class_setup_fields): Likewise.
1297         (mono_class_create_from_typespec): Likewise.
1298         * loader.c (method_from_methodspec): Likewise.
1299         (mono_get_method_from_token): Likewise.
1300         (mono_method_get_header): Likewise.
1301
1302 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1303
1304         * marshal.c: handle additional GENERICINST case (patch from
1305         Thong Nguyen <tum@veridicus.com>).
1306         Fix a few cases where LDIND_I/STIND_I was used for references.
1307
1308 2006-02-16  Raja R Harinath  <rharinath@novell.com>
1309
1310         * reflection.c (mono_reflection_get_token): Remove unused variable.
1311
1312 2006-02-16  Martin Baulig  <martin@ximian.com>
1313
1314         * reflection.c (mono_reflection_get_token): Add support for fields
1315         in instantiated generic types.
1316
1317         * icall.c
1318         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
1319
1320 2006-02-15  Martin Baulig  <martin@ximian.com>
1321
1322         * icall.c
1323         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
1324         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
1325         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
1326         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
1327
1328 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
1329
1330         * class.c, metadata.c, metadata.h, object.c, icall.c,
1331         marshal.c: changed mono_type_get_underlying_type () to do
1332         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
1333         Fixed handling of instantiated generic valuetypes (bug #75479).
1334
1335 2006-02-15  Raja R Harinath  <rharinath@novell.com>
1336
1337         * metadata.c (mono_metadata_decode_signed_value): Simplify.
1338         Delegate to mono_metadata_decode_value, and work on the returned value.
1339
1340         * icall.c (ves_icall_MonoType_GetGenericArguments):
1341         Add consistency check here too.
1342         
1343 2006-02-15  Ankit Jain  <jankit@novell.com>
1344
1345         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
1346         char/short etc.
1347
1348 2006-02-15  Ankit Jain  <jankit@novell.com>
1349
1350         * metadata.c (mono_metadata_decode_signed_value): New function to decode
1351         signed values, used only for representing lower bounds of arrays.
1352         (mono_metadata_parse_array_full): Use new
1353         mono_metadata_decode_signed_value to decode lower bounds.
1354
1355 2006-02-14  Martin Baulig  <martin@ximian.com>
1356
1357         * reflection.c
1358         (mono_reflection_get_token): Support "MonoGenericMethod" and
1359         "MonoGenericCMethod" and allow generic instances / methods.
1360
1361 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
1362
1363         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
1364         to obtain the terminal size using an ioctl.
1365
1366         * object.c (mono_nullable_init): Revert this as nullable reference
1367         types are not valid.
1368         (mono_nullable_box): Ditto.
1369
1370 2006-02-09  Dick Porter  <dick@ximian.com>
1371
1372         * threads.c (mono_thread_detach): Drop a reference to the thread
1373         we're detaching.
1374
1375 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
1376
1377         * object.c (mono_nullable_init): Handle nullable reference types.
1378         (mono_nullable_box): Ditto. Fixes #77446.
1379
1380 2006-02-07  Martin Baulig  <martin@ximian.com>
1381
1382         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
1383
1384 2006-02-07  Ankit Jain  <jankit@novell.com>
1385
1386         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
1387         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
1388         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
1389         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
1390         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
1391         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
1392
1393 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
1394
1395         * class.c (mono_class_create_generic): Set type_token as well.
1396
1397         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
1398         compatible with MS.
1399
1400 2006-02-02  Martin Baulig  <martin@ximian.com>
1401
1402         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
1403         has never been used so far.
1404
1405 2006-02-02  Martin Baulig  <martin@ximian.com>
1406
1407         * mono-debug-debugger.h: Changed comment at the top of this file;
1408         the header is not installed, but it's safe to #include it from
1409         within the JIT.
1410
1411         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
1412         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
1413
1414 2006-02-02  Martin Baulig  <martin@ximian.com>
1415
1416         * mono-debug.h
1417         (MonoSymbolTable): Removed the `metadata_info' field.
1418
1419         * mono-debug.c
1420         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
1421
1422         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
1423         (mono_debugger_add_builtin_types): Removed.
1424         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
1425         (mono_debugger_create_notification_function): We now operate on a
1426         pre-allocated area; take a `gpointer' and return `void'.
1427
1428         * mono-debug-debugger.c
1429         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
1430         (mono_debugger_add_builtin_types): Removed.
1431
1432 2006-02-02  Martin Baulig  <martin@ximian.com>
1433
1434         * threads.c (mono_debugger_create_all_threads): New public method.
1435
1436 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1437
1438         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
1439         breaks on several platforms.
1440
1441 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
1442
1443         * assembly.c: the VS.NET build doesn't supply default values for
1444         MONO_ASSEMBLIES and MONO_CFG_DIR.
1445
1446 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
1447
1448         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
1449         helper function.
1450
1451         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
1452
1453         * loader.c (method_from_memberref): Fix a warning.
1454
1455         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
1456
1457         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
1458         with explicit layout. Fixes #77433.
1459
1460 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
1461
1462         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
1463         max_interface_id is initialized before using it. Fixes #77398.
1464         (ves_icall_Type_GetInterfaces): Ditto.
1465
1466 2006-01-30  Raja R Harinath  <rharinath@novell.com>
1467
1468         * metadata.c (mono_metadata_parse_method_signature_full): Don't
1469         allocate memory for parameter attributes when parsing memberref
1470         signatures.
1471         * loader.c (mono_loader_set_error_method_load): Don't warn.
1472         (method_from_memberref): Ensure MissingMethodException gets thrown
1473         if method is not found.  Make warning more informative.
1474
1475 2006-01-29  Raja R Harinath  <harinath@gmail.com>
1476
1477         Fix #77397
1478         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
1479         return true if is byref.
1480         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1481         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
1482         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
1483
1484 2006-01-27  Raja R Harinath  <rharinath@novell.com>
1485
1486         Fix tests/find-method.2.il
1487         * loader.c (find_method, find_method_in_class): Remove is_inflated
1488         argument.  Revert 2006-01-18 change.
1489         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
1490         is generic, search for method in its generic definition.
1491         * class.c (mono_class_setup_vtable_general): Print generic
1492         arguments of generic types in debugging printf.
1493
1494 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
1495
1496         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
1497
1498         * threads.c (mono_threads_request_thread_dump): New helper function.
1499
1500 2006-01-25  Raja R Harinath  <rharinath@novell.com>
1501
1502         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
1503
1504 2006-01-25  Ankit Jain  <jankit@novell.com>
1505
1506         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
1507         move definition to ..
1508         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
1509         
1510 2006-01-25  Ankit Jain  <jankit@novell.com>
1511             Raja R Harinath  <rharinath@novell.com>
1512
1513         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
1514         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
1515         as necessary.
1516
1517 2006-01-25  Martin Baulig  <martin@ximian.com>
1518
1519         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
1520         `MonoDebuggerThread' into debug-debugger.c.
1521
1522 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
1523
1524         * profiler.c: fix printing of data.
1525
1526 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
1527
1528         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
1529           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
1530
1531 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
1532
1533         * object.c: fix deadlock related to string interning.
1534
1535 2006-01-23  Martin Baulig  <martin@ximian.com>
1536
1537         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
1538
1539         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
1540
1541 2006-01-23  Martin Baulig  <martin@ximian.com>
1542
1543         * mono-debug.h: Moved the prototypes of some functions which are
1544         used by the JIT here from mono-debug-debugger.h.
1545
1546 2006-01-21  Martin Baulig  <martin@ximian.com>
1547
1548         * Makefile.am: Don't install mono-debug-debugger.h.
1549
1550 2006-01-21  Martin Baulig  <martin@ximian.com>
1551
1552         * mono-debug-debugger.h: Enforce the private status of this header
1553         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
1554         Moved some stuff from mono-debugger-jit-wrapper.h here.
1555
1556 2006-01-20  Raja R Harinath  <rharinath@novell.com>
1557
1558         * class.c (mono_class_from_typeref): Add a sanity test to help
1559         catch lack of assembly load/search hooks.
1560
1561 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
1562
1563         * marshal.c (emit_struct_conv): Relax the fields with same offset
1564         check even more. Fixes #77230.
1565
1566 2006-01-18  Martin Baulig  <martin@ximian.com>
1567
1568         * loader.c (find_method_in_class): Added `gboolean is_inflated'
1569         argument; if false, we compare the uninstantiated signatures.
1570         (method_from_memberref): Compare the uninstantiated signatures;
1571         fixes #76417.
1572
1573 2006-01-18  Robert Jordan  <robertj@gmx.net>
1574
1575         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
1576         Clear the weak link. Fixes bug #77170.
1577
1578         * gc.c (mono_gchandle_free):
1579         Reflect *-gc.c changes (tiny optimization).
1580
1581 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
1582
1583         * metadata.c (mono_metadata_signature_dup): Applied patch from
1584         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
1585         Fixes #77288.
1586
1587 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
1588
1589         * marshal.c (emit_struct_conv): Allow fields with the same offset when
1590         marshalling from native to managed code. Fixes #77230.
1591
1592 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1593
1594         * threadpool.c: fix problem (Mac only) when more than one asynchronous
1595         connect. Fixes bug #77020.
1596
1597 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
1598
1599         * class.c: fixed id assignement for nested interfaces (bug #77275).
1600         Added also better info for --print-vtable debugging.
1601
1602 2006-01-12  Martin Baulig  <martin@ximian.com>
1603
1604         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
1605         interfaces on-the-fly; fixes #76625.
1606
1607         * class-internals.h
1608         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
1609         don't need that anymore.
1610
1611 2006-01-12  Miguel de Icaza  <miguel@novell.com>
1612
1613         * socket-io.c
1614         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1615         To avoid initing the nested_classes when not needed I turned the
1616         PeerCredData as a toplevel internal class, as it has to be shared
1617         anyways. 
1618
1619         Fixes the CASA issue.
1620
1621 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
1622
1623         * domain.c: Accessors for MonoJitInfo
1624
1625         * profiler-private.h: Add jitinfo to the end jit hook
1626
1627         * profiler.[ch]: Define new hooks, called after jitting which give
1628         the MonoJitInfo that was compiled
1629
1630 2006-01-10  Martin Baulig  <martin@ximian.com>
1631
1632         * class.c (mono_class_setup_events): Add support for generic
1633         classes; fixes #76440.
1634
1635 2006-01-06  Raja R Harinath  <rharinath@novell.com>
1636
1637         Fix #77160.
1638         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
1639         on passed-in method.
1640
1641 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
1642
1643         * object.c (mono_runtime_invoke_array): Add Nullable support.
1644
1645         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
1646
1647 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
1648
1649         * file-io.c: Don't consider sockets as directory and avoid an endless
1650         loop. Fix bug #76966.
1651
1652 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
1653
1654         * object.c (mono_nullable_init): New helper function.
1655         (mono_nullable_box): Ditto.
1656
1657         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
1658
1659         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
1660
1661         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
1662         
1663 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
1664
1665         * class.c (mono_class_is_assignable_from): Make T assignable to 
1666         Nullable<T>.
1667
1668 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
1669
1670         * appdomain.c: Bump corlib version to 46.
1671         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
1672         serialization purpose) and changed ves_icall_System_Reflection_
1673         Assembly_get_code_base signature to accept a boolean (to escape, or 
1674         not, the assembly code base).
1675
1676 2005-12-23  Dick Porter  <dick@ximian.com>
1677
1678         * icall.c: 
1679         * threads-types.h: 
1680         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
1681         CreateEvent icall now returns "created" boolean parameter.
1682
1683 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
1684
1685         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
1686         #76967.
1687
1688         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
1689         when attr_klass is an interface. Fixes #77045.
1690
1691 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
1692
1693         * marshal.c (emit_struct_conv): Fix previous patch.
1694         
1695         * marshal.c (emit_struct_conv): Add a check for fields with the same
1696         offset.
1697
1698 2005-12-20  Raja R Harinath  <rharinath@novell.com>
1699
1700         Fix regression in Mono.C5.
1701         * class.c (mono_class_create_generic): If 'klass' is an interface
1702         set up the interface offsets.
1703         (mono_class_is_assignable_from): Don't throw away generic arguments.
1704
1705 2005-12-19  Raja R Harinath  <rharinath@novell.com>
1706
1707         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
1708         type parameters.
1709
1710 2005-12-15  Raja R Harinath  <rharinath@novell.com>
1711
1712         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
1713         dead store.
1714         (do_mono_metadata_parse_generic_class): Don't pass the current
1715         generic context when parsing the type being instantiated: it
1716         cannot use it, anyway.
1717
1718         * loader.c (method_from_memberref): Don't inflate a signature if
1719         it doesn't contain any type parameters.
1720
1721 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
1722
1723         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
1724
1725 2005-12-14  Martin Baulig  <martin@ximian.com>
1726
1727         * class.c
1728         (mono_type_get_name_recurse): Don't return null for type
1729         parameters and open generic classes.
1730         (mono_class_setup_methods): Don't exclude generic instances.
1731         (mono_get_unique_iid): Use different IDs for different
1732         instantiations of the same generic type.
1733         (mono_class_setup_vtable): Only use setup_generic_vtable() for
1734         open generic instances; create a normal vtable for closed generic
1735         instances.
1736         (mono_class_setup_vtable_general): We're now also called for
1737         closed generic instances.
1738
1739         * reflection.c
1740         (mono_reflection_bind_generic_parameters): Correctly use
1741         mono_metadata_lookup_generic_inst() everywhere.
1742
1743 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
1744
1745         * object.c (mono_class_create_runtime_vtable): Call 
1746         mono_class_setup_vtable ().
1747
1748         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
1749         function.
1750         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
1751         #76959.
1752
1753         * loader.c (mono_loader_set_error_type_load): Print the type load
1754         warnings to the console so they are more visible to the user.
1755         (mono_loader_set_error_method_load): Ditto.
1756
1757         * reflection.c (ensure_runtime_vtable): Revert the last change as it
1758         is still broken.
1759         
1760         * reflection.c (ensure_runtime_vtable): Fix build.
1761
1762         * reflection.c (ensure_runtime_vtable): Disable an optimization which
1763         doesn't work in all cases.
1764
1765 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
1766
1767         * object.c (mono_array_new_full): Treat a single dimensional array
1768         with 0 lower bounds as an szarray. Fixes #76973.
1769
1770         * reflection.c (custom_attr_visible): Really fix this.
1771
1772 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
1773
1774         * reflection.c (custom_attr_visible): Allow nested public attributes
1775         as well.
1776
1777         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
1778         interface check.
1779
1780 2005-12-12  Raja R Harinath  <harinath@gmail.com>
1781
1782         * class.c (set_generic_param_owner): Delete.
1783         (mono_class_create_from_typedef): Don't set ->owner field of
1784         generic parameters to "param containers" of enclosing classes.
1785         * reflection.c (mono_reflection_initialize_generic_parameter):
1786         Likewise.
1787
1788 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
1789
1790         * reflection.c (custom_attr_visible): Fix build.
1791
1792 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
1793
1794         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
1795         private attributes.
1796         
1797         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
1798         handling of null parameter defaults.
1799
1800 2005-12-09  Raja R Harinath  <rharinath@novell.com>
1801
1802         * class.c (mono_class_from_generic_parameter): Don't set
1803         klass->generic_container.
1804         (my_mono_class_from_generic_parameter): Likewise.
1805
1806 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
1807
1808         * reflection.c (load_public_key): Fix a warning.
1809         (method_encode_code): Fix unaligned accesses.
1810
1811 2005-12-07  Martin Baulig  <martin@ximian.com>
1812
1813         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
1814
1815         * reflection.c
1816         (write_generic_param_entry): Encode our custom attrs.
1817
1818         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
1819
1820 2005-12-07  Martin Baulig  <martin@ximian.com>
1821
1822         * reflection.c (encode_new_constraint): Removed; we don't use the
1823         `NewConstraintAttribute' anymore.
1824
1825 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
1826
1827         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
1828         not fire a TypeResolve event when Assembly.GetType () is called.
1829
1830 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
1831
1832         Beginning of support for nullable types in the runtime. Parts of
1833         this patch are from Martin.
1834
1835         * appdomain.c (MONO_CORLIB_VERSION): Bump
1836
1837         * domain.c (mono_init_internal): get the nullable type
1838
1839         * class.c (mono_class_is_nullable): New method
1840         (mono_class_get_nullable_param): New mehod
1841         (mono_class_create_generic): In types T? set cast_class to T
1842
1843         * class-internals.h (MonoDefaults): new nullable default class
1844         (mono_class_get_nullable_param, mono_class_get_nullable_param):
1845         new methods.
1846
1847 2005-12-05  Raja R Harinath  <rharinath@novell.com>
1848
1849         * metadata.c (select_container): New.  Refactor code to select the
1850         appropriate GenericContainer given the type of generic parameter
1851         we are looking for.
1852         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
1853         not a MonoGenericContext.  Use select_container.  Update parameters.
1854         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
1855         and MONO_TYPE_MVAR.
1856         (unwrap_arrays): Remove duplicate tests.
1857         (find_generic_param): Rename from 'has_same_context'.  Now walks a
1858         generic instantiated class to find any arguments that are generic
1859         parameters.
1860         (mono_type_create_from_typespec_full): Use find_generic_param to
1861         avoid evicting some generic instantiations from the typespec
1862         cache.
1863
1864 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
1865
1866         * reflection.c: fixed writing of doubles on ARM FPA.
1867
1868 2005-12-02  Robert Jordan  <robertj@gmx.net>
1869
1870         * icall.c: Fixed EventInfo.ReflectedType (#76829).
1871
1872 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1873
1874         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
1875         least on SUSE 10 they are not the same (on debian, they are just the
1876         same thing).
1877
1878 2005-12-01  Raja R Harinath  <rharinath@novell.com>
1879
1880         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
1881         DeclaringType for VARs and MVARs.
1882         * class.c (set_generic_param_owner): Fix initialization of owner
1883         fields.
1884
1885 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
1886
1887         * icall.c: fixed Enum.ToObject() to correctly convert the values.
1888
1889 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1890
1891         * threadpool.c: workaround for a bug that shows up on the Mac:
1892         select()+connect() on a blocking socket is not like it should
1893         be, so we proceed to connect() in that case, wasting the I/O
1894         threadpool thread until connect succeedes. Fixes bug #75436.
1895
1896 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1897
1898         * threadpool.c: fix typo when setting file descriptor states.
1899
1900 2005-11-28  Raja R Harinath  <rharinath@novell.com>
1901
1902         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
1903         * metadata.c (mono_metadata_parse_method_signature_full): Don't
1904         create a temporary signature container.
1905         (mono_metadata_parse_generic_param): Update to changes.
1906         (mono_type_create_from_typespec_full): Update to changes.
1907         * loader.c (method_from_memberref): Don't use a
1908         MonoGenericContainer while parsing a memberref signature.
1909         (method_from_methodspec): Remove dead-store of the 'container'
1910         variable.  It's overwritten before use.
1911
1912         * metadata.c (mono_type_create_from_typespec_full): Make debugging
1913         checks tighter.
1914         (mono_metadata_parse_generic_param): Likewise.
1915         * loader.c (find_method_in_class): Does not need a
1916         MonoGenericContainer.  Use 'mono_method_signature' rather than
1917         'mono_method_signature_full'.
1918         (find_method, mono_get_method_constrained, method_from_memberref):
1919         Update to changes.
1920
1921         * metadata.c (mono_type_create_from_typespec_full): Ensure that
1922         owner-less generic-parameters are never evicted from the typespec
1923         cache.
1924
1925         * loader.c (method_from_memberref): Don't use the current context
1926         when parsing signatures.
1927         (method_from_methodspec, mono_get_method_from_token): Update to changes.
1928
1929         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
1930         side-effects in g_assert.
1931         * loader.c (mono_get_method_from_token): Resolve klass earlier so
1932         that we don't potentially lose information.
1933
1934 2005-11-26  Dick Porter  <dick@ximian.com>
1935
1936         * icall.c:
1937         * threads.c: icalls to implement basic (ie, not named)
1938         System.Threading.Semaphore.
1939
1940 2005-11-24  Dick Porter  <dick@ximian.com>
1941
1942         * process.c
1943         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
1944         Use GetProcessId() if it's available.
1945
1946 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
1947
1948         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
1949
1950 2005-11-23  Raja R Harinath  <rharinath@novell.com>
1951             Ankit Jain  <jankit@novell.com>
1952
1953         * loader.c (mono_get_method_from_token): Initialize 'method' field
1954         of all generic parameters before parsing the signature.  Remove
1955         code that "fixed"-up MVAR references.
1956
1957 2005-11-23  Ankit Jain  <jankit@novell.com>
1958
1959         * metadata.c (mono_metadata_has_generic_params):
1960         (mono_metadata_load_generic_param_constraints):
1961         (mono_metadata_load_generic_params): Move duplicate code ...
1962         (mono_metadata_get_generic_param_row): ... here. Returns the
1963         first row-id in GenericParam table for a given owner (token).
1964         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
1965         prototype.
1966
1967 2005-11-23  Raja R Harinath  <rharinath@novell.com>
1968             Ankit Jain  <jankit@novell.com>
1969
1970         * metadata.c (mono_metadata_class_equal): Pass signature_only when
1971         comparing VARs too.
1972         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
1973         type->data.generic_param only if the type is an MVAR.
1974         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
1975         leak owner-less VARs and MVARs into managed space.
1976
1977 2005-11-21  Martin Baulig  <martin@ximian.com>
1978
1979         * class-internals.h
1980         (MonoMethod): Moved the `generic_container' here from
1981         `MonoMethodNormal' since we now also need it for
1982         `MonoMethodPInvoke';
1983         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
1984         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
1985         an union containing both `MonoMethodNormal' and
1986         `MonoMethodPInvoke'.
1987
1988         * loader.c
1989         (mono_get_method_from_token): Allow implementing generic methods
1990         as interncalls.
1991
1992         * threads.c
1993         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
1994         icall.
1995
1996 2005-11-17  Dick Porter  <dick@ximian.com>
1997
1998         * icall.c: 
1999         * process.h: 
2000         * process.c: Split the Process Start_internal icall into
2001         ShellExecuteEx_internal and CreateProcess_internal, which are
2002         called depending on whether UseShellExecute is true.  Fixes bug
2003         76670.
2004
2005         * appdomain.c (MONO_CORLIB_VERSION): Incremented
2006
2007 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
2008
2009         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
2010         'msize' parameters, use the information in 'mspec' instead.
2011         (emit_object_to_ptr_conv): Ditto.
2012
2013         * marshal.c (emit_struct_conv): Handle explicit layout structs with
2014         fields out of order. Fixes #76733.
2015
2016 2005-11-17  Ankit Jain  <jankit@novell.com>
2017
2018         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
2019
2020 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
2021
2022         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
2023           bug #76575.
2024
2025 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2026
2027         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
2028         for types with non-auto layout. Fixes #76717.
2029
2030 2005-11-16  Ankit Jain  <jankit@novell.com>
2031
2032         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
2033         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
2034         if generic_context is null.
2035           (mono_metadata_generic_param_equal): param->owner can be null.
2036           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
2037         null.
2038
2039 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2040
2041         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
2042         the correct value.
2043
2044 2005-11-15  Martin Baulig  <martin@ximian.com>
2045
2046         * object.c (set_value): Use mono_class_from_mono_type() instead of
2047         the hack for generic instances; fixes #76136.
2048
2049 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
2050
2051         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
2052         fields.
2053
2054         * image.c (load_metadata_ptrs): Initialize the new fields.
2055
2056         * reflection.c (create_dynamic_mono_image): Ditto.
2057
2058         * reflection.c (build_compressed_metadata): Use the new fields.
2059
2060         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
2061         icall.
2062
2063         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
2064         icall.
2065         
2066 2005-11-15  Ankit Jain  <jankit@novell.com>
2067             Raja R Harinath  <harinath@gmail.com>
2068
2069         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
2070         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
2071         new per-generic_container cache if the cached MonoType's context matches
2072         the current context.
2073           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
2074         to the expected context.
2075           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
2076
2077 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2078
2079         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
2080         we changed the signature of an icall.
2081         * icall.c: Modify to mono_double_ParseImpl return true/false 
2082         depending on the success, instead of throwing the exception. This will
2083         help us in Double.TryParse methods.
2084         
2085 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
2086
2087         * marshal.c (emit_marshal_object): Throw an exception when
2088         marshalling 'object' instead of crashing. Fixes #76696.
2089
2090 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2091
2092         * class-internals.h: Add prototype for mono_type_get_full_name ().
2093
2094 2005-11-11  Dick Porter  <dick@ximian.com>
2095
2096         * threads.c (mono_thread_manage): Make sure the main thread has
2097         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
2098
2099 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2100
2101         * loader.c (mono_loader_set_error_type_load): Log a warning to the
2102         console about the missing type.
2103         (mono_loader_set_error_method_load): Ditto.
2104
2105 2005-11-09  Miguel de Icaza  <miguel@novell.com>
2106
2107         * mono-config.c (mono_get_config_dir): Set the system defaults if
2108         none is specified.
2109
2110         * assembly.c (mono_set_dirs): New API entry point to set the
2111         assembly and the config directory in one call
2112
2113 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
2114
2115         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
2116         the ftnptr was created from a delegate in a domain other than the
2117         current domain. Fixes #75377.
2118
2119         * exception.h exception.c: Add mono_get_exception_not_supported ().
2120
2121 2005-11-08  Martin Baulig  <martin@ximian.com>
2122
2123         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
2124
2125 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
2126
2127         * security-manager.h: Added definitions to deal with strongname key 
2128         pairs bigger (and smaller) than 1024 bits.
2129         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
2130         adjust wrt the public key length being used.
2131
2132 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2133
2134         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
2135           Windows build (r51396-51397).
2136
2137 2005-11-03  Martin Baulig  <martin@ximian.com>
2138
2139         * class.c (mono_class_setup_vtable_general): Also add generic
2140         methods to the vtable; fixes #76581.
2141
2142 2005-11-01  Miguel de Icaza  <miguel@novell.com>
2143
2144         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
2145         sure that we lookup GetString method from the System.Text.Encoding
2146         class, not the derived class or we get an empty method.
2147
2148         Fixed class #76612.
2149
2150 2005-10-25  Miguel de Icaza  <miguel@novell.com>
2151
2152         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
2153         if it has been previously set (embedders). 
2154
2155         Make mono_set_rootdir available also on Unix.
2156
2157 005-10-24  Robert Jordan  <robertj@gmx.net>
2158
2159         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
2160
2161 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
2162
2163         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
2164         only calls which are made to native code use this flag.
2165
2166         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
2167
2168 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
2169
2170         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
2171         Add support for FieldBuilders.
2172
2173 2005-10-29  Martin Baulig  <martin@ximian.com>
2174
2175         * mono-debug.c
2176         (mono_debug_using_mono_debugger): New public method; returns
2177         whether we're running inside the debugger.
2178
2179 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
2180
2181         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
2182         for Method/Constructor/FieldBuilders.
2183
2184 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
2185
2186         * reflection.c (module_add_cattrs): Save custom attributes for global methods
2187         and fields as well.
2188
2189 2005-10-26  Martin Baulig  <martin@ximian.com>
2190
2191         * mono-debug-debugger.c
2192         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
2193
2194 2005-10-24  Raja R Harinath  <harinath@gmail.com>
2195
2196         * icall.c (base64_to_byte_array): Don't pass an out-of-range
2197         integer to isspace.
2198
2199 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
2200
2201         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
2202         when passing valuetypes byref. Fixes #76502.
2203
2204 2005-10-19  Jackson Harper  <jackson@ximian.com>
2205
2206         * profiler.c: Don't put a . in front of types that are not in a
2207         namespace.
2208
2209 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
2210
2211         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
2212
2213 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
2214
2215         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
2216         #76436.
2217         (mono_marshal_get_ldflda_wrapper): Fix a warning.
2218
2219 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2220
2221         * assembly.c metadata-internals.h icall.c: Define an additional
2222         parameter for mono_assembly_name_parse_full, so we can avoid creating
2223         S.R.AssemblyName.Version when no version info wasn't passed.
2224         
2225 2005-10-09  Miguel de Icaza  <miguel@novell.com>
2226
2227         * class.c (mono_type_get_full_name): Reimplement method that was
2228         removed. 
2229
2230         * image.c: Some docs
2231
2232 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
2233
2234         * profiler.c (output_newobj_profile): Fix printing of Total memory
2235         on x86.
2236
2237 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
2238
2239         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
2240
2241 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
2242
2243         * threads.c: remove debug output.
2244
2245 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
2246
2247         * threads.c (mono_thread_manage): Fix crashes if more than 64
2248         threads need to be aborted. Hopefully fixes #75899.
2249
2250         * assembly.c (mono_stringify_assembly_name): New helper function.
2251
2252         * class.c: Use mono_stringify_assembly_name instead of the similar
2253         static function.
2254
2255         * assembly.h assembly.c: Add support for calling a postload search 
2256         hook if an assembly cannot be loaded.
2257
2258         * appdomain.c: Register new search hooks which call the AssemblyResolve
2259         events in AppDomain. Fixes #75231
2260
2261 2005-10-07  Martin Baulig  <martin@ximian.com>
2262
2263         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
2264         methods without debug info.
2265
2266 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
2267
2268         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
2269         wrappers.
2270
2271 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2272
2273         * file-io.c: now that we return symlinks, use lstat and, when the file
2274         is a symbolic link, stat, to get the file attributes. Also avoid the
2275         conversion to/from utf16/external.
2276
2277 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
2278
2279         * class.c (mono_class_layout_fields): Compute klass->has_references
2280         correctly if an embedded valuetype is not yet initialized. Fixes
2281         #76331.
2282
2283 2005-10-04  Martin Baulig  <martin@ximian.com>
2284
2285         * metadata.c
2286         (mono_metadata_load_generic_param_constraints): New public
2287         function; splitted the constraints loading out from
2288         mono_metadata_load_generic_params().
2289
2290         * class.c (mono_class_create_from_typedef): Call
2291         mono_metadata_load_generic_param_constraints() after setting up
2292         the type and creating our parent; fixes #75329.
2293
2294 2005-10-04  Martin Baulig  <martin@ximian.com>
2295
2296         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
2297         non-dynamic parent classes.
2298
2299 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2300
2301         * file-io.c : win32 build fix (ETXTBSY seems not found).
2302
2303 2005-10-04  Martin Baulig  <martin@ximian.com>
2304
2305         * reflection.c
2306         (mono_image_get_methodspec_token): Make the cache actually work;
2307         fixes #75974.
2308
2309 2005-10-04  Martin Baulig  <martin@ximian.com>
2310
2311         * class.c (mono_class_name_from_token): Removed the unneccessary
2312         `MonoGenericContext *' argument.
2313
2314 2005-10-04  Martin Baulig  <martin@ximian.com>
2315
2316         * loader.c
2317         (method_from_methodspec): Make the caching work again; fixes the
2318         performance regression from #76262.
2319
2320 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2321
2322         * file-io.c:
2323         * file-io.h:
2324         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
2325         GetFileSystemEntries that performs the same work but without going
2326         into io-layer, locking, etc.
2327
2328 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
2329
2330         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
2331         ThreadState_Stopped as well. Fixes #76047.
2332
2333 2005-09-29  Martin Baulig  <martin@ximian.com>
2334
2335         * class.c
2336         (inflate_generic_context): If the new context has a `gmethod', set
2337         its `container' that that gmethod's `container'.
2338
2339         * metadata.c
2340         (mono_metadata_parse_generic_param): Simplify things;
2341         `generic_container = generic_context->container;' is just fine.
2342
2343         * loader.c (method_from_methodspec): Code cleanups.
2344
2345 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
2346
2347         * decimal.c: fix warning (and let gcc generate correct
2348         code on ARM with optimizations).
2349
2350 2005-09-28  Martin Baulig  <martin@ximian.com>
2351
2352         * loader.c
2353         (method_from_memberref): Added `MonoGenericContext *class_context'
2354         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
2355         (method_from_methodspec): If we're a memberref, use the enclosing
2356         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
2357
2358 2005-09-28  Martin Baulig  <martin@ximian.com>
2359
2360         * object.c (mono_runtime_invoke_array): Added support for
2361         MONO_TYPE_GENERICINST; fixes #75917.
2362
2363 2005-09-27  Martin Baulig  <martin@ximian.com>
2364
2365         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
2366         `k->byval_arg.type' to determine the actual type.
2367
2368         * loader.c (method_from_methodspec): Removed some hacks.
2369
2370 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
2371
2372         * class-internals.h (mono_field_is_deleted): Do the test for
2373         rtspecialname before we check the actual name of the field. This
2374         prevents us from dereferencing a pointer into the string table,
2375         saving us from accessing a few pages
2376
2377         * *.c: Replace the use of {Enter,Leave}CriticalSection with
2378         macros. This will allow a deadlock debugger to easily be plugged
2379         in.
2380
2381 2005-09-27  Martin Baulig  <martin@ximian.com>
2382
2383         * loader.c (method_from_methodspec): Create a "signature"
2384         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
2385
2386 2005-09-27  Martin Baulig  <martin@ximian.com>
2387
2388         * class.c
2389         (inflate_generic_class): Correctly set the new context's
2390         container.
2391
2392         * loader.c
2393         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
2394         instead of a `MonoGenericContext *'.
2395         (mono_method_signature_full): Take a `MonoGenericContainer *'
2396         instead of a `MonoGenericContext *'.
2397
2398         * metadata.c
2399         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
2400         instead of a `MonoGenericContext *'.
2401         (mono_metadata_parse_method_signature_full): Likewise.
2402
2403 2005-09-26  Martin Baulig  <martin@ximian.com>
2404
2405         * class.c
2406         (mono_class_from_generic_parameter): Set `klass->generic_container'
2407         (mono_class_from_generic_parameter): Likewise.
2408         (mono_bounded_array_class_get): We inherit the generic container
2409         from the element class.
2410
2411         * loader.c
2412         (find_method, find_method_in_class): Take a `MonoGenericContext *'
2413         argument rather than computing it here.
2414         (method_from_memberref): Correctly set the generic context before
2415         parsing the signature.  Fixes #75681.
2416
2417 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
2418
2419         * object.c (mono_class_has_special_static_fields): Fix warnings.
2420
2421 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2422
2423         * assembly.c: Add parse_public_key function, to
2424         par the public keys. Also added mono_assembly_name_parse_full,
2425         to define it the parsed key should be freed or not.
2426         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
2427         to parse a long format assembly name.
2428         * metadata-internals.h: Keep mono_assembly_name_parse_full as
2429         private, since calling it to preserve the key requires
2430         freeing it manually.
2431         
2432 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
2433
2434         * locales.c : removed HAVE_ICU part.
2435
2436 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
2437
2438         * object.c (mono_class_create_runtime_vtable): Avoid calling 
2439         field_is_special_static if the klass has no special static fields.
2440
2441         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
2442         (MonoCachedClassInfo): Likewise.
2443
2444         * object.c (mono_class_has_special_static_fields): New helper function.
2445
2446 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2447
2448         * class.c (mono_class_create_from_typedef): Don't call 
2449         interfaces_from_typedef_full for enums.
2450         (mono_class_create_from_typedef): Compute the base types of enums directly
2451         without calling mono_class_setup_fields ().
2452         (mono_class_find_enum_basetype): New helper function.
2453
2454         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
2455         one place inside the string heap.
2456         
2457 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
2458
2459         * class.c: locking fixes, code cleanups, some docs added.
2460         Allocate some data structures in the image mempool.
2461
2462 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2463
2464         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
2465         the example code.
2466         
2467 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
2468
2469         * class-internals.h, class.c, reflection.c: reduce memory taken by
2470         MonoClass.
2471
2472 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
2473
2474         * metadata.c, metadata.h, loader.h: documentation updates, code and
2475         API cleanups.
2476
2477 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2478
2479         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
2480         the example code.
2481
2482         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
2483         page faults caused by the runtime while reading metadata.
2484
2485 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2486
2487         * socket-io.c: the field names were changed 3 months ago and no one
2488         realized until bug #76077 got filed!
2489
2490 2005-09-20  Martin Baulig  <martin@ximian.com>
2491
2492         * icall.c (assembly_icalls): Removed some unused debugger icalls.
2493
2494 2005-09-20  Martin Baulig  <martin@ximian.com>
2495
2496         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
2497         write the rank into the class entry.
2498
2499 2005-09-20  Martin Baulig  <martin@ximian.com>
2500
2501         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
2502
2503 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
2504
2505         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2506
2507         * icall.c (custom_attrs_defined_internal): New icall.
2508
2509         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
2510         function.
2511         (mono_custom_attrs_construct_by_type): New helper function.
2512
2513 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
2514
2515         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
2516         terminate the resulting string. Fixes #76123.
2517
2518 2005-09-16  Martin Baulig  <martin@ximian.com>
2519
2520         * mono-debug.c
2521         (mono_debug_add_method): Ignore inflated methods for the moment.
2522
2523 2005-09-14  Martin Baulig  <martin@ximian.com>
2524
2525         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
2526
2527 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
2528
2529         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
2530         return a success/failure indication.
2531         (mono_metadata_interfaces_from_typedef_full): Ditto.
2532         (get_constraints): Ditto.
2533
2534 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
2535
2536         * marshal.c (emit_marshal_array): Fix handling of null arrays.
2537         
2538         * marshal.c (emit_marshal_array): Add support for returning string
2539         arrays from delegates. Fixes #76063.
2540
2541         * marshal.c: Use the emit_ldloc/stloc macros where possible.
2542
2543 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
2544
2545         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
2546         icall.
2547
2548 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
2549
2550         * reflection.c icall.c: Fix after mono_get_exception_type_load
2551         signature change.
2552
2553         * assembly.c (mono_assembly_get_assemblyref): New helper function.
2554         (mono_assembly_load_reference): Use the new helper.
2555
2556         * class-internals.h (MonoLoaderError): New structure containing 
2557         information about type loading errors.
2558
2559         * class-internals.h loader.c: Add APIs to store per-thread loader
2560         error information.
2561
2562         * loader.c class.c: Set the loader error if needed.
2563
2564         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
2565
2566 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
2567
2568         * decimal.c: fixed to handle the broken ARM fp format.
2569
2570 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
2571
2572         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
2573         broken.
2574
2575 2005-09-06  Martin Baulig  <martin@ximian.com>
2576
2577         * domain.c (supported_runtimes): Added v2.0.50727.
2578
2579 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
2580
2581         * culture-info.h: reduce the size of some structures.
2582
2583 2005-09-05  Martin Baulig  <martin@ximian.com>
2584
2585         Reflect latest API changes in the August CTP.
2586
2587         * icall.c
2588         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
2589         ("MonoType.HasGenericArguments"): Removed.
2590         ("MonoMethod.BindGenericParameters"): Renamed to
2591         "MakeGenericMethod".
2592         ("MethodBuilder.BindGenericParameters"): Renamed to
2593         "MakeGenericMethod".    
2594
2595 2005-09-05  Martin Baulig  <martin@ximian.com>
2596
2597         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
2598
2599 2005-09-05  Martin Baulig  <martin@ximian.com>
2600
2601         Applying a patch from Michal Moskal <malekith@nemerle.org>.
2602
2603         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
2604         generic_container is non-NULL.
2605
2606 2005-09-05  Martin Baulig  <martin@ximian.com>
2607
2608         Applying a patch from Michal Moskal <malekith@nemerle.org>.
2609
2610         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
2611
2612 2005-08-29  Michal Moskal  <malekith@nemerle.org>
2613
2614         * reflection.c (encode_locals,
2615         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
2616         for large generic types.
2617
2618 2005-09-05  Martin Baulig  <martin@ximian.com>
2619
2620         Applying a patch from Michal Moskal <malekith@nemerle.org>.
2621
2622         * class.c (mono_dup_array_type): New public method.
2623         (mono_metadata_signature_deep_dup): New public method.
2624         (dup_type): Correctly duplicate array and function types.
2625
2626 2005-09-05  Martin Baulig  <martin@ximian.com>
2627
2628         Applying a patch from Michal Moskal <malekith@nemerle.org>.
2629
2630         * reflection.c (get_default_param_value_blobs): Handle generic types
2631         and generic methods.
2632
2633 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
2634
2635         * class.c: Fixed error reporting (method/class were inversed) for 
2636         inheritance demands.
2637         * security-manager.c|h: Added the AppDomain when calling the managed
2638         System.Security.SecurityManager.InheritanceDemand method.
2639
2640 2005-09-01  Raja R Harinath  <rharinath@novell.com>
2641
2642         * reflection.c (encode_marshal_blob): 'marshaltype' and
2643         'marshaltyperef' are alternate sources for the custom marshaler
2644         name.
2645
2646 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
2647
2648         * class.c: fix creation of array classes with rank == 1
2649         (patch by Ankit Jain <jankit@novell.com>).
2650
2651 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
2652
2653         * object.c: fix check for creating the bound data for arrays vs
2654         szarrays.
2655
2656 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2657
2658         * object.c: configuration file name is now based on the executable name,
2659         not the image name. Fixes bug #75931.
2660
2661 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
2662
2663         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
2664         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
2665
2666 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
2667
2668         * rand.c: Use wincrypt.h instead of WinCrypt.h.
2669
2670 2005-08-24  Ankit Jain  <jankit@novell.com>
2671             Raja R Harinath  <rharinath@novell.com>
2672
2673         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
2674           called by it recursively.
2675           (mono_class_init): Remove special case in pending_init handling, since it's
2676           superseded by the fix to mono_class_from_typeref.
2677
2678 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
2679
2680         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
2681         BROKEN_THREAD_START stuff.
2682
2683 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
2684
2685         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
2686         trampoline.
2687
2688         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
2689         
2690         * object.c (mono_delegate_ctor): Replace the original function address with
2691         a delegate trampoline.
2692
2693 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
2694
2695         * icall.c: add boolean argument to base64_to_byte_array and 
2696         InternalFromBase64String to control whether a whitespace-only string
2697         is allowed (or should casue a FormatException to be thrown). We need
2698         this as the behavior has changed between MS.NET 1.x and 2.0, and we
2699         to match the MS behaviour in both profiles.
2700         * appdomain.c: Bump corlib version.
2701
2702 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2703
2704         This patch implements a big portion of publisher policy
2705         support, used to bind assembly versions and redirect
2706         one assembly from version A to version B.
2707
2708         * assembly.c:
2709         New GSList loaded_assembly_bindings, for storing the cached
2710         assembly bindings.
2711         (assembly_binding_maps_name): New static function for checking if a 
2712         assembly binding information maps an assembly name.
2713         (mono_assembly_binding_info_free): New function for freeing
2714         assembly binding information resources.
2715         (get_publisher_policy_info): New static function for retrieving 
2716         assembly binding information from a MonoImage.
2717         (compare_versions): New static function for comparing an assembly
2718         binding information data and the version of an assembly name.
2719         (check_policy_versions): New static function for checking if an
2720         assembly binding info mapping an assembly name is valid for it.
2721         (mono_assembly_load_publisher_policy): New static function for
2722         loading the 'policy.major.minor.MyAssembly' image for an assembly
2723         with an assembly name 'aname'.
2724         (mono_assembly_bind_version): New static function for updating
2725         assembly redirection.
2726         (mono_assembly_apply_binding): New static function for applying
2727         assembly binding.
2728         (search_binding_loaded): New static function for searching 
2729         loaded assembly binding infos in the cache domain.
2730         (mono_assembly_load_full): Don't apply assembly binding for
2731         reflection only assemblies.
2732
2733         * metadata-internals.h: Add MonoAssemblyBindingInfo,
2734         which contains information about assembly binding. Also
2735         declare signature for mono_config_parse_publisher_policy ()
2736         function, used to retrieve pub policy info.
2737         
2738         * mono-config.c:
2739         (publisher_policy_start): New static function used to parse publisher 
2740         policy config files.
2741         (publisher_policy_parser): New static MonoParseHandler containing 
2742         the functions used when parsing config files.
2743         (mono_config_parse_publisher_policy): New function for parsing
2744         publisher policy files.
2745         
2746 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
2747
2748         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
2749
2750         * marshal.c (mono_delegate_free_ftnptr): Ditto.
2751
2752         * object.c (mono_get_addr_from_ftnptr): New helper function.
2753
2754         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
2755
2756         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2757
2758 2005-08-19  Dick Porter  <dick@ximian.com>
2759
2760         * threads.c, threads.h, appdomain.c, appdomain.h,
2761         profiler-private.h, monitor.c, object.c, object-internals.h,
2762         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
2763         store the thread ID, so it can hold a 64 bit value if needed.
2764
2765 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
2766
2767         * reflection.c (mono_reflection_create_dynamic_method): Store the
2768         handle class into the method references as well so ldtoken works in
2769         dynamic methods.
2770
2771         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
2772         types.
2773
2774 2005-08-19  Ankit Jain <jankit@novell.com>
2775
2776         Fix #75847.
2777         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
2778           here rather than using the method signature of a arbitrary function
2779           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
2780           two arguments.
2781           Hack done with Harinath.
2782
2783 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2784
2785         * threadpool.c: disable printing stack traces when we get a exception
2786         in a threadpool thread. I need to do more testing to figure out which
2787         cases actually print this. Fixes bug #75828.
2788
2789 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2790
2791         * icall.c: there might be ignored whitespace after the last '='. This
2792         fixes length computation and bug #75840.
2793
2794 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
2795
2796         * assembly.c (mono_assembly_load_full): Consider .exe extension as
2797         well. Fixes #75809.
2798
2799         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
2800         #75784.
2801         
2802         * reflection.c (create_custom_attr_data): Ditto.
2803
2804 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
2805
2806         * locales.c, culture-info.h : removed RegionLCIDMap.
2807         * culture-info-tables.h : regenerated.
2808
2809 2005-08-16  Martin Baulig  <martin@ximian.com>
2810
2811         * class.c (mono_type_get_name_recurse): Small fix.
2812
2813 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
2814
2815         * locales.c : indentation fixie.
2816
2817 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
2818
2819         * object-internals.h,
2820           locales.h,
2821           locales.c,
2822           culture-info.h,
2823           icall.c : added RegionInfo table support.
2824         * culture-info-table.h : regenerated for region support.
2825
2826 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
2827
2828         * reflection.c (resolve_object): handle all kinds of MonoMethod
2829         including generic ones
2830
2831 2005-08-12  Ankit Jain <jankit@novell.com>
2832
2833         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
2834           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
2835
2836 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
2837
2838         * process.c: Don't close a thread handle when it's NULL. This is a
2839         workaround for bug #75733.
2840
2841 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
2842
2843         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
2844
2845 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
2846
2847         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
2848
2849 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2850
2851         * threadpool.c: if a work item in the thread pool has a callback that
2852         catches a exception, don't propagate it after invoking the callback.
2853         Fixes bug #75336.
2854
2855 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
2856
2857         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
2858
2859         * class-internals.h (MonoCachedClassInfo): Add some new fields.
2860
2861         * class.c (mono_class_init): Load field info lazily in the AOT case.    
2862
2863         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
2864
2865 2005-08-03  Ankit Jain  <jankit@novell.com>
2866
2867         Fix #75683.
2868         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
2869           PInvoke calling convention is 0.
2870
2871 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
2872
2873         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
2874         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
2875
2876 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
2877
2878         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
2879         to handle threads not started by the GC (patch by Michael Meeks
2880         <michael.meeks@novell.com>).
2881
2882 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
2883
2884         * reflection.c: Make buffer used in emitting types larger for some
2885         big generic types (patch by Michal Moskal).
2886
2887 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
2888
2889         * mono-debug.c: Fix some (not all) alignment problems.
2890
2891 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2892
2893         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
2894         Invoke mono_image_load_from_data_full passing the refonly
2895         parameter.
2896
2897         * assembly.c
2898         (mono_assembly_open_from_bundle): Add the refonly argument, 
2899         in order to pass it to other methods it calls to.
2900         (do_mono_assembly_open): Add the refonly argument, in order 
2901         to pass it to other methods it calls to.
2902         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
2903         the refonly parameter to it.
2904
2905         * image.c: Add loaded_images_refonly_hash and
2906         loaded_images_refonly_guid_hash to cache the reflection
2907         only loaded images.
2908         (mono_images_init): Initialize the hash tables used for
2909         caching the reflection only images.
2910         (load_modules): Invoke mono_image_open_full passing the refonly
2911         parameter to load the modules the correct way.
2912         (build_guid_table): Add the refonly argument, to re-build the 
2913         correct hash table.
2914         (do_mono_image_open): Added the refonly argument, in order to
2915         define it for the loaded image.
2916         (mono_image_loaded_full): New function, which receives an
2917         additional parameter to look for the image in the refonly or
2918         non-refonly section.
2919         (mono_image_loaded): Updated, using mono_image_loaded_full.
2920         (mono_image_loaded_by_guid_full): The same case that happens
2921         with mono_image_loaded_full.
2922         (mono_image_loaded_by_guid): Likewise.
2923         (register_image): Use the ref_only variable inside MonoImage
2924         to decide in which hash table store the current image.
2925         (mono_image_open_from_data_full): Rename
2926         mono_image_open_from_data to mono_image_open_from_data_full,
2927         adding the refonly argument, to define the ref_only variable 
2928         inside MonoImage.
2929         (mono_image_open_from_data): Return 
2930         mono_image_open_from_data_full.
2931         (mono_image_open_full): Rename mono_image_open to
2932         mono_image_open_full, receiving the new refonly argument,
2933         to pass it to inner methods.
2934         (mono_pe_file_open): Update this function, to open
2935         a MonoImage as a non-refonly image.
2936         (mono_image_close): Use the refonly variable inside
2937         MonoImage to remove the image from the correct caches.
2938
2939         * image.h: Add the signatures of mono_image_open_full,
2940         mono_image_open_from_data_full, mono_image_loaded_full,
2941         mono_image_loaded_by_guid_full.
2942
2943         * metadata-internals.h: Add the ref_only field to 
2944         MonoImage.
2945         
2946 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2947
2948         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
2949         Fix the last behavior, which used to load the assemblies and
2950         extract MonoReflectionAssemblyName information, instead of
2951         extract it from the metadata tables. Needed for Reflection
2952         Only assemblies.
2953         
2954 2005-07-29  Martin Baulig  <martin@ximian.com>
2955
2956         * mono-debug-debugger.c
2957         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
2958         not initialized.
2959
2960         * mono-debug.c
2961         (mono_debug_address_from_il_offset): Check whether we have
2962         debugging support before attempting to take the lock.
2963         (mono_debug_source_location_from_address): Likewise.
2964         (mono_debug_source_location_from_il_offset): Likewise.
2965         (mono_debug_il_offset_from_address): Likewise.
2966         (mono_debug_address_from_il_offset): Likewise.
2967
2968 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
2969
2970         * class.c (mono_class_from_name_case): Add support for dynamic images.
2971         Fixes #75650.
2972
2973         * object.c (mono_class_compute_gc_descriptor): Add a workaround
2974         for #75479.
2975
2976 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
2977         
2978         * reflection.c (mono_method_get_object): Fix warning.
2979
2980 2005-07-28  Martin Baulig  <martin@ximian.com>
2981
2982         * mono-debug.c
2983         (mono_debug_add_wrapper): Also write the wrapper type.
2984
2985 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
2986
2987         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
2988         
2989         * class.c (mono_class_init): Avoid reading nested classes if the AOT
2990         data indicates the class has none.
2991
2992 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
2993
2994         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
2995         loader lock with the debugger lock. Prevents deadlocks for beagle.
2996
2997         Beagle can now run on an smp box for a weekend without any
2998         issues. Woohoo!
2999
3000 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
3001
3002         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
3003         in a module. Fixes #75629.
3004
3005 2005-07-26  Martin Baulig  <martin@ximian.com>
3006
3007         * mono-debug.c (mono_debug_add_wrapper): New static method.
3008         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
3009         interncall or a wrapper.
3010
3011         * mono-debug.h (MonoDebugWrapperData): New public typedef.
3012         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
3013         (MONO_DEBUGGER_VERSION): Bump to 51.
3014
3015         * mono-debug-debugger.c
3016         (mono_debugger_add_type): Removed this empty function.
3017         (mono_debugger_add_method): Likewise.
3018
3019 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
3020
3021         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
3022         before accessing method->slot.
3023
3024 2005-07-21  Jb Evain  <jbevain@gmail.com>
3025
3026         * reflection.c (method_encode_clauses/class): Handle filters clauses.
3027         Fixes #75010.
3028
3029 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
3030
3031         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
3032         #75587.
3033
3034 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
3035
3036         * image.h image.c: Add mono_image_get_guid () API function.
3037
3038 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
3039
3040         There were issues when multiple threads tried to load
3041         assemblies. A deadlock was created between assemblies_mutex and
3042         mono_domain_assemblies_lock. This fixes the issue by making the
3043         assembly ref counting be lock free. See bug 75586.
3044         
3045         * image.c (mono_image_close): The add ref function here was using
3046         Interlocked operations while the unref was using a mutex and a
3047         --. I don't think this was ever a bug that would be exposed in a
3048         non-pendantic way (ie, by an embedder doing a ref on one thread
3049         and an unref on another), but for the sake of correctness, this is
3050         now Interlocked.
3051
3052         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
3053         (mono_assembly_load_reference): Call mono_assembly_addref rather
3054         than touching the refcount ourselves.
3055         (mono_assembly_close): Use InterlockedDecrement to unref the
3056         assembly. Don't acquire the lock unless it is actually needed.
3057
3058 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3059
3060         * class.c (mono_class_layout_fields): Fix calculation of has_references
3061         for generic types.
3062
3063 2005-07-12  Martin Baulig  <martin@ximian.com>
3064
3065         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3066
3067         * metadata.c
3068         (mono_type_hash): Provide better hashing for generic instances.
3069         (mono_generic_inst_hash): Improve hashing.
3070         (mono_generic_class_hash): Likewise.
3071
3072         * reflection.c (mymono_metadata_type_hash): Improve hashing for
3073         generic instances.
3074
3075 2005-07-12  Martin Baulig  <martin@ximian.com>
3076
3077         * reflection.c (mono_reflection_create_runtime_class): Remove the
3078         hack for generic type definitions and non-`Run' assemblies.
3079         (mono_reflection_bind_generic_parameters): Also use
3080         `klass->wastypebuilder' to check for TypeBuilders.
3081
3082 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3083
3084         * class.c (mono_class_layout_fields): Fix calculation of has_references
3085         for generic types.
3086
3087         * class.c (inflate_generic_class): Fix a leak.
3088         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
3089         for generic types.
3090
3091 2005-07-11  Martin Baulig  <martin@ximian.com>
3092
3093         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
3094         on error.
3095
3096 2005-07-11  Martin Baulig  <martin@ximian.com>
3097
3098         * loader.c (find_method): Also lookup in
3099         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
3100
3101 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3102
3103         * appdomain.c (mono_domain_unload): Don't free the error message
3104         before passing it to mono_get_exception_...
3105
3106         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
3107         
3108 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
3109
3110         * threads.c: try to better guess an available RT signal (bug #75387).
3111
3112 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3113
3114         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
3115         and CACHE_OBJECT.
3116
3117 2005-07-07  Martin Baulig  <martin@ximian.com>
3118
3119         * class.c (mono_type_get_name_full): Return NULL for
3120         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
3121         fixes #75408.
3122
3123 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3124
3125         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
3126         exit the appdomain as well being aborted.
3127
3128         * threadpool.c: Create all threadpool threads inside the root appdomain, and
3129         change back to the root domain after calling managed code. This enables
3130         appdomains using threadpools to be unloaded.
3131
3132 2005-07-07  Martin Baulig  <martin@ximian.com>
3133
3134         * class-internals.h
3135         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
3136         into `MonoDynamicGenericClass' since we only need it for dynamic
3137         types.
3138
3139         * reflection.c (mono_class_bind_generic_parameters): We don't need
3140         to compute the `parent' here.
3141
3142 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
3143
3144         * culture-info-table.h : regenerated.
3145
3146 2005-07-06  Martin Baulig  <martin@ximian.com>
3147
3148         * icall.c
3149         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
3150
3151         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
3152
3153 2005-07-06  Martin Baulig  <martin@ximian.com>
3154
3155         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
3156         we're doing a signature-only comparision; fixes #74945.
3157
3158 2005-07-06  Martin Baulig  <martin@ximian.com>
3159
3160         * class-internals.h (MonoGenericClass): Moved some things out into
3161         a new `MonoInflatedGenericClass' type.  
3162         (MonoInflatedGenericClass): New type; the `klass' of a
3163         `MonoGenericClass' is now computed lazyly in
3164         mono_get_inflated_generic_class().      
3165
3166         * class.c (mono_get_inflated_generic_class): New public function.
3167         (mono_class_inflate_generic_method): Removed the unused
3168         `MonoClass *' argument.
3169         (setup_generic_vtable): Don't call mono_get_inflated_method() on
3170         all the methods.
3171         (mono_class_create_generic): Make this static and merge it with
3172         mono_class_create_generic_2(); we're now called automatically from
3173         mono_get_inflated_generic_class().
3174
3175         * loader.c (mono_method_signature): Call
3176         mono_get_inflated_method() here.
3177
3178 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
3179
3180         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
3181         type of fields with RVA.
3182
3183         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
3184         for this pseudo class.
3185         (my_mono_class_from_generic_parameter): Likewise.
3186         (mono_class_init): Allow interfaces to have cctors.
3187
3188 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3189
3190         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
3191         lazily for AOT methods.
3192
3193 2005-07-05  Martin Baulig  <martin@ximian.com>
3194
3195         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
3196         returns FALSE for a successful match, not TRUE.
3197
3198 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3199
3200         * loader.c (mono_method_get_index): Optimize this a bit.
3201
3202 2005-07-04  Martin Baulig  <martin@ximian.com>
3203
3204         * class.c
3205         (class_compute_field_layout): Move the check for generic type
3206         definitions into mono_class_layout_fields().  Fixes #74684.
3207         (mono_class_from_generic_parameter): Correctly compute
3208         `klass->parent'; fixes #75457.
3209
3210         * reflection.c (register_assembly, register_module): Make sure
3211         `domain->rejobject_hash' is already created.
3212
3213 2005-07-02  Martin Baulig  <martin@ximian.com>
3214
3215         * class-internals.h
3216         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
3217         `MonoDynamicGenericClass'.      
3218
3219 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
3220
3221         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
3222         returned by a field getter is null, since null is a valid value.
3223
3224 2005-07-01  Martin Baulig  <martin@ximian.com>
3225
3226         * reflection.c (mono_reflection_generic_class_initialize): Update
3227         the `dgclass->fields [i].parent' to the correct class.
3228         (mono_image_get_fieldref_token): Use the declaring type, not the
3229         reflected type.
3230
3231 2005-07-01  Martin Baulig  <martin@ximian.com>
3232
3233         * loader.c (find_method): Also look in the interfaces; fixes #75429.
3234
3235 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
3236
3237         * threads.c (thread_cleanup): assert that thread != NULL
3238         (wait_for_tids_or_state_change): We were using the wrong variable
3239         when accessing wait->threads. `i' was always out of the bounds of
3240         the array.
3241
3242 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3243
3244         * loader.c: map user32 and kernel32 to libMonoSupportW
3245
3246 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
3247
3248         * appdomain.c (unload_thread_main): Mark this as WINAPI.
3249
3250 2005-06-28  Martin Baulig  <martin@ximian.com>
3251
3252         * loader.c (method_from_methodspec): Fix #75334.
3253
3254 2005-06-28  Martin Baulig  <martin@ximian.com>
3255
3256         Fix #74953 - Arrays now implement the generic IList<T> interface
3257         on the 2.0 platform.
3258
3259         * class-internals.h (MonoDefaults): Added `generic_array_class'.
3260
3261         * reflection.c (mono_class_bind_generic_parameters): New public
3262         function; similar to mono_reflection_bind_generic_parameters(),
3263         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
3264
3265         * domain.c (mono_init_internal): Try to initialize.
3266         `mono_defaults.generic_array_class' here; this'll only succeed if
3267         we're using the 2.0 corlib.
3268
3269         * icall.c
3270         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
3271         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
3272         (mono_lookup_internal_call): Added support for nested classes.
3273
3274         * loader.c
3275         (mono_get_method_from_token): Set `result->signature->pinvoke' if
3276         we're an interncall and have generic arguments.
3277
3278         * class.c
3279         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
3280         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
3281         instance of System.Array.InternalArray<T> for arrays, so they
3282         implement the generic IList<T> interface.
3283
3284 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
3285
3286         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
3287         (chastamar@yahoo.com). Fixes #75374.    
3288
3289 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
3290
3291         * culture-info-table.h: regenerated.
3292
3293 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3294
3295         * icall.c: handle spaces correctly for base64 strings.
3296
3297 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
3298
3299         * *.c: Kill some warnings.
3300
3301 2005-06-23  Duncan Mak  <duncan@novell.com>
3302
3303         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
3304         that this builds on Solaris 10 (x86).
3305
3306 2005-06-23  Martin Baulig  <martin@ximian.com>
3307
3308         * class.c
3309         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
3310         generic type definitions.
3311
3312 2005-06-23  Martin Baulig  <martin@ximian.com>
3313
3314         Fix #75331.
3315
3316         * metadata.c (mono_class_get_overrides): Renamed to
3317         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
3318         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
3319         pass it to mono_get_method_full().
3320
3321 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
3322
3323         * reflection.c (mono_reflection_create_runtime_class): take the
3324         mono_domain_lock in this method. Prevents deadlocks
3325
3326 2005-06-22  Martin Baulig  <martin@ximian.com>
3327
3328         * loader.c (method_from_methodspec): Fix #75330.
3329
3330 2005-06-22  Martin Baulig  <martin@ximian.com>
3331
3332         * reflection.c (type_get_qualified_name): Use
3333         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
3334         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
3335         argument; use it if we don't have an assembly name.
3336
3337 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
3338
3339         * object.c: In mono_message_init, set "copy out" flag for in
3340         parameters with the [Out] flag.
3341
3342 2005-06-21  Martin Baulig  <martin@ximian.com>
3343
3344         * class.c
3345         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
3346         and MONO_TYPE_PTR.
3347
3348 2005-06-21  Martin Baulig  <martin@ximian.com>
3349
3350         * class.c (mono_class_init): Don't initialize `class->fields' for
3351         generic instances since they're initialized again in
3352         compute_field_layout(). 
3353         (compute_field_layout): Set the field's `generic_info' here; fix
3354         #75320. 
3355
3356 2005-06-21  Martin Baulig  <martin@ximian.com>
3357
3358         * class-internals.h
3359         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
3360
3361         * metadata.c (mono_metadata_generic_method_equal): Also
3362         distinguish the `generic_class'; fixes #75334.
3363
3364 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3365
3366         * domain.c:
3367         * appdomain.c:
3368         * domain-internals.h:
3369         * reflection.c: 'domain_assemblies' field is now protected by its own
3370         lock. Don't call into managed code to run the AssemblyLoad event if we
3371         now there are no registered delegates for it.
3372
3373 2005-06-20  Martin Baulig  <martin@ximian.com>
3374
3375         * class.c (mono_class_is_assignable_from): Use a custom version of
3376         mono_class_has_parent() to make things work for generic instances;
3377         fix #75300.
3378
3379 2005-06-20  Martin Baulig  <martin@ximian.com>
3380
3381         * loader.c (method_from_methodspec): Apply a patch from
3382         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
3383
3384 2005-06-20  Martin Baulig  <martin@ximian.com>
3385
3386         * class.c (mono_class_init): Reverted Zoltan's last change; it
3387         breaks generics.
3388
3389 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
3390
3391         * threads.c (wait_for_tids_or_state_change): Add missing locking.
3392
3393 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3394
3395         * socket-io.c: fix the index in the socket array for writable/error
3396         sockets. Fixes bug #75306.
3397
3398 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
3399
3400         * class.c (mono_class_init): Allow interfaces to have static ctors.
3401
3402 2005-06-17  Martin Baulig  <martin@ximian.com>
3403
3404         * loader.c (method_from_methodspec): Use `context->container' when
3405         parsing the `gmethod->inst'.
3406
3407 2005-06-17  Martin Baulig  <martin@ximian.com>
3408
3409         * class.c (mono_type_get_name_recurse): Don't add the assembly
3410         name for type arguments.
3411
3412 2005-06-15  Martin Baulig  <martin@ximian.com>
3413
3414         * reflection.c (mono_image_get_inflated_method_token): Encode
3415         correct klass; fixes #75260.
3416
3417 2005-06-13 Michal Moskal <malekith@nemerle.org>
3418
3419         * icall.c: Make GetCorrespondingMethod/Constructor take
3420         MonoReflectionMethod method not MonoMethod. Removed
3421         MonoType.GetCorrespondingField, and make
3422         MonoGenericType.GetCorrespondingField take name not
3423         MonoClassField.
3424
3425 2005-06-13  Michal Moskal <malekith@nemerle.org>
3426
3427         * reflection.c (field_encode_signature, encode_locals):
3428          Make sizes of buffers for types larger (for big generic types).
3429          (create_generic_typespec,
3430          mono_reflection_sighelper_get_signature_local,
3431          mono_reflection_sighelper_get_signature_field):
3432          Add asserts for too small buffers.
3433
3434 2005-06-15  Martin Baulig  <martin@ximian.com>
3435
3436         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
3437         if our parent is not a dynamic type.
3438
3439 2005-06-15  Martin Baulig  <martin@ximian.com>
3440
3441         * class-internals.h (MonoTypeNameFormat): New enum.
3442
3443         * class.c
3444         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
3445         (mono_type_get_full_name): Removed.
3446         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
3447         argument instead of the boolean's.
3448
3449         * icall.c (ves_icall_System_MonoType_getFullName):
3450         Added `gboolean assembly_qualified'.    
3451
3452         * reflection.h
3453         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
3454
3455         * reflection.c (mono_reflection_parse_type): Parse the new type
3456         name format.
3457
3458 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3459
3460         * icall.c: no need to convert from utf16 to utf8 and then back again
3461         after the call to GetLogicalDrives.
3462
3463 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3464
3465         * icall.c: frombase64. Fix problems exposed by new tests.
3466
3467 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3468
3469         * icall.c: added internal calls for converting char [] and strings in
3470         base64 into byte [].
3471
3472 2005-06-10  Martin Baulig  <martin@ximian.com>
3473
3474         * class.c (mono_class_create_generic_2): Read the nested classes
3475         from the metadata rather than from `gklass->nested_classes' since
3476         `gklass' might not be initialized yet.
3477
3478 2005-06-09  Duncan Mak  <duncan@novell.com>
3479
3480         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
3481         all public headers. Fixes #74919.
3482
3483 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
3484
3485         * domain.c: The key for proxy_vtable_hash is now a pointer
3486         array. Added new GHashFunc and GCompareFunc functions for this.
3487
3488         * class.h: The list of interfaces in MonoRemoteClass is known in
3489         advance and can't grow (we create a new MonoRemoteClass if needed),
3490         so now the interface array can be allocated together with
3491         MonoRemoteClass.
3492         
3493         * object.c: Added a new method create_remote_class_key.
3494         Fixed mono_remote_class so it does not depend on
3495         mono_upgrade_remote_class.
3496         Removed extend_interface_array.
3497         Added new method clone_remote_class(), which makes a copy of a remote
3498         class and adds a new interface or class to it.
3499         mono_upgrade_remote_class() now creates a new remote class (or gets
3500         it from the cache) if an vtable upgrade is needed. In this way
3501         we make sure that other objects sharing the same remote class
3502         don't get the new vtable with unwanted interfaces.
3503         
3504         * object-internals.h:
3505         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
3506         
3507         * marshal.c: Track changes in mono_upgrade_remote_class().
3508
3509 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
3510         * icall.c: Add runtime methods for obtaining members of inflated
3511         class, which were created from supplied non-inflated members. It
3512         is used in internal Get{Method,Constructor,Field} methods in
3513         System.Type
3514
3515 2005-06-09  Martin Baulig  <martin@ximian.com>
3516
3517         * reflection.c
3518         (mono_reflection_bind_generic_method_parameters): Fix #75169.
3519
3520 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3521         * reflection.c (mono_image_basic_init): Define
3522         Version in MonoDynamicAssembly. 
3523         
3524 2005-06-08  Martin Baulig  <martin@ximian.com>
3525
3526         Fix #75136.
3527
3528         * loader.c
3529         (mono_method_signature_full): New public method; takes a
3530         `MonoGenericContext *'.
3531         (find_method): Use mono_method_signature_full() and pass the
3532         klass'es context to it.
3533
3534         * class.c (mono_class_is_inflated_method): Use
3535         mono_method_signature_full() and pass the context to it.
3536
3537 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
3538
3539         * object.c: add proper locking in mono_remote_class_vtable(),
3540         fixes possible memory corruption.
3541
3542 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
3543
3544         * marshal.c (mono_remoting_marshal_init): set
3545         initialized after initialization.
3546
3547 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3548
3549         * locales.c : hush.
3550
3551 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
3552
3553         * object.c (extend_interface_array): fix really silly
3554         memory corrupting / comparison bug.
3555
3556 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3557
3558         * reflection.c: Functions added to support the creation
3559         of CustomAttributeData, which includes Attribute data
3560         used by ReflectionOnly methods.
3561
3562         * reflection.h:  mono_reflection_get_custom_attrs_data and
3563          mono_custom_attrs_data_construct added (functions exposed).
3564
3565          * icall.c: Added mono_reflection_get_custom_attrs_data
3566          as icall.
3567         
3568 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
3569
3570         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
3571         lupus's request.
3572
3573 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
3574
3575         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
3576
3577         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
3578         dynamic DllImportAttribute.
3579
3580         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
3581         dynamic DllImportAttribute.
3582
3583         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
3584         Fixes #75162.
3585
3586 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3587
3588         * threads.c: avoid segfault when an unstarted thread is aborted.
3589
3590 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
3591
3592         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
3593         Returns the name and version of the runtime for reporting.
3594
3595 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3596
3597         * appdomain.c: bump corlib version.
3598         * object-internals.h: new field in MonoReflectionAssembly.
3599
3600 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3601
3602         * object-internals.h: Carlos forgot to add this field.
3603
3604 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3605
3606         * icall.c: Added create_version to create instances
3607         of Version of MonoReflectionAssemblyName. This change helps
3608         the AssemblyName tests to keep running fine.
3609         
3610 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
3611   
3612         * object.c (mono_method_return_message_restore): A somehow less
3613         intrusive fix for #75138.
3614
3615 2005-06-03  Raja R Harinath  <rharinath@novell.com>
3616
3617         * object.c (mono_method_return_message_restore): Fix computation
3618         of expected number of out args.
3619
3620 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
3621
3622         * reflection.c (mono_image_get_method_info): Fix the case when the
3623         charset is empty.
3624
3625 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
3626
3627         * object.c: Added missing null check in
3628           mono_method_return_message_restore.
3629
3630 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
3631
3632         * reflection.c (mono_image_get_method_info): Handle the case when
3633         dllentry is empty.
3634
3635 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
3636
3637         * object.c: When creating the vtable for a proxy, take into account
3638         all inherited interfaces, not only the ones registered in
3639         iclass->interfaces. This fixs bug #74996.
3640         Also, in mono_method_return_message_restore, verify that the array
3641         of out args has the expected lengh.
3642
3643 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3644
3645         * socket-io.c: update the timeout in Poll when the call is interrupte.
3646
3647 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3648
3649         * socket-io.c: support abort/suspend in Select_internal after last
3650         change.
3651
3652 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3653
3654         * threadpool.c: remove warning.
3655
3656 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3657
3658         * icall.c:
3659         * socket-io.[ch]: Select_internal uses poll() now when available, thus
3660         removing the 1024 limit from select(). Runtime part of the fix for
3661         bug #71203.
3662
3663 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3664
3665         * socket-io.c: when resolving the addresses for the same
3666         host returned by gethostname(), get the local IPs from the interface
3667         list. Loopback addresses are discarded if the are interfaces up with
3668         non-loopback ones. Fixes bug #63265.
3669
3670 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
3671
3672         * appdomain.c, verify.c, object-internals.h, reflection.c:
3673         bumped corlib number to 36, and added new extra_flags field
3674         to ReflectionMethodBuilder and friends.  Fixes #75060.
3675
3676 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
3677
3678         * gc.c: register a new weak link only if the object is non-null
3679         (fixes bug#75047).
3680
3681 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3682
3683         * culture-info.h : short time pattern too.
3684
3685 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3686
3687         * culture-info.h : expand long time pattern string length.
3688
3689 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3690
3691         * culture-info-table.h : update (more French date format; #72788).
3692
3693 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
3694
3695         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
3696         the method is static. Fixes #75029.
3697
3698 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
3699
3700         * reflection.c: Update the table_idx field of method builders after
3701         saving the module, since it can change. This is a workaround for
3702         bug #74914. 
3703
3704 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3705
3706         * culture-info-table.h : update (additional French date format).
3707
3708 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
3709
3710         * icall.c (ves_icall_type_Equals): Revert last change.
3711         
3712         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
3713
3714         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
3715
3716 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
3717
3718         * class-internals.h: Added executioncontext_class field to 
3719         MonoDefaults structure.
3720         * domain.c: Cache System.Threading.ExecutionContext class in 
3721         mono_defaults.
3722         * object.c: Capture the ExecutionContext for asynchroneous calls in
3723          mono_async_result_new.
3724         * object-internals.h: Added execution_context and original_context 
3725         fields to MonoAsyncResult. Added execution_context to MonoThread.
3726         * security-manager.c|.h: Added mono_get_context_capture_method to 
3727         return the capture method (if required by the security manager or by
3728         the framework version used).
3729         * threadpool.c: Apply capture (if present) ExecutionContext in 
3730         mono_async_invoke and revert to original context after it completes.
3731
3732 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
3733
3734         * culture-info-table.h : updated (real hacky solution for zh-CHT).
3735
3736 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
3737
3738         * culture-info-table.h : zh-CHT related workaround.
3739
3740 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
3741
3742         * marshal.c (emit_marshal_custom): Add some error checking and call the
3743         methods in the ICustomMarshaler interface. Fixes #74875.
3744         
3745         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
3746         native->managed wrappers.
3747
3748 2005-05-12  Martin Baulig  <martin@ximian.com>
3749
3750         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
3751         here and use the loader lock.
3752
3753         * mono-debug.c: Properly lock when the debugger is not attached.
3754         (mono_debug_init): Release the initial lock if we're not running
3755         in the debugger.
3756
3757 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
3758
3759         * marshal.c (emit_marshal_custom): Pass through NULL values without
3760         calling the custom marshalling routines.
3761
3762         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
3763         conversion in structures. Fixes #74882.
3764
3765 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
3766
3767         * culture-info-table.h : zh-* cultures were missing.
3768
3769 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
3770
3771         * threads.c: Added a new event background_change_event which is signaled
3772         when a thread changes its background mode.
3773         Moved here several checks previously done in managed code. The checks
3774         require the thread lock, and using the thread lock in managed code
3775         can result in deadlocks.
3776         Merged Start_internal and Thread_internal into a single method. Now 
3777         Thread_internal does all work of creating and starting a thread.
3778         Added icalls for setting and getting the state of the object. Moved from
3779         managed code to avoid locking there.
3780         Added wait_for_tids_or_state_change() which is called instad of
3781         wait_for_tids when waiting for non-backround threads to end. This method
3782         will return if one of the threads ends or the background_change_event
3783         is signaled.
3784         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
3785         the background mode. This method signals the background_change_event
3786         event.
3787         * icall.c:
3788         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
3789         removed Start_internal.
3790         
3791 2005-05-11  Martin Baulig  <martin@ximian.com>
3792
3793         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
3794         to order of some fields to get proper alignment on 64-bit machines.
3795
3796 2005-05-11  Martin Baulig  <martin@ximian.com>
3797
3798         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
3799         changes as they're broken and completely fuck up the debugger.
3800
3801         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
3802
3803 2005-05-10  Martin Baulig  <martin@ximian.com>
3804
3805         * reflection.c (mono_reflection_generic_class_initialize): Don't
3806         call mono_class_setup_parent() here.
3807
3808 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3809
3810         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
3811         send/receive timeout use an integer in milliseconds. We were using a
3812         struct timeval.
3813
3814 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3815
3816         * locales.c:
3817         (internal_get_cultures): reserve the first slot of the array for the
3818         InvariantCulture, which will be filled in managed code.
3819
3820 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
3821
3822         * reflection.c (mono_image_fill_module_table): Initialize the
3823         GENERATION field as well.
3824
3825 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3826
3827         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
3828         Monitor.Enter on the object.
3829
3830 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
3831
3832         * threads.c: Enable the wait for running threads when exiting.
3833         * icall.c: Suspend all threads before exiting.
3834
3835 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
3836
3837         * assembly.c (mono_assembly_load_reference): Fix warning.
3838
3839 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3840
3841         * threadpool.c: changed the default number of threads per cpu. From now
3842         on, the default will be 20 + (5 * number of cpus) instead of 50.
3843
3844 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
3845
3846         * loader.c (mono_method_get_signature_full): Add locking here.
3847
3848 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
3849
3850         * appdomain.c: Moved methods for parsing and freeing assembly
3851         names to assembly.c.
3852         * assembly.c, domain-internals.h: Created public methods for parsing
3853         assembly names. Fixed mono_assembly_load_with_partial_name:
3854         it now finds the best match, taking into account the version,
3855         token and culture specified in the partial name. Also return
3856         the latest version if no version information is specified.
3857
3858 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
3859
3860         * threadpool.c: replace check for SocketAsyncCall class.
3861
3862 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3863
3864         * threadpool-internals.h:
3865         * Makefile.am: added threadpool-internals.h
3866
3867         * threadpool.c: call mono_unhandled_exception on exceptions not handled
3868         that happen in threadpool threads (tested on MS).
3869         (mono_thread_pool_remove_socket): new function that dispatch any pending
3870         AIO call on a socket that is closing. By now only epoll really needs it,
3871         as select/poll wake up when the socket closes.
3872
3873
3874         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
3875
3876 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
3877
3878         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
3879
3880 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
3881
3882         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
3883
3884 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
3885
3886         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
3887         has an abort request, convert it into a suspend request.
3888
3889 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
3890
3891         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
3892         warning for the usage of `UnmanagedFunctionPointerAttribute' which
3893         is not supported yet.
3894
3895 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3896
3897         * image.c: register assemblies loaded from data (bundles) in the loaded
3898         assemblies hash. Fixes bug #74772.
3899
3900 2005-04-29  Martin Baulig  <martin@ximian.com>
3901
3902         * class.c (mono_type_get_name_recurse): Update to the new naming
3903         schema from the latest .NET 2.x beta2.
3904         (mono_class_setup_vtable_general): If we're a generic instance,
3905         copy the vtable from our generic type definition and inflate all
3906         the methods in it.
3907
3908         * loader.c (find_method): Update to the new naming schema from the
3909         latest .NET 2.x beta2.
3910
3911 2005-04-29  Raja R Harinath  <harinath@gmail.com>
3912
3913         * class.c (mono_class_init): Add a mono_loader_unlock to the
3914         #74734 fix.
3915
3916 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
3917
3918         * icall.c (ves_icall_System_Environment_Exit): Remove the 
3919         suspend_all_other_threads () call for the time being, since it can hang.
3920
3921         * threads.c (mono_thread_manage): Similarly, disable the waiting for
3922         the background threads to exit, since it can also hang.
3923
3924         * class.c (mono_class_init): Applied patch from Ankit Jain 
3925         (radical@gmail.com). Avoid pending init errors when a field refers
3926         to a nested class using a typeref. Fixes #74734.
3927
3928         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
3929         this for dynamic modules.
3930
3931 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3932
3933         * threads.c: don't wait for threads that are in the process of aborting
3934         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
3935         and waiting for background threads to finish. This makes xsp and
3936         mod-mono-server exit without random length delays and/or hangs.
3937
3938 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3939
3940         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
3941
3942 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
3943
3944         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
3945         dynamic types to prevent infinite loops. Fixes #74727.
3946
3947         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
3948         ..._is_assignable_to.
3949
3950 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
3951
3952         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
3953
3954 2005-04-25  Martin Baulig  <martin@ximian.com>
3955
3956         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
3957
3958         * domain.c
3959         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
3960
3961         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
3962
3963         * reflection.c (build_compressed_metadata): Set metadata header
3964         version to 2.0.
3965
3966 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
3967
3968         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
3969         number into an integral and a decimal part. Fixes #70473.
3970
3971         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
3972
3973 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
3974
3975         * culture-info-table.h : reflected the latest locale-builder output.
3976
3977 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3978
3979         * threadpool.c: check for SuspendRequested too when deciding if
3980         mono_thread_interruption_checkpoint should be called.
3981
3982 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3983
3984         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
3985         * threads.c: remove interruption_mutex and use Interlocked instead. When
3986         suspending all the threads, wait for all the suspended events at once.
3987         If we're shutting down and get an APC that is going to be queued,
3988         call mono_thread_execute_interruption immediately, as the thread might
3989         be sleeping on a pthread condition or mutex.
3990
3991         * icall.c: call mono_runtime_set_shutting_down before suspending the
3992         threads.
3993
3994         Fixes bug #74693. And now xsp is happier when exiting.
3995
3996 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
3997
3998         * loader.c (mono_stack_walk): Fix #74690.
3999
4000 2005-04-22  Martin Baulig  <martin@ximian.com>
4001
4002         * mono-debug.h (MonoDebugMethodJitInfo): Added
4003         `MonoDebugMethodJitInfo *jit'.
4004
4005         * mono-debug.c (mono_debug_read_method): Cache the
4006         MonoDebugMethodJitInfo in `address->jit'.
4007         (mono_debug_free_method_jit_info): New public method.
4008
4009 2005-04-22  Martin Baulig  <martin@ximian.com>
4010
4011         * class.c (mono_class_is_assignable_from): Disallow
4012         type parameter -> interface.
4013
4014 2005-04-21  Dick Porter  <dick@ximian.com>
4015
4016         * threads.c (mono_thread_create): Turn an assertion into an error.
4017
4018 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
4019
4020         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
4021         
4022         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
4023         Fix some gcc 4.0 warnings.
4024
4025 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
4026
4027         * file-io.c: fix alt dir separator char on unix systems
4028         and cleanup (fixes bug #71214).
4029
4030 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
4031
4032         * marshal.c: Use CALLVIRT instead of CALL when dispatching
4033         a call to a remote domain, since the method may be an
4034         interface method in the client domain. This fixes bug #74192.
4035
4036 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4037
4038         * threadpool.c: recv/send are now performed before going back to managed
4039         code to save one transition.
4040
4041 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4042
4043         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
4044
4045         * metadata/threadpool.c: removed hack to workaround the bug above.
4046
4047         Fixes bug #74618.
4048
4049 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
4050
4051         * reflection.c reflection.h: Fix handling of parameter defaults in
4052         dynamic methods. Also fixes handling of parameter attributes.
4053         Fixes #74609.
4054
4055         * mono-debug.c (mono_debug_close_image): Fix warning.
4056
4057 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4058
4059         * socket-io.h: replaced old unused field with new 'blocking'.
4060         * threadpool.c: restore socket blocking state on windows(tm).
4061
4062 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
4063
4064         * icall.c: don't return the codebase in the AssemblyName[] returned by
4065         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
4066         * object-internals.h: Removed FIXME (fields were presents) and fixed
4067         versioncompat declaration.
4068
4069 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4070
4071         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
4072         not closed, so don't cleanup when it happens.
4073
4074 2005-04-13  Chris Toshok  <toshok@ximian.com>
4075
4076         * mono-debug-debugger.h: change prototype for
4077         mono_debugger_lookup_type.
4078
4079         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
4080         this function, although it should probably be named
4081         mono_debugger_init_type.
4082
4083 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4084
4085         * threadpool.c: fix non-AIO case.
4086
4087 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
4088
4089         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
4090         the built-in profiler to measure just JIT compilation times.
4091
4092 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4093
4094         * threadpool.c: the epollfd might be closed by another thread at
4095         any time, so ignore EBADF at treat it as a "we're closing" sign.
4096
4097 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4098
4099         * threadpool.c: release the semaphores with a count equals to the number
4100         of working threads in both IO and regular pools. Fixed typo that messed
4101         up the count of IO pool threads. Don't initialize the pipe handles if
4102         we're using epoll.
4103
4104 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4105
4106         * threadpool.c: some systems don't like a NULL when deleting the socket
4107         from epoll.
4108
4109 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4110
4111         * threadpool.c: fix semaphore allocation.
4112
4113 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4114
4115         * threadpool.c: added epoll() based implementation for asynchronous IO
4116         that is used instead of the default poll() when available.
4117         It can be disabled by setting MONO_DISABLE_AIO.
4118
4119 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4120
4121         * threadpool.c: windows needs 'closesocket' and instead of returning
4122         0 when the stream is closed while in select, it returns -1. Fixes bug
4123         #74573.
4124
4125 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
4126
4127         * class.c (class_compute_field_layout): Fix the regression caused by
4128         the previous try.
4129
4130 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4131
4132         * threadpool.c: separate pool for socket async. IO.
4133         * threadpool.h: mono_max_worker_threads is not a global any more.
4134
4135 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
4136
4137         * class.c (class_compute_field_layout): Fix #74549.
4138
4139 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4140
4141         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
4142         use 2 connected sockets instead.
4143
4144 2005-04-08  Miguel de Icaza  <miguel@novell.com>
4145
4146         * mono-config.c: Add new entry point for mkbundle
4147         mono_config_parse_memory. 
4148
4149 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4150
4151         * threadpool.c: removed another unused function.
4152
4153 2005-04-08  Ankit Jain  <radical@corewars.org>
4154
4155         * reflection.c (get_default_param_value_blobs): Add 'types'
4156         parameter to get the types encoded in the constant table.
4157         (mono_param_get_objects): Use the type from the constant table,
4158         not the type of the parameter, when creating default values.
4159         Handle null default values correctly.
4160
4161 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4162
4163         * file-io.c:
4164         * file-io.h:
4165         * threadpool.c:
4166         * threadpool.h:
4167         * icall.c:
4168         * socket-io.c: removed dead code for async IO.
4169
4170 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4171
4172         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
4173
4174         * threadpool.c: intercept socket async. calls and pass them to a thread
4175         that is polling and dispatching the job items to the threadpool as
4176         socket become ready. Fixes bugs #71217, #71933.
4177
4178         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
4179         between char and short/ushort arrays.
4180
4181         * socket-io.c: remove dead code.
4182
4183 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4184
4185         * locales.c,
4186           icall.c : removed InternalToUpper_Comp() and
4187           InternalToLower_Comp().
4188
4189 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4190
4191         * char-conversions.h : The tables were incorrectly generated. Should
4192           be generated against invariant culture.
4193
4194 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
4195
4196         * object.c (mono_runtime_invoke_array): Fix return value when 
4197         passing pre-created valuetype objects to ctors.
4198
4199         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
4200         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
4201         Fixes #74338.
4202
4203 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
4204
4205         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
4206         only used with --security and hides the wrong corlib version error.
4207
4208 2005-03-30  Joshua Tauberer  <tauberer@for.net>
4209
4210         * class.c: Changed mono_class_name_from_token so that types
4211         outside of a namespace don't have an initial period.  Improved
4212         the g_warning message used in _mono_class_get when loading
4213         fails.
4214         * assembly.c: In mono_assembly_load_reference, when an assembly
4215         can't be found, "No such file or directory" is misleading and
4216         unhelpful because a few paths were checked for the presence of
4217         the assembly.  When that happens (ENOENT), display a nicer
4218         message indicating the directories that were searched.  In all
4219         cases, the warning is made easier to read for non-hackers.
4220
4221 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
4222
4223         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
4224         project/solution.
4225         * appdomain.h|domain.c: Removed inline from functions.
4226         * appdomain.c: Reduced warnings when compiling on windows.
4227         * icall.c: Fixed output_debug declaration to gunichar2*.
4228         * mono-config.c: Reduced warnings when compiling on windows.
4229         * rand.c: Added missing "windows.h". Added missing return value.
4230         * rawbuffer.c: Added missing winsock2.h for windows.
4231         * sysmath.h: Added mono-compiler.h header to allow/ease 
4232         compilation with non-GCC compilers.
4233         * threads.c: Fixed declarations to compile with VS.NET C compiler.
4234         Removed cast warnings.
4235
4236         Adapted from the work of J Lothian (for VC6).
4237
4238 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
4239
4240         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
4241         from default_path.
4242
4243 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
4244
4245         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
4246         the 2.0 profile.
4247
4248 2005-03-27  Raja R Harinath  <harinath@gmail.com>
4249
4250         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
4251         has to be in $(exec_prefix).  $(prefix) is for arch-independent
4252         stuff, and it would probably use $(prefix)/share rather than
4253         $(prefix)/lib.
4254
4255 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4256
4257         * console-io.c: added 2 includes that might be missing.
4258
4259 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
4260
4261         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
4262         profile.
4263
4264         * reflection.c (create_custom_attr): Allocate the params array using
4265         alloca so it gets GC tracking.
4266
4267 2005-03-23  Chris Toshok  <toshok@ximian.com>
4268
4269         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
4270         out some spew.
4271
4272 2005-03-24  Raja R Harinath  <rharinath@novell.com>
4273
4274         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
4275         changes to pick up any changes in prefix, etc.
4276
4277 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4278
4279         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
4280         
4281         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
4282         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
4283
4284 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4285
4286         * class-internals.h object-internals.h class.c reflection.c: Extend the
4287         mono_lookup_dynamic_token () function to return the class of the
4288         token as well. 
4289
4290         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
4291         well. Fixes #73848.
4292
4293 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
4294
4295         * security-manager.c: Skip inheritance checks for intra-corlib
4296         class inheritance and method overrides. This skips a lot of checks
4297         and (anyway) permissions cannot work until corlib is loaded.
4298
4299 2005-03-23  Martin Baulig  <martin@ximian.com>
4300
4301         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
4302         MONO_TYPE_GENERICINST.  
4303
4304 2005-03-23  Martin Baulig  <martin@ximian.com>
4305
4306         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
4307
4308 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
4309
4310         * class.c: added locking comments to some functions.
4311         Cache the interface offsets arrays (saves about 20 KB
4312         of runtime memory in a typical app).
4313         Reduce the time overhead in mono_class_setup_supertypes ().
4314
4315 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
4316
4317         * icall.c: speedup and fix leaks in GetMethodsByName and
4318         GetPropertiesByName.
4319
4320 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
4321
4322         * reflection.c: some locking fixes.
4323
4324 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
4325
4326         * metadata.c: added missing break in case statement.
4327
4328 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
4329
4330         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
4331         typedbyref return values. Fixes #73941.
4332
4333 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
4334
4335         * security-manager.c|h: Added demandunmanaged method and 
4336         suppressunmanagedcodesecurity class to MonoSecurityManager.
4337         Renamed aptc class to allowpartiallytrustedcallers.
4338
4339 2005-03-17  Martin Baulig  <martin@ximian.com>
4340
4341         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
4342
4343 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4344
4345         * file-io.c: disabled file async. IO using aio_*. It uses the
4346         threadpool now. Workaround for bug #73718.
4347
4348 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
4349
4350         * assembly.h, mono-config.c: added code to deal with bundled configs
4351         for bundled assemblies.
4352
4353 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
4354
4355         * *.c, private.h: cleanup, removing old private.h header file.
4356
4357 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
4358
4359         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
4360         and throw_on_unmappable_char attributes.
4361
4362 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
4363
4364         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
4365         _ProcessName_internal.
4366
4367 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
4368
4369         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
4370         #73631.
4371
4372         * icall.c threads.c threads-types.h: Remove slothash icalls as they
4373         are no longer used.
4374
4375 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
4376
4377         * object.c (compute_class_bitmap): Add support for generics. Fixes
4378         #73527.
4379
4380 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
4381
4382         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
4383
4384 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4385
4386         * filewatcher.c: commented out the code for windows watcher, as we don't
4387         use it (we use the managed implementation instead).
4388
4389 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
4390
4391         * object-internals.h (MonoThread): Remove 'unused1' field.
4392
4393         * appdomain.c: Bump corlib version.
4394
4395         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
4396
4397         * reflection.c (mono_reflection_create_runtime_class): Remove the
4398         AssemblyBuilder.Save optimization since it causes too many problems.
4399
4400 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
4401
4402         * exception.c|h: Added mono_get_exception_reflection_type_load to
4403         create a ReflectionTypeLoadException object.
4404         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
4405         to return NULL is a InheritanceDemand fails during reflection. Updated
4406         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
4407         ReflectionTypeLoadException if an InheritanceDemand fails during 
4408         reflection. Added icall mapping for GetLinkDemandSecurity.
4409         * security-manager.c|h: Added ves_icall_System_Security_
4410         SecurityManager_GetLinkDemandSecurity internal call to return the
4411         class and methods permissions set for a LinkDemand. Removed unused
4412         fields in MonoSecurityManager.
4413
4414 2005-03-10  Martin Baulig  <martin@ximian.com>
4415
4416         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
4417         it's a generic instance.
4418
4419 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
4420
4421         * reflection.c (mono_get_object_from_blob): Applied patch from
4422         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
4423
4424         * class.c (mono_class_is_assignable_from): Another try at fixing 
4425         #73469 without breaking anything.
4426
4427 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
4428
4429         * class.c: (mono_class_is_assignable_from): Revert the last changes
4430         since they don't work with generics.
4431         
4432         * class.c (mono_class_is_assignable_from): Fix build bustage.
4433
4434         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
4435         the managed IsAssignableFrom method. Fixes #73469.
4436
4437         * reflection.c (mono_reflection_call_is_assignable_from): New helper
4438         function.
4439
4440 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
4441
4442         * object.c (mono_load_remote_field_new): Fix returning uninitialized
4443         memory when the remoting callback does not sets the out arguments.
4444         Fixes #73007.
4445
4446         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
4447         by mistake.
4448
4449         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
4450
4451         * object-internals.h (MonoStackFrame): Sync with managed object layout.
4452
4453         * appdomain.c: Bump corlib version.
4454
4455 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
4456
4457         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
4458         function.
4459
4460         * threads.c (mono_thread_attach): Detect threads which are not started
4461         by the GC pthread wrappers.
4462
4463 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
4464
4465         * icall.c: Added new icall for RNG.
4466         * rand.c|h: Added new icall to open the RNG. This allows to share a 
4467         single handle on Linux to access /dev/urandom and fix #73183.
4468
4469 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
4470
4471         * object.c: setting the new vtable in a transparent proxy object must
4472         not change the GC descriptor.
4473
4474 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
4475
4476         * object.c: fixed compilation without GCJ support.
4477         * reflection.c: for runtime-created types ensure klass->has_references
4478         is correct (bug #73215).
4479
4480 2005-03-02  Martin Baulig  <martin@ximian.com>
4481
4482         * class.c (mono_class_is_assignable_from): Make this work if
4483         `oklass' is a generic instance; fixes #72831.
4484
4485 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
4486
4487         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
4488         with hasthis set.
4489         
4490         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
4491
4492         * marshal.c: Reorganize native->managed marshalling code to also use
4493         the emit_marshal_... functions.
4494
4495 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
4496
4497         * object.c: typed allocs have issues with bitmap sizes > 30,
4498         so check for max_set >= 30.
4499
4500 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
4501
4502         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
4503         managed code. Fixes #73012.
4504
4505         * metadata.h (MonoMarshalSpec): Add elem_mult field.
4506
4507         * metadata.c reflection.c: Load/Emit elem_mult as well.
4508         
4509         * metadata.h (MonoMarshalSpec): Add comment.
4510
4511         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
4512
4513         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
4514         num_elem to -1 if not given.
4515
4516         * object-internals.h (MonoReflectionMarshal): Add has_size field.
4517
4518         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
4519         given values.
4520
4521 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
4522
4523         * null-gc.c (mono_gc_free_fixed): Was not compilable.
4524
4525 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
4526
4527         * reflection.c (encode_marshal_blob): Encode param_num field as well.
4528
4529         * object-internals.h (MonoReflectionMarshal): Add param_num field.
4530
4531 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
4532
4533         * object.c: generalized the reference bitmap creation
4534         and added hooks for the new GC.
4535         * class-internals.c: removed the gc_bitmap field from MonoClass.
4536
4537 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
4538
4539         * domain.c: help the compiler to produce better code
4540         in mono_jit_info_table_find ().
4541
4542 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
4543
4544         * object.c: make all allocations look typed.
4545
4546 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
4547
4548         * socket-io.c: load Mono.Posix if it's not loaded already
4549         (fixes bug#73033).
4550
4551 2005-02-24  Martin Baulig  <martin@ximian.com>
4552
4553         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
4554         * reflection.c (dup_type): Likewise.
4555
4556 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
4557
4558         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
4559         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
4560
4561 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
4562
4563         * domain.c, threads.c, object-internals.h: make the critical thread
4564         local vars use the fast access mode (even when we're compiled in
4565         a lib). Provide accessors to be used by the jit during codegen.
4566
4567 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4568
4569         * appdomain.c: Changed hook functios behavior to include
4570         support for the reflection only assemblies. Some icalls were changed
4571         to support the mentioned assemblies too. Signatures of static methods
4572         try_assembly_resolve and real_load now have an additional parameter:
4573         refonly.
4574
4575         * assembly.c: General changes to mono_assembly_ methods to support
4576         reflection only api. Functions mono_assembly_open, mono_assembly_load,
4577         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
4578         suffix, to support an additional gbool parameter to specify whether
4579         the assembli is reflection only or not. Created some new hook functions 
4580         to add support for reflection only assemblies. Signatures of static 
4581         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
4582         have now an additional parameter: refonly.
4583
4584         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
4585         indicating whether the assembly is reflection only or not.
4586
4587         * exception.c: Add mono_get_exception_invalid_operation.
4588
4589         * icall.c: Throw an InvalidOperationException when trying to invoke
4590         a property/method/event, or trying to set/get the value of a field.
4591         Also add an icall to retrieve the ref_only flag to the
4592         MonoReflectionAssembly.
4593
4594 2005-02-23  Chris Toshok  <toshok@ximian.com>
4595
4596         Part of fix for #72827.
4597         * mono-debug.c (mono_debug_add_method): add lexical block data to
4598         the info we write.  Kind of a hack at the moment - we copy the
4599         lexical block info from the MonoDebugMethodInfo to the
4600         MonoDebugMethodJitInfo here, before writing it.
4601         (mono_debug_read_method): read the lexical block info.
4602
4603         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
4604
4605         * debug-mono-symfile.h: add lexical block support.
4606
4607         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
4608         support.
4609
4610 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
4611
4612         * loader.c (mono_lookup_pinvoke_call): Fix warning.
4613
4614         * object.c (mono_runtime_free_method): Call mono_free_method () and
4615         put the TODOs there.
4616
4617         * loader.c (mono_free_method): Free up most memory allocated for 
4618         dynamic methods.
4619
4620 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
4621
4622         * reflection.c: properly flag a Type argument to a
4623         named custom attr value (bug #72248).
4624
4625 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
4626
4627         * reflection.c: reduce code duplication in named custom
4628         attribute encoding.
4629
4630 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
4631
4632         * reflection.c: properly encode custom attrs of type object
4633         (bug #72649).
4634
4635 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
4636
4637         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
4638
4639 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
4640
4641         * socket-io.c: load System.dll if it's not loaded already
4642         (bug #72850 and #70477).
4643
4644 2005-02-21  Martin Baulig  <martin@ximian.com>
4645
4646         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
4647         generic instances.
4648
4649 2005-02-21  Martin Baulig  <martin@ximian.com>
4650
4651         * reflection.c (mono_image_build_metadata): We also need to
4652         "fixup" the MethodImpl table after we computed the final method
4653         indices.  Call fixup_methodimpl() to do that.
4654         (fixup_methodimpl): New private method.
4655
4656 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
4657
4658         * assembly.c: special case mscorlib.dll (bug#72536),
4659         patch from Carlos Alberto Cortez.
4660
4661 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
4662
4663         * threads-types.h threads.c: Fix build bustage.
4664
4665         * threads.c: Use a union for long<->double conversions.
4666
4667         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
4668         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
4669
4670         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
4671         containing the checkpoint call with NOT_TAKEN.
4672         
4673         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
4674         checkpoint before pushing the arguments, so they won't have to be
4675         spilled to stack.
4676
4677 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
4678
4679         * domain.c, assembly.c, domain-internals.h: make some data
4680         const and relocation-free.
4681
4682 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
4683
4684         * object.c, appdomain.c, class-internals.h: introduce the
4685         MonoClassRuntimeInfo structure to hold the info needed to
4686         use a class at runtime. Made mono_class_vtable() lock-free
4687         for all the appdomains.
4688
4689 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
4690
4691         * metadata-internals.h, image.c: introduce a per-image mempool to
4692         be used for memory that has the same lifetime as the image.
4693
4694 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
4695
4696         * domain.c: In mono_init_internal(), instead of selecting the first
4697         runtime version supported by an executable, get a list of all
4698         supported versions and select the one for which an mscorlib exists
4699         (since even if the runtime supports a given version, it doesn't mean
4700         that the framework for that version is installed).
4701         Modified get_runtimes_from_exe to support this behavior.
4702         In supported_runtimes, added information about additional system
4703         assembly versions.
4704         
4705         * assembly.c: Added support for more than one system assembly version
4706         per runtime version. Updated the assembly list.
4707         In mono_assembly_remap_version, removed the initial version check,
4708         since we don't know to which version we need to compare until we
4709         get the version set on which the assembly is based.
4710         Moved the code for loading corlib into the new method
4711         mono_assembly_load_corlib(), so it can be used by the initialization
4712         code.
4713         
4714         * domain-internals.h: Updated data structures and added declaration
4715         for mono_assembly_load_corlib.
4716
4717 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
4718
4719         * reflection.c (resolve_object): Fix the creation of the signature in 
4720         the SignatureHelper case.
4721
4722         * assembly.c (mono_assembly_remap_version): Fix binary search.
4723         
4724 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
4725  
4726         * class.c: Added inheritance check when a method is overloaded (from a
4727         virtual method or when implementing an interface) and when a class is
4728         inherited. Added functions to set a failure for a class and to 
4729         retreive the exception from a failure.
4730         * class-internals.h: Added fields to MonoClass to keep the exception
4731         information status for inheritance (or other exceptions) to be thrown
4732         later (i.e. not at load time).
4733         * object.c: Throw the inheritance SecurityException when a type is to 
4734         be created with either class or method inheritance violations.
4735         * reflection.c|h: Fix when getting declsec from a class. Removed 
4736         unrequired code for class. Improved sanity in parameter naming.
4737         * security-manager.c|h: Added functions to check for class and method
4738         inheritance.
4739
4740 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
4741
4742         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
4743         and has_finalize in dynamic types as well.
4744
4745 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
4746
4747         * culture-info-table.h : fixed currency format for en-GB (and so on).
4748
4749 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
4750
4751         * gc.c: ensure the GC handles never have 0 as a value.
4752
4753 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
4754
4755         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
4756         a pointer to a struct to unmanaged code. Fixes #72625.
4757
4758 2005-02-16  Martin Baulig  <martin@ximian.com>
4759
4760         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
4761
4762 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
4763
4764         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
4765
4766 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
4767
4768         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
4769
4770         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
4771         UnmanagedFunctionPointerAttribute, use it for determining calling convention
4772         etc. Fixes #71471.
4773
4774         * reflection.c (mono_custom_attrs_get_attr): New helper function.
4775
4776         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
4777
4778 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
4779
4780         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
4781         changes to make the current context a field in MonoThread.
4782
4783 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
4784
4785         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
4786         the last change.
4787         
4788         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
4789         extracted from mono_marshal_get_native_wrapper.
4790
4791         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
4792         to create wrappers around native functions.
4793
4794         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
4795         delegates for arbitrary function pointers. Fixes #71472.
4796
4797 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
4798
4799         * threads.c: cleaned up the code a little.
4800
4801 2005-02-15  Martin Baulig  <martin@ximian.com>
4802
4803         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
4804         the data table.
4805
4806         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
4807         allocate larger chunks if needed.
4808
4809 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
4810
4811         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
4812         in by mistake.
4813
4814 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
4815
4816         * domain.c: keep the domains in an array and ensure the domain ids
4817         are kept small, so they can be used as indexes to domain-specific data
4818         with a small memory overhead.
4819
4820 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
4821
4822         * icall.c: Handle byref types in Type icalls. Fixes #72544.
4823
4824 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
4825
4826         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
4827
4828 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
4829
4830         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
4831
4832         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
4833         values.
4834
4835         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
4836         
4837 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
4838
4839         * domain-internals.h: add the hashtable here.
4840
4841         * class-internals.h: Remove `info' from MonoMethod
4842
4843         * domain.c: Add a new hashtable, jit_trampoline_hash
4844
4845 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
4846
4847         * object.c: don't set the value of static fields
4848         (fixes bug#72494).
4849
4850 2005-02-11  Martin Baulig  <martin@ximian.com>
4851
4852         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
4853         (mono_debug_add_method): Silently ignore the method if it's too big.
4854         (mono_debug_add_type): Likewise.
4855
4856 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
4857
4858         * threads.c, appdomain.c: remove #ifdefs from the code.
4859
4860 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
4861
4862         * metadata-internals.h: Added flags to MonoAssembly to cache the most
4863         common security informations. This allows us to stay in unmanaged code
4864         when doing LinkDemand and it's special cases (except for the first 
4865         time for initialization). The flags a very much used with --security.
4866         * reflection.c|h: Added code to get declarative security attributes 
4867         for LinkDemand and InheritanceDemand. This required to refactor the
4868         existing code for Demand.
4869         * security-manager.c|h: Added new method fields for the special cases
4870         of LinkDemand.
4871
4872 2005-02-10  Martin Baulig  <martin@ximian.com>
4873
4874         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
4875         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
4876
4877 2005-02-10  Martin Baulig  <martin@ximian.com>
4878
4879         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
4880         debugging code; this is almost a complete rewrite.
4881
4882         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
4883
4884 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
4885
4886         * domain.c, object.h: expose mono_string_equal () and 
4887         mono_string_hash ().
4888         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
4889         it's implemented in managed code.
4890
4891 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
4892
4893         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
4894         lo leak objects between appdomains.
4895
4896 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
4897
4898         * assembly.c: old compilers compilation fix from 
4899         robertj@gmx.net (Robert Jordan).
4900
4901 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
4902
4903         * class-internals.h: Little reminder for the future.
4904
4905         * debug-helpers.c: Fix up wrapper_type_names
4906
4907 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
4908
4909         * image.c, metadata-internals.h: when loading an image from a file,
4910         mmap all of it and use the same codepaths as when using a
4911         in-memory image: the code is simpler and we use less memory
4912         (both writable and readonly).
4913
4914 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
4915
4916         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
4917         API to alloc runtime data structures that need to be tracked by the
4918         GC and contain pointers.
4919         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
4920         make the code more readable and eventually use a different GC.
4921
4922 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
4923
4924         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
4925         for out arguments.
4926         
4927 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
4928
4929         * object.c: In release_type_locks(), don't release the cctor lock
4930         if it has already been released. This fixes a crash in the
4931         thread5 test.
4932
4933 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
4934
4935         * gc.c, marshal.c, icall.c: register a delegate for finalization
4936         only when the native function pointer has been allocated for it.
4937
4938 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
4939
4940         * object.c: cleaned up some code, allocate objects that are
4941         pointer free with the atomic malloc variant. Allocate memory
4942         for static data from the mempool if it's pointer-free.
4943         Allocate the bounds array at the end of the array data, when needed.
4944         * object-internals.h, object.h: move a private function in a private
4945         header.
4946         * class.c: handle missing case in tracking references in fields.
4947
4948 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
4949
4950         * class.c, class-internals.h: keep track if a type has
4951         reference fields in either the instance or static fields.
4952
4953 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
4954
4955         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
4956         and renamed to MonoRuntimeInfo. Added fields to store the expected
4957         framework assembly version. Changed mono_get_framework_version and
4958         mono_get_runtime_version for a single mono_get_runtime_info method.
4959         
4960         * assembly.c: Added method to remap system assembly versions to the
4961         current executing runtime version. Removed old mapping code.
4962         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
4963         
4964         * icall.c, reflection.c: Track api changes.
4965
4966 2005-02-06  Miguel de Icaza  <miguel@novell.com>
4967
4968         * loader.c (method_from_memberref): Improve error reporting,
4969         produce the class name instead of the typeref/typedef index. 
4970
4971 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
4972
4973         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
4974
4975 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
4976
4977         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
4978         stdcall and charset name mangling.  Reorganize the code and add
4979         some tracing stuff.
4980
4981 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
4982
4983         * monodiet.c: More iters!
4984
4985         * marshal.c: Iter usage.
4986
4987         * icall.c: Iter usage.
4988
4989         * object.c: Use iters.
4990
4991         * debug-helpers.c: More iters
4992
4993 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
4994
4995         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
4996         under win32.
4997
4998 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
4999
5000         * mono-debug-debugger.c: use iters
5001
5002         * class.c, class-internals.h: mono_class_setup_events is static
5003         now
5004
5005         * All callers: use iters
5006
5007 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5008
5009         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
5010         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
5011
5012 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5013
5014         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
5015
5016         * marshal.h: Add prototypes for ldfld/stfld_remote.
5017
5018         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
5019         this is called during startup.
5020         
5021 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
5022
5023         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
5024         MonoThreadsSync struct private in monitor.c. Changed the way
5025         MonoThreadsSync is allocated so it's faster and there is no
5026         need to keep track of it with a finalizer and it uses less memory.
5027         This also finally allows us to allocate mono objects as ptrfree when
5028         there are no reference fields.
5029
5030 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
5031
5032         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
5033         disappearing link to the GC interface and use them to simplify
5034         the gchandles code.
5035
5036 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5037
5038         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
5039         stfld_remote which call mono_load/store_field_new. This allows methods
5040         calling ldfld/stfld wrappers to be AOTed.
5041
5042         * console-io.c: Include sys/filio.h under solaris.
5043         
5044         * console-io.c: Include curses.h if needed correctly.
5045
5046 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5047         
5048         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
5049         method->klass as well.
5050
5051         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
5052
5053         * class.c (mono_class_init): Switch on lazy initialization of 
5054         methods.
5055
5056         * class.c (mono_class_get_finalizer): Handle the case when the 
5057         finalizer is inherited.
5058
5059 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5060
5061         * console-io.c: <curses.h> is needed by term.h on solaris.
5062
5063 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
5064
5065         * icall.c, class-internals.h, monodiet.c, class.c: Remove
5066         mono_class_setup_properties where possible. Remove this ftn from
5067         the header file, and make it static.
5068
5069 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5070
5071         * loader.c: Add missing setup_... call.
5072
5073         * class.c: Add missing setup_... calls.
5074
5075         * class.c (mono_class_init): Switch on lazy initialization of 
5076         the generic vtable.
5077         
5078         * class.c (mono_class_init): Fix generics broken by the recent changes.
5079
5080         * monodiet.c (handle_type): Add missing setup_... calls.
5081
5082         * class.c: Back out garbage in previous patch.
5083         
5084         * class.c: Add missing setup_... calls.
5085
5086         * class.c (mono_class_get_method_from_name_flags): Avoid calling
5087         mono_class_setup_methods () if possible.
5088
5089         * class-internals.h (MonoClass): Add 'has_cctor' flag.
5090
5091         * class-internals.h (MonoCachedClassInfo): New structure.
5092
5093         * class.c: Initialize properties and events fields of MonoClass lazily.
5094
5095         * class.c: Add infrastructure for lazily initializing the methods and
5096         vtable fields of MonoClass. Not yet used.
5097
5098         * class.c (mono_class_get_finalizer): New helper function.
5099
5100         * class.c: Add infrastructure for loading some class related data from
5101         an AOT file.
5102
5103         * object.c: Add infrastructure for initializing the vtable from data
5104         in the AOT file.
5105
5106         * gc.c (run_finalize): Use mono_class_get_finalizer ().
5107
5108         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
5109         appropriate initialization function before accessing parts of the
5110         MonoClass structure.
5111
5112         * marshal.c: Fix warnings.
5113         
5114         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
5115
5116         * mono-debug-debugger.c (get_exception_message): Use 
5117         mono_class_get_method_from_name_flags ().
5118
5119 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
5120
5121         * reflection.c, appdomain.c: Replace a few manual searches that
5122         Zoltan missed. (Paolo approved this part of my initial patch).
5123
5124 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
5125
5126         * profiler.c: disable recording statistical events at report time.
5127
5128 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5129
5130         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
5131         to byteswap arrays of enum values, too (bug #72080).
5132
5133 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
5134
5135         * appdomain.c (set_domain_search_path): Allow this to be called if
5136         domain->setup is not yet set.
5137
5138         * loader.c (mono_method_get_index): New helper function.
5139
5140         * loader.c reflection.c: Use mono_method_get_index ().
5141
5142         * class.c (mono_class_get_method_from_name_flags): New helper method.
5143
5144         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
5145         this.
5146
5147         * class.c (mono_class_get_cctor): New helper method.
5148
5149         * string-icalls.c object.c class.c marshal.c reflection.c: Use
5150         mono_class_get_method () to look up methods.
5151
5152 2005-02-01  Miguel de Icaza  <miguel@novell.com>
5153
5154         * console-io.c: Fix the build, this should work on Windows.
5155
5156 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
5157
5158         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
5159         be set to null to keep things valid
5160
5161 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5162
5163         * icall.c: added Console 2.0 icalls.
5164         * Makefile.am: added console-io.[ch]
5165         * console-io.[ch]: internal calls for Console 2.0 API.
5166
5167 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5168
5169         * class.c: make sure we consider all the interfaces
5170         when calculating max_interface_id (bug found by
5171         Jeroen Frijters running ikvm).
5172
5173 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
5174
5175         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
5176         valuetype fields to null.
5177
5178         * object.c (set_value): Ditto. Fixes #71669.    
5179
5180 2005-01-31  Martin Baulig  <martin@ximian.com>
5181
5182         * metadata.c (mono_metadata_has_generic_params): New public
5183         function; checks whether something is a generic method.
5184
5185 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
5186
5187         * appdomain.c: fix infinite recursion when adding assemblies.
5188
5189 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
5190
5191         * object.c: Fix small typo to return all items for Environment.
5192         GetCommandLineArgs.
5193
5194 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5195
5196         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
5197         reflection.c: more domain and assembly-unload related fixes
5198         and memory leaks plugs.
5199
5200 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
5201
5202         * 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.
5203
5204 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
5205
5206         * loader.c (mono_method_signature): Make this method lazy
5207         (mono_get_method_from_token): Don't computate the signature here.
5208
5209         Doing this saves quite a bit of memory. I got 90 kb on starting up
5210         monodoc. It should also save some disk reads on startup.
5211
5212         * *: MonoMethod->signature might be NULL now. You *MUST* use
5213         mono_method_signature.
5214
5215 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
5216
5217         * object.c (mono_runtime_get_main_args): Return an array from the
5218         current domain here. Fixes #71938.
5219
5220 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
5221
5222         * monitor.c: formatting changes to comply with the
5223         mono coding style and remove #ifdefs from the code.
5224
5225 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5226
5227         * metadata.c, private.h: remove some unneeded data
5228         and use a more compact representation for table schemas.
5229
5230 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
5231
5232         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
5233         to get a better distribution in hash tables.
5234         * *.c: use mono_aligned_addr_hash() where appropriate.
5235         * assembly.c: make var static.
5236
5237 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
5238
5239         * domain-internals.h: Put MonoJitInfo on a diet.
5240
5241         * domain.c: Fix a warning.
5242
5243 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5244
5245         * gc.c: rework the gc handles code to reuse handles
5246         when freed.
5247
5248 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5249
5250         * domain.c: fixed long standing bug in mono_string_equal() which
5251         was brought to light with the ldstr changes.
5252
5253 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
5254
5255         * reflection.c: Remove warning by adding missing include for marshal.h
5256
5257 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5258
5259         * domain.c, object.c: change the ldstr_table to hold
5260         MonoString* as keys: makes the runtime isinterned lookup
5261         faster and simplifies memory management.
5262
5263 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
5264  
5265         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
5266         possible to add imperative security checks before calling the icall.
5267         * reflection.c: Return security attributes on the original MonoMethod
5268         (and not the wrapped one). This fix permissions on icalls.
5269
5270 2005-01-25  Dick Porter  <dick@ximian.com>
5271
5272         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
5273         the check for mktime() support actually test the mktime() return
5274         value.  "Fixes" bug 71682, though the output is still different to
5275         MS.
5276
5277 2005-01-25  Martin Baulig  <martin@ximian.com>
5278
5279         * class.c (mono_class_is_assignable_from): Make this work for
5280         generic instances.
5281
5282 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
5283
5284         * marshal.c (mono_string_utf8_to_builder)
5285         (mono_string_builder_to_utf16): We might not have ownership of the
5286         string. In thise case, we need to create a new buffer.
5287
5288         * object-internals.h (mono_stringbuilder_capacity): sb->str might
5289         be null, in which case, use the default capacity.
5290
5291 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5292
5293         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
5294         GC events to the profiler.
5295
5296 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5297
5298         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
5299         if you don't want the GC to run.
5300
5301 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
5302
5303         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
5304         start providing a GC API and keeping different implementations in
5305         their own file.
5306         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
5307
5308 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
5309
5310         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
5311         mmap rather than allocating a huge buffer.
5312         (mono_debug_close_mono_symbol_file): Free the buffer allocated
5313         above.
5314
5315 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
5316
5317         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
5318         and CheckExecutionRights.
5319         * reflection.c|h: Keep the index of the declarative security to be 
5320         used, instead of the pointer, when AOT compiler is used. Also add 
5321         class initialization when requesting demands.
5322         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
5323         CheckExecutionRights. Both properties are now FALSE by default, and
5324         unmodifiable, unless the --security option is used.
5325
5326 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5327
5328         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
5329         reflection.c: properly refcount images and assemblies, many leaks fixed.
5330
5331 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5332
5333         * threadpool.c: increase the timeout for threads in the thread pool to
5334         10s.  Fixes bug #67159.
5335
5336 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5337
5338         * class-internals.h: Sun's compiler insists on explicit
5339         signed on bit fields to handle then correctly.
5340
5341 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
5342
5343         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
5344         Make the size of the array fit only the number of invalid path
5345         chars that we have.
5346
5347         * class.c (_mono_class_get): Improve the error reporting when a
5348         class referenced is not found, to assist debugging. 
5349
5350 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
5351
5352         * threads.c: fix off-by-one error.
5353         * domain.c: free data allocated in the domain.
5354
5355 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
5356
5357         * reflection.c (mono_method_body_get_object): Fill out exception info
5358         as well.
5359
5360         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
5361         structure.
5362         
5363 2005-01-19  Martin Baulig  <martin@ximian.com>
5364
5365         * loader.c (mono_get_method_constrained): Make this work again.
5366
5367 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
5368
5369         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
5370         guint16 to match the managed side.
5371
5372         * reflection.c (mono_reflection_body_get_object): Fill out local
5373         variables array.
5374
5375         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
5376         as well.
5377
5378         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
5379         'local_var_sig_token'.
5380
5381 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
5382
5383         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
5384         System.Drawing.
5385
5386         * reflection.c (mono_method_body_get_object): Handle abstract and
5387         runtime methods.
5388
5389 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
5390
5391         * marshal.c, loader.c, class-internals.h, reflection.c:
5392         store the emthod data for a wrapper in an array instead of a list.
5393
5394 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
5395
5396         * marshal.c: change the code to allocate memory more
5397         conservatively for method wrappers.
5398
5399 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
5400
5401         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
5402         fields from MonoClass to the marshal info structure where they belong.
5403
5404 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5405
5406         * class.c, object.c, class-internals.h, marshal.c: rearrange
5407         some fields and tweak some types to lower memory usage.
5408
5409 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
5410
5411         * threads.c (signal_thread_state_change): Handle the case when the
5412         target thread is the current thread.
5413
5414         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
5415
5416         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
5417         emit_ptr_to_object_conv. 
5418
5419         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
5420         marshalling. Fixes #71352.
5421
5422 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
5423
5424         * metadata.h, blob.h: move table enum to blob.h so it can be included
5425         in any header.
5426         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
5427         cut the size of MonoImage/MonoDynamicImage.
5428
5429 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
5430
5431         * profiler.c (mono_profiler_install_simple): Fix default arguments.
5432
5433 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5434
5435         * reflection.c, reflection.h, icall.c: add a function to check
5436         if an attribute type is defined for a metadata object.
5437
5438 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
5439
5440         * object-internals.h: Added some needed fields from StringBuilder class.
5441         * marshal.c: Set the maxCapacity when creating a StringBuilder.
5442
5443 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
5444
5445         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
5446         threads before shutting down the runtime.
5447
5448         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
5449
5450 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5451
5452         * object-internal.h, threads.c: implement stacksize and 
5453         parameterized thread start functionality (requires
5454         matching corlib). Marked broken code for later removal.
5455
5456 2005-01-12  Martin Baulig  <martin@ximian.com>
5457
5458         * class-internals.h (MonoGenericClass): Moved the `initialized'
5459         flag to MonoDynamicGenericClass, removed `init_pending'.
5460         (MonoGenericInst): Added `is_reference' flag.
5461
5462 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
5463
5464         * reflection.c (mono_image_create_pefile): Only set the pe_offset
5465         inside the MSDOS header. Fixes #71201.
5466
5467         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
5468         gc thread.
5469         (mono_domain_finalize): Ditto.
5470
5471 2005-01-12  Martin Baulig  <martin@ximian.com>
5472
5473         * class.c (mono_get_shared_generic_class): Use the cache for
5474         non-dynamic generic classes.
5475
5476         * class-internals.h (mono_class_create_generic_2): Removed
5477         function prototype, this function is now static inside class.c.
5478
5479         * class.c (mono_class_create_generic_2): Made this static, only
5480         call it from mono_class_init() and mono_class_setup_parent().
5481         (collect_implemented_interfaces_aux): Call mono_class_init() on
5482         the interfaces we collect.
5483         (mono_class_setup_vtable): Call mono_class_init (class->parent).
5484
5485 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
5486
5487         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
5488         it a real thread handle.
5489
5490         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
5491         MonoJitExceptionInfo, since each catch clause needs its own variable.
5492         
5493 2005-01-11  Dick Porter  <dick@ximian.com>
5494
5495         * image.c (mono_pe_file_open): New variant on mono_image_open()
5496         that does not set up the CLI metadata; used for FileVersionInfo so
5497         it can get the data for windows binaries too.
5498         
5499         * process.c (process_read_string_block): Don't read off the end of
5500         the StringTable block.
5501
5502         These both fix bug 70766.
5503
5504 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
5505
5506         * gc.c: set some fields to NULL at GC cleanup time.
5507         * threads.c: if we quit the main thread, call exit ().
5508
5509 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
5510
5511         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
5512
5513 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
5514
5515         * threads.h, threads.c, object.c: added accessor and settor for
5516         main_thread. Handle it specially when exiting from it: wait
5517         for other foreground threads to exit.
5518
5519 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
5520
5521         * process.c, verify.c: remove some bloat.
5522
5523 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
5524
5525         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
5526         the calling convention to cdecl under win32.
5527
5528 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
5529
5530         * object.c (mono_object_get_size): New function to get the size of
5531         an object instance.
5532
5533         * profiler.c (simple_allocation): Use above.
5534
5535 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
5536
5537         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
5538         ves_icall_System_AppDomain_getRootDomain (as it's not required to
5539         get an appdomain by it's id and we can't assume the root's id is 0).
5540         * domain-internals.h: Change the function prototype to match.
5541         * icall.c: Change the icall table for AppDomain.
5542
5543 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
5544
5545         * locales.c (string_invariant_compare_char): Only compute
5546         GUnicodeTypes in the case where we need them.  Test for ordinality
5547         first and return if so.
5548
5549         From the commit:
5550
5551                 /*
5552                  * FIXME: here we must use the information from c1type and c2type
5553                  * to find out the proper collation, even on the InvariantCulture, the
5554                  * sorting is not done by computing the unicode values, but their
5555                  * actual sort order.
5556                  */
5557
5558 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
5559
5560         * loader.c: for P/Invoke methods, allow the "Internal" shared
5561         library name to refer to the calling process symbol namespace.
5562
5563 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
5564
5565         * Makefile.am: Add the security manager to the build.
5566         * security-manager.c|h: New. Initialization of the security manager.
5567
5568 2005-01-07  Dick Porter  <dick@ximian.com>
5569
5570         * threads.c: 
5571         * monitor.c: Update thread state during Monitor and WaitHandle
5572         waits.  Fixes bug 71031.
5573
5574 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
5575
5576         * reflection.c (property_encode_signature): Correctly handle when the
5577         property has no methods.
5578
5579 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
5580
5581         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
5582         
5583         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
5584         fields from mb, not rmb. Fixes #71017.
5585
5586         * marshal.c (emit_ptr_to_str_conv): Add support for 
5587         ByValTStr -> string conversion. Fixes #71015.
5588
5589         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
5590
5591         * mempool.c (mono_mempool_contains_addr): New helper function.
5592
5593 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
5594
5595         * metadata.c (mono_metadata_compute_size): Fix size calculation of
5596         HasSematics encoded fields.
5597         
5598         * metadata.c (mono_type_to_unmanaged): Improve error message for 
5599         invalid string marshalling.
5600
5601         * metadata.c: Fix warnings.
5602         
5603 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5604
5605         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
5606         profiler support.
5607
5608 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
5609
5610         * domain.c object.c domain-internals.h: Revert part of r38077 since the
5611         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
5612         tests.
5613
5614 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
5615
5616         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
5617         so methods containing these can be AOTed.
5618
5619 2005-01-03  Martin Baulig  <martin@ximian.com>
5620
5621         * loader.c (find_method): Removed the hack for generic instances.
5622         (method_from_memberref): If our parent is a generic instance, pass
5623         its generic type definition to find_method() and then inflate the
5624         method.
5625         (mono_get_method_constrained): Pass the generic type definition to
5626         find_method() and inflate the method later.
5627
5628         * class-internals.h (MonoStats): Added `generic_class_count'.
5629
5630         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
5631         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
5632
5633         * reflection.c (mono_custom_attrs_from_params): Don't ignore
5634         generic type definitions.
5635
5636 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
5637
5638         * loader.c icall.c: Fix warnings.
5639
5640 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
5641
5642         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
5643         blittable types. Fixes #70864.
5644
5645 2004-12-29  Martin Baulig  <martin@ximian.com>
5646
5647         * icall.c
5648         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
5649
5650         * reflection.c (mono_method_get_object): Create a
5651         "System.Reflection.MonoGenericMethod" for inflated methods; don't
5652         call mono_get_inflated_method().
5653
5654         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
5655
5656 2004-12-27  Martin Baulig  <martin@ximian.com>
5657
5658         * class-internals.h (MonoMethod): Added `is_inflated' flag.
5659         (MonoMethodInflated): Added `inflated' field.
5660
5661         * class.c (mono_class_inflate_generic_method): Don't really
5662         inflate the method here; just set the `is_inflated' flag in the
5663         MonoMethod.
5664         (mono_class_get_inflated_method): Actually inflate the method here
5665         if it's not already inflated; we use the MonoMethodInflated's new
5666         `inflated' field as a cache.
5667
5668 2004-12-26  Martin Baulig  <martin@ximian.com>
5669
5670         * class.c
5671         (inflate_generic_class): Moved some code out of inflate_generic_type().
5672         (mono_class_inflate_generic_method): If we're already inflated,
5673         inflate the context and use the declaring method; ie. make sure
5674         the declaring method of an inflated method is always the generic
5675         method definition.
5676         (mono_class_create_from_typedef): Create
5677         `class->generic_container->context->gclass'.
5678
5679 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
5680
5681         * metadata-internals.h, marshal.c, reflection.c: More
5682         MonoGHashTable->GHashTable.
5683
5684         * domain-internals.h, class.c: Change MonoGHashTable's into
5685         GHashTables for some cases where no gc stuff is used
5686
5687         All users: update apis
5688
5689 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
5690
5691         * metadata.c (builtin_types): Make this `const'. Makes this get
5692         put into the shareable section.
5693         (mono_metadata_init): Casts to make gcc happy.
5694
5695 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
5696
5697         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
5698
5699 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
5700
5701         * icall.c: Added an internal call to retrieve the position and length
5702         of assembly-level declarative security attributes (RequestMinimum, 
5703         RequestOptional and RequestRefuse). This is used by the Assembly class
5704         to re-create the corresponding permission sets.
5705
5706 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
5707
5708         * marshal.c: fix the stelemref wrapper to be type correct
5709         (and faster).
5710
5711 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
5712
5713         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
5714         to do key & 0x7fffffff. Hashtable already does this. It just
5715         results in longer code.
5716
5717 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
5718
5719         * appdomain.c: Bump corlib version.
5720         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
5721         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
5722         * reflection.c|h: Add functions to get declarative security infos
5723         (blob position and length) for assemblies, classes and methods.
5724
5725 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
5726
5727         * reflection.c: sort the constant table (bug #70693).
5728
5729 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
5730
5731         * object-internals.h, threads.c, domain.c: add accessors for
5732         the MonoThread and MonoDomain tls keys.
5733
5734 2004-12-18  Martin Baulig  <martin@ximian.com>
5735
5736         * class.c (inflate_generic_type): If we're inflating a generic
5737         instance, set `ngclass->context->container = context->container';
5738         ie. the container we inflated into.
5739
5740         * metadata.c (mono_metadata_parse_generic_param): Reflect above
5741         inflate_generic_type() changes.
5742
5743 2004-12-17  Martin Baulig  <martin@ximian.com>
5744
5745         * class-internals.h
5746         (MonoGenericClass): Replaced `MonoType *generic_type' with
5747         `MonoClass *generic_class'.  Removed `dynamic_info'; if
5748         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
5749         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
5750
5751 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
5752
5753         * exception.c (mono_exception_from_token): New helper function.
5754
5755 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
5756
5757         * assembly.c (mono_assembly_load_with_partial_name): Call 
5758         mono_assembly_loaded before invoking the preload hooks. Fixes
5759         #70564.
5760
5761         * object-internals.h (MonoThread): Change culture_info and 
5762         ui_culture_info into an array.
5763
5764         * threads.c: Cache culture info objects from more than one appdomain.
5765
5766         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
5767         current UI culture.
5768
5769 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
5770
5771         * threads.h threads.c appdomain.c: Clear the culture_info field of
5772         all threads during unloading if they point to an object in the dying
5773         appdomain.
5774
5775 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
5776
5777         * culture-info.h (TextInfoEntry): New struct
5778         * object-internals.h: sync with managed
5779         * locales.c: fill the `text_info_data' field
5780         * culture-info-tables.h: update
5781
5782 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
5783
5784         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
5785         collector.
5786
5787 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
5788
5789         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
5790         (ves_icall_ModuleBuilder_getMethodToken): Ditto
5791
5792 2004-12-12  Martin Baulig  <martin@ximian.com>
5793
5794         * mono-debug-debugger.c (write_type): If we're an enum and the
5795         builtin types have already been initialized, call mono_class_init().
5796
5797 2004-12-11  Martin Baulig  <martin@ximian.com>
5798
5799         * metadata.c (mono_metadata_load_generic_params): Added
5800         `MonoGenericContainer *parent_container' argument; automatically
5801         compute `container->is_method'; pass the correct owner to
5802         get_constraints().      
5803
5804         * reflection.c (compare_genericparam): Sort the GenericParam table
5805         according to increasing owners. 
5806
5807 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
5808
5809         * profiler.c: allow disabling the default profiler.
5810
5811 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
5812
5813         * decimal.c, icall.c: allow disabling System.Decimal support.
5814
5815 2004-12-09  Marek Safar <marek.safar@seznam.cz>
5816
5817         * reflection.c: Add support for null attribute arguments.
5818
5819 2004-12-09  Martin Baulig  <martin@ximian.com>
5820
5821         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
5822         names to get rid of compiler warnings.
5823
5824 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
5825
5826         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
5827         mono_marshal_load_type_info (). Fixes #69625.
5828         (mono_marshal_get_ptr_to_struct): Likewise.
5829
5830 2004-12-08  Martin Baulig  <martin@ximian.com>
5831
5832         * mono-debug.h: Bumped version number to 47.
5833
5834         * mono-debug-debugger.c
5835         (mono_debugger_event_handler, mono_debugger_event): Take two
5836         guint64 arguments insteed of a gpointer and a guint32.  
5837
5838 2004-12-08  Martin Baulig  <martin@ximian.com>
5839
5840         * debug-mono-symfile.h
5841         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
5842         `address' to `native_offset'.
5843
5844 2004-12-08  Martin Baulig  <martin@ximian.com>
5845
5846         * class.c (mono_class_create_from_typespec): Only inflate if we
5847         either have `context->gclass' or `context->gmethod'.
5848
5849 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
5850
5851         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
5852
5853         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
5854
5855         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
5856
5857         * reflection.c (mono_assembly_get_object): Remove the workaround put
5858         in for the release.
5859         
5860         * appdomain.c: Use the corlib_internal field from MonoAssembly.
5861
5862         * appdomain.c: Bump corlib version.
5863
5864         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
5865         be visible in other appdomains.
5866
5867 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
5868
5869         * threads.c: Interlocked inc and dec for longs were messed up,
5870         use a KISS based impl for this. Fixes 70234
5871
5872 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
5873
5874         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
5875
5876 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
5877
5878         * icall.c: fix to follow policy not to allow struct
5879         arguments in icalls.
5880
5881 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5882
5883         * process.c: make the patch that handles spaces in file paths work
5884         on mono/windows too.
5885
5886 2004-12-06  Martin Baulig  <martin@ximian.com>
5887
5888         * class.c (mono_class_create_generic): Call
5889         mono_class_setup_supertypes() if we're dynamic.
5890         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
5891
5892 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
5893
5894         * object-internals.h: Add new fields to MonoThread.
5895
5896         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5897
5898         * icall.c threads-types.h threads.c: Add new icalls.
5899
5900         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
5901
5902         * object-internals.h (MonoReflectionAssembly): Sync object layout with
5903         managed side.
5904
5905         * appdomain.c: Bump corlib version.
5906
5907         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
5908         internal assemblies. Fixes #69181.
5909
5910 2004-12-05  Martin Baulig  <martin@ximian.com>
5911
5912         * class.c (mono_class_inflate_generic_signature): Make this a
5913         no-op if `context' is NULL or we don't have any type parameters;
5914         also copy `sentinelpos'.        
5915
5916 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
5917
5918         * image.c: Add unbox_wrapper_cache.
5919
5920         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
5921
5922         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
5923         function generator.
5924         
5925         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
5926         Fixes #70173.
5927
5928         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
5929         
5930 2004-12-04  Martin Baulig  <martin@ximian.com>
5931
5932         * loader.c (mono_method_get_signature_full): New public function;
5933         like mono_method_get_signature(), but with an additional
5934         `MonoGenericContext *' argument.
5935
5936         * class.c (mono_class_inflate_generic_signature): Formerly known
5937         as inflate_generic_signature(); make this public.
5938
5939 2004-12-04  Martin Baulig  <martin@ximian.com>
5940
5941         * metadata.c
5942         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
5943         instead of a `MonoGenericContainer *'.  
5944         (mono_metadata_parse_array_full): Likewise.
5945         (mono_metadata_parse_signature_full): Likewise.
5946         (mono_metadata_parse_method_signature_full): Likewise.
5947         (mono_metadata_parse_generic_inst): Likewise.
5948         (mono_metadata_parse_generic_param): Likewise.
5949         (mono_metadata_parse_mh_full): Likewise.
5950         (mono_type_create_from_typespec_full): Likewise.
5951
5952 2004-12-03  Martin Baulig  <martin@ximian.com>
5953
5954         * class-internals.h (MonoGenericContainer): Replaced the
5955         `MonoGenericContext * pointer with a `MonoGenericContext'
5956         structure and made it the first element.
5957
5958 2004-12-03  Martin Baulig  <martin@ximian.com>
5959
5960         * class.c
5961         (inflate_generic_type): Set the `context->container' when creating
5962         a new MonoGenericContext.
5963         (mono_class_inflate_generic_method): Likewise.
5964         (mono_class_create_from_typespec): Just use `context->container'
5965         to get the container.
5966
5967         * loader.c (method_from_methodspec): Set `context->parent' from
5968         `context->container' - and if that's a method container, use its
5969         parent.  Also set the `context->container' when creating a new
5970         MonoGenericContext.
5971         (mono_get_method_from_token): Use just `context->container' to get
5972         the container.
5973
5974         * metadata.c (do_mono_metadata_parse_generic_class): Also set
5975         `gclass->context->container'.
5976
5977         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
5978         the `context->container' when creating a new MonoGenericContext.
5979
5980 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
5981
5982         * reflection.c (compare_genericparam): Sort params with identical
5983         owner by their number. Fixes gen-111 on sparc.
5984
5985 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
5986
5987         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
5988         around the domain changes.
5989
5990         * appdomain.c (mono_domain_unload): Handle the case when the thread
5991         calling Unload is itself being aborted during unloading. Fixes #70022.
5992
5993         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
5994
5995         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
5996         checkpoint_func as an icall so it gets a wrapper.
5997         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
5998         in the cross-appdomain wrappers too.
5999
6000         * threads.c (mono_thread_has_appdomain_ref): Make this public.
6001
6002         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
6003
6004         * reflection.c: Fix some memory leaks.
6005         
6006 2004-12-02  Martin Baulig  <martin@ximian.com>
6007
6008         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
6009
6010         * metadata.c (generic_class_cache): New static hashtable.
6011         (mono_metadata_lookup_generic_class): New public method.
6012
6013 2004-12-02  Martin Baulig  <martin@ximian.com>
6014
6015         * class.c (mono_class_create_from_typedef): Call
6016         mono_class_setup_parent() and mono_class_create_mono_type() before
6017         parsing the interfaces.
6018
6019 2004-12-02  Martin Baulig  <martin@ximian.com>
6020
6021         * metadata.c (generic_inst_cache): New static hashtable.
6022         (mono_metadata_lookup_generic_inst): New public function.
6023         (mono_metadata_inflate_generic_inst): New public function.
6024         (mono_metadata_parse_generic_inst): New public function.
6025         (do_mono_metadata_parse_generic_class): Use the new
6026         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
6027         since this'll also use the cache.
6028
6029         * reflection.c (mono_reflection_bind_generic_method_parameters):
6030         Use mono_metadata_lookup_generic_inst() to use the new cache.
6031
6032         * class.c (inflate_mono_type): Use
6033         mono_metadata_inflate_generic_inst() to inflate a generic
6034         instance; this'll also use the new cache.
6035
6036         * loader.c (method_from_methodspec): Use
6037         mono_metadata_parse_generic_inst() and
6038         mono_metadata_inflate_generic_inst() rather than parsing it
6039         manually, so we can use the new cache.
6040
6041 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6042
6043         * threads.c (wait_for_tids): Do not incorrectly free threads when 
6044         the wait times out.
6045
6046 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
6047
6048         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
6049         iter->args based on whether parameters are passed in registers (i.e.
6050         MONO_ARCH_REGPARMS is defined)
6051
6052 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
6053
6054         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
6055         the exception message. Fixes #70070.
6056         (method_from_methodspec): Fix warnings.
6057
6058 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6059
6060         * process.c: (complete_path) return the path quoted
6061
6062 2004-12-01  Martin Baulig  <martin@ximian.com>
6063
6064         * class-internals.h (MonoGenericInst): New structure.
6065         (MonoGenericClass): Replaced `type_argc', `type_argv' and
6066         `is_open' with `MonoGenericInst *inst'.
6067         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
6068         `is_open' with `MonoGenericInst *inst'.
6069
6070 2004-11-30  Martin Baulig  <martin@ximian.com>
6071
6072         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
6073
6074         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
6075         to `generic_class_cache'.
6076
6077         * metadata.c
6078         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
6079         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
6080         (mono_generic_inst_is_valuetype): Renamed to
6081         mono_generic_class_is_valuetype().
6082
6083         * class-internals.h
6084         (MonoGenericInst): Renamed to MonoGenericClass.
6085         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
6086         (MonoClass): Renamed `generic_inst' to `generic_class'.
6087         (MonoGenericContext): Renamed `ginst' to `gclass'.
6088
6089         * object-internals.h
6090         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
6091
6092         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
6093         mono_reflection_generic_class_initialize().
6094
6095         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
6096         now known as "System.Reflection.MonoGenericClass".
6097         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
6098
6099 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
6100
6101         * class-internals.h: Added a flag field to MonoClass to cache the
6102         declarative security attributes actions associated with the class.
6103         * domain-internals.h: Added booleans to MonoJitInfo to cache the
6104         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
6105         applicable to the JITted method.
6106         * reflection.c|h: Added functions to extract (as flags) which security
6107         actions are available (declaratively) for a method, class or assembly.
6108         * metadata.c|h: Added functions to search the declarative security
6109         table in the metadata.
6110         
6111 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
6112
6113         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
6114         EXPORTEDTYPES are already in the class name cache, so there is no
6115         need to add extra code here to look at them. Just removes a bit of
6116         cruft.
6117
6118         (ves_icall_System_Environment_get_TickCount): No need for #if
6119         WINDOWS. We already have the code in io-layer.
6120
6121 2004-11-28  Martin Baulig  <martin@ximian.com>
6122
6123         * loader.c
6124         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
6125         Fixes gen-112.cs.
6126
6127 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
6128
6129         * assembly.c (do_mono_assembly_open): Instead of having a
6130         conditional WITH_BUNDLE, incorporate support for bundles here, by
6131         having a global `bundles' variable holding a pointer to the actual
6132         bundles. 
6133
6134         (mono_register_bundled_assemblies): New API call used by the
6135         bundle code. 
6136
6137         See mkbundle.1 for details.
6138         
6139 2004-11-27  Martin Baulig  <martin@ximian.com>
6140
6141         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
6142         the vtable for generic methods.
6143
6144 2004-11-26  Martin Baulig  <martin@ximian.com>
6145
6146         * metadata.c
6147         (mono_metadata_generic_method_hash): New public function.
6148         (mono_metadata_generic_method_equal): Likewise.
6149
6150         * class-internals.h
6151         (MonoGenericContainer): Added `GHashTable *method_hash'.
6152
6153         * reflection.c (ReflectionMethodBuilder): Added
6154         `MonoGenericContainer *generic_container'.
6155         (reflection_methodbuilder_to_mono_method): Don't create a new
6156         MonoGenericContainer each time we're called.
6157         (mono_reflection_bind_generic_method_parameters): Use
6158         `container->method_hash' to cache the results so we don't create a
6159         different method if we're called several times with the same
6160         arguments.
6161
6162         * loader.c (method_from_methodspec): Use the new
6163         `container->method_hash' here, too.
6164
6165 2004-11-26  Martin Baulig  <martin@ximian.com>
6166
6167         * class.c (inflate_generic_signature): Correctly compute
6168         `res->has_type_parameters'.
6169         (mono_class_vtable): Use the `has_type_parameters' flag to
6170         determine whether we're a generic method.
6171
6172         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
6173
6174 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
6175
6176         * object.c (mono_runtime_run_main): Fix a small memory leak.
6177
6178 2004-11-25  Martin Baulig  <martin@ximian.com>
6179
6180         * class.c (set_generic_param_owner): Fixed the loop.
6181
6182 2004-11-25  Martin Baulig  <martin@ximian.com>
6183
6184         * object.c (mono_class_vtable): Don't create any JIT wrappers for
6185         generic methods.
6186
6187 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
6188
6189         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
6190         names. Fixes #69787.
6191
6192 2004-11-24  Martin Baulig  <martin@ximian.com>
6193
6194         * class.c (mono_class_create_generic_2): If we don't have a
6195         `ginst->parent', inflate `gklass->parent' to get our parent.
6196
6197 2004-11-24  Martin Baulig  <martin@ximian.com>
6198
6199         * reflection.c (compare_genericparam): Correctly sort the
6200         GenericParam table; fixes #69779.
6201
6202 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
6203
6204         * reflection.c: When writing a PE file, don't create a huge
6205         buffer in memory. Just write the arrays we have to the file.
6206         This reduces memory usage.
6207
6208         * metadata-internals.h: MonoDynamicStream pefile is no longer used
6209         globally.
6210
6211 2004-11-17  Martin Baulig  <martin@ximian.com>
6212
6213         * class.c (mono_class_init): Don't setup `class->parent' for
6214         dynamic instances; moved this to mono_class_generic_2().
6215         (mono_class_create_generic): Also set `klass->inited' for dynamic
6216         generic instances.
6217         (mono_class_create_generic_2): Don't do anything for dynamic
6218         generic instances.  Set `klass->parent' here and also call
6219         mono_class_setup_parent() here. 
6220
6221         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
6222         `MonoType *parent' argument; set `ginst->parent' before calling
6223         mono_class_create_generic_2(), so we set the correct parent.
6224
6225 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
6226
6227         * reflection.c: allow getting attributes from ModuleBuilder
6228         (used by ikvm).
6229
6230 2004-11-17  Martin Baulig  <martin@ximian.com>
6231
6232         * class.c (mono_class_create_from_typedef): If a type parameter is
6233         inherited from an outer class, set its owner to that class.
6234
6235 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
6236
6237         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
6238           for (int*) written size. This fixes bug #69592.
6239
6240 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
6241
6242         * icall.c: Added IsAuthenticodePresnet internal call.
6243         * image.c|h: New function that check a MonoImage for an Authenticode
6244         signature in the certificate PE data directory.
6245         * security.c|h: New internal call to ask the runtime if an 
6246         Authenticode signature seems referenced in the PE header.
6247
6248 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
6249
6250         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
6251
6252         * reflection.c (mono_image_create_pefile): Free the assembly streams
6253         after writing out the assembly file.
6254
6255         * object.c (mono_runtime_run_main): Fix small memory leak.
6256
6257         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
6258         property access modifiers. Fixes #69389.
6259
6260 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
6261
6262         * domain.c, object.c, object-internals.h, domain-internals.h,
6263         object.h, marshal.c: keep dynamic code info per domain.
6264
6265 2004-11-15  Martin Baulig  <martin@ximian.com>
6266
6267         * class.c (mono_type_get_name_recurse): Put type arguments in
6268         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
6269         see bug #68387.
6270
6271 2004-11-15  Martin Baulig  <martin@ximian.com>
6272
6273         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
6274         (mono_class_setup_vtable): When computing `the_cname' for a
6275         generic instance, don't include the namespace since we'd otherwise
6276         add it twice.
6277
6278 2004-11-15  Martin Baulig  <martin@ximian.com>
6279
6280         * class.c (mono_class_create_generic): Changed return type to void.
6281         (mono_class_create_generic_2): New public function; setup
6282         `class->method', `class->field' and `class->interfaces' here
6283         instead of in mono_class_init().
6284
6285         * class.h (mono_class_create_generic): Moved to class-internals.h.
6286
6287 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
6288
6289         * reflection.c (mono_image_create_pefile): take a file HANDLE.
6290         rather than writing to memory, write to this file. Right now,
6291         we are just writting into a buffer, and copying that. However
6292         we can avoid the buffer later.
6293
6294         (mono_dynamic_stream_reset): new function
6295
6296         * icall.c, object-internals.h: update for the above.
6297
6298 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
6299
6300         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
6301         have been using gc'd memory. First it is slower, unlikely
6302         the comment in the source code said, secondly, it increases
6303         our footprint to do it in the gc.
6304
6305         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
6306         the method so that it does not have to copy to managed code.
6307
6308 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
6309
6310         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
6311
6312 2004-11-12  Martin Baulig  <martin@localhost>
6313
6314         * reflection.c (mono_image_create_token): Allow generic method
6315         definitions here, since they may appear in an `.override'; see
6316         gen-98/gen-99 for an example.
6317
6318 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
6319
6320         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
6321         #69365.
6322
6323         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
6324         descriptive.
6325
6326 2004-11-11  Martin Baulig  <martin@ximian.com>
6327
6328         * class.c (mono_class_setup_vtable): In an explicit interface
6329         implementation, the method name now includes the arity.
6330
6331 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
6332
6333         * object.c (mono_array_full_copy): Fix warning.
6334
6335 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
6336
6337         * appdomain.c: Removed look_for_method_by_name(). Use the new method
6338         mono_class_get_method_from_name() instead.
6339         
6340         * class-internals.h: Added two new types of wrappers. 
6341         Added MonoRemotingTarget enum. Added new trampoline function type, which
6342         takes an additional MonoRemotingTarget value as parameter, so it is
6343         possible to request a trampoline for a specific target.
6344         
6345         * class.c: Added new mono_class_get_method_from_name() method.
6346         
6347         * class.h: In MonoRemoteClass, we can have now to vtables, one for
6348         general remoting sinks and one specific for cross domain calls.
6349         
6350         * debug-helpers.c: Added new wrapper names.
6351         
6352         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
6353         of a remote class.
6354         
6355         * image.c: Porperly delete value objects form the remoting invoke hashtable.
6356         
6357         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
6358         with several other methods (mono_marshal_get_xappdomain_dispatch,
6359         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
6360         and others) can generate a fast remoting wrapper for cross domain calls.
6361         More information can be found in docs/remoting.
6362         Other changes: Removed mono_find_method_by_name, and used
6363         mono_class_get_method_from_name instead.
6364         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
6365         is stored in the remoting invoke hashtable.
6366         
6367         * marshal.h: published the new method for getting the xdomain wrapper,
6368         and also added a method for getting the adequate wrapper for a given
6369         method and target.
6370         
6371         * object-internals.h, object.c: Added a couple of methods for capying and
6372         cloning arrays.
6373         Modified mono_install_remoting_trampoline, which takes the new remoting
6374         trampoline that has a remoting target as parameter.
6375         mono_class_proxy_vtable now also takes a remoting target as parameter, and
6376         will return the most suitable vtable for the target.
6377         Added mono_remote_class_vtable, which returns the vtable of a remote class
6378         (which can be the normal remoting vtable or the xdomain vtable).
6379         
6380         * threads.c: the xdomain invoke and dispatch wrappers must also be
6381         protected against interruptions.
6382
6383 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6384
6385         * icall.c: use memmove in BlockCopyInternal when the source and
6386         destination arrays are the same.
6387
6388 2004-11-09  Martin Baulig  <martin@ximian.com>
6389
6390         * class-internals.h (MonoGenericContainer): Removed `method' and
6391         `signature', replaced them with `is_method' and `is_signature'
6392         flags.  Added `context'.
6393
6394         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
6395         instead of a `MonoGenericContainer *'.
6396
6397         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
6398         for dynamic type parameters.
6399         (mono_metadata_load_generic_params): Setup `container->context'.
6400
6401         * reflection.c (mono_reflection_setup_generic_class): Setup
6402         `tb->generic_container->context'.
6403         (do_mono_reflection_bind_generic_parameters): Use
6404         mono_class_inflate_generic_type() to correctly inflate types,
6405         rather than using our own hack just for MONO_TYPE_VAR.
6406
6407 2004-11-09  Martin Baulig  <martin@ximian.com>
6408
6409         * class.c (mono_class_inflate_generic_method): Small fix; don't
6410         crash here.
6411
6412         * icall.c
6413         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
6414         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
6415         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
6416         (ves_icall_Type_BindGenericParameters): Likewise.
6417         (ves_icall_Type_get_IsGenericInstance): Likewise.
6418         (ves_icall_Type_GetGenericParameterPosition): Likewise.
6419         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
6420         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
6421         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
6422
6423 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
6424
6425         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
6426         assembly versions and public key tokens. Fixes #69113.
6427
6428 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
6429
6430         * metadata.c: fix bug introduced with the type cache changes
6431         on 2004-11-06.
6432
6433 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
6434
6435         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
6436         the MonoClass pointer instead of the token in exception clauses.
6437         * reflection.c: updates for the above and make the code not depend
6438         on the structure of MonoExceptionClause.
6439
6440 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
6441
6442         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
6443         Add support for dynamic assemblies. Fixes #69114.
6444
6445         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
6446
6447 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
6448
6449         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
6450         since most only those methods use it. the code member of
6451         MonoMethodPInvoke was dead, so that can be removed too. Also,
6452         remove inline_count (again, not used), and move slot so that it
6453         can share bits with some other flags. This saves 8 bytes in the
6454         structure and gives us about 50 kb back for mcs helloworld.cs
6455
6456         * *.[ch]: Do naming changes for the above.
6457
6458         * loader.c (mono_method_get_header): Lazily init the header
6459         on first access.
6460         (mono_get_method_from_token): don't init the header here
6461         (mono_free_method): the header may never be allocated
6462
6463         Overall, this saves 150 kb of unmanaged allocations
6464         for mcs helloworld.cs. That accounts for 10% of the unmanaged
6465         memory at runtime.
6466         
6467         * loader.c, loader.h (mono_method_get_header): new accessor.
6468
6469         * *.[ch]: use the above method. Prepares us to lazily load
6470         the header.
6471
6472         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
6473         three warnings, which are actual bugs (see 69206).
6474
6475         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
6476         unused. Saves a cool 4 bytes / method.
6477
6478 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
6479
6480         * metadata.c (builtin_types): Add types for System.Object here.
6481         (mono_metadata_parse_type_full): Cache MonoType*'s that are
6482         for a class or valuetype from klass->this_arg or klass->byval_arg.
6483
6484         On mcs for a hello world, this gets us down from 21836 MonoType's
6485         to 14560.
6486
6487         (mono_metadata_free_type): Account for the above change.
6488
6489 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
6490
6491         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
6492         exception instead of asserting if name is null.
6493         (ves_icall_System_AppDomain_GetData): Ditto.
6494
6495 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
6496
6497         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
6498         EnumBuilder.
6499
6500         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
6501         Return NULL when the domain does not have entry_assembly set.
6502
6503         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
6504         Add a 'resource_modules' argument.
6505         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
6506
6507         * reflection.c (mono_reflection_create_runtime_class): Move setting
6508         of wastypebuilder here, so mono_get_type_object () returns a MonoType
6509         for enums too.
6510
6511         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
6512         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
6513         Throw an ArgumentNullException if 'ptr' is null.
6514
6515         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
6516         assemblies here. Fixes #69020.
6517
6518 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
6519
6520         * reflection.c (build_compressed_metadata): Fix the previous patch for
6521         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
6522         the stack.
6523
6524 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
6525
6526         * assembly.c (mono_assembly_names_equal): Allow a match if one of
6527         the cultures is false. Fixes #69090.
6528
6529         * reflection.c (build_compressed_metadata): Fix invalid memory read 
6530         detected by valgrind.
6531         
6532         * reflection.c (mono_reflection_get_type): Avoid triggering a 
6533         TypeResolve multiple times for the same type. Fixes #65577.
6534
6535 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
6536
6537         * marshal.c: Avoid using ldftn to call managed functions. It is
6538         much slower than just a call.
6539
6540         * reflection.c (mono_module_get_object): free the basename we
6541         allocate here from glib.
6542         
6543         * reflection.c (ensure_runtime_vtable): make sure to free
6544         overrides.  Also, we were allocating an array of MonoMethod not an
6545         array of MonoMethod*.
6546
6547         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
6548
6549         * image.c (mono_image_close): free image->guid here.
6550
6551 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
6552
6553         * reflection.c: Fix some spec conformance issues with the PE file
6554         structures so mcs compiled apps run on the Net 2.0 beta.
6555
6556 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
6557
6558         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
6559         Implement this. Fixes #67264.
6560
6561         * debug-helpers.h debug-helpers.c marshal.c: Move 
6562         mono_find_method_by_name to debug-helpers.c.
6563
6564 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
6565
6566         * object.c (mono_release_type_locks): type_initialization_hash is
6567         a GHashTable.
6568
6569         * reflection.c object.c object-internals.h: Fix warnings.
6570
6571         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
6572         without accessors. Fixes #61561.
6573
6574         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
6575         application base from the root domain if not set. Fixes #65641.
6576         (mono_runtime_init): Fix warning.
6577
6578 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6579
6580         * appdomain.c: call mono_thread_pool_init.
6581         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
6582         of worker threads based on the number of CPUs and the environment
6583         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
6584         for non-windows (windows) systems.
6585
6586 2004-10-27  Chris Toshok  <toshok@ximian.com>
6587
6588         * mono-debug-debugger.c (write_class): don't call mono_class_init
6589         here, as even with the check for (!klass->init_pending), we get
6590         into a situation where we're hitting cycles in class
6591         initialization.  Fixes #68816.
6592
6593 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
6594
6595         * image.c: Avoid overwriting values in the loaded_images_hash when an
6596         assembly is loaded multiple times. Fixes #61152.
6597
6598         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
6599         so multiple satellite assemblies for the same name can be loaded.
6600         Fixes #68259.
6601
6602         * mono_domain_assembly_preload: Actually return the loaded assembly, 
6603         not NULL.
6604
6605         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
6606         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
6607
6608         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
6609         pending finalizers are not invoked after the appdomain has been 
6610         unloaded. Fixes #67862.
6611
6612 2004-10-22  Martin Baulig  <martin@ximian.com>
6613
6614         * mono-debug-debugger.c
6615         (mono_debugger_runtime_invoke): Don't box valuetypes.
6616
6617 2004-10-22  Chris Toshok  <toshok@ximian.com>
6618
6619         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
6620         don't hide private methods.
6621
6622 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
6623
6624         * icall.c: Allows the runtime to "share" (when known) the public key
6625         token of an assembly. This avoid the need to recalculate the token 
6626         (from the public key) in managed code.
6627
6628 2004-10-21  Chris Toshok  <toshok@ximian.com>
6629
6630         * debug-helpers.c (append_class_name): argh, revert last patch.
6631         
6632 2004-10-21  Chris Toshok  <toshok@ximian.com>
6633
6634         * debug-helpers.c (append_class_name): use '+' as the delimiter,
6635         not '/', so that it matches what the debugger uses to look up
6636         methods.
6637
6638 2004-10-21  Martin Baulig  <martin@ximian.com>
6639
6640         * mono-debug-debugger.c (mono_debugger_throw_exception): New
6641         public method; this is called each time an exception is thrown and
6642         allows the debugger to use exception catch points.
6643
6644 2004-10-21  Martin Baulig  <martin@ximian.com>
6645
6646         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
6647         the stack pointer and the exception object in some struct and pass
6648         that to the debugger.
6649
6650 2004-10-21  Chris Toshok  <toshok@ximian.com>
6651
6652         * mono-debug-debugger.c (do_write_class): add instance/static
6653         event support.  We don't expose "raise" or "other" yet.
6654         (event_is_static): new method.
6655
6656 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
6657
6658         * mono-debug-debugger.c
6659         (mono_debugger_handle_exception): Remove
6660         bogus return value for fussy compilers.
6661
6662 2004-10-20  Martin Baulig  <martin@ximian.com>
6663
6664         * mono-debug-debugger.c
6665         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
6666         (mono_debugger_handled_exception): Likewise.
6667
6668 2004-10-20  Martin Baulig  <martin@ximian.com>
6669
6670         * mono-debug-debugger.h (MonoDebuggerEvent): Added
6671         MONO_DEBUGGER_EVENT_EXCEPTION.
6672
6673         * mono-debug-debugger.c (mono_debugger_handle_exception): New
6674         public function to send the debugger a notification for an
6675         exception and inform it about a catch/finally clause.
6676
6677 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
6678
6679         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
6680         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
6681         fix 2.95 build. 
6682
6683         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
6684
6685 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
6686
6687         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
6688         marshalled as [In,Out]. Fixes #58325.
6689
6690 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
6691
6692         * reflection.c (mono_method_body_get_object): Implement some fields.
6693
6694 2004-10-12  Martin Baulig  <martin@ximian.com>
6695
6696         * reflection.c (mono_reflection_bind_generic_parameters): Small
6697         fix, correctly retrieve our parent from a generic instance.
6698
6699 2004-10-12  Martin Baulig  <martin@ximian.com>
6700
6701         * metadata.c (mono_metadata_generic_param_equal): We always have
6702         an owner.
6703
6704         * class.c
6705         (mono_class_from_generic_parameter): We need to have an owner.
6706         (my_mono_class_from_generic_parameter): Likewise.
6707
6708         * reflection.c (mono_reflection_setup_generic_class): Renamed to
6709         mono_reflection_create_generic_class() and added a new
6710         mono_reflection_setup_generic_class().  
6711         (mono_reflection_initialize_generic_param): If we're a nested
6712         generic type and inherited from the containing class, set our
6713         owner to the outer class.
6714
6715 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
6716
6717         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
6718
6719         * reflection.c (mono_method_body_get_object): New function to create
6720         a MethodBody object.
6721
6722         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
6723
6724 2004-10-11  Martin Baulig  <martin@ximian.com>
6725
6726         * metadata.c (_mono_metadata_type_equal): Renamed to
6727         do_mono_metadata_type_equal() and made static.
6728
6729 2004-10-11  Martin Baulig  <martin@ximian.com>
6730
6731         * appdomain.c: Bump corlib version number to 28.
6732
6733 2004-10-10  Martin Baulig  <martin@ximian.com>
6734
6735         * class-internals.h
6736         (MonoGenericInst): Added `MonoGenericContainer *container'.
6737         (MonoGenericMethod): Likewise.
6738         (MonoGenericContext): Likewise.
6739         (MonoGenericParam): Added `MonoGenericContainer *owner'.
6740
6741         * metadata.c
6742         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
6743         (do_mono_metadata_parse_generic_inst): Likewise.
6744         (mono_metadata_parse_type_full): New public method.  This is the actual
6745         mono_metadata_parse_type() implementation - with an additional
6746         `MonoGenericContainer *' argument.
6747         (mono_metadata_parse_array_full): Likewise.
6748         (mono_metadata_parse_signature_full): Likewise.
6749         (mono_metadata_parse_method_signature_full): Likewise.
6750         (mono_metadata_parse_mh_full): Likewise.
6751         (mono_type_create_from_typespec): Likewise.
6752         (mono_metadata_interfaces_from_typedef_full): New public method;
6753         this is similar to the other _full() methods, but we take a
6754         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
6755         (mono_metadata_parse_generic_param): Take an additional
6756         `MonoGenericContainer *' argument and lookup the MonoGenericParam
6757         from that container.
6758         (mono_metadata_generic_param_equal): New static method to compare
6759         two type parameters.
6760         (_mono_metadata_type_equal): New static method; takes an
6761         additional `gboolean signature_only' argument - if true, we don't
6762         compare the owners of generic parameters.
6763         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
6764         with a TRUE argument - do a signature-only comparision.
6765
6766         * loader.c: Use the new _full() methods and pass the
6767         MonoGenericContainer to them.
6768
6769         * object-internals.h (MonoReflectionTypeBuilder): Added
6770         `MonoGenericContainer *generic_container' field.
6771         (MonoReflectionMethodBuilder): Likewise.
6772
6773 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
6774
6775         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
6776         case initial images of dynamic assemblies.
6777
6778         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
6779
6780         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
6781
6782         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
6783         length of event->other array.
6784         (typebuilder_setup_events): Ditto.
6785
6786         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
6787         'assembly_by_name' and add an 'assemblies' list.
6788
6789         * assembly.h assembly.c: Add a new search hook for determining whenever
6790         an assembly is already loaded. Use this instead of searching in the
6791         loaded_assemblies list.
6792
6793         * domain.c appdomain.c: Implement the new search hook so loaded 
6794         assemblies are now scoped by appdomain. Fixes #67727.
6795
6796 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
6797
6798         * threads.c (mono_thread_attach): Initialize synch_lock field so
6799         mono_thread_detach works again.
6800
6801         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
6802         'lib' too. Fixes #63130.
6803
6804 2004-10-06  Jackson Harper  <jackson@ximian.com>
6805
6806         * culture-info-tables.h: regenerated.
6807
6808 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
6809
6810         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
6811         implemented by other interfaces in the result. Fixes #65764.
6812         
6813         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
6814         Handle unloadable modules without crashing.
6815
6816         * image.c (load_modules): Revert the previous patch since modules must
6817         have a fixed index inside the array.
6818         
6819         * image.c (load_modules): Don't include native modules in the modules
6820         array.
6821
6822 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
6823
6824         * reflection.h: Add param_defaults field.
6825
6826         * reflection.c: Add support for parameter defaults in dynamic methods.
6827         Fixes #64595.
6828
6829         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
6830         an empty string when a type has no namespace. Fixes #64230.
6831
6832 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
6833
6834         * tabledefs.h: Added "internal" security actions to support non-CAS
6835         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
6836         Note: they do not seems to be used anymore in 2.0 (new metadata format)
6837
6838 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
6839
6840         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
6841         constructor of abstract class. Fixes #61689.
6842
6843 2004-10-04  Martin Baulig  <martin@ximian.com>
6844
6845         * class-internals.h (MonoGenericContainer): New type.
6846         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
6847         `MonoGenericContainer *generic_container'.
6848         (MonoClass): Replaced `gen_params' and `num_gen_params' with
6849         `MonoGenericContainer *generic_container'.
6850
6851         * metadata.c (mono_metadata_load_generic_params): Return a
6852         `MonoGenericContainer *' instead of a `MonoGenericParam *';
6853         removed the `num' argument.
6854
6855 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
6856
6857         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
6858         for dynamic images.
6859
6860         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
6861         machine fields.
6862
6863         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
6864
6865         * reflection.c: Save pe_kind and machine values into the generated
6866         image file.
6867
6868         * appdomain.c: Bump corlib version number.
6869
6870         * object-internals.h: Reorganize layout of LocalBuilder.
6871
6872         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
6873         New helper function.
6874
6875         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
6876         created MonoType for dynamic types. Fixes #66180.
6877
6878 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
6879
6880         * threadpool.c: the ares hashtable needs a critical section around it.
6881         this prevents some nasty segfaults
6882
6883 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
6884
6885         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
6886         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
6887         bug 67324).
6888         
6889 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
6890
6891         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
6892         
6893 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
6894
6895         * image.c: Always canonicalize image file names, to avoid loading
6896         the same assembly twice when referenced using a relative path.
6897
6898 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
6899
6900         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
6901
6902         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
6903
6904         * marshal.c: Fix warnings.
6905
6906 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
6907
6908         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
6909         attempting to marshal the delegate_trampoline as the method_addr.
6910         This patch has a static hashtable of marshalled delegates so that 
6911         we can map delegate_trampoline addresses back to delegates.  This
6912         allows a delegate passed to managed code to be passed back into native
6913         code.  Fixes #67039
6914
6915 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
6916
6917         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
6918
6919         * reflection.c (method_encode_code): Align method headers properly.
6920         Fixes #66025.
6921
6922 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
6923
6924         * marshal.c: In the runtime invoke wrapper, reset the abort
6925         exception if it is cached. This avoids the automatic rethrowal of 
6926         the exception after the catch of the wrapper. Also check for pending
6927         interruptions before calling the managed method. This is done using
6928         the new method emit_thread_force_interrupt_checkpoint, since the
6929         normal checkpoint method is ignored when running the invoke wrapper.
6930         * object.c: If the abort exception is rethrown, set the abort_exc
6931         field of the thread, so it will be rethrown aftere every catch.
6932         * threadpool.c: Only run an interruption checkpoint if what has been
6933         requested is a stop of the thread (aborts will be ignored).
6934         * threads.c: By default, a thread will now never be interrumped while
6935         running the runtime invoke wrapper (this ensures that runtime_invoke
6936         will always return to the caller if an exception pointer is provided).
6937         There is a new special method mono_thread_force_interruption_checkpoint()
6938         to force an interruption checkpoint even if running a protected
6939         wrapper, which is used by the same runtime invoke wrapper to do a check
6940         at a safe point.
6941
6942 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
6943
6944         * object.c, object-internals.h: Implemented mono_release_type_locks,
6945         which releases the cctor locks held by a thread.
6946         * threads.c, threads.h: In thread_cleanup, release cctor locks held
6947         by a thread. Added mono_thread_exit() method to be used to safely stop
6948         a thread.
6949
6950 2004-09-28  Raja R Harinath  <rharinath@novell.com>
6951
6952         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
6953         Move null check before dereference.  Avoid indexing beyond the end
6954         of the 'modules' array.
6955
6956 2004-09-28  Raja R Harinath  <rharinath@novell.com>
6957
6958         * metadata-internals.h (MonoImage): Add module_count field.
6959         * image.c (load_modules): Set image->module_count.
6960         (mono_image_load_file_for_image): Use image->module_count.
6961         * reflection.c (mono_image_load_module): Append to image->modules array 
6962         of dynamic assembly.
6963         (mono_module_get_object): Fix loop to actually increment index.
6964         Use image->module_count.
6965         * assembly.c (mono_assembly_load_references): Use image->module_count.
6966         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
6967         Likewise.
6968
6969 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
6970
6971         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
6972         Avoid assert on generic types.
6973
6974 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
6975
6976         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
6977
6978         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
6979
6980         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
6981         function to convert a MarshalSpec structure to its managed counterpart.
6982
6983         * reflection.c: Fix warnings.
6984         
6985         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
6986         field.
6987
6988         * icall.c (mono_create_icall_signature): Fix build.
6989
6990 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
6991
6992         * icall.c: Add MakePointType icall.
6993
6994         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
6995         warnings.
6996
6997 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6998
6999         * threadpool.c: reuse allocated slots in the queue.
7000
7001 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
7002
7003         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
7004
7005         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
7006
7007         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
7008         previous change.
7009
7010         * tabledefs.h: Add constants for pinvoke attributes BestFit and
7011         ThrowOnUnmappableChar.
7012
7013         * icall.c (ves_icall_Type_GetPacking): New icall.
7014
7015 2004-09-24  Martin Baulig  <martin@ximian.com>
7016
7017         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
7018
7019 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7020
7021         * appdomain.c:
7022         (mono_domain_set): allow setting a domain that is being unloaded.
7023         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
7024         being unloaded.
7025
7026 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7027
7028         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
7029         the GetCustomAttributes icall.
7030
7031 2004-09-23  Martin Baulig  <martin@ximian.com>
7032
7033         * object-internals.h (MonoReflectionGenericParam): Replaced
7034         'has_ctor_constraint', `has_reference_type' and `has_value_type'
7035         with `guint32 attrs'.
7036
7037 2004-09-23  Martin Baulig  <martin@ximian.com>
7038
7039         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
7040
7041 2004-09-23  Martin Baulig  <martin@ximian.com>
7042
7043         * object-internals.h (GenericParameterAttributes): New enum.
7044
7045 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7046
7047         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
7048         
7049         * class.c (init_events): Fill out event->other field.
7050
7051         * class.c: Fix warnings.
7052
7053         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
7054
7055 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
7056
7057         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
7058         walk which doesn't supply the IL offset.
7059
7060 2004-09-22  Martin Baulig  <martin@ximian.com>
7061
7062         * reflection.c (mono_reflection_setup_internal_class): If we're
7063         System.ValueType, System.Object or System.Enum, set
7064         `klass->instance_size' and create the vtable.
7065         (mono_reflection_create_internal_class): If we're an enum type,
7066         get the base class from our current corlib.
7067
7068 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
7069
7070         * reflection.h (MonoResolveTokenError): New type.
7071
7072         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
7073         icall.
7074
7075         * icall.c: Add an 'error' argument to the ResolveToken icalls.
7076
7077 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
7078
7079         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
7080         Support also calling constructors, but only for already allocated objects.
7081
7082 2004-09-17  Geoff Norton <gnorton@customerdna.com>
7083
7084         * reflection.c (type_get_qualified_name): If the klass is null
7085         return the typename to avoid a NullRefEx.
7086         (encode_cattr_value): Get the qualified name of the boxed type,
7087         not the underlying enumtype.  Fixes #62984.
7088
7089 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
7090
7091         * marshal.c: Fix problems with previous checkin.
7092
7093 2004-09-21    <vargaz@freemail.hu>
7094
7095         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
7096         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
7097
7098         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
7099
7100 2004-09-21  Geoff Norton <gnorton@customerdna.com>
7101
7102         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
7103         should only return a type for pointers, arrays, and passbyref types.
7104         Fixes bug #63841.
7105
7106 2004-09-21  Martin Baulig  <martin@ximian.com>
7107
7108         * domain.c (mono_debugger_check_runtime_version): New public
7109         function.
7110
7111         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
7112
7113 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
7114
7115         * reflection.c: Added missing sort to the declarative security 
7116         attributes table. MS implementation stops seeing the attributes if the
7117         token number regress in the table (as shown by ildasm and permview).
7118
7119 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
7120
7121         * object-internals.h (MonoReflectionModule): Add 'token' field.
7122         
7123         * reflection.c (mono_reflection_get_token): Add support for Module
7124         and Assembly.
7125         (mono_module_get_object): Set 'token' field.
7126         (mono_module_file_get_object): Set 'token' field.
7127
7128         * icall.c: Add new Assembly and Module icalls.
7129
7130         * appdomain.c: Bump corlib version.
7131
7132 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
7133
7134         * loader.h loader.c class.h class.c: Add helper functions for obtaining
7135         tokens of metadata objects.
7136
7137         * reflection.h reflection.c (mono_reflection_get_token): New function
7138         to obtain the token of a metadata object.
7139
7140         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
7141
7142 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
7143
7144         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
7145         
7146         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
7147
7148 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
7149
7150         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
7151         * object-internals.h: Added 3 MonoArray* members to MonoReflection
7152         AssemblyBuilder to access the permissions set in the class lib.
7153         * reflection.c: Added security attributes encoding step in 
7154         mono_image_build_metadata.
7155         * tabledefs.h: Added new security actions defined in 2.0:
7156         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
7157
7158 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7159
7160         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
7161         macro parameter.
7162
7163 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7164  
7165         * locales.c: nullify the ICU_collator member of CompareInfo when it is
7166           finalized. There where random SIGSEVs at program termination, when
7167           an object being finalized was trying to do a string comparison and
7168           the current culture was already finalized.
7169  
7170 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7171
7172         * threads.c: call thread_cleanup before finishing the thread if we get
7173         there.
7174
7175 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
7176
7177         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
7178         assemblies from the parent. Fixes #65665.
7179
7180 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
7181
7182         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
7183         modifiers.
7184
7185 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
7186
7187         * reflection.h: add prototype for mono_get_dbnull_object
7188         * reflection.c: add prototypes for get_default_param_value_blobs 
7189         and mono_get_object_from_blob for fussier compilers
7190
7191 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
7192  
7193         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
7194         false deadlock checks in class initialization.
7195  
7196 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
7197
7198         * image.c (mono_image_addref): Fix comment.
7199
7200         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
7201         possible.
7202
7203 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
7204
7205         * reflection.c (mono_param_get_objects): Modified to return
7206         ParameterInfo.DefaultValue object.
7207
7208         (get_default_param_value_blobs):
7209         (mono_get_object_from_blob):
7210         (mono_get_dbnull_object): New helper routines. 
7211
7212         * object.c (mono_get_constant_value_from_blob): New helper routine
7213         carved out from get_default_field_value ()
7214
7215         * object-internals.h (mono_get_constant_value_from_blob): Added
7216         function declaration.
7217
7218 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
7219
7220         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
7221         referenced assemblies. Fixes #62135.
7222
7223         * exception.h exception.c (mono_get_exception_file_not_found2): New
7224         helper function.
7225
7226 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
7227
7228         * class.h class.c: Add mono_type_get_underlying_type ().
7229
7230 2004-09-09  Geoff Norton <gnorton@customerndna.com>
7231
7232         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
7233         Fix GetTypes() to support dynamically created assemblies.
7234
7235 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
7236
7237         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
7238         
7239         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
7240         previous patch.
7241
7242         * reflection.h reflection.c loader.c: Allow dynamic construction of
7243         pinvoke methods. Fixes #65571.
7244         
7245         * reflection.c (mono_reflection_get_type): Revert previous change since
7246         it causes regressions.
7247
7248 2004-09-08  Martin Baulig  <martin@ximian.com>
7249
7250         * class.c (class_compute_field_layout): Don't call
7251         mono_class_layout_fields() for open generic instances.
7252
7253 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
7254         * threads.c appdomain.c: fix typo in GC macro
7255
7256 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7257
7258         * threads.c: don't call mono_thread_detach() in start_wrapper(),
7259         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
7260
7261 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
7262
7263         * image.c (mono_image_close): Applied patch from 
7264         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
7265         assembly is loaded multiple times from data.
7266         
7267         * image.c (mono_image_open): Fix warning.
7268
7269 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7270
7271         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
7272         once. Fixes #58334.
7273         
7274         * reflection.c (mono_reflection_create_runtime_class): Initialize
7275         klass->nested_classes. Fixes #61224.
7276
7277 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
7278
7279         * threads.c: sched_yield() on exit, to allow threads to quit.
7280
7281 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7282
7283         * object.c (mono_unhandled_exception): Remove leftover debug code.
7284
7285 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
7286
7287         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
7288
7289 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7290
7291         * marshal.c (emit_marshal_array): Really null terminate string arrays.
7292         
7293         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
7294
7295 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7296
7297         * marshal.c (emit_marshal_array): Null terminate string arrays.
7298         
7299         * marshal.c (raise_auto_layout_exception): Fix warning.
7300
7301         * reflection.c (mono_param_get_objects): Initialize the default value
7302         with DBNull.Value, not null. Fixes #62123.
7303
7304 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
7305
7306         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
7307         throw an exception with a cute explanation.
7308
7309 2004-09-06  Dick Porter  <dick@ximian.com>
7310
7311         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
7312         Close the new process's thread handle, as we don't use it.  The
7313         handle stays around forever otherwise.
7314
7315 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7316
7317         * object.c (arith_overflow): Fix warning.
7318
7319         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
7320         calling conventions in method refs. Fixes #65352.
7321
7322         * reflection.c: Fix warnings.
7323
7324 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
7325
7326         * icall.c: Add a new icall for Array.Clear
7327
7328 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
7329
7330         * object.c: When allocating an array, we have to throw
7331         an overflow exception if any of the lengths are < 0.
7332
7333 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7334
7335         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
7336         properly. Also move implementation of string array marshalling to 
7337         managed code. Fixes #42316.
7338
7339 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7340
7341         * assembly.c: provide more information when loading an assembly fails.
7342
7343 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7344
7345         * filewatcher.c: don't expect the development fam package to be
7346         installed.
7347
7348 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
7349
7350         * marshal.c: Make a copy of the signature cookie since it will be
7351         freed by the caller.
7352         
7353         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
7354
7355         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
7356
7357         * metadata.c (mono_metadata_free_marshal_spec): New function to free
7358         marshal specs.
7359
7360         * marshal.c: More refactoring.
7361         
7362         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
7363         smaller functions.
7364
7365 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
7366
7367         * object.c: In mono_message_invoke, fill the output parameter array after
7368           calling the managed method (it was done before the call). This fixes
7369           bug #59299.
7370
7371 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
7372
7373         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
7374         as well.
7375
7376 2004-09-02  Martin Baulig  <martin@ximian.com>
7377
7378         * class.c (mono_class_instance_size): Don't allow generic type
7379         definitions or open generic instances.
7380         (mono_class_array_element_size): If we're a value type, call
7381         mono_class_instance_size() on the original class.
7382
7383         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
7384         handle generic instances.
7385
7386         * mono-debug-debugger.c (write_type): Handle generic instances
7387         like classes.
7388
7389 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
7390
7391         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
7392         the allocation request fails. Fixes #65089.
7393
7394         * object.c (mono_runtime_free_method): Do not call mono_free_method.
7395         
7396         * object.c (mono_runtime_free_method): New function to free a dynamic
7397         method.
7398
7399         * marshal.c (mono_delegate_free_ftnptr): New function to free the
7400         delegate trampoline.
7401
7402         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
7403         with hasthis as dynamic,
7404
7405         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
7406
7407         * domain.c (mono_jit_info_table_remove): New function to remove an
7408         entry from the jit info table.
7409
7410         * class-internals.h (MonoMethod): Add 'dynamic' field.
7411
7412         * loader.c: Fix warnings.
7413
7414 2004-09-01  Martin Baulig  <martin@ximian.com>
7415
7416         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
7417         instead of mono_debugger_lock() because the latter one is a no-op
7418         unless running in the debugger.
7419
7420 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
7421
7422         * class.c (class_compute_field_layout): Classes with auto-layout or
7423         reference fields are not blittable.
7424         
7425 2004-09-01  Dick Porter  <dick@ximian.com>
7426
7427         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
7428         mono_image_get_filename() to get the assembly location.
7429
7430         * icall.c:
7431         * metadata.h: Fix compile warnings
7432
7433 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
7434
7435         * class.c (class_compute_field_layout): System.Object is blittable.
7436
7437         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
7438         as in/out. Fixes #59909.
7439
7440 2004-09-01  Martin Baulig  <martin@ximian.com>
7441
7442         * metadata.h (MONO_TYPE_ISREFERENCE): Call
7443         mono_metadata_generic_inst_is_valuetype() if we're a generic
7444         instance to check whether our underlying type is a reference type.
7445
7446 2004-09-01  Martin Baulig  <martin@ximian.com>
7447
7448         * metadata.c (mono_type_size): If we're a generic instance, call
7449         mono_class_value_size() for value types.
7450
7451 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
7452
7453         * marshal.c: Implement more custom marshalling functionality. Fixes
7454         #64915.
7455
7456 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
7457
7458         * mono-debug.c, debug-mono-symfile.c: add some locking love.
7459
7460 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
7461
7462         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
7463
7464         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
7465
7466         * icall.c: Fix some warnings.
7467
7468         * threads.c (abort_appdomain_thread): Fix unref errors.
7469         (mono_thread_current): Fix THREAD_DEBUG define.
7470
7471 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
7472
7473         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
7474
7475         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
7476
7477 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
7478
7479         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
7480         string arrays.
7481
7482 2004-08-28  Martin Baulig  <martin@ximian.com>
7483
7484         * metadata.c
7485         (mono_metadata_generic_inst_is_valuetype): New public function.
7486
7487         * metadata.h (MONO_TYPE_ISSTRUCT): Call
7488         mono_metadata_generic_inst_is_valuetype() if we're a generic
7489         instance to check whether our underlying type is a valuetype.
7490
7491 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
7492
7493         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
7494         #63768.
7495
7496 2004-08-25  Martin Baulig  <martin@ximian.com>
7497
7498         * loader.c (mono_get_method_from_token): Abstract methods can also
7499         be generic and thus have type parameters.
7500
7501         * metadata-internals.h
7502         (MonoDynamicImage): Added `GPtrArray *gen_params'.
7503
7504         * reflection.c (mono_image_get_generic_param_info): Don't create a
7505         metadata row, just add an entry to the `gen_params' array.
7506         (build_compressed_metadata): Sort the `gen_params' array and then
7507         actually create the metadata.
7508
7509 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7510
7511         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
7512
7513 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
7514
7515         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
7516
7517 2004-08-24  Martin Baulig  <martin@ximian.com>
7518
7519         * class.cs (mono_class_is_subclass_of): Like an interface, a
7520         generic instance also derives from System.Object.
7521
7522 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
7523
7524         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
7525         custom modifiers to be in any order. Fixes #61990.
7526
7527 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
7528
7529         * object.c: Register mono_object_new_fast icall.
7530         
7531         * object.c (mono_class_get_allocation_ftn): Return to calling
7532         mono_object_new_fast, since it seems faster to compute the object 
7533         size in unmanaged code than passing it as a parameter.
7534
7535         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
7536
7537         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
7538         this function with Boehm as the oom handler, so we don't have to check
7539         the result of GC_malloc.
7540
7541         * object.c: Remove checks for oom.
7542
7543         * object.h object.c (mono_class_get_allocation_ftn): New function to
7544         return the icall which can be used to allocate an instance of a given
7545         class. 
7546
7547         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
7548
7549         * class-internals.h: Add 'enabled' field.
7550
7551 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
7552
7553         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
7554
7555 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
7556         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
7557         value 0x0010.
7558
7559 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
7560
7561         * appdomain.c: use the Tls function for appdomain too,
7562         at Zoltan's request. Actually return in mono_context_get
7563
7564         * appdomain.c, profiler.c, threads.c: use __thread
7565
7566 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
7567
7568         * appdomain.c threads.c: Call GC_CreateThread on windows.
7569
7570         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
7571         multiple libraries since this don't work on windows.
7572
7573 2004-08-18  Martin Baulig  <martin@ximian.com>
7574
7575         * class-internals.h
7576         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
7577         MonoMethodHeader.
7578
7579         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
7580         MonoMethodNormal since we also need it for abstract and interface
7581         methods.
7582
7583         * reflection.c
7584         (build_compressed_metadata): Sort the GenericParam table.
7585         (mono_image_create_token): Added `gboolean create_methodspec'
7586         argument; this is false when generating a MethodImpl token.
7587         (reflection_methodbuilder_to_mono_method): Abstract and interface
7588         methods may also have generic parameters.
7589
7590 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
7591
7592         * appdomain.c: thread local alloc
7593
7594 2004-08-17  Martin Baulig  <martin@ximian.com>
7595
7596         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
7597
7598         * icall.c
7599         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
7600         argument.
7601
7602         * class.c (mono_type_get_full_name): New public function.
7603         (mono_type_get_name): Don't include the type arguments.
7604
7605 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
7606
7607         * Makefile.am: Build static versions of libmetadata and libmonoruntime
7608         for inclusion into the mono executable.
7609
7610 2004-08-16  Martin Baulig  <martin@ximian.com>
7611
7612         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
7613         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
7614
7615 2004-08-14  Martin Baulig  <martin@ximian.com>
7616
7617         * class.c (dup_type): Also copy the `byref' field.
7618
7619 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
7620
7621         * reflection.c (create_dynamic_mono_image): Revert the last change 
7622         since it breaks bootstrap.
7623
7624 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
7625
7626         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
7627
7628         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
7629         not free them with g_free.
7630
7631 2004-08-11  Martin Baulig  <martin@ximian.com>
7632
7633         * reflection.c (mono_reflection_setup_internal_class): Also call
7634         mono_class_setup_mono_type() if we already have a `tb->type.type'.
7635
7636 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
7637
7638         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
7639         called during default (first) AppDomain creation. Keep track of
7640         Evidence when loading assemblies.
7641
7642 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
7643
7644         * opcodes.c, opcodes.h: reduce runtime relocations.
7645
7646 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
7647
7648         * culture-info.h, locales.c: fixes and chages to sue the new
7649         optimized format of the locale data.
7650         * culture-info-tables.h: regenerated.
7651
7652 2004-08-06  Geoff Norton <gnorton@customerdna.com>
7653         
7654         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
7655
7656 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
7657
7658         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
7659         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
7660         * domain-internals.h: icall declaration.
7661         * icall.c: icall registration.
7662         * object-internals.h: New fields in MonoAssembly for CAS.
7663
7664 2004-08-05  Duncan Mak  <duncan@ximian.com>
7665
7666         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
7667         CEE_LDELEM_ANY.
7668
7669 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
7670
7671         * reflection.c: fix to deal with object[] arrays in custom ctors
7672         (bug #62550).
7673
7674 2004-08-05  Martin Baulig  <martin@ximian.com>
7675
7676         * class.c (mono_class_array_element_size): Added support for
7677         generic instances and correctly handle "recursive" types.
7678
7679 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
7680
7681         * assembly.c: Fix warnings.
7682
7683 2004-08-04  Martin Baulig  <martin@ximian.com>
7684
7685         * class.c
7686         (mono_type_get_name_recurse): Added `gboolean include_arity'
7687         argument specifying whether or not we should include the generic
7688         arity in the type name.
7689         (_mono_type_get_name): New static function.
7690         (mono_class_setup_vtable): If we're a generic instance, don't
7691         include the generic arity in the names of explicit method
7692         implementations.        
7693
7694 2004-08-03  Martin Baulig  <martin@ximian.com>
7695
7696         * class.c (mono_type_get_name_recurse): Enclose the generic type
7697         arguments in `<', '>'.
7698
7699 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
7700
7701         * gc.c: make GC warning messages use the trace API, they are just
7702         noise to most of the users.
7703
7704 2004-08-03  Martin Baulig  <martin@ximian.com>
7705
7706         * debug-mono-symfile.c (read_string): Correctly read the string.
7707
7708 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
7709
7710         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
7711         
7712         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
7713         icalls.
7714         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
7715
7716 2004-07-30  Martin Baulig  <martin@ximian.com>
7717
7718         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
7719         Reflect latest symbol writer changes.   
7720
7721 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
7722
7723         * object.c: always create an object if null is passed
7724         to Invoke() where a valuetype is expected.
7725
7726 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
7727
7728         * marshal.c (mono_marshal_init): make managed
7729         signatures match native ones better for 64bits.
7730
7731 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7732
7733         * appdomain.c: hack to build correctly the private bin path on windows.
7734         Fixes bug #61991.
7735
7736 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
7737
7738         * assembly.c: Load mscorlib from the correct framework directory
7739           (mono/<version>/mscorlib.dll).
7740         * appdomain.h: Added prototypes for new functions.
7741         * internals.h: Added some prototypes.
7742         * domain.c: When initializing the runtime, get from the executable and
7743           the configuration files the runtime version that the app supports.
7744           Added support methods for reading app.exe.config. Added list of versions
7745           supported by the JIT. Added two new methods: mono_init_from_assembly,
7746           which initializes the runtime and determines the required version from
7747           the provided exe file, and mono_init_version, which initializes
7748           the runtime using the provided version.
7749         * icall.c: Get machine.config from version-specific directory.
7750         * reflection.c: When generating an image, embed the version number
7751           of the current runtime.
7752
7753 2004-07-28  Dick Porter  <dick@ximian.com>
7754
7755         * socket-io.c
7756         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
7757         returned sockaddr size before creating the remote address object.
7758         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
7759         61608.
7760
7761 2004-07-28  Dick Porter  <dick@ximian.com>
7762
7763         * locales.c (string_invariant_compare_char): Fix invariant char
7764         compares between upper and lower cases.  Fixes bug 61458.
7765
7766 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
7767         
7768         * marshal.c: actually cache stelem.ref wrappers.
7769         
7770 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
7771
7772         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
7773         sections and remove the mono_cli_rva_map () function.
7774
7775 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
7776
7777         * debug-mono-symfile.c: fix one more endianess issue, from a patch
7778         by Geoff Norton (<gnorton@customerdna.com>).
7779
7780 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
7781
7782         * class.c: fix class loads for pointer types (typeof(int) !=
7783         typeof(int*)).
7784
7785 2004-07-27  Martin Baulig  <martin@ximian.com>
7786
7787         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
7788         reading the debugging information from an external ".mdb" file.
7789
7790 2004-07-24  Martin Baulig  <martin@ximian.com>
7791
7792         * reflection.c (mono_image_get_type_info): Only write a class
7793         layout entry if we actually have a size or a packing size.
7794
7795 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
7796
7797         * reflection.c (type_get_fully_qualified_name): 
7798         insert cast to get type checking of ?: with non-gcc compilers
7799
7800 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
7801
7802         * rand.c: use g_getenv for both lookups of
7803         MONO_EGD_SOCKET
7804
7805 2004-07-17  Martin Baulig  <martin@ximian.com>
7806
7807         * reflection.c (mono_reflection_bind_generic_method_parameters):
7808         Set `gmethod->reflection_info'.
7809
7810 2004-07-17  Martin Baulig  <martin@ximian.com>
7811
7812         * class.c (mono_class_create_from_typedef): Insert the newly
7813         created class into the hash table before computing the interfaces
7814         since we could be called recursively.
7815
7816 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
7817
7818         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
7819         function to implement stelem.ref in managed code
7820         * class-internals.h, debug-helpers.c: a new wrapper type
7821         for the above.
7822
7823 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
7824
7825         * gc.c: allow GC handles to work even when no GC is compiled in.
7826         Fix part of bug #61134 (GetAddrOfPinnedObject).
7827
7828 2004-07-13  Peter Williams  <peter@newton.cx>
7829  
7830         * process.c (complete_path): Make sure we don't attempt to execute
7831         directories.
7832  
7833 2004-07-12  Geoff Norton <gnorton@customerdna.com>
7834
7835         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
7836           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
7837           and will add/subtract the hour if needed
7838
7839 2004-07-12  Martin Baulig  <martin@ximian.com>
7840
7841         * reflection.c (mono_field_get_object): If we have
7842         `field->generic_info', take the attributes from
7843         `field->generic_info->generic_type'.    
7844
7845 2004-07-12  Martin Baulig  <martin@ximian.com>
7846
7847         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
7848         This function must be called before initializing the runtime.
7849         (mono_debug_init_1): New function; call this after initializing
7850         the runtime, but before loading the assembly.  It tells the
7851         debugger to load corlib and the builtin types.
7852
7853         * mono-debug-debugger.c: Did some larger changes in the debugging
7854         code; support recursive class declarations, make sure we actually
7855         add all classes.
7856
7857 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7858
7859         * debug-helpers.c: undo my previous patch and fixed the real issue in
7860         ../mini/exceptions-x86.c
7861
7862 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7863
7864         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
7865         when no HOME env. variable was set and a NullRef was thrown in a .cctor
7866         called from other .cctors.
7867
7868 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
7869
7870         * loader.c: Removed the mono_loader_wine_init hack now that we are
7871         doing a managed version of Windows.Forms.
7872
7873 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
7874
7875         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
7876         threadpool.c, threads.c: remove static data from rootset.
7877
7878 2004-07-09  Dick Porter  <dick@ximian.com>
7879
7880         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
7881         Don't do any more processing if the matched length was 0.  It was
7882         increasing the size of the string before.  Fixes bug 61167.
7883
7884 2004-07-09  Dick Porter  <dick@ximian.com>
7885
7886         * socket-io.h:
7887         * socket-io.c
7888         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
7889         Add support for SO_PEERCRED if its available.
7890
7891 2004-07-09  Peter Bartok <pbartok@novell.com>
7892         * loader.c: winelib.exe.so error message is now only displayed if
7893         MONO_DEBUG is set. To help us avoid questions when people are trying
7894         out the new Managed.Windows.Forms.
7895
7896 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
7897
7898         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
7899         for isinst and castclass wrappers.
7900
7901         * class-internals.h icall.c: Move registration and lookup of JIT icalls
7902         to libmetadata from the JIT, so they could be used by the marshalling
7903         code and the interpreter.
7904
7905         * marshal.c: Register marshalling related JIT icalls here instead of
7906         in mini.c. Use CEE_MONO_ICALL instead of the family of 
7907         CEE_MONO_PROC<x> opcodes to call marshalling functions.
7908
7909         * metadata.h: Remove unneeded marshalling conversions.
7910
7911         * opcodes.c: Update for new opcodes.
7912         
7913 2004-07-08  Martin Baulig  <martin@ximian.com>
7914
7915         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
7916         (mono_debug_get_domain_data): Make this function static.
7917
7918 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
7919
7920         * gc.c, object.h: add nice GC handle API for embedders.
7921
7922 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
7923
7924         * reflection.c: more changes for the new api
7925
7926         * object.c: When we reflect on a field w/ a constant value, it
7927         will not have a memory location, so we must access metadata. Also,
7928         allow easier reading of strings so that we can read them from
7929         the constant data.
7930
7931         * class.c (mono_class_layout_fields): no need for literal fields here.
7932
7933         * class-internals.h: api changes for const fields
7934
7935         * icall.c (ves_icall_get_enum_info): use new apis for const fields
7936
7937 2004-07-06  Martin Baulig  <martin@ximian.com>
7938
7939         * mono-debug.h: Increment version number to 44.
7940
7941         * mono-debug.c (mono_debug_add_wrapper): The second argument is
7942         now a gpointer, rewrote this whole method.
7943
7944         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
7945         function.  Add information about the wrapper in a new "misc table".
7946
7947         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
7948         for the new misc table.
7949
7950 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
7951
7952         * metadata-internals.h image.c: Add a cache for helper signatures.
7953
7954         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
7955
7956 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
7957
7958         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
7959         delegates from a delegate. Fixes #61033.
7960         
7961         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
7962         marshalling of stringbuilder arrays. Fixes #59900.
7963
7964 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
7965
7966         * icall.c: Add EnumBuilder:setup_enum_type icall.
7967
7968 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
7969
7970         * icall.c: Added a new icall for the property version of
7971         OffsetOfStringData.
7972
7973 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
7974
7975         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
7976         it has a constant size across platforms.
7977
7978         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
7979         stack trace.
7980
7981 2004-06-29  Martin Baulig  <martin@ximian.com>
7982
7983         * mono-debug.c (mono_debug_add_method): Protect the whole function
7984         in mono_debugger_lock(), not just parts of it.
7985
7986 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
7987
7988         * reflection.c: make sure padding bytes in heaps are zeroed.
7989
7990 2004-06-24  David Waite  <mass@akuma.org>
7991
7992         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
7993         image.c, loader.c, locales.c, marshal.c, metadata.c,
7994         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
7995         string-icalls.c, threads.c: change to C90-style comments from C99 /
7996         C++ -style
7997
7998 2004-06-24  Dick Porter  <dick@ximian.com>
7999
8000         * threads.c
8001         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
8002         return createdNew.  Fixes bug 60412.
8003
8004         * threads-types.h: 
8005         * icall.c: Add createdNew parameter to CreateMutex icall
8006
8007 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8008
8009         * reflection.c, object-internals.h: save default value in params.
8010
8011 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8012
8013         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
8014         no need to build a new path combining that with the application base.
8015         Fixes bug #60442.
8016
8017 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
8018
8019         * reflection.c: fixed minor standard compliance issues.
8020
8021 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8022
8023         * reflection.c: fixed issue with encoding some custom attributes
8024         (arrays in properties and fields, bug #60411).
8025
8026 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8027
8028         * reflection.c: fix start address when copying the public key token.
8029
8030 2004-06-23  Martin Baulig  <martin@ximian.com>
8031
8032         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
8033         the `exc' object in a static object to put it into the GC's root set.
8034
8035 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
8036
8037         * reflection.c: make mono_reflection_setup_internal_class ()
8038         callable a second time to setup a new parent class.
8039
8040 2004-06-23  Dick Porter  <dick@ximian.com>
8041
8042         * threads.c: Check for WAIT_IO_COMPLETION return values.
8043
8044 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
8045
8046         * appdomain.c: Removed the g_free on the public key token. Now copy 
8047         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
8048         * assembly.c: Added public key token string value when loading 
8049         assemblies. Fix bug #60439.
8050         * icall.c: Added missing informations (like public key) in 
8051         GetReferencedAssemblies. Fix #60519.
8052         * image.h: Changed definition for public key token from const char*
8053         public_tok_value to guchar public_key_token [17];
8054         * reflection.c: Updated for changes to public key token.
8055
8056 2004-06-22  Lluis Sanchez Gual
8057
8058         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
8059         for the field in base classes.
8060
8061 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8062
8063         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
8064         mark headers as not supported, they are installed only for use by the
8065         debugger.
8066
8067 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
8068
8069         * *.c, *.h: avoid namespace pollution in public headers.
8070
8071 2004-06-21  Martin Baulig  <martin@ximian.com>
8072
8073         * exception.c (mono_get_exception_security): It's in
8074         "System.Security", not in "System".
8075
8076         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
8077         the exception classes.
8078
8079 2004-06-21  Martin Baulig  <martin@ximian.com>
8080
8081         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
8082         Protect the exception object from being finalized.
8083
8084 2004-06-21  Martin Baulig  <martin@ximian.com>
8085
8086         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
8087         public function.
8088
8089 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
8090
8091         * reflection.c: Load the assembly in mono_reflection_type_from_name,
8092         if it was not loaded before. Fix parts of #60439.
8093
8094 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
8095
8096         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
8097         code that was broken since Ben's change: wrappers are now
8098         dependent on the method signature only again.
8099
8100 2004-06-21  Martin Baulig  <martin@ximian.com>
8101
8102         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
8103         added interface support.
8104
8105 2004-06-21  Martin Baulig  <martin@ximian.com>
8106
8107         * class.c (mono_vtable_get_static_field_data): New public method.
8108
8109 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
8110
8111         * filewatcher.c : Windows build fix to be compliant with API changes.
8112
8113 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8114
8115         * class.h, class.c: more accessors.
8116         * metadata.h, metadata.c: prepare for hiding MonoType and
8117         MonoMethodSignature: people should use the accessors from now on
8118         outside of the tree.
8119
8120 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8121
8122         * *.c, *.h: more API cleanups.
8123
8124 2004-06-18  Jackson Harper  <jackson@ximian.com>
8125
8126         * assembly.c: Trace loading assemblies.
8127         * loader.c: Trace loading native libraries.
8128         * mono-config.c: Trace loading config files.
8129         
8130 2004-06-18  Dick Porter  <dick@ximian.com>
8131
8132         * locales.c: Tell ICU the lengths of strings, it can cope with
8133         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
8134
8135 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
8136
8137         * image.c: swapped name/filename;
8138
8139 2004-06-18  Martin Baulig  <martin@ximian.com>
8140
8141         * mono-debug-debugger.c (write_class): Write the parent class at
8142         the end of the header.
8143
8144 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8145
8146         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
8147
8148 2004-06-17  Raja R Harinath  <rharinath@novell.com>
8149
8150         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
8151         (bundle_obj): New conditional define.
8152         (BUILT_SOURCES): Remove.
8153         ($(bundle_srcs)): Make parallel-make safe.
8154         (libmonoruntime_la_LIBADD): Make unconditional.
8155         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
8156         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
8157
8158 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
8159
8160         * culture-info-tables.h: It was inconsistent with the latest
8161           supp info files.
8162
8163 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
8164
8165         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
8166         be loaded.
8167
8168         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
8169         with gcc 2.95.
8170
8171 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8172
8173         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
8174         cleaned up public header threads.h.
8175
8176 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8177
8178         * Makefile.am, *.c, *.h: more API cleanups.
8179
8180 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
8181
8182         * Makefile.am: removed monosn from compilation.
8183         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
8184         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
8185         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
8186         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
8187         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
8188         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
8189
8190 2004-06-15  Jackson Harper  <jackson@ximian.com>
8191
8192         * assembly.c: Make locales lower case when searching the GAC for
8193         assemblies. gacutil will always make locales lowercase when
8194         installing so this effectively makes them case insensitive.
8195         
8196 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
8197
8198         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
8199         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
8200           parameter which allows to choose whether the wait can be interrupted or 
8201           not. Also added the method mono_monitor_enter(), which locks the monitor
8202           using an infinite wait and without allowing interruption.
8203           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
8204           interrupted.
8205         * object.h: Added new fields in MonoThread. suspend_event holds the event
8206           used to susped/resume the thread. synch_lock is the lock object to use for
8207           modifying the thread state.
8208         * threads.c: Use the new synch_lock object for locking, instead of "this",
8209           which can generate deadlocks.
8210           Moved thread state change in Thread.Sleep and Thread.Join from managed
8211           to unmanaged code. This avoids a deadlock when the thread was suspended
8212           just after acquiring the thread lock.
8213           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
8214           Implemented Thread.Suspend using an event instead of ThreadSuspend,
8215           which is not fully implemented in the io-layer.
8216         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
8217
8218 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
8219
8220         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
8221         threads-types.h: more API cleanups.
8222
8223 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8224
8225         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
8226         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
8227         threadpool.c, threads.c: first pass at the exported API cleanup.
8228
8229 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
8230
8231         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
8232
8233 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8234
8235         * icall.c: added internalGetHome.
8236
8237 2004-06-14  Dick Porter  <dick@ximian.com>
8238
8239         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
8240         possible to return successfully when '.' or '..' were the only
8241         entries in a directory, but were skipped.  The MonoIOStat was not
8242         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
8243         Fixes bug 59574.
8244
8245 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
8246
8247         * reflection.c: make binaries run on .Net 1.1 by default.
8248
8249 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
8250
8251         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
8252
8253 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
8254
8255         * marshal.c: keep track of struct size with explicit layout
8256         (bug #59979).
8257
8258 2004-06-12  Martin Baulig  <martin@ximian.com>
8259
8260         * mono-debug-debugger.c: Comment out a debugging g_message().
8261
8262 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8263
8264         * reflection.c, reflection.h: do not free custom attrs that are cached.
8265         * icall.c: use braces to make code clearer.
8266
8267 2004-06-11  Martin Baulig  <martin@ximian.com>
8268
8269         * class.h (MonoInflatedField): New type.
8270         (MonoClassField): Replaced `MonoType *generic_type' with
8271         `MonoInflatedField *generic_info'.
8272
8273         * icall.c
8274         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
8275
8276 2004-06-11  Martin Baulig  <martin@ximian.com>
8277
8278         * reflection.c (mono_image_create_method_token): Correctly encode
8279         varargs methods.
8280
8281 2004-06-11  Martin Baulig  <martin@ximian.com>
8282
8283         * metadata.c (mono_metadata_parse_method_signature): When parsing
8284         a MethodDef which has VarArgs, also set sentinelpos if we don't
8285         have any parameters.
8286
8287 2004-06-11  Martin Baulig  <martin@ximian.com>
8288
8289         * verify.c (mono_method_verify): In CEE_CALL, use
8290         mono_method_get_signature() to get the method's signature, unless
8291         we're a PInvoke method.
8292
8293 2004-06-10  Jackson Harper  <jackson@ximian.com>
8294
8295         * assembly.c: Use <path>/lib/mono/gac for the extra paths
8296         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
8297         logical name as the supplied path is just a prefix to the gac not
8298         the direct path to it.
8299         
8300 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
8301
8302         * reflection.c: make the token for a created method match
8303         the token of the MethodBuilder it was created from
8304         (IKVM requires this behaviour now).
8305
8306 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
8307
8308         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
8309         reflection.c, socket-io.c: leak fixes.
8310
8311 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
8312
8313         * icall.c: handle sentinel pos in vararg methods in position different
8314         from 0.
8315
8316 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8317
8318         * culture-info-tables.h: freshly generated.
8319
8320 2004-06-09  Martin Baulig  <martin@ximian.com>
8321
8322         * loader.c (mono_get_method_constrained): Call `mono_class_init
8323         (constrained_class)'.   
8324
8325 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
8326
8327         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
8328         any methods. Fixes #59629.
8329
8330 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8331
8332         * culture-info-tables.h: reflecting locale-builder updates.
8333
8334 2004-06-08  Dick Porter  <dick@ximian.com>
8335
8336         * object.h:
8337         * locales.c: Fixed compile warnings, including a real bug in
8338         CompareInfo_internal_compare.
8339         
8340 2004-06-08  Dick Porter  <dick@ximian.com>
8341
8342         * locales.c
8343         (ves_icall_System_Globalization_CompareInfo_internal_index):
8344         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
8345         Double-check the resuls of usearches, because ICU currently
8346         ignores most of the collator settings here.  Fixes bug 59720.
8347         
8348 2004-06-08  Dick Porter  <dick@ximian.com>
8349
8350         * locales.c
8351         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
8352         Fix memory leak and segfault-causing typo.  No idea how this one
8353         lasted so long without being noticed.
8354
8355 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
8356
8357         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
8358         any methods. Fixes #59629.
8359
8360 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8361
8362         * assembly.c:
8363         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
8364         own the critical section before). Removed dead code (that's done
8365         in the preload hook).
8366
8367         (mono_assembly_load_with_partial_name): call the preload hook.
8368
8369 2004-06-08  Martin Baulig  <martin@ximian.com>
8370
8371         * metadata.c (mono_metadata_signature_alloc): Default
8372         `sentinelpos' to -1.
8373
8374         * reflection.c (mono_image_get_array_token): Likewise.
8375
8376 2004-06-08  Martin Baulig  <martin@ximian.com>
8377
8378         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
8379
8380         * metadata.c (mono_metadata_parse_method_signature): When parsing
8381         a MethodDef which has VarArgs, set sentinelpos.
8382
8383         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
8384         `gint16' since we're using -1 for non-varargs methods.
8385
8386         * reflection.c
8387         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
8388         (method_encode_signature): Added varargs support.
8389         (method_builder_encode_signature): Likewise.
8390         (mono_image_get_varargs_method_token): New static method.
8391         (mono_image_create_method_token): New public method; this is
8392         called via an icall instead of mono_image_create_token() when
8393         calling a varargs method.       
8394
8395 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
8396
8397         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
8398
8399 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8400
8401         * culture-info-tables.h : Reflecting the latest locale-builder that
8402           fixed empty array representation ({} to {0}).
8403
8404 2004-06-07  Jackson Harper  <jackson@ximian.com>
8405
8406         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
8407         looking up extra gac paths. This allows MONO_GAC_PATH to act
8408         exactly like a prefix.
8409         
8410 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
8411
8412         * reflection.c (mono_reflection_type_from_name): Make a copy of the
8413         type name before modifying it. Fixes #59405.
8414
8415 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8416
8417         * culture-info.h: added fields for "all datetime patterns".
8418         * locales.c: (  ves_icall_System_Globalization_CultureInfo
8419           _construct_datetime_format ()): fill xxx_patterns fields.
8420         * object.h: added fields for "all datetime patterns" to
8421           MonoDateTimeFormatInfo.
8422         * culture-info-tables.h: reflecting locale-builder updates.
8423
8424 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
8425
8426         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
8427         the event has no add and remove methods. Fixes #59629.
8428
8429 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
8430
8431         * object.c: Fixed possible integer overflow when allocating large
8432         strings.
8433
8434 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
8435
8436         * culture-info-tables.h: reflecting locale-builder updates.
8437
8438 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
8439
8440         * culture-info-tables.h: reflecting locale-builder updates.
8441
8442 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
8443
8444         * culture-info-tables.h: reflecting locale-builder updates.
8445
8446 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
8447
8448         * threads.c: Made Thread.Sleep abortable.
8449
8450 2004-06-02  Martin Baulig  <martin@ximian.com>
8451
8452         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
8453
8454         * debug-mono-symfile.h: Bumped symbol file version number to 37.
8455
8456 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
8457
8458         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
8459
8460 2004-05-30  Jackson Harper  <jackson@ximian.com>
8461
8462         * reflection.c: Do not hardcode assembly versions or public key
8463         tokens anymore. All of this except the corlib section was dead
8464         code anyways.
8465         
8466 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
8467
8468         * object.c (mono_runtime_invoke_array): Automatically create boxed
8469         objects for byref valuetypes if needed. Fixes #59300.
8470         
8471         * object.c (mono_method_return_message_restore): Handle 
8472         MONO_TYPE_OBJECT as well.
8473
8474 2004-05-28  Jackson Harper  <jackson@ximian.com>
8475
8476         * reflection.c: The modified type encoding was causing build
8477         problems. Reverted for now.
8478         
8479 2004-05-28  Jackson Harper  <jackson@ximian.com>
8480
8481         * reflection.c/h: Take an assembly ref so that we dont create
8482         fully qualified names when encoding types in the same assembly as
8483         the custom attribute being emitted.
8484         * appdomain.c: Increment version number.
8485         
8486 2004-05-26  Duncan Mak  <duncan@ximian.com>
8487
8488         * icall.c
8489         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8490         Set the full version number (major, minor, build, revision).
8491
8492 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
8493
8494         * marshal.c (emit_struct_conv): increment src/dst after blit
8495         (mono_marshal_get_managed_wrapper,
8496         mono_marshal_get_native_wrapper): make sure we have marshalling
8497         info before marshalling params (info computation affects
8498         blittable)
8499
8500         * class.c (class_compute_field_layout): correctly deal with
8501         blittable
8502         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
8503         value types (as per what windows dows by default)
8504         (mono_class_setup_mono_type): System.ValueType is blittable
8505         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
8506         blittable
8507
8508         * marshal.c (mono_marshal_load_type_info): flag types  as
8509         non-blittable if the native layout doesn't match the managed
8510         layout
8511
8512 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8513
8514         * appdomain.c: don't add stuff in the private search path that is
8515         above the application base. If application base is not set, there's
8516         no private search path.
8517
8518 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
8519
8520         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
8521         byref struct arguments in native->managed marshalling.
8522
8523 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
8524
8525         * marshal.c (mono_marshal_get_runtime_invoke): correctly
8526         cache methods using signature (special case for methods
8527         that are value type or string class)
8528         
8529         * image.c (mono_image_close): clean up allocated GSList's
8530         in runtime_invoke_cache.
8531
8532 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8533
8534         * mono-config.c: set the correct path for mono_cfg_dir on windows when
8535         there's no MONO_CFG_DIR environment variable defined.
8536
8537 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8538
8539         * threads.c: windows version must be >= 0x0500 to include OpenThread.
8540
8541 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
8542
8543         * threadpool.c: Really wait for 500ms after the async call, even if the wait
8544           is interrumped.
8545         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
8546           before waiting for it, and call CloseHandle after the wait to unref it.
8547           This will make sure that handles are not disposed too early.
8548
8549 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8550
8551         * appdomain.c:
8552         * appdomain.h:
8553         * icall.c: removed
8554         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
8555         needed now.
8556
8557         * object.c: se the application_base only for the domain that runs
8558         Main. Fixes bug #59216,
8559
8560 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8561
8562         * appdomain.c:
8563         * object.c: only the domain in which Main is run have
8564         SetupInformation.ConfigurationFile set, so moved a few lines from
8565         appdomain.c to object.c.
8566
8567 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8568
8569         * appdomain.c: we tried to load [name].(dll|exe), but according
8570         to bug #57710, we must also try [culture]/[name].(dll|exe) and
8571         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
8572         There's a test case attached to bug #58922.
8573
8574 2004-05-27  Dick Porter  <dick@ximian.com>
8575
8576         * icall.c:
8577         * file-io.c: Implemented icalls for locking and unlocking regions
8578         in a file.
8579         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
8580         FALSE on error (fixes both compiler warning and real bug.)
8581
8582 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
8583
8584         * culture-info-tables.h: reflecting locale-builder updates.
8585
8586           (Added missing ChangeLog entry for 05/26)
8587
8588 2004-05-27  Jackson Harper  <jackson@ximian.com>
8589
8590         * locales.c: Fix some cut and paste errors.
8591         
8592 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8593
8594         * mono-config.c: set the correct path for config. directory on windows.
8595
8596 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8597
8598         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
8599           on win32.
8600
8601 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
8602
8603         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
8604         from pinvoke functions.
8605         
8606         * marshal.c (mono_ftnptr_to_delegate): Implement this.
8607
8608 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8609
8610         * culture-info-tables.h: reflecting locale-builder updates.
8611
8612 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
8613
8614         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
8615         #59086.
8616
8617 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
8618
8619         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
8620         * icall.c: Modified icalls for RNG.
8621         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
8622         Windows (CryptoAPI).
8623
8624 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
8625
8626         * locales.c: Fix build.
8627
8628 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
8629
8630         * culture-info-tables.h: reflecting locale-builder updates.
8631
8632 2004-05-25  Jackson Harper  <jackson@ximian.com>
8633
8634         * locales.c: When creating the current culture use the $LANGs
8635         specific culture. So DateTimeFormat and NumberFormat entries are created.
8636         
8637 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
8638
8639         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
8640         a char array as parameter.
8641
8642 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
8643
8644         * image.c: In mono_image_open(), always use an absolute path name to
8645           look for already loaded images.
8646
8647 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
8648
8649         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
8650         missing in the windows build (like older cygwin include files).
8651
8652 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
8653
8654         * icall.c: Fixed check for possible integer overflow in Buffer_
8655         BlockCopy icall. Replaced comments style // by /* */.
8656
8657 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
8658
8659         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
8660         
8661         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
8662         check after MONO_VTADDR. Fixes pinvoke2.exe.
8663
8664         * marshal.h marshal.c metadata.h: Add beginnings of support for
8665         ftnptr -> delegate marshalling.
8666
8667 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
8668
8669         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
8670         * threads.c: Fix warnings.
8671
8672 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
8673
8674         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
8675         * icall.c: Registered icalls for Suspend and Resume.
8676         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
8677           Thread.Abort.
8678         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
8679         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
8680         * process.c: Use WaitForSingleObjectEx.
8681         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
8682           checkpoints.
8683         * threads.c, threads.h: Make use of new Ex wait methods. Improved
8684           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
8685           for Suspend and Resume. Added new mono_thread_stop, used for stoping
8686           background threads. Added basic support for Abort in Windows.
8687           Start new threads using a managed delegate invoke wrapper. This wrapper
8688           has an interruption checkpoint that is needed since an interruption
8689           can be requested before the thread leaves the unmanaged code that starts 
8690           the thread.
8691         * marshal.c: Added interruption checkpoint after every native call, and
8692           also before managed calls for wrappers called from unmanaged code to
8693           go into managed code.
8694         * object.h: Added new field in MonoThread to keep track of interruption
8695           requests.
8696
8697 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
8698
8699         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
8700         calls.
8701
8702 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8703
8704         * appdomain.c:
8705         * assembly.c:
8706         * gc.c:
8707         * locales.c:
8708         * mono-config.c:
8709         * rand.c: getenv -> g_getenv (windows!)
8710
8711         * process.c: complete_path is also used on non-windows platforms.
8712
8713 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8714
8715         * icall.c: new signature for Process_Start.
8716
8717         * process.[ch]: new signature for Process_Start. If we're on windows
8718         and UseShellExecute is false, we have to search for the program by
8719         ourselves if we don't get a full path.
8720
8721 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
8722
8723         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
8724         marshalling and call CleanUpNativeData if needed. Fixes #58646.
8725
8726 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8727
8728         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
8729         Fixes bug #58373.
8730
8731 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8732
8733         * process.c: use double quotes to quote program name and arguments on
8734         windows. Fixes bug #58575.
8735
8736 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8737
8738         * file-io.c: don't return "." and ".." when using windows Find*File.
8739
8740 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
8741
8742         * marshal.c: Don't pass wrappers to message init because method 
8743         addressed used to lookup metadata. part of remoting[2|3] fix.
8744
8745 2004-05-15  Jackson Harper  <jackson@ximian.com>
8746
8747         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
8748         path is essentially the same as MONO_PATH except that it points to
8749         GACs instead of lib directories.
8750         * loader.h: The user gac is gone so we dont need function to
8751         enable/disable it.
8752         * mono-config.c: user gac option is now gone.
8753         
8754 2004-05-15  Jackson Harper  <jackson@ximian.com>
8755
8756         * culture-info.h: Make defines more consistent, add calendar data
8757         to the culture info table.
8758         * culture-info-tables.h: Add basic calendar data. Basically
8759         everyone gets default gregorian until all the data is
8760         updated.
8761         * locales.c: Use the new consistent defines. Set calendar data for
8762         culture info objects.
8763         * object.h: add a field for calendar data to CultureInfo
8764         
8765 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
8766
8767         * image.c: image->runtime_invoke_cache is keyed on signatures now.
8768         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
8769         a signature.
8770         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
8771         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
8772         an extra param that is the pointer of the method to invoke. The IL for
8773         the invoke method is no longer specific to the method, but to the
8774         signature of the method. Thus, we can share the same code for multiple
8775         methods. This reduces the number of methods that have to be compiled.
8776
8777 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
8778
8779         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
8780
8781         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8782
8783         * icall.c: Optimize Buffer.BlockCopy.
8784
8785 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8786
8787         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
8788         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
8789         quote). Changed them to "MMMM yyyy".
8790
8791 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
8792
8793         * rand.c
8794         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
8795
8796 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
8797
8798         * reflection.h: Updated after changes to managed structures.
8799
8800         * appdomain.c: Bump corlib version.
8801
8802 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8803
8804         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
8805         windows.
8806
8807 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8808
8809         * Makefile.am: link to ../os/libmonoos.la on windows.
8810
8811         * assembly.c:
8812                 -If MONO_DEBUG, warn about non-existing directories in
8813                 MONO_PATH.
8814                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
8815                 compile time variable.
8816                 -Removed init_default_path and call mono_set_rootdir from
8817                 libmonoos.a instead (windows only).
8818
8819         * assembly.h: declare mono_assembly_getrootdir().
8820
8821         * domain.c:
8822         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
8823
8824         * loader.c: s/getenv/g_getenv/
8825
8826 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
8827
8828         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
8829
8830         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
8831
8832         * metadata.h: Add new marshalling conversions.
8833
8834         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
8835         function.
8836
8837         * reflection.c (mono_reflection_get_type): Lookup the type in all
8838         modules of a multi-module assembly. Fixes #58291.
8839
8840 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
8841
8842         * threads.c: Before aborting a background, set the StopRequested
8843         state.  This avoids throwing the Abort exception.
8844         In mono_thread_manage, don't continue with the shutdown until all
8845         aborted threads have actually stopped.
8846
8847 2004-05-10  Jackson Harper  <jackson@ximian.com>
8848
8849         * locales.c: Remove the modifier from culture names.
8850         
8851 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8852
8853         * Makefile.am: monosn is not installed any more. It has been deprecated
8854         in favor of sn.
8855
8856 2004-05-07  Jackson Harper  <jackson@ximian.com>
8857
8858         * locales.c
8859         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
8860         Fix array construction, add bailout if the length is 0.
8861
8862 2004-05-07  Dick Porter  <dick@ximian.com>
8863
8864         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
8865         machine doesn't have a DNS entry.  Patch by Urs Muff
8866         (umuff@quark.com), fixes bug 57928.
8867
8868 2004-05-06  Jackson Harper  <jackson@ximian.com>
8869
8870         * reflection.c: Handle null PublicTokens properly. alloc mem for
8871         assembly names culture so we dont crash when freeing it.
8872         
8873 2004-05-06  Jackson Harper  <jackson@ximian.com>
8874
8875         * assembly.c: Check the usergac when loading with partial names.
8876         
8877 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
8878
8879         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
8880         does nothing for now (not required for Linux/Windows) but the class
8881         library can call it (and a newer or modified runtime could need it).
8882         * icall.c: Registred icall.
8883
8884 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8885
8886         * loader.c: prints a message on module loading error we set MONO_DEBUG
8887         environment variable.
8888
8889 2004-05-05  Jackson Harper  <jackson@ximian.com>
8890
8891         * appdomain.c: Handle PublicKeyToken=null properly.
8892         
8893 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
8894
8895         * environment.c|h: Added icall ves_icall_System_Environment_
8896         GetOSVersionString to get the current OS version as a string.
8897         * icall.c: Registred icall.
8898
8899 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
8900
8901         * object.c: in mono_object_get_virtual_method(), take into account that
8902         non-virtual methods don't have a slot in the vtable. Check needed when
8903         the object is a proxy.
8904
8905 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
8906
8907         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
8908         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
8909
8910         * object.c (mono_class_compute_gc_descriptor): Fix warning.
8911
8912         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
8913         passed when a valuetype is expected.
8914
8915         * object.c (mono_unhandled_exception): Only set the exit code if the
8916         exception happens in the main thread. Fixes thread5.exe.
8917
8918         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
8919         invalid names. Fixes #58047.
8920
8921 2004-05-03  Jackson Harper  <jackson@ximian.com>
8922
8923         * assembly.c: This line was committed accidently and is unneeded.
8924         
8925 2004-05-03  Jackson Harper  <jackson@ximian.com>
8926
8927         * icall.c: Add new icall for Assembly::LoadWithPartialName
8928         * assembly.c/.h: new function that probes the GAC to load partial
8929         assembly names by Paolo Molaro.
8930         
8931 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8932
8933         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
8934         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
8935         (type_get_fully_qualified_name): Added PublicKeyToken when building a
8936         full type name.
8937
8938 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8939
8940         * appdomain.c: fixed check for 'neutral' culture and removed warning.
8941         * reflection.c: fix bug when parsing a full type name and Version is not
8942         the last thing in the string.
8943
8944 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
8945
8946         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
8947         crashes when it is freed.
8948
8949 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8950
8951         * assembly.c: print the compat warning to stderr.
8952
8953 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
8954
8955         * assembly.c (mono_assembly_load_references): Add a compatibility
8956         hack to run old applications that might be still referencing the
8957         3300-based assemblies, only do this for System.xxx.
8958
8959 2004-05-01  Jackson Harper  <jackson@ximian.com>
8960
8961         * appdomain.c: If the culture is neutral we set it to "".
8962         
8963 2004-04-29  Jackson Harper  <jackson@ximian.com>
8964
8965         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
8966
8967 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
8968  
8969         * string-icalls.c: added low overhead function for copying chars
8970         * icall.c: added needed icall for the above function
8971  
8972 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8973
8974         * icall.c: fix return value of get_global_assembly_cache.  Implemented
8975         Environment.GetLogicalDrives.
8976
8977 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
8978
8979         * rand.c: try and talk to egd or prngd
8980         for random bytes if opening devices fail.
8981
8982 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
8983
8984         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
8985         alignment for the type using the native alignment of its members 
8986         instead of using klass->min_align.
8987
8988         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
8989
8990 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8991
8992         * file-io.c:
8993         * socket-io.c: added check for sys/aio.h.
8994
8995 2004-04-28  Dick Porter  <dick@ximian.com>
8996
8997         * threads.c: Don't abort a thread thats already aborting, when
8998         terminating everything.
8999
9000 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9001
9002         * icall.c: added 2 new async calls for Socket.
9003
9004         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
9005         IO on *nix systems.
9006
9007         * threadpool.c: removed unused variable.
9008
9009 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
9010
9011         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
9012
9013 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9014
9015         * locales.c: put back string_invariant_tolower () and
9016         string_invariant_toupper ().
9017
9018 2004-04-26 David Waite <mass@akuma.org>
9019
9020         * file-io.h:
9021         * socket-io.h:
9022         * threads.h:
9023         * unicode.h: remove comma from end of enumeration declarations
9024
9025 2004-04-26 David Waite <mass@akuma.org>
9026
9027         * debug-mono-symfile.h:
9028         * decimal.c:
9029         * mono_debug.h:
9030         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
9031
9032
9033 2004-04-26  Jackson Harper  <jackson@ximian.com>
9034
9035         * appdomain.c: Increment version number.
9036         
9037 2004-04-26  Jackson Harper  <jackson@ximian.com>
9038
9039         * appdomain.c: Set assembly references public token value when
9040         PublicKeyToken is specified, not the hash_value. Free public token
9041         values when free assembly name data. Previously the public key
9042         token was hex decoded, however we are using hex encoded public key
9043         tokens, so this is not neccasary.
9044         * assembly.c: Lookup assemblies in the gac if their public token
9045         value is set. Add function to allow enabling user gac
9046         lookups. Specify whether or not the assembly was loaded from the
9047         GAC. Compare full assembly names when checking the cache for
9048         assemblies (Temporarily disabled see comment in code). Remove
9049         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
9050         specifies trace-loader they get extra info to stdout on the
9051         loading of assemblies.
9052         * image.h: Add a field for an assembly references public token
9053         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
9054         whether an assembly has been loaded from the GAC.
9055         * image.c: Remove a corlib -> mscorlib name mapping.
9056         * loader.h: Add function to enable/disable the user gac.
9057         * mono-config.c: Check if the usergac is enabled in the config
9058         file.
9059         * icall.c: New icall to determine whether or not an assembly has
9060         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
9061         * tabldefs.h: Add constant for assemblyref flag that specifies a
9062         full public key is used instead of a public token.
9063         * reflection.c: Remove mscorlib -> corlib mappings. Set
9064         PublicTokenValue instead of hash value. This value is a hex
9065         string so it does not need to be expanded.
9066
9067 2004-04-26  Martin Baulig  <martin@ximian.com>
9068
9069         * mono-debug-debugger.c (mono_debugger_initialize): Set
9070         `mono_debugger_initialized' before calling mono_debug_lock().
9071
9072 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
9073
9074         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
9075           InternalToUpper/InternalToLower.
9076         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
9077           removed invariant culture shortcut.  This is now done in managed code.
9078         * locales.c: (string_invariant_toupper/tolower) removed.
9079
9080 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9081
9082         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
9083         Added Poll internal call.
9084
9085         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
9086         call for Poll. Select was too heavy for polling a single socket.
9087
9088         * threadpool.[ch]: added mono_threadpool_cleanup.
9089         * threads.c: use it. Don't use Thread_Abort on windows.
9090
9091 2004-04-23  Martin Baulig  <martin@ximian.com>
9092
9093         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
9094
9095 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
9096
9097         * icall.c: Registred new icalls for key pair protection and added an
9098         icall for Environment.GetFolderPath on Windows.
9099         * security.c|h: Added new icalls for key pair protection.
9100
9101 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9102
9103         * socket-io.c: don't display the non-supported family warning for known
9104         families. Now this is not displayed on windows when checking support
9105         for IPv4/IPv6.
9106
9107 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9108
9109         * class.c: don't display the layout warning for static fields.
9110
9111 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
9112
9113         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
9114         * locales.c, locales.h: Added new icalls for culture-specific
9115         Char.ToLower and Char.ToUpper.
9116
9117 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9118
9119         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
9120         by David Waite.
9121
9122 2004-04-20  Martin Baulig  <martin@ximian.com>
9123
9124         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
9125         of the type name before passing it to mono_reflection_type_from_name().
9126
9127 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
9128
9129         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
9130         encodings here. Fixes #56965.
9131
9132 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
9133
9134         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9135         fix test on strstr result not that I can see anything that
9136         relies on the result.
9137
9138 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
9139
9140         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
9141         Fixes #57081.
9142
9143         * marshal.c (mono_marshal_get_string_encoding): New helper function.
9144
9145         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
9146         function to determine which marshalling to use for strings. Fixes
9147         #56965.
9148
9149         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
9150
9151         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
9152
9153 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
9154
9155         * icall.c: #include mono-config.h
9156
9157 2004-04-15  Jackson Harper  <jackson@ximian.com>
9158
9159         * culture-info-tables.h: Fix date formats for en-US culture.
9160         
9161 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
9162
9163         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
9164         ThreadPool.SetMinThreads.
9165         * threadpool.c: Implemented ThreadPool.GetMinThreads and
9166         ThreadPool.SetMinThreads.
9167
9168 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
9169
9170         * mono-config.c: also load the .config file in the directory
9171         where the assembly was found.
9172
9173 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
9174
9175         * assembly.c: load per-assembly config files.
9176         * icall.c: decrapified code to get the config dir and moved to
9177         mono-config.c.
9178         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
9179         per-assembly config files. When doing a dll map lookup give precedence
9180         to the per-assembly data.
9181
9182 2004-04-14  Martin Baulig  <martin@ximian.com>
9183
9184         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
9185         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
9186         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
9187
9188         * mono-debugger-debugger.c: While the debugger is locked, remember
9189         whether the symbol tables have changes and send one single
9190         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
9191
9192 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
9193
9194         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
9195
9196         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
9197         function.
9198
9199         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
9200         account when marshalling string arrays. Fixes #56965.
9201
9202 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
9203
9204         * icall.c: Add new icalls mapping for security.
9205         * security.c|h: Add internal calls for WindowsIdentity,
9206         WindowsImpersonationContext and WindowsPrincipal.
9207
9208 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
9209
9210         * class.c: Added comment to ensure the System.MonoDummy class
9211         is removed when no longer necessary
9212
9213 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
9214
9215         * appdomain.c: Pass arguments to the bootstraping exceptions to
9216         minimize JITed methods at boot
9217
9218         * metadata.c (mono_exception_from_name_two_strings): Allow for the
9219         second string to be null.
9220
9221         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9222         Change the protocol to minimize the JIT methods at startup.  Now
9223         it Returns the internal codepage, if the value of "int_code_page"
9224         is 1 at entry, and we can not compute a suitable code page
9225         number, returns the code page as a string.
9226
9227 2004-04-13  Jackson Harper  <jackson@ximian.com>
9228
9229         * culture-info-tables.h: Fix number of decimal digits for all
9230         english locales.
9231
9232 2004-04-13  Jackson Harper  <jackson@ximian.com>
9233
9234         * icall.c: Clairfy out of sync error message. It is not always
9235         your corlib that is out of sync.
9236
9237 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
9238
9239         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
9240         properties when only the set accessor is overriden. Fixes #55874.
9241
9242 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
9243
9244         * assembly.c (mono_assembly_load_references): Make this thread safe.
9245         Fixes #56327.
9246
9247 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
9248
9249         * monosn.c: Add missing initialization calls.
9250
9251 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
9252
9253         * locales.c:
9254         ves_icall_System_Globalization_CultureInfo_construct_number_format
9255         Fix g_assert so it compiles on fussier compilers re int/ptr
9256         mismatch
9257
9258 2004-04-08  Dick Porter  <dick@ximian.com>
9259
9260         * socket-io.h:
9261         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
9262         53992.  Also rearrange the code so that the internal calls return
9263         an error value and exceptions are thrown from managed code.
9264
9265         * icall.c: Add type info to the socket icalls.
9266
9267 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9268
9269         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
9270         owes me a beer.
9271
9272 2004-04-07  Martin Baulig  <martin@ximian.com>
9273
9274         * class.c (mono_class_from_generic_parameter): Don't default
9275         `klass->parent' to `mono_defaults.object_type'.
9276
9277 2004-04-07  Martin Baulig  <martin@ximian.com>
9278
9279         * reflection.c (mono_reflection_initialize_generic_parameter): Set
9280         `param->pklass->reflection_info'.       
9281
9282 2004-04-07  Jackson Harper  <jackson@ximian.com>
9283
9284         * culture-info-tables.h: Fix date separator symbol.
9285         
9286 2004-04-07  Martin Baulig  <martin@ximian.com>
9287
9288         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
9289         from System.Type to System.MonoType.
9290
9291 2004-04-07  Martin Baulig  <martin@ximian.com>
9292
9293         * reflection.h
9294         (MonoReflectionGenericParam): Added `has_reference_type' and
9295         `has_value_type' fields.
9296
9297         * reflection.c (mono_image_get_generic_param_info): Encode the
9298         correct flags if we have the `class' or `struct' constraint.
9299
9300 2004-04-07  Martin Baulig  <martin@ximian.com>
9301
9302         * reflection.h
9303         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
9304
9305 2004-04-07  Jackson Harper  <jackson@ximian.com>
9306
9307         * appdomain.c: Revert extra patches, just wanted to bump the
9308         version number.
9309         
9310 2004-04-07  Jackson Harper  <jackson@ximian.com>
9311
9312         * Makefile.am: Add culture-info private headers.
9313         * icall.c: Add new icalls for contructing locales.
9314         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
9315         * locales.h: Declare new culture info construction methods.
9316         * object.h: Add new fields used to avoid the CultureMap to
9317         MonoCultureInfo.
9318         * culture-info.h: Definition of structs used in the culture info
9319         tables.
9320         * culture-info-tables.h: Autogenerated tables that contain culture
9321         info data. This file was generated with the locale-builder tool.
9322         * appdomain.c: Incement corlib version number.
9323         
9324 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
9325
9326         * appdomain.c: (mono_runtime_init) move mono_thread_init
9327         to before mono_object_new calls so critical sections
9328         are initialized before use.
9329
9330 2004-04-07  Martin Baulig  <martin@ximian.com>
9331
9332         * icall.c
9333         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
9334         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
9335         (ves_icall_MonoGenericParam_initialize): Removed.
9336         (monogenericparam_icalls): Removed.
9337         (generictypeparambuilder_icalls): Added new table for
9338         System.Reflection.Emit.GenericTypeParameterBuilder.
9339
9340         * reflection.c
9341         (mono_reflection_define_generic_parameter): Removed.
9342         (mono_reflection_initialize_generic_parameter): This is now called
9343         from GenericTypeParameterBuilder's .ctor.
9344
9345 2004-04-06  Martin Baulig  <martin@ximian.com>
9346
9347         * class.c (mono_class_init): Don't inflate nested classes in a
9348         generic instance.
9349         (mono_type_get_name_recurse): Include the generic arguments for
9350         generic instances and generic type declarations.
9351         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
9352         (_mono_class_get_instantiation_name): Removed.
9353         (mono_class_create_generic): Always use `gklass->name' as our name.
9354
9355         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
9356
9357         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
9358         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
9359         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
9360         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
9361         closed generic methods here.
9362
9363         * reflection.c
9364         (mono_reflection_generic_inst_get_nested_types): Removed.
9365         (inflate_mono_method): Copy the generic parameters from the
9366         MonoMethodHeader into out MonoGenericMethod.
9367
9368 2004-04-06  Martin Baulig  <martin@ximian.com>
9369
9370         * row-indexes.h
9371         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
9372
9373         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
9374
9375         * reflection.c (build_compressed_metadata): If we have any entries
9376         in the GenericParam, MethodSpec or GenericParamConstraint tables,
9377         set the header version to 1.1.
9378
9379 2004-04-06  Martin Baulig  <martin@ximian.com>
9380
9381         * class.c (mono_class_init): If we're a generic instance,
9382         initialize our nested classes, too.
9383         (_mono_class_get_instantiation_name): Deal with the new `!%d'
9384         suffix. 
9385
9386 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9387
9388         * process.c: quote the argument passed to the shell on windows.
9389
9390 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
9391
9392         * threads.c (mono_alloc_special_static_data): Allow this to be
9393         called during startup.
9394
9395 2004-04-02  Martin Baulig  <martin@ximian.com>
9396
9397         * icall.c
9398         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
9399
9400 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
9401
9402         * icall.c: Fix build.
9403
9404 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
9405
9406         * Makefile.am: Added security.c|h.
9407         * icall.c: Added icall for get_UserName;
9408         * security.c: New file for security related icalls. Added function
9409         get_UserName for System.Environment (fix #56144).
9410         * security.h: New. Header file for security.c
9411
9412 2004-04-02  Dick Porter  <dick@ximian.com>
9413
9414         * icall.c: Deleted the icalls that were obsoleted some time ago
9415         by the ICU string code, and which were mixed into the icall
9416         rearranging.  Fixes bug 55969.
9417
9418         * string-icalls.h: 
9419         * string-icalls.c: Deleted the code that those icalls reference.
9420
9421 2004-04-01  Martin Baulig  <martin@ximian.com>
9422
9423         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
9424
9425         * class.c (mono_class_from_generic_parameter): Don't set 
9426         TYPE_ATTRIBUTE_INTERFACE.
9427         (my_mono_class_from_generic_parameter): Likewise.
9428
9429 2004-04-01  Martin Baulig  <martin@ximian.com>
9430
9431         * loader.c (find_method): Added an optional `MonoClass *ic'
9432         argument to search in a specific interface.
9433         (mono_get_method_constrained): New public function.
9434
9435 2004-04-01  Martin Baulig  <martin@ximian.com>
9436
9437         * reflection.c (mono_image_get_generic_field_token): Use the
9438         `handleref' cache here.
9439
9440 2004-04-01  Martin Baulig  <martin@ximian.com>
9441
9442         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
9443
9444         * reflection.c (create_generic_typespec): Use the `typespec' hash
9445         here, not the `typeref' one.    
9446
9447 2004-04-01  Martin Baulig  <martin@ximian.com>
9448
9449         * class.c (mono_class_inflate_generic_type): Moved the
9450         functionality into a new static inflate_generic_type() which
9451         returns NULL if it didn't do anything.  Only increment the
9452         `mono_stats.inflated_type_count' if we actually inflated
9453         something.
9454         (mono_class_get_full): Check the classes type to see whether we
9455         need to inflate it; also inflate MONO_TYPE_(M)VAR.
9456
9457 2004-04-01  Jackson Harper  <jackson@ximian.com>
9458
9459         * reflection.c: Set culture for assembly references.
9460         
9461 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
9462
9463         * reflection.[ch], icall.[ch], Fix support for pinning variables.
9464
9465 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9466
9467         * assembly.c:
9468         (do_mono_assembly_open): the critical section also covers
9469         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
9470
9471 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9472
9473         * threads.c:
9474         (mono_manage_threads): abort the background threads when finishing.
9475         Fixes bug #47232.
9476
9477 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9478
9479         * gc.c: only close the done_event handle if there was no timeout.
9480         C-ified comments.
9481
9482 2004-03-30  Martin Baulig  <martin@ximian.com>
9483
9484         * icall.c (icall_entries): It's called "System.Activator", not
9485         "System.Activation".    
9486
9487 2004-03-30  Martin Baulig  <martin@ximian.com>
9488
9489         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
9490         (mono_class_create_from_typespec): Likewise.
9491
9492 2004-03-30  Martin Baulig  <martin@ximian.com>
9493
9494         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
9495         `has_ctor_constraint' and `initialized'.
9496
9497 2004-03-30  Martin Baulig  <martin@ximian.com>
9498
9499         * reflection.c (encode_new_constraint): New static function to add
9500         the constructor constraint attribute to a type parameter.
9501         (encode_constraints): Call encode_new_constraint() if necessary.
9502
9503         * reflection.h
9504         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
9505
9506         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
9507         
9508 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
9509
9510         * reflection.c, icall.c: add support for pinning variables. 
9511
9512 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
9513
9514         * marshal.c (mono_marshal_get_managed_wrapper):
9515         init bool local with zero rather than null.
9516
9517 2004-03-29  Martin Baulig  <martin@ximian.com>
9518
9519         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
9520         the "official" behavior here.
9521         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
9522
9523 2004-03-29  Martin Baulig  <martin@ximian.com>
9524
9525         * icall.c: Reflect latest API changes.
9526
9527 2004-03-29  Martin Baulig  <martin@ximian.com>
9528
9529         * loader.c (mono_get_method_from_token): Also call
9530         mono_metadata_load_generic_params () for abstract and interface
9531         methods; replace the type arguments in the method signature with
9532         the ones which are loaded from the metadata.
9533
9534 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
9535
9536         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
9537         of the lock is not the current thread. MS.NET don't do it, in spite of
9538         what the documentation says. See bug #56157.
9539
9540 2004-03-28  Martin Baulig  <martin@ximian.com>
9541
9542         * class.c (mono_class_init): Don't call init_properties() and
9543         init_events() for generic instances; set `prop->parent' when
9544         inflating properties.
9545
9546         * reflection.c (mono_generic_inst_get_object): Call
9547         `mono_class_init (ginst->klass)'.
9548         (mono_type_get_object): Only create a MonoGenericInst if your
9549         generic type is a TypeBuilder.
9550         (do_mono_reflection_bind_generic_parameters): Only set
9551         `ginst->is_dynamic' if our generic type is a TypeBuilder.
9552
9553 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
9554
9555         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
9556         Fixes #56091.
9557
9558 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9559
9560         * icall.c: added Kill_internal icall.
9561         * process.[ch]: added Kill_internal icall.
9562
9563 2004-03-25  Martin Baulig  <martin@ximian.com>
9564
9565         * class.h (MonoStats): Added `generic_instance_count',
9566         `inflated_method_count', `inflated_type_count' and
9567         `generics_metadata_size'.       
9568
9569 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9570
9571         * reflection.c: no warnings now.
9572
9573 2004-03-25  Martin Baulig  <martin@ximian.com>
9574
9575         * class.c (mono_class_get_full): New public function; does a
9576         mono_class_get(), but also takes a `MonoGenericContext *'.
9577
9578         * loader.c (mono_field_from_memberref): Renamed to
9579         `field_from_memberref', made static and added `MonoGenericContext *'
9580         argument.
9581         (mono_field_from_token): Added `MonoGenericInst *' argument.
9582         (method_from_memberef): Likewise.
9583         (mono_get_method_from_token): Likewise.
9584         (mono_get_method_full): New public function; does a
9585         mono_get_method(), but also takes a `MonoGenericContext *'.
9586
9587         * verify.c (mono_method_verify): Get the method's generic context
9588         and pass it to mono_field_from_token(), mono_get_method_full() and
9589         mono_class_get_full().
9590
9591 2004-03-25  Martin Baulig  <martin@ximian.com>
9592
9593         * class.c (mono_class_inflate_generic_type): Take a
9594         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
9595         `MonoGenericMethod *'.
9596
9597 2004-03-25  Martin Baulig  <martin@ximian.com>
9598
9599         * loader.h (MonoMethodInflated): Store the MonoGenericContext
9600         instead of the MonoGenericMethod here.
9601
9602 2004-03-25  Martin Baulig  <martin@ximian.com>
9603
9604         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
9605         each time we create a new MonoGenericInst, we also create a new
9606         context which points back to us.
9607
9608         * class.c (inflate_method): Use `ginst->context' instead of
9609         creating a new context.
9610
9611         * loader.c (method_from_memberref): Use
9612         `klass->generic_inst->context' instead of creating a new context.
9613
9614 2004-03-25  Martin Baulig  <martin@ximian.com>
9615
9616         * class.h (MonoGenericContext): New struct.
9617         (MonoGenericMethod): Removed `generic_inst'.
9618
9619         * class.c (mono_class_inflate_generic_method): Take a
9620         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
9621
9622 2004-03-25  Martin Baulig  <martin@ximian.com>
9623
9624         * loader.h (MonoMethodInflated): New typedef.
9625
9626         * metadata.h (MonoMethodSignature): Removed `gen_method', make
9627         `generic_param_count' consume just 30 bits, added `is_inflated'
9628         and `has_type_parameters' flags (one bit each).
9629
9630         * class.c (mono_class_inflate_generic_method): Create a
9631         MonoMethodInflated instead of a MonoMethodNormal and set
9632         `is_inflated' in the method signature.
9633
9634         * class.h (MonoGenericMethod): Removed `generic_method'.
9635
9636 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
9637
9638         * image.c: Make sure the name of a MonoImage is always an absolute path.
9639           This fixes bug #54415.
9640
9641 2004-03-24  Martin Baulig  <martin@ximian.com>
9642
9643         * class.c (mono_class_setup_vtable): If we're a generic instance,
9644         use our generic type's vtable size.
9645
9646 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
9647
9648         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
9649         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
9650         problems.
9651
9652 2004-03-23  Martin Baulig  <martin@ximian.com>
9653
9654         * class.h (MonoDynamicGenericInst): Added `int count_events' and
9655         `MonoEvent *events'.
9656
9657         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
9658         (typebuilder_icalls): Added "get_event_info"; calls
9659         mono_reflection_event_builder_get_event_info(). 
9660
9661         * reflection.c (mono_reflection_generic_inst_initialize): Added
9662         `MonoArray *events'.
9663         (mono_reflection_event_builder_get_event_info): New function.
9664
9665 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
9666
9667         * object.h: add mono_type_initialization_init
9668
9669         * object.c (mono_runtime_class_init): 
9670         implement class constructor synchronization rules
9671         to cope with threading issues.  
9672         add mono_type_initialization_init
9673
9674         * appdomain.c (mono_runtime_init): call 
9675         mono_type_initialization_init
9676
9677         * class.h: removing initializing field from MonoVTable
9678
9679 2004-03-23  Martin Baulig  <martin@ximian.com>
9680
9681         * class.c (my_mono_class_from_generic_parameter): Use
9682         `param->name' if it's not NULL. 
9683
9684 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
9685
9686         * class.c: do not insert non-virtual methods in the vtable.
9687         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
9688         that means the method is non-virtual. This never would have
9689         happened before.
9690
9691 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
9692
9693         * profiler.c: Added lock for accessing coverage_hash.
9694
9695 2004-03-22  Martin Baulig  <martin@ximian.com>
9696
9697         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
9698         `method->method->signature->generic_param_count != 0' to make it
9699         work for interface methods.
9700
9701 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9702
9703         * process.c: quote the string passed to the shell using g_shell_quote.
9704
9705 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9706
9707         * threads.c:
9708         (mono_threads_manage): don't remove the finalizer thread and self
9709         from the threads hash table so that mono_thread_manage can be called
9710         more than once.
9711
9712 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9713
9714         * process.c: quote the arguments when UseShellExecute is true. Fixes
9715         bug #55790.
9716
9717 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9718
9719         * threads.c: set mono_thread_detach as a cleanup routine for every
9720         thread. This way it's always executed upon thread termination, either
9721         aborted or finished normally. No more xsp hangs!
9722
9723 2004-03-17  Martin Baulig  <martin@ximian.com>
9724
9725         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
9726         `int count_nested' and a `MonoType **nested'.
9727
9728         * reflection.c (mono_reflection_bind_generic_parameters): Moved
9729         most of the functionality into a new static
9730         do_mono_reflection_bind_generic_parameters() and don't take a
9731         `MonoType *nested_in' argument any more.  Don't compute nested
9732         types here.
9733         (mono_reflection_generic_inst_get_nested_types): New public method
9734         to get nested types.
9735
9736         * class.c (mono_class_create_generic): Set `klass->nested_in' if
9737         we're a nested class.
9738
9739         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
9740         mono_reflection_generic_inst_get_nested_types() to compute the
9741         nested types.
9742
9743 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
9744
9745         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
9746         descriptive error message under windows.
9747         
9748 2004-03-17  Martin Baulig  <martin@ximian.com>
9749
9750         * class.c (dup_type): Added `const MonoType *original' argument;
9751         copy the attrs from the original type.
9752
9753 2004-03-17  Martin Baulig  <martin@ximian.com>
9754
9755         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
9756         `m->generic_inst_cache' here.
9757
9758 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
9759
9760         * exception.h exception.c: Add stack_overflow_exception.
9761
9762 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9763
9764         * threadpool.c:
9765         (overlapped_callback): call SetEvent *after* invoking the callback.
9766         No need to call CloseHandle.
9767
9768 2004-03-16  Martin Baulig  <martin@ximian.com>
9769
9770         * reflection.c (mono_image_get_fieldref_token): Take a
9771         `MonoReflectionField *' instead of a `MonoClassField *' and a
9772         `MonoClass *'; store the `MonoReflectionField *' in the hash.
9773
9774 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9775
9776         * appdomain.c: don't add the culture to the filename we're looking for
9777         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
9778
9779 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9780
9781         * locales.c: don't ignore symbols when doing case insensitive compares.
9782         Thanks Dick! Fixes bug #54046.
9783
9784         * threads.c: surround 'threads' usage with enter/leave in
9785         mono_thread_manage.
9786
9787 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
9788
9789         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
9790         implicitly marshalled as [Out]. Fixes #55450.
9791
9792         (mono_marshal_get_runtime_invoke): Zero out the result if there is
9793         an exception.
9794
9795 2004-03-16  Martin Baulig  <martin@ximian.com>
9796
9797         * class.c (mono_class_from_generic_parameter): Use the actual
9798         parameter name. 
9799
9800 2004-03-16  Martin Baulig  <martin@ximian.com>
9801
9802         * reflection.c (type_get_signature_size): New static function.
9803         Compues the size of the type in a method signature.
9804         (method_get_signature_size): New static function; calls
9805         type_get_signature_size() to compute the actual size of the
9806         method's signature.
9807         (method_encode_signature): Use method_get_signature_size() to get
9808         the signature's size rather than using `nparams * 10'.
9809
9810 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9811
9812         * file-io.h: define here WapiOverlapped on windows. I don't want the
9813         regular OVERLAPPED one.
9814
9815         * file-io.c:
9816         * threadpool.c: somehow, BindIoCompletionCallback is not found.
9817         Disabling AIO on windows.
9818
9819 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9820
9821         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
9822         bug #55385.
9823
9824 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9825
9826         * appdomain.c: upgraded corlib version.
9827
9828         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
9829         and BeginWrite. Allow opening files for asynchrnous operations.
9830
9831         * file-io.h: new struct that maps FileStreamAsyncResult.
9832         * icall.c: added new icalls.
9833         * process.[ch]: support setting child process environment variables
9834         and use the SHELL or COMSPEC when UseShellExecute is true.
9835
9836         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
9837         callback for async. IO is here and also BindHandle.
9838
9839         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
9840         from here.
9841
9842 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
9843
9844         * reflection.c (create_custom_attr): Allow len == 0.
9845
9846         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
9847         computation on big-endian machines.
9848
9849 2004-03-13  Martin Baulig  <martin@ximian.com>
9850
9851         * class.h (MonoGenericInst): Added `int count_ifaces'.
9852
9853         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
9854         `ginst->count_ifaces' instead `klass->interface_count' since we
9855         may get called before the vtable is created.
9856
9857         * loader.c (mono_method_get_param_names): If we're a generic
9858         instance, return and don't initialize the class.
9859
9860         * reflection.c (mono_reflection_setup_generic_class): Don't call
9861         ensure_runtime_vtable().
9862         (mono_reflection_bind_generic_parameters): Set
9863         `ginst->count_ifaces'.
9864
9865 2004-03-11  Jackson Harper <jackson@ximian.com>
9866
9867         * icall.c:
9868         * unicode.c:
9869         * unicode.h: Remove unused System.Char icalls.
9870         
9871 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
9872
9873         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
9874         code when we P/Invoke the first library in Windows.Forms, instead
9875         of when we first open the assembly.
9876
9877         * assembly.c: Drop the lookup from here.
9878
9879 2004-03-10  Martin Baulig  <martin@ximian.com>
9880
9881         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
9882         class for properties, fields and events.  Finally fixes #54945.
9883
9884 2004-03-10  Martin Baulig  <martin@ximian.com>
9885
9886         * metadata.c (mono_metadata_class_equal): New static function;
9887         checks whether two generic instances or two generic parameters are
9888         equal.
9889         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
9890         compare classes.        
9891
9892 2004-03-10  Martin Baulig  <martin@ximian.com>
9893
9894         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
9895
9896         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
9897         argument and write it into the `reflection_info' field.
9898
9899         * icall.c
9900         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
9901         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
9902
9903 2004-03-09  Jackson Harper  <jackson@ximian.com>
9904
9905         * char-conversions.h: use 8 bits for numeric data its all we need
9906         * icall.c: numeric data is only 8 bits now.
9907
9908 2004-03-09  Martin Baulig  <martin@ximian.com>
9909
9910         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
9911
9912         * class.c (init_properties, init_events): Initialize the new
9913         `parent' field.
9914
9915         * reflection.c (typebuilder_setup_properties): Likewise.
9916         (typebuilder_setup_events): Likewise.
9917
9918         * reflection.h (MonoEventInfo): Replaced `parent with
9919         `declaring_type' and `reflected_type'.
9920
9921         * icall.c (ves_icall_get_property_info): Distinguish between
9922         declaring and reflected type.
9923         (ves_icall_get_event_info): Likewise.
9924
9925 2004-03-09  Martin Baulig  <martin@ximian.com>
9926
9927         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
9928         (ves_icall_Type_GetField): Correctly set field->klass.
9929
9930 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
9931
9932         * loader.h: Fix warning.
9933
9934 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
9935
9936         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
9937         library routine if present.  Notice that it will still continue
9938         executing even if its missing, for those working on the Gtk#
9939         edition of Windows.Forms.
9940
9941         * assembly.c (do_mono_assembly_open): If loading the
9942         System.Windows.Forms call mono_loader_wini_init.
9943
9944 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
9945
9946         * class.h: Added MonoRemoteClass struct.
9947         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
9948         function for MonoStrings.
9949         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
9950         Added internal call for getting the proxy type.
9951         * marshal.c: Get the type of transparent proxies from its remote_class.
9952         Added methods that generate the IL for type checks and casts:
9953         mono_marshal_get_isinst, mono_marshal_get_castclass, 
9954         mono_marshal_get_proxy_cancast.
9955         * marshal.h: Declaration of the previous new methods.
9956         * object.c: Added new moethods for creating and updating MonoRemoteClass
9957         instances: mono_remote_class, mono_upgrade_remote_class, 
9958         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
9959         * verify.c: FIx transparent_proxy_fields layout.
9960         * appdomain.c: Bump corlib version.
9961
9962 2004-03-04  Jackson Harper  <jackson@ximian.com>
9963
9964         * icall.c: Add icall to access char conversion tables.
9965         * char-conversions.h: Character conversion tables.
9966         * Makefile.am: Add char-conversions.h private header file.
9967         
9968 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
9969
9970         * appdomain.c (unload_thread_main): Increase unloading timeout to
9971         10 sec as a temporary workaround for Nant problems.
9972
9973 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
9974
9975         * gc.c: Add checks for GC_enable and GC_disable.
9976
9977         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
9978         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
9979         (bug #54988).
9980         
9981 2004-02-27  Martin Baulig  <martin@ximian.com>
9982
9983         * reflection.c (mono_reflection_bind_generic_parameters): Take a
9984         `MonoReflectionType *' instead of a `MonoType *'.
9985
9986 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
9987
9988         * gc.c (run_finalize): Avoid finalizing the object representing the
9989         finalizer thread.
9990         (finalizer_thread): Fix warning.
9991
9992 2004-02-25  Martin Baulig  <martin@ximian.com>
9993
9994         * class.c (_mono_class_get_instantiation_name): Added `int offset'
9995         argument for nested types.
9996         (mono_class_create_generic): Added support for nested generictypes.
9997
9998         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
9999         `GList *nested'.
10000
10001         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
10002
10003         * reflection.c (method_encode_signature): Increase the minimum
10004         value of `size' from 10 to 11.
10005         (mono_reflection_bind_generic_parameters): Take `int type_argc'
10006         and `MonoType **types' arguments instead of the `MonoArray
10007         *types'; added `MonoType *nested_in'.  Recursively instantiate
10008         nested classes. 
10009
10010 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
10011
10012         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
10013         stack_overflow_ex members which are used by exception handling.
10014
10015         * appdomain.c (mono_runtime_init): Initialize the new members.
10016
10017         * gc.c (mono_gc_enable): New helper function.
10018         * gc.c (mono_gc_disable): New helper function.
10019
10020 2004-02-23  Martin Baulig  <martin@ximian.com>
10021
10022         * icall.c: I must have been really stupid - make it actually work
10023         this time ;-)
10024
10025 2004-02-23  Martin Baulig  <martin@ximian.com>
10026
10027         * loader.c (method_from_memberref): Only inflate the method if
10028         it's in another klass.
10029
10030 2004-02-23  Martin Baulig  <martin@ximian.com>
10031
10032         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
10033         (mono_class_init): If we're a generic instance and an interface,
10034         compute `class->interface_id'; also create `class->interfaces'
10035         here and inflate them.
10036
10037         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
10038         `ginst->is_open'.
10039         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
10040
10041         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
10042
10043 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
10044
10045         * reflection.c (method_encode_code): Improved the error message
10046         generated by the exception.
10047
10048 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10049
10050         * icall.c: Martin did not do what he said in the ChangeLog for
10051         2004-02-18, but put back the changes for properties and events.
10052         Commenting those changes out again and adding comment to bug #54518.
10053         
10054         * process.c: removed warning.
10055
10056 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
10057
10058         * marshal.c (emit_struct_conv): Print an error message instead of
10059         asserting when a type does not have the StructLayout attribute.
10060
10061 2004-02-20  Martin Baulig  <martin@ximian.com>
10062
10063         * reflection.c (mono_type_get_object): Also use the cache for
10064         generic instances.
10065         (mono_reflection_bind_generic_parameters): Always compute
10066         `ginst->ifaces'.        
10067
10068 2004-02-20  Martin Baulig  <martin@ximian.com>
10069
10070         * class.h (MonoGenericMethod): Removed `klass'.
10071
10072         * class.c (mono_class_inflate_generic_method): Added `MonoClass
10073         *klass' argument.
10074
10075 2004-02-20  Martin Baulig  <martin@ximian.com>
10076
10077         * reflection.c (method_encode_methodspec): Actually use the
10078         uninflated signature for the memberref.
10079
10080 2004-02-20  Martin Baulig  <martin@ximian.com>
10081
10082         * class.h (MonoGenericMethod): Removed `declaring'.
10083
10084         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
10085         is NULL, compute it here.
10086
10087 2004-02-20  Martin Baulig  <martin@ximian.com>
10088
10089         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
10090
10091         * metadata.c (mono_metadata_generic_inst_hash): New method.
10092         (mono_metadata_generic_inst_equal): New method.
10093
10094         * reflection.c (mono_reflection_bind_generic_parameters): Use the
10095         `klass->image->generic_inst_cache' cache to avoid creating
10096         duplicate MonoGenericInst's.
10097
10098         * class.c (mono_class_inflate_generic_type): Use the cache.
10099
10100 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
10101
10102         * object.c: fixed gc descriptor calculation for embedded valuetypes.
10103
10104 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10105
10106         * icall.c: added Socket.WSAIoctl icall.
10107
10108         * socket-io.[ch]: implemented
10109         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
10110
10111 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
10112
10113         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
10114
10115 2004-02-18  Urs C Muff  <umuff@quark.com>
10116
10117         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
10118         this work on PPC and other big-endian architectures.
10119
10120         * debug-mono-symfile.h: Prepended the names of all the `guint32'
10121         fields with an underscore to make sure they're only accessed by
10122         the read32() macro.
10123
10124 2004-02-18  Martin Baulig  <martin@ximian.com>
10125
10126         * icall.c: Put the klass->refclass changes back for methods and
10127         fields, but not for properties and events.  We're currently not
10128         distinguishing between DeclaringType and ReflectedType for
10129         properties and events, that's what caused the regressions.
10130
10131 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10132
10133         * object.c:
10134         (mono_async_result_new): the handle can be NULL.
10135
10136         * threadpool.c: Use an event instead of a semaphore, don't initialize
10137         it until needed. This saves quite a few semaphores from being created
10138         when using the threadpool.
10139
10140 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
10141
10142         * object.c (mono_string_is_interned_lookup): Fix interning of long
10143         strings. Fixes #54473.
10144
10145         * domain.c (ldstr_equal): Optimize if the two strings are equal.
10146
10147         * icall.c: Revert the klass->refclass changes since they introduce
10148         regressions (bug #54518).
10149
10150 2004-02-18  Martin Baulig  <martin@ximian.com>
10151
10152         * class.c (mono_class_init): If we're a generic instance and don't
10153         come from a TypeBuilder, inflate our members here.
10154         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
10155         (mono_class_create_generic): New public method.
10156         (mono_class_initialize_generic): Removed.
10157         (get_instantiation_name): Renamed to
10158         _mono_class_get_instantiation_name() and made it public.
10159
10160 2004-02-18  Martin Baulig  <martin@ximian.com>
10161
10162         * class.c (mono_class_inflate_generic_type): Clear the new
10163         instance's `nginst->klass' when inflating a generic instance.
10164         (mono_class_is_subclass_of): Added (basic) support for generic
10165         instances.
10166
10167 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
10168
10169         * appdomain.h, domain.c: use a MonoCodeManager instead of a
10170         MonoMempool to hold compiled native code.
10171
10172 2004-02-17  Martin Baulig  <martin@ximian.com>
10173
10174         * class.h (MonoDynamicGenericInst): Added `count_properties' and
10175         `properties'.
10176
10177         * reflection.c (mono_reflection_generic_inst_initialize): Added
10178         `MonoArray *properties' argument.
10179
10180         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
10181
10182 2004-02-17  Martin Baulig  <martin@ximian.com>
10183
10184         * icall.c (ves_icall_Type_GetFields): Renamed to
10185         ves_icall_Type_GetFields_internal() and added a
10186         `MonoReflectionType *rtype' argument; pass it to
10187         mono_field_get_object() to set the field's "reflected" type.
10188         (ves_icall_Type_GetConstructors): Likewise.
10189         (ves_icall_Type_GetEvents): Likewise.
10190         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
10191         argument; pass it to mono_method_get_object() to set the method's
10192         "reflected" type.       
10193
10194 2004-02-17  Martin Baulig  <martin@ximian.com>
10195
10196         * class.h (MonoDynamicGenericInst): New type.
10197         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
10198
10199         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
10200         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
10201         (ves_icall_MonoGenericInst_GetFields): New interncall.
10202
10203         * class.c (mono_class_from_generic): Don't call
10204         mono_class_initialize_generic() if this is a dynamic instance;
10205         ie. it's being created from a TypeBuilder.
10206         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
10207         `class->byval_arg.type'.
10208
10209         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
10210         to `inflate_method' and made static.
10211         (mono_reflection_inflate_field): Removed.
10212         (mono_reflection_generic_inst_initialize): New public method.
10213
10214         * reflection.h (MonoReflectionGenericInst): Removed `methods',
10215         `ctors' and `fields'; added `initialized'.
10216
10217 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
10218
10219         * debug-helpers.c (mono_method_full_name): Fix output for empty
10220         namespaces.
10221
10222 2004-02-12  Martin Baulig  <martin@ximian.com>
10223
10224         * class.h (MonoClassField): Added `MonoType *generic_type'.
10225
10226         * reflection.c (mono_image_get_fieldref_token): Added support for
10227         instantiated generic types.
10228         (field_encode_inflated_field): Removed.
10229         (mono_image_get_inflated_field_token): Removed.
10230         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
10231
10232         * reflection.h (MonoReflectionInflatedField): Removed.
10233
10234 2004-02-12  Martin Baulig  <martin@ximian.com>
10235
10236         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
10237         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
10238
10239         * reflection.c (mono_image_get_methodspec_token): Take a
10240         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
10241         (mono_image_create_token): Check whether we have a
10242         `method->signature->gen_method' and call
10243         mono_image_get_methodspec_token() if appropriate.
10244         (inflated_method_get_object): Removed.
10245         (mono_reflection_bind_generic_method_parameters): Return a
10246         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
10247         (mono_reflection_inflate_method_or_ctor): Likewise.
10248
10249         * reflection.h (MonoReflectionInflatedMethod): Removed.
10250
10251 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
10252
10253         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
10254         for custom valuetype marshalling.
10255
10256         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
10257
10258 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10259
10260         * icall.c: fixed WSAGetLastError_internal name.
10261
10262 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
10263
10264         * threads.c (mono_thread_attach): Allow this to be called multiple
10265         times for a thread.
10266         
10267         * threads.c (build_wait_tids): Do not wait for ourselves.
10268
10269         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
10270         appdomain list is empty.
10271
10272         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
10273         memory returned by mono_string_builder_to_utf16, since it points into
10274         managed memory. Thanks to Bernie Solomon for noticing this.
10275
10276         * icall.c: Add AppDomainSetup icalls.
10277
10278         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
10279
10280         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
10281         types.
10282
10283         * reflection.c (reflection_methodbuilder_to_mono_method): Save
10284         custom attributes to the method_aux struct. Also fix array indexes etc.
10285
10286         * loader.c (mono_method_get_param_names): Make dynamic case work again.
10287         
10288 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
10289
10290         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
10291         (both static and runtime) and reduce startup time.
10292
10293 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
10294
10295         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
10296         AsAny marshalling conversion instead of crashing.
10297
10298         * marshal.c: Fix warnings.
10299
10300 2004-02-09  Martin Baulig  <martin@ximian.com>
10301
10302         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
10303
10304         * reflection.h (MonoReflectionInflatedMethod): Removed the
10305         `declaring' field, it's now in the unmanaged MonoGenericMethod.
10306
10307         * reflection.c (method_encode_methodspec): Removed the `method'
10308         argument; we get it from `gmethod->declaring'.
10309         (inflated_method_get_object): Removed the `declaring' argument.
10310
10311 2004-02-09  Martin Baulig  <martin@ximian.com>
10312
10313         * class.h (MonoGenericMethod): New type.
10314         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
10315         `generic_method'.
10316
10317         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
10318         a `MonoGenericMethod *gen_method' one.
10319
10320         * class.c (mono_class_inflate_generic_type): Take an additional
10321         `MonoGenericMethod * argument.  This is only non-NULL if we're
10322         inflating types for a generic method.   
10323         (mono_class_inflate_generic_signature): Renamed to
10324         inflate_generic_signature() and made static; take a
10325         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
10326         (inflate_generic_header): Take a `MonoGenericMethod *' argument
10327         instead of a `MonoGenericInst *' one.
10328         (mono_class_inflate_generic_method): Likewise.
10329
10330         * reflection.c (encode_generic_method_sig): Take a
10331         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
10332         (method_encode_methodspec): Likewise.
10333         (inflated_method_get_object): Likewise. 
10334
10335         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
10336         field with a `MonoGenericMethod *gmethod' one.  
10337
10338 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
10339
10340         * class.h (mono_class_has_parent): add parens to expansion
10341         so you can ! this.
10342
10343 2004-02-08  Martin Baulig  <martin@ximian.com>
10344
10345         * image.h (MonoImage): Removed `generics_cache'.
10346
10347         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
10348         instead of a `MonoType *' argument; removed the `inflate_methods'
10349         argument.  Don't inflate methods here.
10350
10351         * loader.c (find_method): If it's a generic instance, call
10352         mono_class_init() on the `sclass->generic_inst->generic_type'.
10353
10354         * metadata.c (mono_type_size): Make this work on uninitialized
10355         generic instances; call it on the `ginst->generic_type's class.
10356
10357         * reflection.c (mono_reflection_bind_generic_parameters): Call
10358         mono_class_from_generic() to create the `ginst->klass'.
10359
10360 2004-02-08  Martin Baulig  <martin@ximian.com>
10361
10362         * class.h (MonoClass): Changed type of `generic_inst' from
10363         `MonoType *' to `MonoGenericInst *'.
10364
10365 2004-02-08  Martin Baulig  <martin@ximian.com>
10366
10367         * icall.c (ves_icall_Type_BindGenericParameters): Just call
10368         mono_type_get_object(), this is now creating a `MonoGenericInst'
10369         for MONO_TYPE_GENERICINST.
10370         (ves_icall_MonoGenericInst_GetParentType): Likewise.
10371         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
10372
10373         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
10374         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
10375         (inflated_method_get_object): Added `MonoClass *refclass' argument.
10376         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
10377         and reflected type.
10378
10379         * reflection.h (MonoReflectionInflatedMethod): Removed
10380         `declaring_type' and `reflected_type'.
10381
10382 2004-02-08  Martin Baulig  <martin@ximian.com>
10383
10384         * class.h (MonoGenericInst): Added `MonoType *parent' and
10385         `MonoType **ifaces'.
10386
10387         * reflection.h (MonoReflectionGenericInst): Removed `klass',
10388         `parent' and `interfaces'.
10389
10390         * reflection.c (mono_reflection_bind_generic_parameters): Take a
10391         `MonoType *' argument and return a `MonoType *'.
10392
10393         * icall.c
10394         (ves_icall_MonoGenericInst_GetParentType): New interncall.
10395         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
10396
10397 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
10398
10399         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
10400         valuetype marshalling.
10401
10402 2004-02-06  Martin Baulig  <martin@ximian.com>
10403
10404         * class.c
10405         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
10406         (my_mono_class_from_generic_parameter): Likewise.
10407
10408 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
10409
10410         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
10411         contents of the symbol files lazily.
10412
10413         * object.h (MonoThread): Add 'name' and 'name_len' fields.
10414
10415         * threads.h threads.c icall.c: New icalls for getting and setting the
10416         threads name.
10417
10418 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
10419
10420         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
10421         Raise an exception when the domain is not found.
10422
10423 2004-02-03  Martin Baulig  <martin@ximian.com>
10424
10425         * reflection.c (mono_image_get_methodspec_token): Use the
10426         uninflated signature; fixes gen-33.
10427
10428 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
10429
10430         * gc.c threads.c: Make the finalizer thread a normal managed thread so
10431         the finalizer code can use thread functionality.
10432
10433         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
10434         the finalizer thread.
10435
10436         * threads.c: Make some functions more robust.
10437
10438         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
10439
10440         * metadata.h: Add new marshalling conventions.
10441
10442         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
10443         stringbuilder marshalling. Fixes #53700.
10444
10445         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
10446
10447         * reflection.c (mono_image_get_type_info): Save declarative security
10448         info.
10449
10450         * reflection.c (mono_image_get_field_info): Handle uninitialized 
10451         unmanaged fields as well.
10452
10453         * appdomain.c: Bump corlib version.
10454
10455 2004-02-01  Martin Baulig  <martin@ximian.com>
10456
10457         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
10458         method type arguments.  
10459
10460 2004-01-30  Duncan Mak  <duncan@ximian.com>
10461
10462         * marshal.h: Add prototype for
10463         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
10464         and
10465         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
10466         fix the build.
10467
10468 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
10469
10470         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
10471         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
10472
10473 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
10474
10475         * marshal.c (mono_marshal_get_native_wrapper): Add support for
10476         custom marshalling of valuetypes.
10477
10478         * marshal.c: Fix some warnings.
10479
10480 2004-01-29  Martin Baulig  <martin@ximian.com>
10481
10482         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
10483         for generic method parameters.
10484
10485         * reflection.c (method_encode_methodspec): Write the uninflated
10486         signature into the methodspec table.
10487         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
10488         is always the uninflated method.
10489         (reflection_methodbuilder_to_mono_method): Copy the generic
10490         parameters from the MethodBuilder into `header->gen_params'.
10491
10492 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
10493
10494         * class.c (mono_class_from_generic_parameter): Fix warning.
10495
10496 2004-01-27  Martin Baulig  <martin@ximian.com>
10497
10498         * class.c (mono_class_from_generic_parameter): Don't create
10499         `klass->methods' here.  
10500
10501 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
10502
10503         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
10504         extension since it does not work with libraries named lib<FOO>.dll.so.
10505
10506 2004-01-25  Martin Baulig  <martin@ximian.com>
10507
10508         * class.c (mono_class_inflate_generic_type): Added support for
10509         MONO_TYPE_GENERICINST.
10510
10511         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
10512         inflate methods on open constructed types.      
10513
10514 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10515
10516         * object.c: fire ProcessExit event in the root AppDomain after running
10517         Main. Fixes bug #53299.
10518
10519 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
10520
10521         * socket-io.c: include the new socket-wrappers.h header.
10522         Use the wrappers instead of the unix socket functions to make the code
10523         more clear.
10524
10525 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
10526
10527         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
10528
10529         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
10530         Fixes #22532.
10531
10532 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
10533
10534         * reflection.c (mono_image_create_pefile): Handle the case when the
10535         entry point is not a MethodBuilder.
10536
10537         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
10538         field to ReflectionMethod since it is not allways a builder.
10539
10540         * reflection.c (type_get_fully_qualified_name): New helper function to
10541         return the fully qualified name of a type.
10542
10543         * reflection.c (encode_marshal_blob): Always emit the fully qualified
10544         type name for custom marshallers.
10545
10546         * reflection.c (mono_marshal_spec_from_builder): Ditto.
10547
10548         * class.c (mono_class_setup_vtable): If a parent class already 
10549         implements an interface, use the implementing methods from that class.
10550         Fixes #53148.
10551
10552 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10553
10554         * threadpool.c: just return instead of ExitThread to allow for thread
10555         clean up earlier.
10556
10557 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
10558
10559         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
10560         when closing resource modules.
10561
10562         * reflection.c (mono_image_create_pefile): Handle the case when the
10563         entry point is not a MethodBuilder.
10564
10565         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
10566         field to ReflectionMethod since it is not allways a builder.
10567
10568 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
10569
10570         * marshal.c (mono_marshal_get_managed_wrapper): 
10571         mono_marshal_alloc takes native int so CONV_I
10572         the arg for 64bits.
10573
10574 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
10575
10576         * reflection.c (fixup_cattrs): New function to fixup the methoddef
10577         tokens in the cattr table. Fixes #53108.
10578
10579 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10580
10581         * loader.c: don't trim ".dll" before looking up in the config file.
10582         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
10583
10584 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
10585
10586         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
10587         Return the module which contains the resource as well.
10588         (ves_icall_System_Reflection_Module_Close): New icall.
10589
10590         * appdomain.c: Bump corlib version number.
10591
10592         * image.c (mono_image_addref): New public function.
10593
10594         * assembly.c: Call mono_image_addref.
10595
10596         * reflection.c (mono_module_get_object): Increase reference count of 
10597         the image.
10598
10599         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
10600         Fixes #22532.
10601
10602         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
10603         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
10604         proper exceptions on DllImport problems.
10605
10606 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
10607
10608         * class.c, metadata.c: eliminate CSIZE macro.
10609
10610 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
10611
10612         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
10613         * object.h: Added async_callback field in MonoAsyncResult.
10614         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
10615         * verify.c: Added async_callback in MonoAsyncResult layout.
10616
10617 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
10618
10619         * reflection.c (mono_reflection_get_custom_attrs): Add support
10620         for Modules.
10621
10622 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
10623
10624         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
10625         marshalling.
10626         (mono_marshal_method_from_wrapper): Add null pointer check.
10627
10628 2004-01-16  Martin Baulig  <martin@ximian.com>
10629
10630         * debug-mono-symfile.h: Set version number to 36 and reflect
10631         latest symbol writer changes.
10632
10633 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
10634
10635         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
10636         multi-dimensional arrays.
10637         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
10638         (mono_class_from_mono_type): Use bounded_array_class_get.
10639         
10640         * class.c (mono_bounded_array_class_get): New function which takes
10641         a 'bounded' bool argument to distinguish vectors from one dimensional
10642         arrays.
10643
10644         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
10645         bounded_array_class_get if the array has bounds.
10646
10647         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
10648         Search modules loaded using AssemblyBuilder:AddModule as well.
10649
10650 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10651
10652         * appdomain.c: increased corlib version.
10653         * filewatcher.c: removed g_print.
10654         * icall.c:
10655         (get_property_info): only allocate what is actually requested.
10656         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
10657
10658 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10659
10660         * Makefile.am: added filewatcher.[ch]
10661         * filewatcher.[ch]: FileSystemWatcher runtime support.
10662         * icall.c: added new FSW icalls.
10663
10664 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
10665
10666         * string-icalls.c: fix stringbuilder regression as suggested by
10667         Iain McCoy <iain@mccoy.id.au>.
10668
10669 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
10670
10671         * process.c (process_read_stringtable_block): Recognize '007f' as
10672         a language neutral stringtable block.
10673
10674 2004-01-12  Patrik Torstensson
10675
10676         * object.h (MonoStringBuilder) : Changed layout to support our
10677         new stringbuilder class.
10678         * marshal.c: Change marshalling to support the new layout of 
10679         string builder.
10680         * appdomain.c: increased version number because new layout of
10681         string builder.
10682
10683 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
10684
10685         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
10686         assembly name as an string instead of an AssemblyName, since it is
10687         easier to extract info from it.
10688
10689         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
10690         the culture subdirectories too. Fixes #52231.
10691
10692 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10693
10694         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
10695         It takes 2 new parameters with an optional name for the method to look
10696         for and case ignoring info.
10697
10698         * threadpool.c: removed unused variable.
10699
10700 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10701
10702         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
10703         It takes 2 new parameters with an optional name for the property to look
10704         for and case ignoring info.
10705         Fixes bug #52753.
10706
10707 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
10708
10709         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
10710         Fix #52451.
10711
10712 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10713
10714         * appdomain.c:
10715         * assembly.c: escape the uri before passing it to g_filename_from_uri.
10716         Fixes bug #52630.
10717
10718 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
10719
10720         * reflection.c: Add support for more than one unmanaged resource.
10721
10722         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
10723         in field->def_value, as done in all other cases.
10724
10725         * reflection.c (mono_reflection_get_custom_attrs): Add support for
10726         TypeBuilders.
10727
10728         * reflection.c (mono_reflection_create_runtime_class): Remove 
10729         errorneous assignment to klass->element_class, since it is already
10730         done in mono_reflection_setup_internal_class.
10731
10732 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10733
10734         * gc.c: added missing LeaveCriticalSection.
10735         * icall.c: indented a couple of lines.
10736         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
10737         if we call EndInvoke inside a callback. Fixes bug #52601.
10738
10739 2004-01-07  Martin Baulig  <martin@ximian.com>
10740
10741         * mono-debug-debugger.h
10742         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
10743
10744 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
10745
10746         * appdomain.c: Use messages in NotImplementedException.
10747
10748         * exception.c (mono_get_exception_not_implemented): Now this takes
10749         a message argument.
10750
10751         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
10752         exception instead of g_asserting an aborting when something is not
10753         implemented.
10754
10755         Add some inline docs.
10756
10757 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
10758
10759         * reflection.h: Update after changes to object layout.
10760
10761         * reflection.c: Implement saving of unmanaged aka win32 resources.
10762
10763         * appdomain.c: Bump version number.
10764
10765         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
10766         Handle missing domains gracefully.
10767
10768 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
10769
10770         * file-io.c : On Windows, there are much more invalid_path_chars.
10771
10772 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
10773
10774         * class.h, object.c: prepare for GetType () speedup.
10775
10776 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
10777
10778         * profiler.c: workaround for --profile null reference exception on
10779           cygwin. Patch by Patrik Torstensson.
10780
10781 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
10782
10783         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
10784         make work for unaligned access.
10785
10786 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
10787
10788         * class.c: small cleanup (class->fields [i] -> field).
10789         * image.c: check address of metadata is valid.
10790
10791 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
10792
10793         * assembly.h assembly.c (mono_assembly_loaded): New public function to
10794         search the list of loaded assemblies.
10795
10796         * reflection.c (mono_reflection_type_from_name): Use 
10797         mono_assembly_loaded instead of mono_image_loaded.
10798
10799         * reflection.c: Fix warnings.
10800
10801 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
10802
10803         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
10804         is dynamic. This is needed since an assembly can contain both dynamic and
10805         non-dynamic images.
10806
10807         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
10808         assembly->dynamic.
10809
10810         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
10811
10812         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
10813         to store modules loaded using AddModule.
10814
10815         * reflection.c (mono_image_fill_file_table): Generalize this so it works
10816         on Modules.
10817
10818         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
10819
10820         * reflection.c (mono_image_fill_export_table_from_module): New function to
10821         fill out the EXPORTEDTYPES table from a module.
10822
10823         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
10824         into a separate function. Also handle loaded non-dynamic modules.
10825
10826         * reflection.c (mono_image_basic_init): Fix memory allocation.
10827
10828         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10829
10830         * assembly.c (mono_assembly_load_references): Make this public.
10831
10832 2003-12-19  Martin Baulig  <martin@ximian.com>
10833
10834         * class.c (mono_class_initialize_generic): Made this static, take
10835         a `MonoGenericInst *' instead of a `MonoClass *'.
10836         (mono_class_from_generic): Call mono_class_initialize_generic()
10837         unless we're already initialized or being called from
10838         do_mono_metadata_parse_generic_inst().
10839
10840         * class.h (MonoGenericInst): Added `initialized' and
10841         `init_pending' flags.
10842
10843         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
10844         `mono_class_init (gklass)' or mono_class_initialize_generic()
10845         here; set `generic_inst->init_pending' while parsing the
10846         `type_argv'.
10847
10848 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
10849
10850         * locales.c: include string.h for memxxx prototypes
10851
10852 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
10853
10854         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
10855         constructor when accessing literal fields.
10856
10857 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
10858
10859         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10860
10861         * reflection.c (assembly_add_resource_manifest): New function to fill
10862         the MANIFESTRESOURCE table.
10863
10864         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
10865
10866         * reflection.h: Update to changes in class layout.
10867
10868         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
10869         Reenable call to mono_runtime_is_shutting_down ().
10870
10871         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
10872         determine if the runtime is shutting down.
10873
10874 2003-12-16  Jackson Harper <jackson@ximian.com>
10875
10876         * icall.c: comment out call to mono_runtime_is_shutting_down to
10877         fix build.
10878         
10879 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
10880
10881         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
10882         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
10883
10884 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
10885
10886         * reflection.c: move definition of swap_with_size
10887         to before its first call
10888
10889 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
10890
10891         * appdomain.c (mono_runtime_is_shutting_down): New public function.
10892
10893         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
10894         icall.
10895
10896         * object.c: Fix warnings.
10897
10898         * icall.c (ves_icall_Type_Get...): Only consider inherited static
10899         members if FlattenHierarchy is set.
10900
10901         * reflection.c (mono_image_add_decl_security): New function to emit
10902         declarative security.
10903
10904         * reflection.h reflection.c: Add support for declarative security.
10905
10906         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
10907         
10908 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
10909
10910         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
10911         
10912         * appdomain.c verify.c: Moved corlib version checking into its own
10913         function in appdomain.c since it needs to create vtables etc.
10914
10915 2003-12-13  Patrik Torstensson <p@rxc.se>
10916
10917         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
10918         instead of unwrapped server.
10919
10920 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
10921
10922         * verify.c (check_corlib): Fix field index.
10923
10924 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
10925
10926         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
10927         GetGacPath icall.
10928
10929 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
10930
10931         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
10932         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
10933         cope with sizeof(size_t) != sizeof(guint32).
10934
10935 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10936
10937         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
10938         in case of failure.
10939
10940 2003-12-10  Mark Crichton <crichton@gimp.org>
10941
10942         * icall.c: removed the GetNonZeroBytes.  We now handle this case
10943         in managed code.
10944
10945         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
10946
10947 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
10948
10949         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
10950         marked as deleted.
10951
10952 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
10953
10954         * verify.c (check_corlib): Handle the case when the version field is 
10955         initialized by a static constructor.
10956
10957 2003-12-08  Patrik Torstensson  <p@rxc.se>
10958
10959     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
10960
10961 2003-12-08  Martin Baulig  <martin@ximian.com>
10962
10963         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
10964         a MonoReflectionGenericParameter, also take the parameter index
10965         and name as arguments.
10966         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
10967         (ves_icall_MonoGenericParam_initialize): New interncall.
10968         (ves_icall_Type_make_byref_type): New interncall.
10969
10970         * reflection.h (MonoReflectionGenericParam): Derive from
10971         MonoReflectionType, not just from MonoObject.  Added `refobj' and
10972         `index' fields.
10973
10974         * reflection.c (mono_reflection_define_generic_parameter): Create
10975         and return a new MonoReflectionGenericParam; don't initialize the
10976         constraints here.
10977         (mono_reflection_initialize_generic_parameter): New public method;
10978         initializes the constraints and creates the `param->pklass'.
10979
10980 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
10981
10982         * reflection.h reflection.c: Use the new fields 'num_types', 
10983         'num_fields' and 'num_methods' to track the number of types etc.
10984
10985         * verify.c (check_corlib): Check corlib version number.
10986
10987 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
10988
10989         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
10990         function works on all methods.
10991
10992 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
10993
10994         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
10995         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
10996         the custom_type_info flag of the transparent proxy.
10997         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
10998         objects that supports IRemotingTypeInfo.
10999         * object.h: Added custom_type_info field in transparent proxy.
11000
11001 2003-12-06  Martin Baulig  <martin@ximian.com>
11002
11003         * class.c (mono_class_create_from_generic): Removed.
11004         (mono_class_from_generic): Check `ginst->klass' before doing
11005         anything else.  This is important to fully support "recursive"
11006         generic types.
11007
11008         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
11009         empty `generic_inst->klass' before doing anything else.
11010
11011 2003-12-06  Dick Porter  <dick@ximian.com>
11012
11013         * verify.c: 
11014         * object.h:
11015         * icall.c:
11016         * locales.c: Use C structs to access class fields.  Don't do a
11017         conversion between MonoString and UChar because both are
11018         platform-endian UTF-16.  Compare now takes startindex and count
11019         parameters.  Add a char overload for IndexOf.  Speed up the
11020         invariant string IndexOf.
11021
11022 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
11023
11024         * Makefile.am (monosn_LDADD): Fix parallel build.
11025
11026 2003-12-04  Martin Baulig  <martin@ximian.com>
11027
11028         * icall.c
11029         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
11030         (ves_icall_Type_make_array_type): New interncall.       
11031
11032 2003-12-04  Martin Baulig  <martin@ximian.com>
11033
11034         * locales.c: also change it in the !HAVE_ICU case.
11035
11036 2003-12-04  Dick Porter  <dick@ximian.com>
11037
11038         * icall.c:
11039         * locales.c: construct_compareinfo is now in CompareInfo, not
11040         CultureInfo.
11041
11042 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
11043
11044         * image.c (mono_image_load_file_for_image): Cache loaded images in the
11045         image->files array.
11046
11047         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
11048         table as well.
11049
11050         * assembly.c (mono_assembly_load_references): Only load references
11051         once.
11052
11053         * class.c (mono_class_from_name): Avoid linear search of the 
11054         EXPORTEDTYPE table.
11055
11056         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
11057
11058 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
11059
11060         * image.h (MonoImage): Add 'field_cache' field.
11061
11062         * loader.c (mono_field_from_token): Cache field lookups.
11063         
11064         * reflection.c (mono_module_get_object): Fix name property.
11065
11066         * icall.c (ves_icall_get_enum_info): Update after changes to 
11067         mono_metadata_get_constant_index ().
11068
11069         * icall.c: Get rid of get_type_info icall, use a separate icall for
11070         each type property to avoid needless memory allocations. Fixes #51514.
11071
11072         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
11073         to avoid needless binary searches.
11074
11075         * class.c (class_compute_field_layout): Move the initialization of
11076         field->def_value to mono_class_vtable ().
11077
11078         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
11079         non-corlib types.
11080
11081         * object.c (mono_object_allocate): Make it inline.
11082
11083         * object.c (mono_object_allocate_spec): Make it inline.
11084         
11085 2003-12-02  Dick Porter  <dick@ximian.com>
11086
11087         * locales.c (create_NumberFormat): NumberFormatInfo construction.
11088         Patch by Mohammad DAMT (mdamt@cdl2000.com).
11089
11090 2003-12-01  Dick Porter  <dick@ximian.com>
11091
11092         * threads.c: Fix signature and call in CreateMutex and
11093         CreateEvent.
11094
11095 2003-12-01  Dick Porter  <dick@ximian.com>
11096
11097         * icall.c: 
11098         * locales.c: Implement string compares and searching
11099
11100         * object.h: Add extra Thread field
11101
11102 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
11103
11104         * reflection.c (fixup_method): Add support for MonoCMethod.
11105
11106 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
11107
11108         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
11109
11110         * reflection.c (assembly_name_to_aname): Allow extra characters in
11111         assembly names. Fixes #51468.
11112
11113 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
11114
11115         * exception.c (mono_exception_from_name_domain): New helper function.
11116
11117         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
11118         exception object in the correct domain.
11119
11120         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
11121         formatting + make a copy a the input data.
11122
11123         * loader.c (mono_get_method_from_token): Methods which contain
11124         native code do not have entries in the ImplMap.
11125
11126         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
11127         Thanks to Gonzalo for spotting this.
11128         
11129         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
11130         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
11131
11132         * assembly.h (mono_assembly_load_from): Split the second part of 
11133         assembly loading into a new public function.
11134
11135         * exception.h (mono_get_exception_bad_image_format): New function.
11136
11137 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
11138
11139         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11140         Enumerate all modules inside a dynamic assembly. Fixes #51293.
11141         
11142         * icall.c: Add new icall for creating dynamic methods.
11143
11144         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
11145
11146         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
11147
11148         * reflection.c (mono_reflection_create_dynamic_method): New icall to
11149         create a dynamic method.
11150
11151         * reflection.c (resolve_object): New helper function.
11152
11153         * reflection.c: Generalize ReflectionMethodBuilder and the functions
11154         which manipulate it so they can also work on dynamic methods.
11155
11156         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
11157         creating the MonoReflectionMethodAux structure if it is not needed.
11158         
11159         * reflection.h verify.c: Update after changes to object layout.
11160
11161         * reflection.c (method_builder_encode_signature): Fix compilation on
11162         gcc 2.95.x.
11163
11164 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
11165
11166         * appdomain.h: Added support for context static fields. Added static_data
11167           field to MonoAppContext and renamed thread_static_fields to a more
11168           generic special_static_fields in MonoAppDomain, since it can now contain
11169           context static fields.
11170         * domain.c: Updated hashtable name.
11171         * object.c: Replaced field_is_thread_static() for a more generic
11172           field_is_special_static() which also checks for context static attribute.
11173           In mono_class_vtable(), added support for static context fields.
11174         * threads.c: Changed methods that manage thread static fields to more
11175           generic methods so they can be reused both for thread and context static
11176           data.
11177         * threads.h: Declared some new methods.
11178
11179 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
11180
11181         * reflection.h: Update after changes to the managed types.
11182
11183         * reflection.c (encode_custom_modifiers): New helper function.
11184
11185         * reflection.c (method_encode_signature): Emit custom modifiers.
11186
11187         * reflection.c (field_encode_signature): Emit custom modifiers.
11188
11189 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
11190
11191         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
11192
11193         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
11194         implementation.
11195
11196         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
11197         icall.
11198
11199         * object.c (mono_field_get_value_object): New function.
11200
11201         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
11202         specific.
11203
11204 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
11205
11206         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
11207         return a preallocated out-of-memory exception instance.
11208
11209         * object.c (out_of_memory): Use the new function.
11210
11211         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
11212         flag is before the custom modifiers. Fixes #49802.
11213
11214 2003-11-16  Martin Baulig  <martin@ximian.com>
11215
11216         * class.c (mono_class_is_open_constructed_type): Implemented the
11217         MONO_TYPE_GENERICINST case.
11218
11219 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
11220
11221         * assembly.c (mono_assembly_fill_assembly_name): New function to
11222         fill out the MonoAssemblyName structure.
11223         (mono_assembly_open): Use the new function.
11224
11225         * icall.c (fill_reflection_assembly_name): New helper function.
11226
11227         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
11228         new function.
11229
11230         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
11231
11232 2003-11-15  Martin Baulig  <martin@ximian.com>
11233
11234         * class.c (mono_class_is_open_constructed_type): New public
11235         function; checks whether a type is an open constructed type,
11236         ie. whether it still contains type parameters.
11237         (mono_class_inflate_generic_type): If we're a type parameter and
11238         the inflated type is also a MONO_TYPE_(M)VAR, return the original
11239         type.
11240
11241         * class.h (MonoGenericInst): Added `guint32 is_open'.
11242
11243         * loader.c (method_from_methodspec): Check whether we're an open
11244         or closed constructed type and set `ginst->is_open'.
11245
11246         * reflection.c (mono_reflection_bind_generic_parameters): Check
11247         whether we're an open or closed constructed type and set
11248         `ginst->is_open'.
11249         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
11250         from open constructed types.
11251
11252 2003-11-15  Martin Baulig  <martin@ximian.com>
11253
11254         * reflection.c (mono_reflection_bind_generic_parameters): If we're
11255         a generic instance (instead of a generic type declaration) with
11256         unbound generic parameters, bind them to our actual types.
11257
11258 2003-11-14  Martin Baulig  <martin@ximian.com>
11259
11260         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
11261
11262         * reflection.c (mono_reflection_bind_generic_parameters): If we're
11263         an interface type, populate `res->interfaces' with instantiated
11264         versions of all the interfaces we inherit.
11265
11266 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
11267
11268         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
11269         when MONO_PATH is set but doesn't contain the install dir.
11270
11271 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11272
11273         * icall.c:
11274         (ves_icall_Type_GetInterfaces): don't return an interface twice when
11275         it's also implemented in base classes. Fixes bug #50927.
11276
11277 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
11278
11279         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
11280         if this method is called from a finalizer. Fixes #50913.
11281
11282 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
11283
11284         * threads.c: Implement VolatileRead/VolatileWrite
11285
11286         * icall.c: Add new icalls for VolatileRead/VolatileWrite
11287
11288 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11289
11290         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
11291         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
11292         2.95.3.
11293
11294         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
11295         from Peter Ross (pro@missioncriticalit.com).
11296         
11297 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
11298
11299         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
11300
11301 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11302
11303         * assembly.c (mono_assembly_load_references): Disable check because it
11304         triggers on older corlibs which lots of people have.
11305
11306 2003-11-12  Jackson Harper  <jackson@ximian.com>
11307
11308         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
11309         load corlib.dll if mscorlib.dll is not found.
11310         * assembly.h: Remove corlib name define.
11311         * class.c:
11312         * domain.c:
11313         * image.c: Change corlib name to mscorlib.
11314         
11315 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11316
11317         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
11318
11319 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
11320
11321         * appdomain.h: Added loader_optimization here to sync with the C#
11322         code, and add disallow_binding_redirects field.
11323
11324 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
11325
11326         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
11327
11328         * reflection.c (mono_image_build_metadata): Fix crash on modules
11329         with no types.
11330
11331         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
11332
11333         * icall.c (ves_icall_get_method_info): Return callingConvention as
11334         well.
11335
11336         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
11337         namespaces from the EXPORTEDTYPE table as well.
11338
11339         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
11340         from all modules inside the assembly.
11341         
11342 2003-11-11  Martin Baulig  <martin@ximian.com>
11343
11344         * reflection.c (mono_reflection_bind_generic_parameters): Make
11345         this work for interfaces.
11346
11347 2003-11-11  Martin Baulig  <martin@ximian.com>
11348
11349         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
11350
11351 2003-11-11  Martin Baulig  <martin@ximian.com>
11352
11353         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
11354         "MonoInflatedMethod" and "MonoInflatedCtor".
11355
11356 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
11357
11358         * reflection.c (resolution_scope_from_image): Use the assembly table
11359         from the manifest module, since other modules don't have it.
11360
11361         * debug-helpers.c (mono_type_full_name): New helper function.
11362
11363         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
11364
11365         * image.c (mono_image_load_file_for_image): New public function which
11366         is a replacement for the load_file_for_image in class.c.
11367
11368         * assembly.c (mono_assembly_load_module): A wrapper for the function
11369         above which does assembly association and reference loading too.
11370
11371         * class.c (mono_class_from_name): Call mono_assembly_load_module.
11372
11373 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11374
11375         * appdomain.c: not all of the attributes for the full assembly name
11376         are required and the order doesn't matter. Fixes bug #50787.
11377
11378 2003-11-10  Dick Porter  <dick@ximian.com>
11379
11380         * locales.c: Use platform-endian UTF16
11381
11382 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
11383
11384         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
11385         
11386 2003-11-10  Martin Baulig  <martin@ximian.com>
11387
11388         * metadata.c
11389         (mono_metadata_load_generic_params): Make this actually work.
11390
11391         * reflection.c (mono_reflection_bind_generic_parameters): If our
11392         parent is a generic instance, pass all the `types' to it, no
11393         matter whether it has the same number of type parameters or not.
11394
11395 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
11396
11397         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
11398
11399         * assembly.c (mono_assembly_load_references): Move the image<->assembly
11400         assignment code to this function so it gets called recursively for all
11401         modules.
11402
11403         * image.c (load_modules): Remove the assembly assignment since it is
11404         now done by mono_assembly_load_references.
11405         
11406         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11407         Add 'module' argument.
11408         (mono_module_get_types): New helper function.
11409         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
11410
11411 2003-11-08  Martin Baulig  <martin@ximian.com>
11412
11413         * class.c (mono_class_inflate_generic_method): Interface method
11414         don't have a header.
11415
11416         * reflection.c (mono_image_get_methodspec_token): Take an
11417         additional `MonoGenericInst *' argument instead of reading it from
11418         the header; this is necessary to support interfaces.
11419         (mono_image_create_token): Pass the `MonoGenericInst *' from the
11420         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
11421         (inflated_method_get_object): Take an additional `MonoGenericInst *'
11422         argument.
11423
11424         * reflection.h (MonoReflectionInflatedMethod): Added
11425         `MonoGenericInst *ginst'.
11426
11427 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
11428
11429         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
11430
11431 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
11432
11433         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
11434
11435 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
11436
11437         * reflection.c 
11438         (reflection_methodbuilder_from_method_builder):
11439         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
11440         initialize a ReflectionMethodBuilder structure.
11441         (mono_image_get_methodbuilder_token):
11442         (mono_image_get_ctorbuilder_token): New functions to emit memberref
11443         tokens which point to types in another module inside the same assembly.
11444
11445         * reflection.c: Use the new helper functions.
11446         
11447         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
11448
11449         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
11450         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
11451
11452         * reflection.c (resolution_scope_from_image): Emit a moduleref if
11453         neccesary.
11454
11455         * reflection.c (mono_image_build_metadata): Emit metadata only for the
11456         current module. Emit the manifest only for the main module.
11457
11458         * reflection.c (mono_image_create_token): Add assertion when a 
11459         memberref needs to be created.
11460
11461         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
11462
11463         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
11464         larger buffer for the custom attribute blob. Fixes #50637.
11465         
11466 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11467
11468         * threadpool.c: notify listener on async processing handles after
11469         invoking the async callback. Thanks to Zoltan.
11470
11471 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
11472
11473         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
11474         avoid code duplication.
11475
11476         * reflection.h (MonoDynamicImage): New type which is currently unused,
11477         but will be used through the ref.emit code in place of 
11478         MonoDynamicAssembly.
11479
11480         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
11481         object layout.
11482
11483         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
11484         a MonoDynamicImage instead of just a MonoImage.
11485         
11486         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
11487         icalls to ModuleBuilder but keep their semantics, so they will work
11488         with moduleb->assemblyb. This will change later.
11489         
11490 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
11491
11492         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
11493         object layout.
11494
11495         * reflection.c (mono_image_build_metadata): Avoid creation of a default
11496         main module, since it is now done by the managed code.
11497
11498 2003-11-03  Martin Baulig  <martin@ximian.com>
11499
11500         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
11501         `ginst->klass' here.
11502         (method_encode_methodspec): Don't use the `ginst->generic_method's
11503         klass if it's a generic instance, use `ginst->klass' in this case.
11504
11505 2003-11-03  Martin Baulig  <martin@ximian.com>
11506
11507         * reflection.c (mono_image_get_generic_method_param_info):
11508         Removed, use mono_image_get_generic_param_info() instead.
11509         (mono_image_get_type_info): Write the GenericParam table before
11510         the Method table.  This is neccessary because in the GenericParam
11511         table, type parameters of the class (ie. '!0' etc.) must come
11512         before the ones from its generic methods (ie. '!!0' etc).
11513
11514 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
11515
11516         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
11517
11518 2003-11-02  Martin Baulig  <martin@ximian.com>
11519
11520         * reflection.c (create_generic_typespec): Take a
11521         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
11522         the generic parameters from it.
11523
11524 2003-11-02  Martin Baulig  <martin@ximian.com>
11525
11526         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
11527         instead of a `MonoClassField *' since we just need the type.
11528         (create_generic_typespec): New static function.  Creates a
11529         TypeSpec token for a generic type declaration.
11530         (mono_image_get_generic_field_token): New static function.
11531         (mono_image_create_token): If we're a FieldBuilder in a generic
11532         type declaration, call mono_image_get_generic_field_token() to get
11533         the token.
11534
11535 2003-11-02  Martin Baulig  <martin@ximian.com>
11536
11537         * reflection.h
11538         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
11539         `MonoReflectionGenericInst *declaring_type' and
11540         `MonoReflectionGenericInst *reflected_type' fields.
11541
11542         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
11543         `MonoReflectionGenericInst *declaring_type' and a
11544         `MonoReflectionGenericInst *reflected_type' argument instead of a
11545         single `MonoReflectionGenericInst *type' one.  Set
11546         `res->declaring_type' and `res->reflected_type' from them.
11547         (mono_reflection_inflate_field): Likewise.      
11548
11549 2003-11-02  Martin Baulig  <martin@ximian.com>
11550
11551         * class.c (mono_class_setup_vtable): Don't store generic methods
11552         in the vtable.  
11553
11554 2003-11-02  Martin Baulig  <martin@ximian.com>
11555
11556         * reflection.h (MonoReflectionGenericInst): Added
11557         `MonoReflectionType *declaring_type'.
11558
11559         * reflection.c (mono_reflection_bind_generic_parameters): Use
11560         `if (tb->parent)' instead of `klass->parent'.
11561
11562 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
11563
11564         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
11565         with an empty ASSEMBLY table.
11566
11567         * reflection.c (mono_image_build_metadata): Avoid using the same loop
11568         variable in the inner and outer loops.
11569
11570 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
11571
11572         * metadata.h (mono_metadata_make_token): Put parentheses around macro
11573         argument.
11574
11575         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
11576         
11577         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
11578         icalls. Instead, do everything in managed code. This is needed since
11579         it is hard to restore the original domain etc. in unmanaged code in the
11580         presence of undeniable exceptions.
11581
11582         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
11583         New icalls to push and pop appdomain refs.
11584
11585 2003-10-31  Martin Baulig  <martin@ximian.com>
11586
11587         * class.c (inflate_generic_type): Renamed to
11588         mono_class_inflate_generic_type() and made it public.
11589
11590         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
11591         New interncall.
11592
11593         * loader.c (mono_field_from_memberref): Also set the retklass for
11594         typespecs.
11595
11596         * fielder.c (mono_image_get_inflated_field_token): New static
11597         method; creates a metadata token for an inflated field.
11598         (mono_image_create_token, fixup_method): Added support for
11599         "MonoInflatedField".
11600         (fieldbuilder_to_mono_class_field): New static function.
11601         (mono_reflection_inflate_field): New public function.
11602
11603         * reflection.h
11604         (MonoReflectionGenericInst): Added `MonoArray *fields'.
11605         (MonoReflectionInflatedField): New typedef.     
11606
11607 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
11608
11609         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
11610         for Solaris and other platforms without s6_addr16
11611
11612 2003-10-30  Martin Baulig  <martin@ximian.com>
11613
11614         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
11615         argument instead of two.
11616         (mono_class_inflate_generic_signature): Likewise.
11617         (inflate_generic_header): Likewise.
11618         (mono_class_inflate_generic_method): Likewise.  In addition, if
11619         `ginst->klass' is set, it becomes the new `method->klass'.
11620
11621         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
11622         field.
11623
11624         * reflection.c (encode_generic_method_sig): Write a 0xa as the
11625         first byte. [FIXME]
11626         (method_encode_methodspec): If we have generic parameters, create
11627         a MethodSpec instead of a MethodRef.
11628         (fixup_method): Added support for "MonoInflatedMethod" and
11629         "MonoInflatedCtor".
11630         (mono_image_create_token): Added support for "MonoInflatedMethod"
11631         and "MonoInflatedCtor".
11632         (inflated_method_get_object): New static function; returns a
11633         managed "System.Reflection.MonoInflatedMethod" object.
11634         (mono_reflection_bind_generic_method_parameters): Return a
11635         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
11636         (mono_reflection_inflate_method_or_ctor): Likewise.
11637         (mono_image_get_generic_method_param_info): Initialize unused
11638         fields to zero.
11639         (mono_image_get_generic_param_info): Likewise.
11640
11641         * reflection.h (MonoReflectionInflatedMethod): New public
11642         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
11643         "S.R.MonoInflatedCtor" classes.
11644
11645         * loader.c (method_from_memberref): If we're a TypeSpec and it
11646         resolves to a generic instance, inflate the method.
11647
11648 2003-10-28  Dick Porter  <dick@ximian.com>
11649
11650         * object.c (mono_runtime_run_main): Convert command-line arguments
11651         into utf8, falling back to the user's locale encoding to do so.
11652
11653 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
11654
11655         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
11656         at this time.
11657
11658         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
11659
11660         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
11661         up icalls at method definition time. Partially fixes #33569.
11662
11663 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
11664
11665         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
11666         marshalling of arrays. Fixes #50116.
11667
11668         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
11669
11670         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
11671         points to a vtable in the dying appdomain.
11672
11673         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
11674         listeners into unmanaged code inside the lock.
11675
11676         * object.c (mono_class_vtable): Turn off typed allocation in non-root
11677         domains and add some comments.
11678
11679 2003-10-25  Martin Baulig  <martin@ximian.com>
11680
11681         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
11682
11683         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
11684
11685         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
11686         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
11687         currently parsing.  Create the generic class and store it in
11688         `generic_inst->klass' before parsing the type arguments.  This is
11689         required to support "recursive" definitions; see mcs/tests/gen-23.cs
11690         for an example.
11691         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
11692         to support recursive typespec entries.
11693
11694         * class.c (mono_class_setup_parent): If our parent is a generic
11695         instance, we may get called before it has its name set.
11696         (mono_class_from_generic): Splitted into
11697         mono_class_create_from_generic() and mono_class_initialize_generic().
11698
11699 2003-10-25  Martin Baulig  <martin@ximian.com>
11700
11701         * icall.c (ves_icall_Type_BindGenericParameters): Return a
11702         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
11703         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
11704         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
11705
11706         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
11707         (create_typespec): Likewise.
11708         (mono_reflection_bind_generic_parameters): Return a
11709         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
11710         (mono_reflection_inflate_method_or_ctor): New public function.
11711
11712         * reflection.h (MonoReflectionGenericInst): New typedef.        
11713
11714 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
11715
11716         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
11717         inside the domain lock. Fixes #49993.
11718         
11719         * object.c (mono_class_vtable): When typed allocation is used, 
11720         allocate vtables in the GC heap instead of in the mempool, since the
11721         vtables contain GC descriptors which are used by the collector even
11722         after the domain owning the mempool is unloaded.
11723
11724         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
11725
11726         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
11727         reflect what it does. Also invalidate mempools instead of freeing
11728         them if a define is set.
11729
11730         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
11731         of the appdomain.
11732         
11733         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
11734         hold the finalizable objects in this domain.
11735
11736         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
11737         appdomain.
11738
11739         * appdomain.c (mono_domain_set): New function to set the current
11740         appdomain, but only if it is not being unloaded.
11741
11742         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
11743         appdomain which is being unloaded.
11744         
11745         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
11746         unloading of the root appdomain.
11747
11748         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
11749         icall to execute a method in another appdomain. Intended as a 
11750         replacement for InternalSetDomain, which can confuse the code 
11751         generation in the JIT.
11752
11753         * appdomain.c (mono_domain_is_unloading): New function to determine
11754         whenever an appdomain is unloading.
11755
11756         * appdomain.c (mono_domain_unload): New function to correctly unload
11757         an appdomain.
11758
11759         * assembly.c (mono_assembly_load_references): Check that an assembly
11760         does not references itself.
11761
11762         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
11763         domain manually, it asks the finalizer thread to do it, then waits for
11764         the result. Also added a timeout.
11765
11766         * icall.c: Register the new icalls.
11767
11768         * threads.h threads.c: Export the mono_gc_stop_world and 
11769         mono_gc_start_world functions.
11770         
11771         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
11772         function to fill out the mempool with 0x2a.
11773
11774 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
11775
11776         * reflection.h (MonoReflectionMethodAux): New structure to store
11777         information which is rarely used, thus is not in the MonoMethod
11778         structure.
11779
11780         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
11781         store the aux info.
11782
11783         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
11784         and marshalling info into the aux structure.
11785
11786         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
11787         from the aux structure.
11788
11789         * loader.c (mono_method_get_param_names): Retrieve the param names from
11790         the aux structure.
11791         
11792 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
11793
11794         * exception.h exception.c: Add AppDomainUnloadedException && fix 
11795         warning.
11796
11797 2003-10-21  Dick Porter  <dick@ximian.com>
11798
11799         * socket-io.c
11800         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
11801         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
11802
11803 2003-10-21  Martin Baulig  <martin@ximian.com>
11804
11805         * reflection.c (mono_reflection_bind_generic_parameters):
11806         `klass->parent' is NULL for interfaces.
11807
11808 2003-10-21  Martin Baulig  <martin@ximian.com>
11809
11810         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
11811
11812 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
11813
11814         * exception.c (mono_exception_from_name_msg): New helper function for
11815         creating exceptions and initializing their message field.
11816
11817         * exception.c: Simplify functions using the new helper.
11818
11819         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
11820         New function.
11821
11822         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
11823         mono_raise_exception, since otherwise gcc doesn't generate the function
11824         epilog for raise_exception, confusing the stack unwinding in the JIT.
11825         Fixes #45043.
11826
11827         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
11828         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
11829         Fixes #49499.
11830
11831 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11832
11833         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
11834         utf8.
11835
11836 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
11837
11838         * icall.c: Removed GetUninitializedObject method because
11839           AllocateUninitializedClassInstance does the same.
11840
11841 2003-10-18  Martin Baulig  <martin@ximian.com>
11842
11843         * class.c (inflate_generic_signature): Renamed to
11844         mono_class_inflate_generic_signature() and made it public.
11845         (my_mono_class_from_generic_parameter): New static function; if we
11846         don't already have the generic parameter's MonoClass, create a
11847         very simple one which is just used internally in the runtime and
11848         not passed back to managed code.
11849
11850         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
11851
11852         * metadata.h (MonoMethodSignature): Moved the
11853         `MonoGenericParam *gen_params' to the MonoMethodHeader.
11854         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
11855
11856         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
11857         ves_icall_MonoMethod_GetGenericArguments(); this is now an
11858         interncall on the MonoMethod class, not on MethodInfo.
11859         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
11860         calling mono_reflection_bind_generic_method_parameters() directly.
11861
11862         * loader.c (mono_method_get_signature): If this is a MethodSpec;
11863         return the already computed `method->signature'.
11864         (method_from_methodspec): New static function to load a method
11865         from a MethodSpec entry.
11866         (mono_get_method_from_token): Call the new method_from_methodspec()
11867         for MethodSpec tokens.  
11868         (mono_get_method_from_token): If we're a generic method, load the
11869         type parameters.
11870
11871         * reflection.c (mono_image_get_memberref_token): Allow
11872         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
11873         table.
11874         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
11875         (mono_image_create_token): First check whether it's a generic
11876         method (so we'd need to create a MethodSpec), then do the other
11877         two alternatives.
11878         (mono_reflection_bind_generic_method_parameters): Return a
11879         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
11880         called directly from the interncall.
11881
11882 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
11883
11884         * reflection.c (load_public_key): Move loading of the public key
11885         into managed code.
11886
11887         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
11888
11889         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
11890         fields.
11891
11892         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
11893         culture, hash_alg and public_key. Fixes #49555.
11894
11895 2003-10-17  Martin Baulig  <martin@ximian.com>
11896
11897         * class.h (MonoGenericInst): Moved this declaration here and added
11898         `MonoMethod *generic_method'.
11899
11900         * icall.c
11901         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
11902         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
11903
11904         * metadata.c (mono_metadata_type_equal): Two types of
11905         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
11906         index; ie. don't compare the address of the `MonoGenericParam'
11907         structure.
11908         (mono_metadata_load_generic_params): Removed the `MonoMethod
11909         *method' argument.
11910
11911         * metadata.h (MonoGenericInst): Moved declaration to class.h.
11912         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
11913
11914         * reflection.c (method_encode_signature): Encode the number of
11915         generic parameters.
11916         (encode_generic_method_sig): New static function.
11917         (method_encode_methodspec): New static function; creates an entry
11918         in the MethodSpec table for a generic method.
11919         (mono_image_get_methodspec_token): New static function.
11920         (mono_image_create_token): Call mono_image_get_methodspec_token()
11921         for generic methods.
11922         (mono_reflection_bind_generic_method_parameters): New public
11923         function.  Instantiates a generic method.
11924
11925 2003-10-16  Martin Baulig  <martin@ximian.com>
11926
11927         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
11928         *gen_params' here from MonoMethodHeader.
11929
11930         * metadata.c (mono_metadata_parse_method_signature): If we have
11931         generic parameters, initialize `method->gen_params' and then set
11932         the correct `type->data.generic_param' in all the parameters.
11933
11934 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
11935
11936         * threads.c (mono_threads_get_default_stacksize): New function to 
11937         return the default stacksize.
11938
11939         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
11940         termination of the finalizer thread, since the previous method had
11941         race conditions. Fixes #49628.
11942
11943         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
11944         as for the other managed threads.
11945
11946 2003-10-16  Martin Baulig  <martin@ximian.com>
11947
11948         * class.c (inflate_generic_signature): Copy `generic_param_count'
11949         and `gen_params'.
11950
11951         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
11952         New interncall.
11953
11954         * metadata.c (mono_metadata_parse_method_signature): Actually set
11955         the `method->generic_param_count' here.
11956         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
11957
11958 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
11959
11960         * object.h: Add a new field to TypedRef to simplify the implementation
11961         of the REFANY opcodes in the JIT.
11962
11963         * icall.c: Make use of the new field.
11964
11965         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
11966         dynamically.
11967
11968 2003-10-15  Martin Baulig  <martin@ximian.com>
11969
11970         * class.c (mono_class_from_gen_param): Renamed to
11971         mono_class_from_generic_parameter() and moved most of the
11972         functionality from mono_reflection_define_generic_parameter()
11973         here; ie. we create a "real" class here.
11974         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
11975         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
11976         previously been called.
11977
11978         * class.h (MonoGenericParam): Moved the declaration of this struct
11979         here from metadata.h and added `MonoMethod *method'.
11980
11981         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
11982         interncall.
11983
11984         * loader.c (mono_get_method_from_token): If we have any generic
11985         parameters, call mono_metadata_load_generic_params() to read them
11986         from the MONO_TABLE_GENERICPAR.
11987
11988         * metadata.c (mono_metadata_load_generic_params): Added
11989         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
11990
11991         * metadata.h (MonoMethodSignature): Replaced
11992         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
11993         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
11994
11995         * reflection.c (mono_reflection_define_generic_parameter): Moved
11996         most of the functionality into the new
11997         mono_class_from_generic_parameter(); set the `method' field if
11998         we're a method parameter.       
11999
12000 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
12001
12002         * marshal.c (emit_struct_conv): if native size is 0
12003         emit no code.
12004
12005 2003-10-14  Martin Baulig  <martin@ximian.com>
12006
12007         * icall.c: The generics API has changed in the spec since it was
12008         added to System.Type; these modifications make it match the spec
12009         again.
12010         (ves_icall_Type_GetGenericParameters): Renamed to
12011         `ves_icall_Type_GetGenericArguments'.
12012         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
12013         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
12014         `ves_icall_MonoType_get_HasGenericArguments'.
12015         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
12016         `ves_icall_MonoType_get_IsGenericParameter'.
12017         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
12018         this is no interncall anymore.
12019         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
12020         `ves_icall_TypeBuilder_get_IsGenericParameter'.
12021
12022 2003-10-14  Martin Baulig  <martin@ximian.com>
12023
12024         * reflection.c (mono_reflection_bind_generic_parameters): Also
12025         inflate generic methods if we're reading the class from IL.
12026
12027 2003-10-13  Martin Baulig  <martin@ximian.com>
12028
12029         * reflection.c (mono_reflection_define_generic_parameter): This
12030         method isn't called directly from the icall anymore; take a
12031         `MonoReflectionAssemblyBuilder *' so we can use this for type and
12032         method generic parameters.
12033         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
12034         (method_builder_encode_signature): Encode generic parameters.
12035         (mono_image_get_method_info): Write generic params to the
12036         MONO_TABLE_GENERICPARAM table.
12037
12038         * reflection.h (MonoReflectionMethodBuilder): Added
12039         `MonoArray *generic_params'.
12040
12041         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
12042
12043         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
12044         wrapper for mono_reflection_define_generic_parameter().
12045         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
12046
12047 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
12048
12049         * marshal.h: Add missing function to fix build.
12050
12051         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
12052         the SetLastError pinvoke attribute.
12053
12054         * marshal.c (mono_marshal_set_last_error): New helper function called
12055         by the generated code.
12056         
12057         * marshal.c (mono_mb_emit_branch): New helper function.
12058
12059         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
12060
12061         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
12062         classes as parameters and return values of delegates. Fixes #29256. 
12063
12064 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
12065
12066         * locales.c: use gint32 in non HAVE_ICU case
12067
12068 2003-10-11  Martin Baulig  <martin@ximian.com>
12069
12070         * mono-debug.c (mono_debug_add_method): Added a workaround for
12071         bug #48591.
12072
12073 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
12074
12075         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
12076         delegates passed to native code must use the STDCALL calling 
12077         convention. Fixes #35987.
12078
12079 2003-10-10  Martin Baulig  <martin@ximian.com>
12080
12081         * class.c (inflate_generic_type): If we're inflating for a generic
12082         type instance (and not for a generic method), return
12083         MONO_TYPE_MVAR unchanged.
12084
12085 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12086
12087         * string-icalls.c: Join ignores null strings in the source array.
12088         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
12089         * threads.c: GetAvailableTheads is slightly more accurate.
12090
12091 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
12092
12093         * threads.h threads.c : add mono_threads_set_default_stacksize
12094         and pass default to CreateThread calls.
12095
12096 2003-10-09  Dick Porter  <dick@ximian.com>
12097
12098         * icall.c:
12099         * locales.h:
12100         * locales.c: Internal calls for constructing CultureInfo and
12101         related objects from libicu (if its available.)
12102
12103 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
12104
12105         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
12106
12107 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12108
12109         * threadpool.c: added an argument to async_invoke_thread that is the
12110         item to process, pass the MonoAsyncResult to the thread start function
12111         when creating a new thread. This way we don't need to acquire any lock
12112         when we're creating a new thread. Readded a semaphore for faster
12113         response times (instead of that Sleep i added).
12114
12115 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
12116
12117         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12118         get daylight change dates better on Windows, fix handling
12119         of platforms without tm_gmtoff.
12120
12121 2003-10-06  Martin Baulig  <martin@ximian.com>
12122
12123         * class.c (inflate_generic_method): Renamed to
12124         mono_class_inflate_generic_method() and made public.
12125         (mono_class_init): Don't inflate the generic methods here.
12126         (mono_class_from_generic): Added `gboolean inflate_methods'
12127         argument.  Inflate the methods here.
12128
12129         * loader.c (mono_method_get_param_names): Ignore instances of
12130         generic types for the moment.
12131
12132         * reflection.c (fixup_method): Added support for inflated methods.
12133         (mono_image_create_token): Use mono_image_get_methodref_token()
12134         for inflated methods.
12135         (mono_custom_attrs_from_param): Ignore instances of generic types
12136         for the moment.
12137         (mono_reflection_bind_generic_parameters): New public function.
12138         Moved all the functionality from
12139         ves_icall_Type_BindGenericParameters() here and added support for
12140         dynamic types.
12141         (mono_reflection_define_generic_parameter): Initialize
12142         `klass->methods' here.
12143
12144         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
12145         functionality into mono_reflection_define_generic_parameter().
12146         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
12147         TypeBuilder, return that TypeBuilder.
12148
12149 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12150
12151         * appdomain.c: removed mono_delegate_semaphore.
12152
12153         * threadpool.c:
12154         (mono_thread_pool_add): moved hash table creation inside and the thread 
12155         creation outside of the critical region.
12156         (mono_thread_pool_finish): removed obsolete code.
12157         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
12158         continue or exit the thread depending on the queue.
12159
12160 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
12161
12162         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
12163         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
12164         handle more bool marshalling options
12165
12166 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
12167
12168         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
12169         arrays of structs. Also add a more descriptive error message when
12170         a structure member is marshalled as LPArray.
12171
12172 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
12173
12174         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12175         marshalling arrays of complex types. Fixes #29098. Also remove an
12176         usused and incomplete function.
12177
12178 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
12179
12180         * gc.c: report heap_size - free_bytes as total memory allocated
12181         (bug#49362).
12182
12183 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
12184
12185         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
12186         fix timezone handling problems on Windows.
12187         
12188         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
12189         asserts when the year is outside the range handled by ms the functions.
12190
12191         * class.c (setup_interface_offsets): If the class is an interface,
12192         fill out its interface_offsets slot.
12193
12194 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12195
12196         * threadpool.c: mark threadpool threads as background.
12197
12198 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
12199
12200         * decimal.c - define DECINLINE to nothing if not using GCC
12201
12202 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
12203
12204         * assembly.c: More refcount fixes.
12205
12206 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12207
12208         * string-icalls.c: if we're not trimming, return the same string.
12209         When not splitting, don't create a new string.
12210
12211 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12212
12213         * image.c:
12214         (mono_image_open): increment the ref_count inside the critical section.
12215
12216 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
12217
12218         * image.c (mono_image_open): Fix reference counting bug.
12219
12220 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
12221
12222         * marshal.c (mono_marshal_type_size) struct alignment changed for 
12223         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
12224         64bits. Avoid leak in mono_marshal_get_native_wrapper when
12225         mono_lookup_pinvoke_call throws.        
12226
12227 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
12228
12229         * reflection.c (mono_reflection_parse_type): Fix #49114.
12230
12231         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
12232         temporary workaround for cygwin header problem.
12233
12234         * object.c (mono_object_isinst): Synchronize this with the code
12235         generated by the JIT for casts.
12236
12237 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
12238
12239         * reflection.c (encode_type): Fix #38332.
12240
12241 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
12242
12243         * marshal.c (mono_marshal_method_from_wrapper): New function to return
12244         the original method from the wrapper method.
12245
12246 2003-09-25  Martin Baulig  <martin@ximian.com>
12247
12248         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
12249         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
12250         (ves_icall_Type_get_IsGenericInstance): New interncall.
12251
12252 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
12253
12254         * object.c: fix cast warning in big endian code.
12255
12256 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
12257
12258         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
12259         
12260 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12261
12262         * assembly.c: don't call check_env from mono_assembly_load. It's
12263         already done once in mono_assemblies_init and may cause headaches when
12264         multiple threads are loading assemblies.
12265
12266 2003-09-19  Martin Baulig  <martin@ximian.com>
12267
12268         * reflection.c (mono_reflection_define_generic_parameter): Don't
12269         allocate `klass->methods', set `klass->flags' to
12270         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
12271
12272 2003-09-18  Martin Baulig  <martin@ximian.com>
12273
12274         * class.c (mono_class_init): Don't create `class->methods' if it's
12275         already initialized.
12276
12277         * metadata.c (mono_metadata_load_generic_params): Make this
12278         actually work.
12279
12280         * reflection.c (mono_reflection_define_generic_parameter): Set
12281         parent class and interfaces from the constraints.
12282
12283         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
12284         to keep this struct in sync with the declaration in TypeBuilder.cs.
12285
12286 2003-09-17  Martin Baulig  <martin@ximian.com>
12287
12288         * metadata.h (MonoType): Replaced the data's `int type_param'
12289         field with `MonoGenericParam *generic_param'.
12290         (MonoGenericParam): Added `MonoClass *klass'.
12291
12292         * class.c (mono_class_from_gen_param): Removed the
12293         `MonoImage *image' and `int type_num' arguments.
12294
12295         * metadata.c (mono_metadata_parse_generic_param): New static
12296         method; creates a MonoGenericParam which just contains the index.
12297         (do_mono_metadata_parse_type): Call
12298         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
12299         MONO_TYPE_MVAR.
12300
12301         * reflection.c (mono_image_typedef_or_ref): Generic type
12302         parameters may be in the same assembly, but never use a typedef
12303         for them.
12304         (mono_reflection_define_generic_parameter): We're now creating a
12305         "real" class for the type parameter; it's now safe to call
12306         mono_class_from_mono_type() on the class'es type, it'll do the
12307         right thing.
12308
12309 2003-09-16  Martin Baulig  <martin@ximian.com>
12310
12311         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
12312         `symfile->range_entry_size' and `symfile->class_entry_size' here;
12313         the `symfile' data structure must be fully initialized before it
12314         gets added to the table.
12315
12316 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
12317
12318         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
12319
12320         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
12321         class init trampolines.
12322
12323 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
12324
12325         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
12326         to the built-in profiler to turn off time and allocation profiling
12327         respectively.
12328
12329 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
12330
12331         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
12332         g_direct_equal.
12333
12334         * debug-helpers.c (mono_method_full_name): Print the wrapper type
12335         in human readable form.
12336
12337 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
12338
12339         * reflection.c icall.c: Fixed warnings.
12340
12341         * image.c (load_class_names): Use a temporary hash table to hold the
12342         namespaces in order to avoid doing many string comparisons.
12343
12344         * image.h: Fix typo.
12345
12346         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
12347         Pass NULL instead of g_direct_equal to the GHashTable constructor 
12348         since the NULL case is short-circuited inside g_hash_table_lookup, 
12349         leading to better performance.  
12350
12351         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
12352         obtain the first custom attribute for a given index. Depends on the
12353         CustomAttribute table being sorted by the parent field.
12354
12355         * reflection.c (mono_custom_attrs_from_index): Use the new function 
12356         for better performance.
12357
12358 2003-09-07  Martin Baulig  <martin@ximian.com>
12359
12360         * class.c (mono_class_init): If we're a generic instance, inflate
12361         all our methods instead of loading them from the image.
12362         (mono_class_from_generic): Set `class->methods = gklass->methods'.
12363
12364 2003-09-07  Martin Baulig  <martin@ximian.com>
12365
12366         * mono-debug-debugger.c: Added support for constructors.
12367
12368 2003-09-06  Martin Baulig  <martin@ximian.com>
12369
12370         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
12371         New interncall.
12372
12373         * reflection.c (mono_reflection_setup_generic_class): Call
12374         ensure_runtime_vtable() to create the vtable.
12375
12376 2003-09-05  Martin Baulig  <martin@ximian.com>
12377
12378         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
12379         MONO_TYPE_MVAR.
12380
12381 2003-09-04  Martin Baulig  <martin@ximian.com>
12382
12383         * reflection.c (mono_reflection_define_generic_parameter): Generic
12384         parameters start with zero.
12385
12386 2003-09-04  Martin Baulig  <martin@ximian.com>
12387
12388         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12389
12390         * reflection.h (MonoReflectionGenericParam): New typedef.
12391         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
12392         the generic parameters from the managed TypeBuilder.
12393
12394         * reflection.c (mono_reflection_define_generic_parameter): New function.
12395         (mono_reflection_create_runtime_class): Encode generic parameters.
12396         (mono_reflection_setup_generic_class): New function; this is
12397         called after adding adding all generic params to the TypeBuilder.
12398         (encode_type): Added MONO_TYPE_VAR.
12399
12400 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
12401
12402         * class.h class.c (mono_class_needs_cctor_run): Moved this method
12403         here from the JIT.
12404
12405         * assembly.h assembly.c: Moved the AOT loading code into an assembly
12406         load hook.
12407
12408 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
12409
12410         * reflection.h reflection.c class.h class.c: Delete duplicate 
12411         definition of mono_type_get_name () from reflection.c and export the
12412         one in class.c.
12413
12414         * class.c: Class loading fixes from Bernie Solomon 
12415         (bernard@ugsolutions.com).
12416
12417         * reflection.c: Endianness fixes from Bernie Solomon 
12418         (bernard@ugsolutions.com).
12419         
12420 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
12421
12422         * assembly.h assembly.c: Define a file format version for AOT
12423         libraries.
12424         
12425         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
12426
12427         * appdomain.h (MonoJitInfo): New field to determine whenever the
12428         code is domain neutral.
12429         
12430 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
12431
12432         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
12433
12434 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
12435
12436         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
12437         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
12438         Avoid caching the result since strings must be domain specific. Fixes
12439         #48050.
12440
12441 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
12442
12443         * marshal.c (mono_marshal_init): Make this callable multiple times
12444         since it is hard to find a correct place to call it.
12445
12446         * object.c (mono_runtime_class_init): Execute static constructors in
12447         the correct appdomain.
12448
12449         * image.c (build_guid_table): Handle the case when multiple images have
12450         the same GUID.
12451
12452 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12453
12454         * icall.c: added a couple of icalls for System.Web.
12455
12456 2003-08-28  Martin Baulig  <martin@ximian.com>
12457
12458         * icall.c (ves_icall_Type_BindGenericParameters): Use
12459         `klass->generic_inst' instead of `&klass->byval_arg' in the
12460         mono_type_get_object() call.  The returned type must be
12461         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
12462
12463 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
12464
12465         * NOTES: New file.
12466
12467         * object.c (mono_class_proxy_vtable): Make it thread safe.
12468
12469         * pedump.c: Fix warning.
12470
12471         * object.c appdomain.h: Get rid of metadata_section. 
12472         It is no longer needed and it was causing deadlocks with domain->lock.
12473
12474         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
12475
12476 2003-08-26  Martin Baulig  <martin@ximian.com>
12477
12478         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
12479
12480 2003-08-26  Martin Baulig  <martin@ximian.com>
12481
12482         * pedump.c (main): Call mono_metadata_init(),
12483         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
12484         and mono_loader_init().
12485
12486 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
12487
12488         * loader.h: Add missing include to fix build.
12489
12490         * image.h: mono_image_load_references is no more.
12491
12492         * assembly.c: Reworked assembly loading to make it really thread safe.
12493         After these changes, the assembly returned by mono_assembly_open is
12494         fully initialized, i.e. all its references assemblies are loaded.
12495
12496         * assembly.c (mono_image_load_references): Renamed to 
12497         mono_assembly_load_references, and made private, since clients no
12498         longer need to call it.
12499
12500         * class.c: Removed calls to mono_assembly_load_references, since it was
12501         a source of deadlocks.
12502
12503         * loader.h loader.c class.h class.c: Protect data structures using a 
12504         new lock, the loader lock.
12505
12506         * class.c (mono_class_setup_vtable): Create temporary hash tables and
12507         GPtrArrays only when needed.
12508
12509         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
12510         into empty structures by mcs. Fixes pinvoke7.cs.
12511         
12512         * domain.c (mono_init): Call a new initialization function.
12513
12514         * appdomain.c (mono_runtime_init): Call the new initializer function
12515         of the marshal module.
12516
12517         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
12518         inserted into empty structures by mcs. Fixes pinvoke7.cs.
12519
12520         * marshal.h marshal.c: Added locks around the wrapper caches to make
12521         this module thread safe.
12522
12523         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
12524         this argument. Fixes pinvoke1.exe.
12525
12526 2003-08-25  Lluis Sanchez <lluis@ximian.com>
12527
12528         * object.h: Added call_type field to MonoMethodMessage and the corresponding
12529         enumeration of values. Removed fields to store remote call output values in
12530         MonoAsyncResult. Not needed any more.
12531         * object.c: Initialize call_type and async_result fields in mono_message_init.
12532         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
12533         dispatching the message.
12534         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
12535         async call to finish. To do it use a message with EndInvoke call type.
12536
12537 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
12538
12539         * loader.h loader.c (mono_method_hash_marhal_info): New function which
12540         determines whenever a method has marshalling info.
12541
12542 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12543
12544         * assembly.c: fix the build on windows.
12545
12546 2003-08-22 Lluis Sanchez <lluis@ximian.com>
12547
12548         * object.cs: Fixed bug #47785.
12549
12550 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
12551
12552         * string-icalls.c (StringReplace): If their are no occurances of
12553         the old string found return a reference to the supplied
12554         string. This saves some memory and matches MS behavoir.
12555         
12556 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12557
12558         * socket-io.c: fixed compilation for systems that define AF_INET6
12559         and don't define SOL_IP/SOL_IPV6.
12560
12561 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
12562
12563         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
12564         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
12565
12566         * rawbuffer.c rawbuffer.h: Make this module thread safe.
12567
12568         * domain.c: Make this module thread safe.
12569
12570         * domain.c (mono_init): Call new initialization function.
12571
12572         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
12573         reference types too. Fixes #38812.
12574
12575         * image.c (mono_image_init): Fixed warnings.
12576
12577         * class.c (mono_class_from_typeref): Handle assembly load failure
12578         correctly.
12579
12580         * appdomain.c (add_assemblies_to_domain): Handle the case when
12581         the references of an assembly are not yet loaded.
12582
12583         * metadata.c image.c assembly.c: Moved initialization of global
12584         variables to a separate function called at startup since lazy 
12585         initialization of these variables is not thread safe.
12586         
12587         * image.c assembly.c: Made this module thread safe by adding locks in 
12588         the appropriate places.
12589
12590         * domain.c (mono_init): Call the new initialization functions of the
12591         three modules.
12592
12593 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
12594
12595         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
12596           make a direct call. It is proxy's work to make the call asynchronous.
12597           mono_delegate_end_invoke(): If the targe is a proxy, just collect
12598           the return values.
12599         * object.cs: mono_method_call_message_new(): read AsyncResult and
12600           state object from parameters list, if this info is requested.
12601         * object.h: Added fields to store remote call output values in
12602           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
12603
12604 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
12605
12606         * object.h: add needed fields to MonoThread.
12607         * threads.c, threads.h: allow registering a function to cleanup data
12608         allocated per thread by the JIT.
12609
12610 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
12611
12612         * loader.h: portability fix by Bernie Solomon
12613         * <bernard@ugsolutions.com>.
12614
12615 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
12616
12617         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
12618         return a MonoArray. This simplifies the code and also ensures that
12619         the cache allways contains an object reference as a value.
12620
12621         * icall.c (ves_icall_get_parameter_info): Simplified using the new
12622         function.
12623
12624 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12625
12626         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
12627         fixes a problem with byte ordering when getting the address family for
12628         a socket.
12629
12630 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
12631
12632         * .cvsignore: Added monosn.
12633
12634         * reflection.h reflection.c loader.c: Added support for parameter
12635         marshalling to dynamically created types. Fixes #47295.
12636
12637 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
12638
12639         * rand.c: remove useless warnings.
12640
12641 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
12642
12643         * class.c: implemented ldtoken for methods and fieldrefs.
12644
12645 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12646
12647         * threadpool.c: when mono_async_invoke was called, no one took care of
12648         monitoring the queue. So if the method invoked took some time and we
12649         got new async invoke requests after 500 ms (the thread created waited
12650         that long in WaitForSingleObject), the new async invoke was not called
12651         until the previous one finished.
12652
12653         This is fixed now. Thanks to Totte for helping with it.
12654
12655 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12656
12657         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
12658
12659 2003-08-11  Martin Baulig  <martin@ximian.com>
12660
12661         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
12662
12663 2003-08-06  Martin Baulig  <martin@ximian.com>
12664
12665         * mono-debug-debugger.c: Added support for static fields,
12666         properties and methods.
12667
12668 2003-08-06  Martin Baulig  <martin@ximian.com>
12669
12670         * mono-debug-debugger.c: Don't store the MonoString's vtable to
12671         make this work for applications with multiple application domains.
12672
12673 2003-08-04  Martin Baulig  <martin@ximian.com>
12674
12675         * mono-debug-debugger.c: Completely reworked the type support; the
12676         most important thing is that we're now just using one single
12677         `MonoType' instance per type.
12678
12679 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
12680
12681         * mono-endian.h, mono-endian.c, icall.c: Added icall
12682         ves_icall_System_Double_AssertEndianity to assert double word endianity
12683         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
12684
12685 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
12686
12687         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
12688         support, icalls and fixes.
12689
12690 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
12691
12692         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
12693         classes that are a punctuation character in .NET is not the same a
12694         g_unichar_ispunct.
12695
12696 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
12697
12698         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
12699
12700 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
12701
12702         * icall.c: Add new MemCopy internalcall.
12703         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
12704         Simplified code; It is not necessary to handle all the cases here,
12705         as the C# code takes care of it.  Only handle the case of the name
12706         resource embedded into the assembly.
12707
12708         Changed signature to return the data pointer and the size of the
12709         data. 
12710
12711 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
12712
12713         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
12714         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
12715
12716 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
12717
12718         * socket-io.c: ignore EINTR error in select.
12719
12720 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
12721
12722         * class.h, class.c: removed unused subclasses field in MonoClass.
12723
12724 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
12725
12726         * icall.c: improve fix of get_base_definition(). If the parent class
12727           doesn't have the mehod, look at the parent of the parent.
12728         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
12729           to check if a parameter is an in or out parameter
12730           (PARAM_ATTRIBUTE_IN is not set by default).
12731           mono_method_return_message_restore(): Use mono_class_value_size to
12732           get the size of a value type. mono_type_stack_size (parameterType)
12733           does not return the correct value if parameterType is byRef.
12734           mono_load_remote_field(), mono_load_remote_field_new(),
12735           mono_store_remote_field(), mono_store_remote_field_new():
12736           raise exception if the remote call returns an exception.
12737
12738 2003-07-28  Martin Baulig  <martin@ximian.com>
12739
12740         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
12741         method.  This is a wrapper around mono_runtime_invoke() which
12742         boxes the instance object if neccessary.
12743
12744 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
12745
12746         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
12747         metadata.h, row-indexes.h, verify.c: first cut of generics support.
12748
12749 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
12750
12751         * icall.c: disable mcs bug workaround.
12752
12753 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
12754
12755         * object.c (mono_runtime_class_init): Take the metadata_section
12756         mutex before obtaining the domain mutex.
12757
12758         * appdomain.h: Added definition of metadata_section mutex here. 
12759
12760         * object.c: define metadata_mutex here.
12761
12762 2003-07-24  Ravi Pratap  <ravi@ximian.com>
12763
12764         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
12765         fixed.
12766
12767 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
12768
12769         * reflection.c: Fix bug #46669
12770
12771 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12772
12773         * exception.c:
12774         * exception.h:
12775         * icall.c:
12776         * object.h: fill in the type name for TypeLoadException.
12777
12778 2003-07-23  Ravi Pratap  <ravi@ximian.com>
12779
12780         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
12781         relationship between TypeBuilders while compiling corlib) and bug
12782         45993 (Array types returned from the runtime while compiling
12783         corlib were from the loaded corlib).
12784
12785 2003-07-22  Martin Baulig  <martin@ximian.com>
12786
12787         * mono-debug-debugger.c: Reworked the type support a bit more;
12788         distinguish between types and classes.
12789
12790 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
12791
12792         * icall.c: add IsArrayImpl icall.
12793
12794 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
12795
12796         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
12797         initializing real_size only once. Also fix bug #46602.
12798
12799 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
12800
12801         * object.c: Renamed mono_metadata_section to metadata_section.
12802
12803 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
12804
12805         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
12806           empty array if the type is an array. Fixed.
12807           ves_icall_MonoMethod_get_base_definition: if the base method
12808           is abstract, get the MethodInfo from the list of methods of
12809           the class.
12810         * reflection.c: ParameterInfo.PositionImpl should be zero-based
12811           and it was 1-based. Fixed in mono_param_get_objects.
12812
12813 2003-07-20  Martin Baulig  <martin@ximian.com>
12814
12815         * mono-debug.h: Set version number to 31.
12816         (mono_debug_init): Added `MonoDomain *' argument.
12817
12818         * mono-debug-debugger.c: Reworked the type support; explicitly
12819         tell the debugger about builtin types; pass the `klass' address to
12820         the debugger.
12821
12822 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
12823
12824         * image.c: Allow new metadata tables to be loaded without a
12825         warning. Also update the warning message to give the new constant value.
12826                 
12827 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
12828
12829         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
12830         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
12831         array type representation changes.
12832
12833 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
12834
12835         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
12836         on Environment.Exit () call.
12837
12838 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
12839
12840         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
12841         requires a matching corlib.
12842
12843 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
12844
12845         * Changelog: My editor decided to add a CR to each line. Sorry about that.
12846           Committed again without the CRs.
12847         
12848 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
12849
12850         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
12851           getting it from the "this" socket instance. Did not work
12852           if the socket is a subclass of Socket.
12853           Also fixed bug #35371.
12854
12855 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
12856
12857         * metadata.c: fixed size for TypedByRef.
12858         * loader.c: when searching for a method, consider the vararg amrker.
12859         * unicode.c, decimal.c: constify some arrays.
12860
12861 2003-07-15  Dick Porter  <dick@ximian.com>
12862
12863         * socket-io.c: Fixed compilation for gcc < 3.2.
12864
12865         Fixed compilation for machines that don't have AF_INET6 (thanks to
12866         Bernie Solomon <bernard@ugsolutions.com> for that part.)
12867
12868         Fixed compile warnings.
12869         
12870         Fixed formatting and line endings.
12871
12872 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
12873
12874         * socket-io.h:
12875         * socket-io.c: Added IPv6 support.
12876
12877 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
12878
12879         * class.c (mono_class_is_assignable_from): New function to implement
12880         the is_assignable_from logic. Used by mono_object_isinst, 
12881         Type::IsAssignableFrom () and the interpreter.
12882
12883         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
12884         Object, even interfaces.
12885         
12886         * object.c (mono_object_isinst): Implement in terms of 
12887         is_assignable_from.
12888
12889         * icall.c (ves_icall_type_is_assignable_from): New icall.
12890
12891 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
12892
12893         * domain.c (foreach_domain): fix compiler warning.
12894
12895 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
12896
12897         * image.c (load_metadata_ptrs): use g_strndup because strndup is
12898         not available on all plattforms
12899
12900 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
12901
12902         * image.h image.c: Store the metadata version string in MonoImage.
12903         * icall.c: New icall to retrieve the image version.
12904         * reflection.c (create_dynamic_image): Fill in the image version field
12905         * reflection.c (build_compressed_metadata): Use the image version
12906         from the image structure.
12907
12908 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12909
12910         * appdomain.c: modified comment.
12911         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
12912         That will be its last iteration when mono_gc_cleanup is called from
12913         mono_runtime_cleanup and before the domain is unloaded.
12914
12915         Fixes bug #45962.
12916
12917 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
12918
12919         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
12920         attributes.
12921
12922 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
12923
12924         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
12925         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
12926         Bernie Solomon <bernard@ugsolutions.com>.
12927
12928 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
12929
12930         * object.c, object.h: provide mono_object_new_fast() for faster
12931         allocation in some special cases.
12932
12933 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
12934
12935         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
12936         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
12937
12938 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
12939
12940         * threadpool.c: fix leaks.
12941
12942 2003-07-01  Dick Porter  <dick@ximian.com>
12943
12944         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
12945         using MonoGHashTables.  Fixes threadpool bug posted to list.
12946
12947 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
12948
12949         * image.h, image.c: added support to load an assembly from a byte array.
12950         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
12951         assembly bundle support.
12952
12953 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
12954
12955         * threadpool.c (mono_thread_pool_add): keep a reference to the
12956         AsyncResult to prevent GC
12957
12958 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
12959
12960         * class.c: leak fix.
12961
12962 2003-06-25  Dick Porter  <dick@ximian.com>
12963
12964         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
12965         for the async object, the WaitHandle object will close the handle.
12966         Fixes bug 45321.
12967
12968 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
12969
12970         * class.c: in mono_array_class_get (), lookup from the hash with the
12971         same type we insert: this works around a bug in
12972         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
12973         lluis. The real fix will have to wait for after the release.
12974
12975 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
12976
12977         * icall.c: fix memory leak when getting type members.
12978
12979 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
12980
12981         * reflection.c: added more pubtoken special cases.
12982
12983 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
12984
12985         * class.c: handle field offset correctly when class size
12986         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
12987
12988 2003-06-20  Martin Baulig  <martin@ximian.com>
12989
12990         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
12991         *image' field.
12992
12993 2003-06-20  Martin Baulig  <martin@ximian.com>
12994
12995         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
12996
12997 2003-06-20  Martin Baulig  <martin@ximian.com>
12998
12999         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
13000         just distinguish between variables in registers and variables at
13001         an offset relative to a register.
13002
13003 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13004
13005         * icall.c: #ifdef out latest changes until mcs is fixed.
13006
13007 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13008
13009         * icall.c: return members in metadata order.
13010
13011 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13012
13013         * icall.c: avoid infinite loop in GetTimeZoneData.
13014
13015 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
13016
13017         * icall.c: added Marshal.Prelink/All icalls.
13018
13019 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13020
13021         * object.c, object.h: fix warnings and do some overflow checking
13022         when creating arrays.
13023
13024 2003-06-17  Dick Porter  <dick@ximian.com>
13025
13026         * file-io.h:
13027         * file-io.c: File attributes need to be tweaked slightly when
13028         passed from the managed to the w32 world.
13029
13030 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13031         * profiler.h profiler-private.h profiler.c: Rework last patch
13032         based on suggestion by Paolo.
13033         
13034 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13035
13036         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
13037         instruction level coverage data collection.
13038         * profiler.h profiler.c (: Added new callback function which can be
13039         used by the profiler to limit which functions should have coverage
13040         instrumentation.
13041         * profiler.c (mono_profiler_load): Call g_module_build_path to
13042         generate the file name of the profiler library.
13043
13044 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13045
13046         * profiler.c, profiler.h, profiler-private.h: added basic block 
13047         coverage profiling API.
13048
13049 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
13050
13051         * reflection.c (mono_reflection_create_runtime_class): Add support
13052         for events in dynamically generated code.
13053
13054         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
13055         not allocated.
13056
13057 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13058
13059         * icall.c: when getting timezone info, return reasonable values if we
13060         can't get the actual data.
13061
13062 2003-06-14  Dick Porter  <dick@ximian.com>
13063
13064         * threads.c (start_wrapper): Remove the reference to the thread
13065         object in the TLS data, so the thread object can be finalized.
13066         This won't be reached if the thread threw an uncaught exception,
13067         so those thread handles will stay referenced :-( (This is due to
13068         missing support for scanning thread-specific data in the Boehm GC
13069         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
13070
13071 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
13072
13073         * reflection.c: ensure streams and tables are first allocated with
13074         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
13075
13076 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13077
13078         * icall.c: fixed GetElementType for byrefs (bug# 44792).
13079
13080 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
13081
13082         * reflection.c (mono_reflection_create_runtime_class): Add support for
13083         properties to dynamically created classes.
13084         * reflection.c: Fix a few places where non-MonoObjects were inserted
13085         into the tokens hashtable.
13086
13087 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13088
13089         * object.c: some support to handle out of memory exceptions.
13090
13091 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
13092
13093         * marshal.c (mono_marshal_get_native_wrapper): support reference
13094         return types
13095
13096 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13097
13098         * object.h, object.c: more portability stuff from Bernie Solomon.
13099         Unexport mono_object_allocate(). Added mono_object_unbox ().
13100         Set exitcode when an unhandled exception is thrown.
13101
13102 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
13103
13104         * marshal.c (mono_marshal_get_native_wrapper): use custom
13105         marshaler for return types.
13106
13107 2003-06-10  Dick Porter  <dick@ximian.com>
13108
13109         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
13110         ip_mreq is available
13111
13112 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
13113
13114         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
13115         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
13116         by Bernie Solomon <bernard@ugsolutions.com>.
13117
13118 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
13119
13120         * gc.c (mono_gc_init): Avoid error message on shutdown when
13121         GC_DONT_GC=1 is used.
13122
13123         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
13124         New icall to return the GUID of a module.
13125
13126 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13127
13128         * class.c: ensure instance size always includes the parent's size
13129         even whem class size is set explicitly (fixes bug#44294).
13130
13131 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13132
13133         * profiler.h, profiler.c: made the simple profiler thread-safe,
13134         get more accurate timing info. Allow the loading of an
13135         externally-developed profiler module.
13136
13137 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
13138
13139         * marshal.c (mono_marshal_get_native_wrapper): improved
13140         class/byref arguments.
13141         (mono_marshal_get_native_wrapper): better string marshaling support.
13142
13143 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
13144
13145         * class.c: ensure .pack and .size are handled correctly and
13146         simplified layout of static fields.
13147
13148 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
13149
13150         * appdomain.c
13151         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
13152
13153         * loader.c (mono_lookup_pinvoke_call): look for modules in the
13154         current directory (fix bug 44008)
13155
13156 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
13157
13158         * marshal.c (mono_marshal_get_native_wrapper): started support for
13159         custom marshalers.
13160         (mono_delegate_to_ftnptr): consider marshalling specifications
13161
13162 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
13163
13164         * reflection.c, reflection.h: emit custom marshal info.
13165
13166 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13167
13168         * object.c: free the GError.
13169         * icall.c: added CloseEvent_internal.
13170         * threads.[ch]:
13171         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
13172         call.
13173
13174 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
13175
13176         * loader.c (mono_method_get_signature): Add support for dynamic
13177         assemblies.
13178
13179 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
13180
13181         * reflection.c: fixed bug #43905.
13182
13183 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13184
13185         * class.c, domain.c, icall.c, metadata.h, object.h: support for
13186         handling TypedReference and ArgIterator.
13187         * loader.c, loader.h: added function to get signature at call site.
13188
13189 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13190
13191         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
13192         data readonly. Buglets and warning fixes. Some MethodSpec support.
13193
13194 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13195
13196         * class.h, class.c, object.c: remove relative numbering support.
13197
13198 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
13199
13200         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
13201         free the string, until we get a chance to fix Gtk#
13202
13203 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13204
13205         * marshal.c: revert last patch.
13206
13207 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
13208
13209         * icall.c: updates for new mono_class_vtable() not calling
13210         the type constructor anymore.
13211
13212 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
13213
13214         * object.h, object.c: separate vtable creation from type
13215         initialization. Make running the .cctor thread safe.
13216
13217 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
13218
13219         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
13220
13221 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
13222
13223         * loader.c (mono_get_method): consider calling convention
13224
13225 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
13226
13227         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
13228         to return the invisible global type for a module.
13229
13230         * reflection.c (mono_image_build_metadata): Emit global fields too.
13231
13232 2003-05-20  Peter Williams  <peterw@ximian.com>
13233
13234         * loader.c (mono_lookup_internal_call): Add a few newlines.
13235
13236 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
13237
13238         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
13239         literal strings.
13240
13241         * appdomain.c (set_domain_search_path): Recalculate search path when
13242         AppDomainSetup.PrivateBinPath changes.
13243
13244         * object.c (mono_class_compute_gc_descriptor): It turns out some
13245         parts of the class libs (like System.Thread) holds pointers to
13246         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
13247         to treat native int a pointer type here.
13248         
13249 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
13250
13251         * appdomain.h, domain.c: add hashtable for jump target resolution.
13252
13253 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
13254
13255         * reflection.h reflection.c icall.c: Added new icalls 
13256         GetManifestResourceInfoInternal, GetModulesInternal and support
13257         infrastructure.
13258
13259 2003-05-16  Dick Porter  <dick@ximian.com>
13260
13261         * icall.c:
13262         * file-io.h:
13263         * file-io.c: Implement System.IO.MonoIO::GetTempPath
13264
13265 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
13266
13267         * object.c: mono_store_remote_field: little fix to previous patch.
13268
13269 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13270
13271         * class.c: add constructors to array classes.
13272         * icall.c: special case array construction for InternalInvoke (),
13273
13274 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
13275
13276         * class.h class.c reflection.c object.c: Added support for field
13277         defaults in dynamically generated classes.
13278
13279 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
13280
13281         * reflection.c: properly encode charset for ddlimport.
13282
13283 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
13284
13285         * threads.c: allow compiling without GC.
13286
13287 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13288
13289         * appdomain.h, object.c, object.h, threads.c, threads.h: added
13290         handling of thread static data.
13291
13292 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13293
13294         * reflection.h, reflection.c: added mono_custom_attrs_free ().
13295
13296 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
13297
13298         * class.c (mono_array_class_get): always set the serializable flags
13299         (mono_array_class_get): always set the SEALED attribute for array types
13300
13301 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
13302
13303         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
13304         attributes (fix for bug 42021).
13305
13306 2003-05-12  Dick Porter  <dick@ximian.com>
13307
13308         * gc.c: Don't run finalizers when the finalizer thread is
13309         finishing up, because the default domain has already been
13310         destroyed.
13311
13312 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
13313
13314         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
13315         value is null, we should throw an exception.   This is slightly
13316         different than the other conventions used for the constructor.
13317
13318 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13319
13320         * socket-io.c: fixed windows build.
13321
13322 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13323
13324         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
13325
13326 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
13327
13328         * object.c (mono_string_new_wrapper): Compatibility fix for MS
13329         compilers.
13330
13331 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
13332
13333         * class.c (mono_class_layout_fields): Add experimental GC aware
13334         auto layout facility. Requires class library changes to work correctly.
13335
13336         (mono_class_setup_vtable): Avoid overriding explicit interface
13337         method implementations. Fixes iface3.exe test.
13338
13339         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
13340         object reference.
13341         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
13342         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
13343
13344         * metadata.h: Add new type classification macro which determines
13345         whenever the type holds an object reference.
13346
13347 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
13348
13349         * marshal.c (mono_marshal_get_native_wrapper): cleanups
13350
13351 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
13352
13353         * gc.c (finalizer_thread): Work around a GC bug.
13354
13355 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
13356
13357         * marshal.c (emit_struct_conv): allow unions
13358
13359         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
13360
13361 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
13362
13363         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
13364
13365 2003-05-06  Martin Baulig  <martin@ximian.com>
13366
13367         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
13368
13369 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13370
13371         * socket-io.c:
13372         (Select_internal): allow NULLs, don't create arrays if not needed.
13373         Coupled with Socket.cs changes.
13374
13375         * threadpool.c:
13376         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
13377         register a finalizer for it that will close the semaphore handle. This
13378         fixes the leak and make Lupus' test run with > 4080 loops.
13379
13380 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
13381
13382         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
13383         Jerome Laban (bug #42287)
13384
13385 2003-05-02  Martin Baulig  <martin@ximian.com>
13386
13387         * debug-mono-symfile.h
13388         (MonoSymbolFile): Moved declaration into mono-debug.h.
13389         (MonoDebugMethodJitInfo): Likewise.
13390         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
13391         argument.
13392         (_mono_debug_address_from_il_offset): Take a
13393         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
13394
13395         * mono-debug.h
13396         (MonoDebugDomainData): New struct.
13397         (mono_debug_get_domain_data): New function.
13398         (mono_debug_add_method): Take an additional `MonoDomain *'
13399         argument.
13400         (mono_debug_source_location_from_address): Likewise.
13401         (mono_debug_il_offset_from_address): Likewise.
13402         (mono_debug_address_from_il_offset): Likewise.
13403
13404 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
13405
13406         * reflection.c: one more check for null type in custom attrs.
13407
13408 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13409
13410         * reflection.c: avoid warning (comparison is always false due to limited
13411         range of data type).
13412
13413 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13414
13415         * icall.c: throw an exception in Type.GetField if the argument 'name'
13416         is NULL.
13417
13418 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
13419
13420         * reflection.c: fixed handling of enums in named arguments to custom
13421         attributes (bug #42123).
13422
13423 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
13424
13425         * reflection.c: use the right array element type and handle
13426         a null for a Type argument, too.
13427
13428 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
13429
13430         * reflection.c: handle arrays as arguments to custom attributes.
13431
13432 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
13433
13434         * reflection.c: handle a string value in a custom attr
13435         ctor that takes an object.
13436
13437 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
13438
13439         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
13440         (fix bug #42063)
13441
13442 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
13443
13444         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
13445
13446 2003-04-27  Martin Baulig  <martin@ximian.com>
13447
13448         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
13449         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
13450         MONO_DEBUGGER_EVENT_BREAKPOINT.
13451         (mono_breakpoint_trampoline_code): Removed.
13452         (mono_debugger_event_handler): The last argument is now a
13453         `guint32'.
13454         (mono_debugger_insert_breakpoint_full): Removed the
13455         `use_trampoline' argument.
13456         (mono_debugger_method_has_breakpoint): Likewise.
13457         (mono_debugger_trampoline_breakpoint_callback): Renamed to
13458         mono_debugger_breakpoint_callback(); take the method and
13459         breakpoint number as arguments.
13460
13461 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
13462
13463         * metadata.c: fix off by one when loading parameters attributes.
13464
13465 2003-04-24  Martin Baulig  <martin@ximian.com>
13466
13467         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
13468
13469 2003-04-24  Martin Baulig  <martin@ximian.com>
13470
13471         * mono-debug-debugger.c: Moved all code which interacts with the
13472         Mono Debugger here.
13473
13474         * debug-mono-symfile.c: This code now just deals with the symbol
13475         file itself, the debugger code is now in mono-debug-debugger.c.
13476
13477 2003-04-23  Martin Baulig  <martin@ximian.com>
13478
13479         * mono-debug.c (mono_debug_source_location_from_il_offset):
13480         New method; like mono_debug_source_location_from_address(), but
13481         takes an IL offset instead of a machine address.
13482
13483 2003-04-23  Martin Baulig  <martin@ximian.com>
13484
13485         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
13486         `line' field; this is now computed by the debugger.
13487
13488 2003-04-23  Martin Baulig  <martin@ximian.com>
13489
13490         * mono-debug.[ch]: New files.  This is the new debugging interface.
13491
13492         * mono-debug-debugger.[ch]: New files.  Moved all code which
13493         interacts with the Mono Debugger here.
13494
13495 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
13496
13497         * domain.c (mono_init): initialize mono_defaults.monitor_class
13498
13499 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
13500
13501         * reflection.c (method_encode_code): Add a spicy exception to help
13502         future compiler authors.
13503
13504 2003-04-21  Martin Baulig  <martin@ximian.com>
13505
13506         * icall.c
13507         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
13508         Make this work with relative pathnames; g_filename_to_uri() needs
13509         an absolute filename.
13510
13511 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
13512
13513         * icall.c: Track name changes in Object and ValueType.
13514
13515 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
13516
13517         * metadata.c (mono_type_stack_size): size should be a multiple of
13518         sizeof (gpointer)
13519
13520 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13521
13522         * gc.c:
13523         (internal_domain_finalize): moved into mono_domain_finalize. No need
13524         to create another thread because the finalizers will be run in the
13525         finalizer thread.
13526         
13527         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
13528         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
13529         to be run (MS does this too).
13530
13531 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
13532
13533         * object.c (mono_class_compute_gc_descriptor): Update comment.
13534
13535         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
13536
13537         * image.h: Add synchronized wrapper cache.
13538
13539         * image.c (do_mono_image_open): Initialize cache.
13540
13541         * reflection.c (create_dynamic_mono_image): Initialize cache.
13542
13543 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13544
13545         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
13546         ves_icall_System_Buffer_ByteLengthInternal.
13547
13548 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13549
13550         * reflection.c: setup klass->nested_in earlier. Allow
13551         a dash in the assembly name.
13552
13553 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
13554
13555         * metadata.c (mono_type_to_unmanaged): dont access
13556         type->data.klass for MONO_TYPE_OBJECT
13557         (mono_type_to_unmanaged): consider System.Delegate class
13558
13559 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
13560
13561         * class.c: just setup supertypes in the proper place instead of
13562         initializing the full element class for arrays.
13563
13564 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
13565
13566         * class.c: ensure the element class of arrays is initialized.
13567         Setup the supertype info for array classes, too.
13568
13569 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
13570
13571         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
13572
13573 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13574
13575         * Makefile.am: re-added -m option when running cygpath. This way,
13576         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
13577         separator.
13578         * mono-config.c: same codepath for locating mono config file for WIN32
13579         and the rest.
13580         * assembly.c: if mono_assembly_setrootdir is called, don't override
13581         the value set.
13582
13583 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13584
13585         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
13586         MONO_ASSEMBLIES variable.
13587
13588 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
13589
13590         * icall.c: added Assembly::GetNamespaces() icall.
13591
13592 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13593
13594         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
13595
13596 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
13597
13598         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
13599         * object.c: fixed bug in the construction of vtable for proxies
13600
13601 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
13602
13603         * object.c (mono_array_new): Mark mono_array_new as an icall.
13604
13605 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13606
13607         * class.c: fixed test for public method when overriding interfaces.
13608         Closes bug #40970.
13609
13610 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
13611
13612         * appdomain.h, domain.c: added mono_domain_foreach() to
13613         be able to access the currently loaded appdomains.
13614         * object.c: make string interning work across sppdomains.
13615         Mark some functions for use as icalls.
13616
13617 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
13618
13619         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
13620
13621         * reflection.h reflection.c: Allocate long living data using 
13622         GC_MALLOC_ATOMIC so the collector does not need to scan it.
13623
13624         * reflection.c: Double the allocation size in streams instead of
13625         increasing it, to prevent unneccesary copying on large assemblies.
13626         
13627         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
13628         creation if the assembly does not have the Run flag set.
13629
13630 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
13631
13632         * class.h: avoid the C++ keywords in header files (Jerome Laban
13633         spotted and fixed this).
13634
13635 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13636
13637         * object.c:
13638         (mono_unhandled_exception): fill in the arguments for the
13639         UnhandledException event. Only trigger that event for the default
13640         domain (as MS does).
13641
13642 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
13643
13644         * object.c: Improve typed allocation stuff based on suggestions from
13645         Paolo. Also turn it on if the GC library supports it.
13646
13647 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
13648
13649         * object.c object.h class.h: Added experimental typed allocation
13650         facility using the interfaces in gc_gcj.h.
13651
13652         * os/gc_wrapper.h: Added new include files.
13653         
13654 2003-04-03  Martin Baulig  <martin@ximian.com>
13655
13656         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
13657         which is not yet enabled by default.
13658
13659         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
13660         functions.
13661         (mono_gc_lock, mono_gc_unlock): New static functions.
13662
13663         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
13664         functions; stop/start the world for the garbage collector.  This
13665         is using the windows API; we need to complete the SuspendThread()/
13666         ResumeThread() implementation in the io-layer to make this work on Unix.
13667         (mono_gc_push_all_stacks): New public function; tells the garbage
13668         collector about the stack pointers from all managed threads.
13669
13670 2003-04-03  Martin Baulig  <martin@ximian.com>
13671
13672         * object.h (MonoThread): Added `gpointer stack_ptr'.
13673
13674         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
13675
13676 2003-04-03  Martin Baulig  <martin@ximian.com>
13677
13678         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
13679
13680 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
13681
13682         * reflection.c (typebuilder_setup_fields): Initialize field.first and
13683         field.last.
13684
13685 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
13686
13687         * loader.c (mono_lookup_internal_call): Report the corlib that is
13688         out of sync.
13689
13690 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
13691
13692         * icall.c (ves_icall_type_GetTypeCode): fixed check for
13693         System.DBNull (it's class not valuetype).
13694
13695 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
13696
13697         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
13698         if the array method was already assigned a token (fixes bug#40646).
13699
13700 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
13701
13702         * reflection.c (mono_reflection_get_type): Attempt type resolve even
13703         if no assembly is given.
13704
13705 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
13706
13707         * metadata.h: Added the new tables.
13708
13709         * row-indexes.h: Added definitions for new tables.
13710
13711         * metadata.c: Add schemas for new tables, and add support for
13712         computing the sizes of them.
13713
13714         * class.c: Update for handling the new type cases.
13715
13716 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
13717
13718         * metadata.h (MONO_TYPE_IS_VOID): new macro
13719
13720 2003-03-31  Martin Baulig  <martin@ximian.com>
13721
13722         * threads.h (MonoThreadCallbacks): Added `thread_created'.
13723
13724         * threads.c (mono_thread_new_init): Call `thread_created' in the
13725         mono_thread_callbacks.
13726
13727 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
13728
13729         * loader.h: added marshalbyrefobject_class to mono_defaults
13730         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
13731         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
13732           generation of output parameters.
13733           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
13734         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
13735           contextbound and the target object belongs to the context of the caller.
13736         * object.h: added context and unwrapped_server variables in MonoRealProxy.
13737         * object.c: Implemented support for interfaces and abstract classes
13738           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
13739           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
13740
13741 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
13742
13743         * class.h class.c (mono_class_is_subclass_of): New function.
13744         
13745         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
13746         routines for most common case (calls from ArrayList::ToArray).
13747
13748         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
13749         routine so programs which call Environment::Exit() can be profiled.
13750
13751         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
13752         Added MONO_ARCH_SAVE_REGS.
13753
13754         * icall.c (ves_icall_type_is_subtype_of): Use new function.
13755
13756 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
13757
13758         * blob.h: Add a couple of new MonoType types definitions.
13759
13760         * tabledefs.h: Add a couple of new call convs.
13761
13762 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
13763
13764         * reflection.h (MonoReflectionDynamicAssembly): track changes in
13765         the layout of the class.
13766
13767         * reflection.c (alloc_table): double the size on overflow to avoid
13768         unnecessary copying.
13769
13770         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
13771         avoid filling out metadata tables and blobs. Also set mb->ilgen to
13772         null so it can be garbage collected.
13773         
13774 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
13775
13776         * reflection.c (mono_reflection_get_type): Return the resolved type
13777         only if it is in the assembly we searched.
13778
13779         * reflection.c (ensure_runtime_vtable): Initialize method slots.
13780
13781         * class.c (mono_class_setup_vtable): Set the slot of the overriding
13782         method.
13783
13784 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13785
13786         * appdomain.c:
13787         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
13788         the right one is 'file:///blah', but MS allows it.
13789         * assembly.c:
13790         (mono_assembly_open): allow 'file://blah'
13791
13792         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
13793
13794 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
13795
13796         * socket-io.c: fixes bug #40310.
13797
13798 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
13799
13800         * reflection.c (mono_reflection_parse_type): handle deeply nested
13801         types correctly.
13802
13803         * reflection.c (mono_image_create_token): Use unique token values
13804         since they will be put into a hash table.
13805
13806         * class.c (mono_class_setup_vtable): If a method occurs in more than
13807         one place in the vtable, and it gets overriden, then change the
13808         other occurances too.
13809
13810         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
13811         object as return type.
13812
13813 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
13814
13815         * icall.c: Deleted "ToString" implementation for double and float
13816         because they are full implemented in managed code.
13817
13818 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
13819
13820         * reflection.c, reflection.h: implemented and exported functions
13821         to retrieve info about custom attributes.
13822
13823 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13824
13825         * appdomain.c: moved Uri handling to assembly.c
13826         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
13827         work when using a file Uri in *nix and windows.
13828
13829         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
13830         GetReferencedAssemblies.
13831
13832 2003-03-18  Dick Porter  <dick@ximian.com>
13833
13834         * icall.c: Rename a couple of internal calls
13835
13836         * threads.c: Set the thread state to Stopped when a thread exits.
13837         Fixes bug 39377.
13838
13839 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
13840
13841         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
13842         New icall.
13843
13844         * object.c (mono_class_vtable): fix warning.
13845
13846 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
13847
13848         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
13849
13850         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
13851         memory.
13852         (method_encode_clauses): Create exception info structures in the right
13853         order.
13854         (mono_reflection_setup_internal_class): Initialize supertypes field.
13855
13856         * class.c object.c: Handle interfaces which implement other interfaces 
13857         correctly.
13858
13859         * class.h class.c: Move the supertypes array initialization code into 
13860         a separate function so it can be used for dynamic types too. Also call
13861         it earlier, in mono_class_init(), since it can be used before the
13862         type is initialized.
13863
13864 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13865
13866         * Makefile.am:
13867         * assembly.c:
13868         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
13869
13870         * appdomain.c:
13871         * appdomain.h:
13872         * marshal.c:
13873         * object.c: remove warnings.
13874
13875 2003-03-13  Martin Baulig  <martin@ximian.com>
13876
13877         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
13878         (MonoDebugLexicalBlockEntry): New types.
13879
13880         * debug-mono-symfile.c
13881         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
13882
13883 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13884
13885         * process.c: ret can be any non-zero value accroding to MS doc.
13886
13887 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
13888
13889         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
13890         fixing a warning for a miss-used prototype, would have cause
13891         random memory corruption.
13892
13893 2003-03-07  Martin Baulig  <martin@ximian.com>
13894
13895         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
13896         getting really annoying ....
13897
13898 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
13899
13900         * reflection.c (fixup_method): added support for array methods.
13901
13902 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
13903
13904         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
13905         (pointed out by Michael Adams).
13906
13907 2003-03-04  Dick Porter  <dick@ximian.com>
13908
13909         * icall.c: Temporarily reverted the Double and Single ToString()
13910         change, because it broke nunit.
13911
13912 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
13913
13914         * object.h, threads.h: make include files compatible with C++
13915         (patch by Jerome Laban <jlaban@wanadoo.fr>).
13916
13917 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
13918
13919         * icall.c: Erased ToString helper functions for Double and Single.
13920         Now, that implementations ar all in managed code (Double and Single
13921         Formatters).
13922
13923 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
13924
13925         * appdomain.c: Added method for initializing the default context of
13926         a domain. Added internal call for getting the default context.
13927         * appdomain.h: Added context variable in MonoDomain struct.
13928         * domain.c: mono_domain_set also sets the default context of the domain
13929         * icall.c: Mapped internal method InternalGetDefaultContext.
13930         * object.c: mono_object_get_virtual_method returns always a remoting
13931         wrapper if the object is a transparent proxy.
13932         mono_runtime_invoke_array: when creating an object by calling the
13933         constructor, if the created object is a proxy, then the constructor should
13934         be called using the a remoting wrapper.
13935
13936 2003-03-03  Dick Porter  <dick@ximian.com>
13937
13938         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
13939         variable so it compiles on solaris.  Problem spotted by
13940         Christopher Taylor <ct@cs.clemson.edu>
13941
13942 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13943
13944         * appdomain.c:
13945         (get_info_from_assembly_name): don't leak value.
13946
13947         * icall.c:
13948         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
13949         result.
13950
13951 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
13952
13953         * assembly.c: export mono_image_load_references ().
13954         * class.c: handle function pointers. mono_class_from_name() now
13955         supports nested type names directly.
13956
13957 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
13958
13959         * reflection.h reflection.c: Encode already created dynamic methods 
13960         and fields correctly as a DEF instead of a REF.
13961
13962         * reflection.c: Get rid of the force_ref argument to 
13963         mono_image_typedef_or_ref since it was wrong in the first place.
13964
13965         * string-icalls.c: add error checking to string constructors according
13966         to the MSDN docs.
13967
13968         * reflection.c: Emit types in the order their TypeBuilders were 
13969         created. Previously, a new table index was assigned to each type before
13970         the tables were emitted. This was wrong because the signature blob
13971         might already refer to a type by its original table index.
13972
13973 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
13974
13975         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
13976         change.
13977         
13978 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13979
13980         * Makefile.am: make assemblies dir have \ instead of / on windows.
13981
13982 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
13983
13984         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
13985         iterate over the NESTEDCLASS table using a linear search since the
13986         table is not guaranteed to be sorted by the secondary key.
13987
13988         * class.c (mono_class_create_from_typedef): fixed up call to
13989         mono_metadata_nesting_typedef.
13990         
13991 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
13992
13993         * marshal.c (mono_string_to_byvalstr): clear the memory as
13994         suggested by Jerome Laban <jlaban@wanadoo.fr>
13995
13996 2003-02-26  Dick Porter  <dick@ximian.com>
13997
13998         * process.c: Cope with padding in .rsrc blocks
13999
14000 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14001
14002         * metadata.h: reverted the filter_len change, it breaks reflection
14003         
14004 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14005
14006         * metadata.h: added a new field to store the filter_len
14007         
14008
14009 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
14010
14011         * reflection.c: handle custom attributes for types and members
14012         created with Reflection.Emit (bug#38422).
14013
14014 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
14015
14016         * reflection.c: define RTSpecialName automatically for constructors for
14017         compatibility with MS.NET.
14018
14019         * reflection.c (mono_reflection_create_runtime_class): initialize
14020         nested_in field of dynamically created classes.
14021
14022 2003-02-22  Martin Baulig  <martin@ximian.com>
14023
14024         * debug-mono-symfile.h: Incremented version number.
14025
14026 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14027
14028         * object.h icall.c process.c: fix warnings.
14029
14030 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14031
14032         * appdomain.h appdomain.c:
14033         (mono_domain_try_type_resolve): split the 
14034         name_or_tb argument into a name and a tb argument.
14035         (mono_domain_has_type_resolve): new function to check whenever the
14036         application has registered a TypeResolve event handler.
14037         
14038         * icall.c reflection.h reflection.c: move the type resolve logic into
14039         mono_reflection_get_type () so it will be invoked when 
14040         Assembly::GetType () is called.
14041
14042         * reflection.c:
14043         (mono_reflection_get_type): renamed to get_type_internal.
14044         (mono_reflection_get_type): fixed type name generation so it works 
14045         for nested types too.
14046         (mono_reflection_get_type): call has_type_resolve () to avoid the 
14047         costly type name generation if there is no resolve event handler.
14048
14049 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14050
14051         * class.c, image.c: load exported types from file references.
14052
14053 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
14054
14055         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
14056           used to cache the managed methods used to create proxies and make 
14057           remote invocation of methods.
14058         * class.h: Added in MonoVTable a flag to indicate that a class needs 
14059           to be remotely created.
14060         * object.c: Modified the method mono_class_vtable(). It now initializes 
14061           the remote flag of the vtable. Modified mono_object_new_specific(), 
14062           so now it checks the remote flag.
14063         * icall.c: Added a couple of internal methods, one for enabling instance 
14064           creation interception for a type, and one for creating objects bypassing
14065           the remote check.
14066
14067 2003-02-18  Martin Baulig  <martin@ximian.com>
14068
14069         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
14070         New interncall to get a method's metadata token.
14071
14072         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
14073         New interncall for the debugger.
14074
14075 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
14076
14077         * class.c (mono_class_setup_vtable): allocate supertype array
14078
14079 2003-02-18  Martin Baulig  <martin@ximian.com>
14080
14081         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
14082
14083 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14084
14085         * reflection.c:
14086         (assembly_name_to_aname): jump over unknown properties (i've found
14087         something like: 'type, assembly, version=xxx, custom=null, public...',
14088         so now will ignore custom=null and still get the rest of the values).
14089
14090 2003-02-17  Dick Porter  <dick@ximian.com>
14091
14092         * threads.c: Have Thread.Start() wait for a semaphore to signal
14093         that the thread has set up all its local data.  This fixes bug
14094         34323, where Abort() raced the new thread's TLS data.
14095
14096         Also removes the handle_store() call from start_wrapper, because
14097         threads are now always created suspended and there is no longer a
14098         race between the parent and child threads to store the info.
14099
14100 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
14101
14102         * image.c: explain the #- heap issue in a message, hopefully
14103         avoiding FAQs on mono-list.
14104
14105 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14106
14107         * icall.c:
14108         (GetEntryAssembly): if the domain has not invoked
14109         AppDomain.ExecuteAssembly yet, return the assembly of the default
14110         AppDomain.
14111
14112 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
14113
14114         * class.c (mono_ldtoken): make it work in dynamic assemblies.
14115
14116 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
14117
14118         * metadata.c, reflection.c: simple speedup to type hash
14119         and equals code.
14120
14121 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
14122
14123         * image.c, image.h, class.c, assembly.c: move module loading
14124         to MonoImage. When loading metadata, consider alignemnet from
14125         the start of metadata, not from the metadata address in memory.
14126
14127 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
14128
14129         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
14130         AssemblyBuilder objects. Factored out custom attribute creation into
14131         a separate function.
14132         (create_custom_attr): new function to create custom attributes.
14133
14134 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
14135
14136         * Makefile.am: Got tired of typing the full pathname to pedump.
14137         Until there is another option, am installing this.
14138
14139 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
14140
14141         * class.c (class_compute_field_layout): always set field->parent 
14142         (mono_ldtoken): use mono_defaults.fieldhandle_class;
14143
14144 2003-02-11  Dick Porter  <dick@ximian.com>
14145
14146         * threads-types.h:
14147         * monitor.c: Rewrote Monitor, making lock much faster and
14148         Pulse/Wait work as specified.  Also uses much fewer handles, and only
14149         creates them as needed.
14150
14151         * exception.c: Added SynchronizationLockException
14152
14153         * threads.c: Deleted old Monitor implementation.  The new one is
14154         in a new file.
14155
14156 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
14157
14158         * class.c: handled TypedReference type code. Set the correct size for
14159         class data. Setup interface_offsets for interface classes, too.
14160
14161 2003-02-09  Martin Baulig  <martin@ximian.com>
14162
14163         * debug-mono-symfile.h: Reflect latest symbol writer changes.
14164
14165 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
14166
14167         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
14168         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
14169         * object.c: fixed mono_object_get_virtual_method () for interfaces.
14170         * verify.c: check for code that runs after the end of the method.
14171
14172 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14173
14174         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
14175         "System.Math::Round2".
14176         * sysmath.h: Added Floor, Round and Round2 definitions.
14177         * sysmath.c: Modified certain functions that were not 100% compliant
14178         with MS.NET (math precision) and added the implementation of Floor,
14179         Round and Round2.
14180
14181 2003-02-07  Martin Baulig  <martin@ximian.com>
14182
14183         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
14184
14185 2003-02-07  Martin Baulig  <martin@ximian.com>
14186
14187         * debug-mono-symfile.c: Reflected latest symwriter changes.
14188         (mono_debug_create_mono_symbol_file): Removed.
14189         (mono_debug_open_mono_symbol_file): Take an argument which
14190         specifies whether to create a dynamic symbol file.
14191
14192 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
14193
14194         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
14195
14196 2003-02-05  Martin Baulig  <martin@ximian.com>
14197
14198         * reflection.c (mono_image_build_metadata): Make this public,
14199         protect it against being called multiple times, don't create
14200         resources and don't build the compressed metadata here.
14201         (mono_image_create_pefile): Do this here.
14202
14203         * icall.c
14204         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
14205
14206 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14207
14208         * socket-io.c: fixed bug #36322.
14209
14210 2003-02-06  Piers Haken <piersh@friskit.com>
14211
14212         * appdomain.[ch]:
14213         * class.h:
14214         * debug-mono-symfile.c:
14215         * icall.c:
14216         * loader.c:
14217         * mono-config.c:
14218         * monosn.c:
14219         * reflection.c:
14220         * socket-io.c: warning cleanups
14221
14222 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
14223
14224         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
14225         function. works like remoting invoke, but does a check for the Proxy first.
14226
14227 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
14228
14229         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
14230
14231 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
14232
14233         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
14234         array of pointers.
14235         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
14236         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
14237
14238         * object.c (mono_store_remote_field_new): used by the new jit
14239         instead of mono_store_remote_field
14240         (mono_load_remote_field_new): used by the new jit
14241         instead of mono_load_remote_field
14242
14243 2003-02-05  Patrik Torstensson
14244
14245         * appdomain.c: changed unload to take the domain id instead
14246         of domain
14247         
14248         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
14249
14250
14251 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14252
14253         * appdomain.c: don't look for assemblies in ApplicationBase if
14254         PrivateBinPathProbe is set.
14255
14256 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14257
14258         * object.c: make the first argument in main_args contain the absolute
14259         path to the assembly. Fixes bug #37511.
14260
14261 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14262
14263         * icall.c: get correct UTC offset for countries not using daylight
14264         time saving. Fixes bug #30030.
14265
14266 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14267
14268         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
14269         and 1 are the family).
14270
14271 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
14272
14273         * icall.c (ves_icall_InternalExecute): removed wrong assertion
14274
14275         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
14276
14277 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
14278
14279         * reflection.c: added support for SignatureHelper tokens, which is
14280         needed by the Calli opcode.
14281
14282         * reflection.h: track changes to SignatureHelper class.
14283
14284         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
14285
14286 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14287
14288         * appdomain.c: fixed loading assemblies from PrivateBinPath.
14289
14290 2003-02-03  Patrik Torstensson
14291         * appdomain.[c|h], domain.c : 
14292          - Added support for getting a domain via domain id
14293          - Support for setting and getting domain from System.AppDomain 
14294            (used in cross appdomain channel)
14295          - Added support for get/set for a MonoAppContext on a thread 
14296            (Context class in System.Runtime.Remoting.Contexts),
14297          - Removed hack in Get/SetData and ExecuteAssembly.
14298         
14299         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
14300         the managed world to get control when a proxy is created.
14301
14302         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
14303         
14304 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
14305
14306         * icall.c
14307         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14308         Populate the codebase field as well.
14309
14310 2003-02-02  Martin Baulig  <martin@ximian.com>
14311
14312         * debug-mono-symfile.c
14313         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
14314         (mono_debug_symfile_add_method): Allow interncalls.
14315
14316 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14317
14318         * icall.c: throw parse exception if strtod fails or the string is empty.
14319
14320 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
14321
14322         * marshal.c: handle object type separately from defined
14323         class types.
14324
14325 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
14326
14327         * marshal.c: handle NATIVE_LPSTR for strings when it's
14328         explicitly specified.
14329
14330 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
14331
14332         * reflection.c, reflection.h, icall.c: setup the reflection
14333         handle cache for ModuleBuilders and AssemblyBuilders.
14334
14335 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
14336
14337         * reflection.c (reflection_methodbuilder_to_mono_method): set
14338         pinvoke flag
14339
14340 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14341
14342         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
14343
14344 2003-01-29  Dick Porter  <dick@ximian.com>
14345
14346         * threads.c: No need for the fake_thread kludge now that Thread
14347         doesn't run a class constructor
14348         
14349 2003-01-29  Dick Porter  <dick@ximian.com>
14350
14351         * threads.c: Use g_direct_hash instead of the rather bogus
14352         g_int_hash
14353
14354 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
14355
14356         * marshal.c (mono_marshal_get_native_wrapper): add check for null
14357         (fix pinvoke12.exe)
14358         (mono_marshal_get_struct_to_ptr): generate valid IL code
14359         (mono_marshal_get_ptr_to_struct): generate valid IL code
14360         (*): correctly set sig->pinvoke, we need to memdup the signature
14361         to do that
14362
14363 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14364
14365         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
14366         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
14367
14368 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
14369
14370         * profiler.c: provide more callers information.
14371
14372 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
14373
14374         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
14375
14376         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
14377
14378         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
14379
14380 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14381
14382         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
14383         exception instead of going into an infinite loop on dates which it 
14384         can't yet handle.
14385
14386         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
14387         out-of-range exception if needed.
14388
14389         * class.c (mono_class_setup_vtable): allow a virtual method to provide
14390         an implementation for an interface method and to override an inherited
14391         method at the same time. 
14392         Imagine a scenario when a virtual method is used to override a
14393         virtual abstract method in a parent class, and this same method 
14394         provides an implementation for an method inherited from an interface. 
14395         In this case, the interface resolution code will set im->slot, which 
14396         means that the virtual method override pass will skip this method 
14397         which means a pointer to the abstract method inherited from the parent
14398         will remain in the vtable of this non-abstract class.
14399
14400         * class.c: (mono_class_setup_vtable): continue search for a real 
14401         method if only an abstract method is found.     
14402
14403 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
14404
14405         * reflection.c: add size to encoding for ByValStr and ByValArray
14406         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
14407
14408 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14409
14410         * class.c (mono_class_setup_vtable): pass the override info as an
14411         argument.
14412
14413         * class.c (mono_class_setup_vtable): set the slot of overriding methods
14414         correctly.
14415         
14416         * reflection.c (ensure_runtime_vtable); add support for method 
14417         overrides.
14418         
14419 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14420
14421         * reflection.c (resolution_scope_from_image): Hack to work to work with
14422         dynamic assemblies.
14423
14424         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
14425         added a 'force_ref' argument to force this function to allways return 
14426         a TypeRef. This is needed by mono_image_get_memberref_token ().
14427         
14428 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14429
14430         * reflection.c (mono_image_get_type_info): interfaces really don't have
14431         a parent.
14432
14433         * reflection.c (mono_image_basic_init): fill out missing fields of
14434         image structure.
14435
14436         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
14437         dynamic assemblies. This is required so dynamic assemblies show up in
14438         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
14439         Type::GetType() etc. This is consistent with MS behaviour.
14440
14441         * image.c image.h reflection.c: add newly created classes to the name 
14442         cache so mono_class_get () will find them.      
14443
14444 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14445
14446         First part of changes to get IKVM.NET running under mono.
14447         
14448         * appdomain.h, appdomain.c: added new function 
14449         mono_domain_try_type_resolve() which will emit TypeResolve events. 
14450         This function will call AppDomain::DoTypeResolve to do the actual work.
14451
14452         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
14453         moved existing code dealing with dynamic tokens to a new function 
14454         called mono_reflection_lookup_dynamic_token (). This function will 
14455         raise TypeResolve events when appropriate. Since reflection.c is not 
14456         part of libmetadata, a new hook function called 
14457         mono_lookup_dynamic_token() is added to class.c which will call this.
14458
14459         * assembly.h assembly.c: make the invoke_load_hook function public,
14460         so it can be called for dynamic assemblies.
14461
14462         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
14463
14464         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
14465         type isn't found.
14466
14467         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
14468         MonoGHashTable, since it contains pointers to objects which the GC 
14469         needs to track.
14470
14471         * assembly.c (search_loaded): remove unused variable.
14472         
14473 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
14474
14475         * object.c: fixed issue exposed by gcc-generated IL programs
14476         that use RVA data for pointers.
14477
14478 2003-01-25  Martin Baulig  <martin@ximian.com>
14479
14480         * threads.c (start_wrapper): Moved the initialization of
14481         `start_func' above the mono_new_thread_init() call to which we
14482         pass it as argument.
14483
14484 2003-01-24  Martin Baulig  <martin@ximian.com>
14485
14486         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
14487         the MonoThread pointer.
14488
14489 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
14490
14491         * icall.c: Rename `PowImpl' to Pow.
14492
14493 2003-01-23  Dick Porter  <dick@ximian.com>
14494
14495         * threads.c (start_wrapper): Create a Thread object if needed, so
14496         the Main() thread can do the class initialisation in a subthread
14497         that has been set up to allow managed code execution.
14498
14499         Pass the thread ID instead of the MonoThread pointer to the thread
14500         start and attach callbacks.  This change is required, because the
14501         jit thread start callback must be called _before_ the Thread
14502         object can be created.
14503         
14504         (mono_thread_init): Removed much object creation code that is no
14505         longer needed.  No managed code is called from here now.
14506
14507         * object.c (mono_runtime_exec_managed_code): Create a subthread
14508         for Main, and call back to the runtime to use it.
14509         Set the exit code when Main exits.
14510
14511         * gc.c: Make sure domain finalisation happens in a subthread.
14512         Re-enable threaded GC, fixing bug 31333 (again).
14513
14514         * environment.c: System.Environment internall calls (so far just
14515         ExitCode is here, the others are still in icall.c)
14516
14517         * appdomain.c (mono_runtime_cleanup): All threads running managed
14518         code should have finished before mono_runtime_cleanup() is
14519         reached, so no need to clean up threads.
14520
14521 2003-01-22  Martin Baulig  <martin@ximian.com>
14522
14523         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
14524         `gpointer func' arguments.      
14525         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
14526         but added `MonoThread *thread' argument.
14527         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
14528
14529         * threads.c (mono_new_thread_init): Added `gpointer func' argument
14530         and pass it to the mono_thread_start_cb callback.
14531         (mono_install_thread_callbacks): New public function to install a
14532         set of callbacks which are set by the debugger.
14533         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
14534
14535 2003-01-22  Martin Baulig  <martin@ximian.com>
14536
14537         * Makefile.am: Install debug-mono-symfile.h.
14538
14539 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
14540
14541         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
14542
14543 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
14544
14545         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
14546         * class.c (mono_ptr_class_get): correctly set access levels of pointers
14547         (mono_array_class_get): correctly set access levels of arrays
14548
14549 2003-01-20      Patrik Torstensson
14550         * image.h (MonoAssemblyName): changed major, minor, build, revision
14551         from signed to unsigned.
14552
14553 2003-01-20  sean kasun <skasun@azstarnet.com>
14554
14555         * reflection.c (load_cattr_value): Now this handles
14556         MONO_TYPE_SZARRAY.  Fixes bug #35629
14557
14558 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
14559
14560         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
14561         integer value
14562
14563 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14564
14565         * decimal.c: fixed bug #26056.
14566
14567 2003-01-17  Martin Baulig  <martin@ximian.com>
14568
14569         * gc.c: Raise an ExecutionEngineException instead of using g_error().
14570
14571 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14572
14573         * exception.[ch]:
14574         (mono_get_exception_type_initialization): new function.
14575
14576         * object.c: throw a TypeInitializationException when an exception is
14577         thrown invoking the class constructor.
14578
14579 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14580
14581         * reflection.c: fixed attribute reading.
14582
14583 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14584
14585         * icall.c:
14586         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
14587         provided, look for the type in the calling assembly and then in
14588         mscorlib; if the assembly name is provided, only try that one.
14589
14590 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
14591
14592         * object.c: register the vtable before there is a chance it's
14593         queried again recursively.
14594
14595 2003-01-13  Duncan Mak  <duncan@ximian.com>
14596
14597         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
14598         gc-internal.h. 
14599         
14600 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
14601
14602         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
14603
14604 2003-01-11  Martin Baulig  <martin@ximian.com>
14605
14606         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
14607         this to 20 for the release.
14608
14609 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
14610
14611         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
14612
14613         * loader.c (mono_method_get_marshal_info): bug fix
14614
14615         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
14616         structures with explicit layout
14617
14618 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
14619
14620         * profiler.c: made the output more readable (and sorted). 
14621         Added caller information for the allocation profiler.
14622
14623 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
14624
14625         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
14626
14627 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14628
14629         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
14630         to get value types.
14631         
14632 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
14633
14634         * object.c, profiler.h, profiler.c, profiler-private.h:
14635         Added object allocation profiler.
14636
14637 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
14638
14639         * reflection.h, reflection.c: handle global methods.
14640         Compress blob entries.
14641
14642 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
14643
14644         * marshal.c: fix compilation.
14645
14646 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
14647
14648         * loader.c (mono_method_get_marshal_info): impl.
14649
14650         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
14651
14652 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14653
14654         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
14655         for reference types.
14656
14657 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
14658
14659         * loader.c: fixed off by one error in loaded parameter names.
14660
14661 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
14662
14663         * marshal.c (mono_marshal_get_icall_wrapper): like
14664         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
14665         instead of a MonoMethod.
14666
14667 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14668
14669         * decimal.c: fixed bug #36537.
14670
14671 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
14672
14673         * marshal.c: throw a missing method exception if a
14674         P/Invoke method is not found.
14675
14676 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
14677
14678         * icall.c: allow a null this for constructors.
14679
14680 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
14681
14682         * icall.c: raise the proper exceptions if the arguments to the
14683         internal Invoke are incorrect.
14684
14685 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
14686
14687         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
14688
14689 2003-01-03  Martin Baulig  <martin@ximian.com>
14690
14691         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
14692
14693 2002-12-31  Martin Baulig  <martin@ximian.com>
14694
14695         * debug-mono-symfile.c: Completely rewrote the type section.
14696         Instead of using individual malloc()ed fields, we use one big
14697         continuous memory area and offsets into this area.
14698         See the comments in the source code for details.
14699
14700 2002-12-30  Martin Baulig  <martin@ximian.com>
14701
14702         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
14703
14704 2002-12-30  Martin Baulig  <martin@ximian.com>
14705
14706         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
14707         line number table in this data blob instead of using an external
14708         pointer.
14709
14710 2002-12-28  Martin Baulig  <martin@ximian.com>
14711
14712         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
14713
14714 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
14715
14716         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
14717         as a boxed return type.
14718
14719 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
14720
14721         * appdomain.c
14722         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
14723         g_build_filename to properly get separators on the filename created.
14724
14725         * object.h: Small change, introduce MonoMarshalByRefObject to
14726         track the layout of that structure in the C# universe as we make
14727         changes there.
14728
14729 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
14730
14731         * object.c: removed assert to allow static fields on interfaces.
14732         * loader.c: a TypeSpec may be used for any type, not just arrays.
14733
14734 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14735
14736         * class.c, class.h: added mono_class_array_element_size ().
14737         Ignore static methods in interfaces.
14738
14739 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14740
14741         * threads.c: fixed the build under cygwin.
14742
14743 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
14744
14745         * reflection.c: handle nullref constants. Allocate keys for
14746         reflection handles with the GC.
14747
14748 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
14749
14750         * threads.c, threads.h: added mono_thread_get_abort_signal()
14751         to get a suitable signal for thread abort.
14752
14753 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
14754
14755         * metadata.c: fix handling of ExportedType table.
14756
14757 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14758
14759         * icall.c: added WriteWindowsDebugString internal call.
14760
14761 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14762
14763         * reflection.h: added fields to match C# implementation.
14764
14765 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14766
14767         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
14768
14769 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
14770
14771         * gc.h, gc-internal.h: Rename header for GC internal calls to
14772         gc-internal.h from gc.h as to not clash with Boehm GC having its
14773         header installed as <gc.h> in outside include paths.
14774         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
14775         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
14776
14777 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14778
14779         * icall.c: assign minor, build and revision in FillName.
14780
14781 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
14782
14783         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
14784         Added support for running code generated by Reflection.Emit.
14785
14786 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14787
14788         * appdomain.c: check for NULL argument in LoadFrom.
14789
14790 2002-12-10  Dick Porter  <dick@ximian.com>
14791
14792         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
14793
14794 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14795
14796         * appdomain.c: fix buglet when building exe file name.  Handle full
14797         assembly name (needed after latest changes to AssemblyName).
14798         * image.c:
14799         (mono_image_close): free some hashtables.
14800
14801 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
14802
14803         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
14804         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
14805         on some systems (redhat 7.3) 
14806
14807 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
14808
14809         * threads.c: delete the critical section of a sync block,
14810         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
14811
14812 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
14813
14814         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
14815
14816 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14817
14818         * appdomain.[ch]: handle the assembly preload event to try loading the
14819         assemblies using the paths we have in the current domain.
14820
14821         * assembly.[ch]: created an assembly preload hook that is called to try
14822         loading the assembly by other means that the ones provided here.
14823
14824         * domain.c: initialize the domain search path.
14825
14826         From now on, assemblies (TODO: except corlib and System) are loaded
14827         according to these rules when using mono_assembly_load ():
14828
14829                 1. It tries to load the assembly from the ApplicationBase
14830                 of the current domain appending .dll and .exe (TODO: have to
14831                 try loading from name/name.dll and name/name.exe).
14832
14833                 2. It tries the search path specified in PrivateBinPath for the
14834                 current domain (if any).
14835
14836                 3. Previous behavior.
14837
14838 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
14839
14840         * icall.c: implemented GetInterfaceMap() related icall.
14841         * domain.c, loader.h: load MethodInfo in mono_defaults.
14842
14843 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
14844
14845         * gc.c: disable the finalizer thread for now, untill all the issues
14846         with it are resolved.
14847
14848 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14849
14850         * string-icalls.c: handle embedded nulls in string ctor when the
14851         length is specified.
14852
14853 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
14854
14855         * class.c: look for explicit interface implementation in parent
14856         classes, too.
14857
14858 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
14859
14860         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
14861
14862 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
14863
14864         * gc.c: protect handles with a critical section.
14865
14866 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14867
14868         * icall.c:
14869         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
14870         parameters. If no assembly specified, try getting the type from all
14871         the assemblies in the current domain, else, load the assembly and get
14872         the type from it.
14873
14874 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14875
14876         * marshal.c: applied patch from Aleksey Demakov that fixes
14877         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
14878
14879 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14880
14881         * icall.c: fixed get_location.
14882
14883 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
14884
14885         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
14886         declarations to make it work with older gcc. 
14887
14888         * loader.c (mono_get_method): set signature->pinvoke for native calls
14889
14890 2002-11-20  Dick Porter  <dick@ximian.com>
14891
14892         * threads.c (mono_thread_init): Set the main thread's handle
14893
14894 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
14895
14896         * gc.c: allow compilation without GC support. Changed to match the
14897         mono coding style.
14898
14899 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14900
14901         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
14902
14903 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
14904
14905         * reflection.c: set a public key token on the core assemblies.
14906
14907 2002-11-18  Dick Porter  <dick@ximian.com>
14908
14909         * threads.c: Split out some thread initialisation so that other
14910         files can set the start callback function.
14911
14912         * gc.c: Run finalisers in a separate thread, to avoid stack
14913         overflow.  Fixes bug 31333.
14914
14915         * appdomain.c: Set up GC finalisation thread.
14916
14917         * reflection.c: 
14918         * object.c: 
14919         * domain.c: Use gc.h macros for GC_malloc
14920         
14921 2002-11-15  Dick Porter  <dick@ximian.com>
14922
14923         * threadpool.c: 
14924         * threads.c:
14925         * appdomain.c: Removed mono_runtime_init_with_attach(),
14926         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
14927         merging the extra parameter with the existing function.  Removed
14928         unneeded code in mono_thread_attach().
14929
14930 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
14931
14932         * image.c (mono_image_loaded_by_guid): a method to get loaded
14933         images by guid. 
14934         (load_metadata_ptrs): we store the guid as string.
14935
14936 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
14937
14938         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
14939
14940         * metadata.c (mono_guid_to_string): imported method form Zoltan
14941         Varga (slightly modified)
14942
14943         * assembly.c (mono_assembly_open): load precompiled code
14944
14945         * loader.h (MonoMethod): we store the method token for use in the
14946         aot compiler. 
14947
14948 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14949
14950         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
14951         the hook function called when an assembly is loaded.
14952         
14953         * domain.c: Modified file.
14954         (mono_domain_assembly_load): removed hash table insertion of assemblies.
14955
14956         Fixes bug #33196.
14957
14958 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
14959
14960         * reflection.c: Map PEFileKind to the value expected by the WinNT
14961         image loader. 
14962
14963 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14964
14965         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
14966         Read until the buffer is filled completely.
14967
14968 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14969
14970         * icall.c: implemented MonoType.InternalGetEvent ().
14971
14972 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14973
14974         * appdomain.c: implemented InitAppDomainSetup. Delayed
14975         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
14976         the entry_assembly.
14977
14978         * assembly.c: base_dir is now an absolute path ending with
14979         G_DIR_SEPARATOR.
14980
14981         * icall.c: modified get_location according to the above changes.
14982
14983         * object.c: init AppDomain.SetupInformation for the default domain after
14984         we have the entry assembly.
14985
14986         * domain.c: when unloading a domain, setup = NULL.
14987
14988 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
14989
14990         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
14991
14992 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
14993
14994         * object.h, object.c: introduced mono_object_get_virtual_method ()
14995         to lookup the method invoked on an object when a callvirt is done on
14996         a method.
14997         * icall.c: make MethodInfo::Invoke() always do a virtual call.
14998
14999 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15000
15001         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
15002         current domain when loaded an assembly and failed to load it.
15003
15004         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
15005
15006 2002-10-31  Dick Porter  <dick@ximian.com>
15007
15008         * icall.c: 
15009         * file-io.h: 
15010         * file-io.c: Return the error status in a parameter, as the
15011         GetLastError() value has long since been blown away if we try and
15012         look it up in a subsequent internal call invocation.  Delete the
15013         GetLastError() internal call, because it's useless.
15014
15015 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
15016
15017         * class.[ch]: added cast_class to fix bug 29517
15018
15019 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
15020
15021         * marshal.c: create valid IL code in the filter clause:
15022         the new JIT is less forgiving:-)
15023
15024 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15025
15026         * icall.c: removed get_property internal call.
15027
15028 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
15029
15030         * appdomain.h domain.c: Added an ID to appdomains.
15031         
15032         * threads.c threads.h icall.c: Implement icall
15033         Thread:GetDomainID(), and remove unused icall 
15034         CurrentThreadDomain_internal.
15035
15036 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15037
15038         * icall.c: Don't recurse through the base types in GetConstructor.
15039         Fixes bug #32063. 
15040
15041 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
15042
15043         * mempool.h, mempool.c: added mono_mempool_empty() and
15044         mono_mempool_stats().
15045
15046 2002-10-23  Dick Porter  <dick@ximian.com>
15047
15048         * file-io.c: 
15049         * file-io.h: 
15050         * icall.c: Added MonoIO.GetFileType internal call
15051
15052 2002-10-17  Dick Porter  <dick@ximian.com>
15053
15054         * appdomain.c (mono_runtime_cleanup): Don't signal the async
15055         delegate semaphore before waiting for all threads to finish,
15056         because new threads can also call async delegates.  Fixes bug
15057         32004.
15058
15059         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
15060         of 3 seconds, in case another async job is queued.  (This part is
15061         needed because the bug fix reintroduced the 3s exit lag.)  This
15062         makes the mono_runtime_shutdown flag superfluous.
15063
15064 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
15065
15066         * reflection.c: include ehader size in method section headers.
15067         Really check for suplicated modules entries.
15068
15069 2002-10-17  Martin Baulig  <martin@gnome.org>
15070
15071         * debug-mono-symfile.c: Added back support for locals.
15072
15073 2002-10-14  Martin Baulig  <martin@gnome.org>
15074
15075         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
15076         MONO_TYPE_VOID.
15077
15078 2002-10-14  Martin Baulig  <martin@gnome.org>
15079
15080         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
15081         mono_class_get() instead of looking in the class cache. 
15082
15083 2002-10-13  Martin Baulig  <martin@gnome.org>
15084
15085         * debug-mono-symfile.c: Set version number to 28, include the
15086         signature in method names.
15087
15088 2002-10-13  Martin Baulig  <martin@gnome.org>
15089
15090         * debug-mono-symfile.h: Set version number to 27.
15091
15092 2002-10-11  Martin Baulig  <martin@gnome.org>
15093
15094         * gc.c: Don't register/unregister NULL pointers as disappearing links.
15095
15096 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
15097
15098         * metadata.c, metadata.h: added helper function to allocate signatures.
15099
15100 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15101
15102         * icall.c: added internal call to get the location of machine.config.
15103
15104 2002-10-08  Martin Baulig  <martin@gnome.org>
15105
15106         * debug-mono-symfile.c: Ignore classes with a pending init for the
15107         moment.
15108
15109 2002-10-03  Dick Porter  <dick@ximian.com>
15110
15111         * threads.c: Freebsd pthread_t is a pointer
15112
15113 2002-10-03  Dick Porter  <dick@ximian.com>
15114
15115         * socket-io.c: Implemented GetHostName_internal
15116
15117 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15118
15119         * mono-config.c:
15120         (mono_config_parse_file): don't leak the text.
15121
15122 2002-10-02  Martin Baulig  <martin@gnome.org>
15123
15124         * debug-mono-symfile.c: Added support for methods.
15125
15126 2002-10-01  Martin Baulig  <martin@gnome.org>
15127
15128         * debug-mono-symfile.c: Don't emit methods and line numbers for
15129         the dynamic symbol file, just write the type table.  We can easily
15130         have an external helper program which creates a symbol file for an
15131         IL file.        
15132
15133 2002-10-01  Dick Porter  <dick@ximian.com>
15134
15135         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
15136         Only add the handle to the cleanup array when we're about to
15137         launch the thread.  Bug 31425 deadlocked when the test was run on
15138         mono under w32.
15139
15140 2002-10-01  Martin Baulig  <martin@gnome.org>
15141
15142         * debug-mono-symfile.c: Added support for properties.
15143
15144 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
15145
15146         * reflection.c: unaligned store fix from Mark Crichton
15147         <crichton@gimp.org>.
15148
15149 2002-09-27  Martin Baulig  <martin@gnome.org>
15150
15151         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
15152         New interncall.
15153
15154 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
15155
15156         * assembly.h, assembly.c: use a sane API to hook into the assembly
15157         loading process instead of a useless special-purpouse hack
15158         (ngen needs a hook, too, for example).
15159
15160 2002-09-27  Dick Porter  <dick@ximian.com>
15161
15162         * threads.c (mono_thread_init): Call GetCurrentProcess() so
15163         io-layer can set up some process handle info.  Not needed on w32,
15164         but doesn't hurt either.
15165
15166         * process.c: Pass the program name in the second parameter to
15167         CreateProcess, so the path is searched.  Include the working
15168         directory. Implemented process name, process enumeration, and some
15169         process detail internal calls.
15170         
15171         * icall.c: Added internal calls for process lookup, and some
15172         process details
15173
15174 2002-09-26  Martin Baulig  <martin@gnome.org>
15175
15176         * assembly.c (mono_install_open_assembly_hook): New global
15177         function to install a function to be invoked each time a new
15178         assembly is loaded.
15179         (mono_assembly_open): Run this callback function if set.
15180
15181         * debug-mono-symfile.c: Put back line numbers for the dynamic
15182         symbol file and also record the .il file as source file.  This
15183         allows us to install the temporary symbol file as `file.dbg' just
15184         like a compiler-generated one.
15185
15186 2002-09-26  Nick Zigarovich <nick@chemlab.org>
15187
15188         * Corrected typo in gc.c (BOHEM vs BOEHM).
15189
15190 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15191
15192         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
15193         GetProperties. Also avoid calling g_slist_length in GetProperties and
15194         GetMethods.
15195
15196 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
15197
15198         * reflection.c: avoid unaligned stores (bug spotted by
15199         Mark Crichton  <crichton@gimp.org>).
15200
15201 2002-09-25  Martin Baulig  <martin@gnome.org>
15202
15203         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
15204         instead of guint64 for addresses and added prologue/epilogue info.
15205
15206 2002-09-25  Martin Baulig  <martin@gnome.org>
15207
15208         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
15209         store line number info.  For the dynamic symbol file, we only need
15210         to provide the JIT generated dynamic line number info for the dynamic
15211         symbol file.
15212
15213 2002-09-25  Martin Baulig  <martin@gnome.org>
15214
15215         * debug-mono-symfile.h: Incremented version number.
15216
15217 2002-09-24  Martin Baulig  <martin@gnome.org>
15218
15219         * class.c (mono_debugger_class_init_func): New global function
15220         pointer variable.
15221         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
15222         call it.
15223
15224         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
15225         function.  This is called via the mono_debugger_class_init_func
15226         hook to add all types to the dynamic type table.
15227         (ves_icall_MonoDebugger_GetType): New interncall to get a class
15228         from its metadata token.
15229
15230         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
15231         New interncall for the debugger.
15232
15233 2002-09-24  Nick Drochak <ndrochak@gol.com>
15234
15235         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
15236         before using it in case it is null.
15237         
15238 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
15239
15240         * metadata.c: allow custom modifiers in local var signatures
15241         (bug spotted by Zoltan Varga).
15242
15243 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
15244
15245         * class.c: deal with the <Module> class that may have a NULL vtable.
15246         Eliminate warnings.
15247
15248 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15249
15250         * image.c, image.h: more strong name helpers.
15251         * monosn.c: more work: convert pem keys to cryptoapi format.
15252
15253 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
15254
15255         * string-icalls.c: speedup IndexOf.
15256
15257 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15258
15259         * icall.c: updates from Zoltan.2.Varga@nokia.com.
15260
15261 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
15262
15263         * icall.c: cleanup: use mono_object_domain ().
15264
15265 2002-09-23  Martin Baulig  <martin@gnome.org>
15266
15267         * debug-mono-symfile.c: Improved type support.
15268
15269 2002-09-22  Martin Baulig  <martin@gnome.org>
15270
15271         * debug-mono-symfile.c: Added support for reference types and strings.
15272
15273 2002-09-22  Martin Baulig  <martin@gnome.org>
15274
15275         * debug-mono-symfile.c: Started to work on the type table.
15276
15277 2002-09-21  Martin Baulig  <martin@gnome.org>
15278
15279         * debug-mono-symfile.c: Largely reworked the symbol table format.
15280         The symbol table is now incrementally updated each time a new
15281         method is added.  We're now also using our own magic and version
15282         so that you don't need to recompile all your classes if the
15283         dynamic table changes.
15284         (mono_debug_update_mono_symbol_file): Removed.
15285         (mono_debug_symfile_add_method): New function to add a method.
15286
15287 2002-09-21  Martin Baulig  <martin@gnome.org>
15288
15289         * icall.c
15290         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
15291         New interncall.
15292
15293         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
15294         New interncall to get a method from its metadata token.
15295
15296 2002-09-21  Martin Baulig  <martin@gnome.org>
15297
15298         * debug-mono-symfile.c: Create type table.
15299
15300 2002-09-20  Martin Baulig  <martin@gnome.org>
15301
15302         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
15303
15304 2002-09-20  Martin Baulig  <martin@gnome.org>
15305
15306         * debug-mono-symfile.c: Provide information about params and locals.
15307
15308 2002-09-20  Martin Baulig  <martin@gnome.org>
15309
15310         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
15311         New interncall.
15312
15313         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
15314         interncall to get a method from its metadata token.
15315
15316 2002-09-20  Martin Baulig  <martin@gnome.org>
15317
15318         * debug-mono-symfile.c: Added a few checks for method->header
15319         being non-NULL.  This should never happen, but for the moment
15320         let's use a g_warning() rather than a g_assert().
15321
15322 2002-09-19  Mark Crichton  <crichton@gimp.org>
15323
15324         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
15325         even if support for it isn't present.  Added an #ifdef to fix this.
15326
15327         * socket-io.c: Added checks back for Solaris support.
15328
15329 2002-09-19  Martin Baulig  <martin@gnome.org>
15330
15331         * debug-mono-symfile.c (read_string, write_string): Reflect latest
15332         changes in the symbol file format.
15333
15334 2002-09-18  Martin Baulig  <martin@gnome.org>
15335
15336         * debug-mono-symfile.c: Set version number to 21.
15337
15338 2002-09-18  Dick Porter  <dick@ximian.com>
15339
15340         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
15341         on netbsd.  Fixes bug 30051.
15342
15343 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15344
15345         * reflection.c:
15346         (set_version_from_string): little fix.
15347
15348 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15349
15350         * monosn.c, Makefile.am: added strong name utility.
15351         * reflection.h, reflection.c: implemented delayed signing,
15352         locale, version and hash id assembly attributes.
15353
15354 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
15355
15356         * loader.c, metadata.c: load param attributes in signatures.
15357
15358 2002-09-16  Martin Baulig  <martin@gnome.org>
15359
15360         * debug-mono-symfile.c: Added string table with all method names.
15361
15362 2002-09-14  Martin Baulig  <martin@gnome.org>
15363
15364         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
15365         fast method lookup.
15366
15367 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
15368
15369         * reflection.c: record the public key token of referenced assemblies.
15370
15371 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
15372
15373         * image.c, image.h: added functions to get the strong name and the
15374         public key of an assembly.
15375         * pedump.c: use them.
15376
15377 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
15378
15379         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
15380
15381 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
15382
15383         * marshal.c (mono_marshal_get_managed_wrapper): Added
15384         MONO_TYPE_BOOLEAN 
15385
15386 2002-09-11  Martin Baulig  <martin@gnome.org>
15387
15388         * gc.c: Call GC_unregister_disappearing_link() on all links when
15389         finalizing them, this is necessary to aviod a crash in boehm's
15390         finalize handler.
15391
15392 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
15393
15394         * gc.c: handle GetTarget for finalized objects spotted and fixed by
15395         nick@chemlab.org.
15396
15397 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
15398
15399         * icall.c: implemented MonoType::Module.
15400         * reflection.c, reflection.h: mono_module_get_object () from
15401         Tomi Pakarinen <tomi.pakarinen@welho.com>.
15402
15403 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
15404
15405         * icall.c: ignore overridden methods in GetMethods ().
15406         Fix for FieldInfo::SetValue().
15407         * object.c: handle float/double in runtime invoke.
15408
15409 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
15410
15411         * object.c: allow a constructor to be called again on an object.
15412
15413 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15414
15415         * class.h, class.c: move field layout code to it's own function and
15416         export it. Get an interface id earlier. Move fields in MonoClass
15417         so they are more cache friendly and align the bitfields.
15418         * loader.c: temporary handle get_param_names() for a runtime method.
15419         * reflection.c, reflection.h: more code to handle runtime creation of
15420         types.
15421
15422 2002-09-09  Martin Baulig  <martin@gnome.org>
15423
15424         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
15425         signature with the pinvoke field being set for the actual call.
15426
15427 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
15428
15429         * icall.c: removed some unused icalls. Start of map of glib charsets
15430         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
15431
15432 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
15433
15434         * debug-helpers.c: break infinite loop (found and fixed by
15435         Holger Arnold <harnold@gmx.de>).
15436
15437 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
15438
15439         * icall.c: target may be null in create_delegate.
15440
15441 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15442
15443         * marshal.c: handle a boolean return type.
15444
15445 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15446
15447         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
15448
15449 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
15450
15451         * gc.c: fix weakreferences.
15452
15453 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
15454
15455         * icall.c: added icall to get default codepage.
15456
15457 2002-09-03  Dick Porter  <dick@ximian.com>
15458
15459         * threads.h: 
15460         * threads.c: Use MonoThread instead of MonoObject where
15461         apropriate.
15462
15463         Store running thread objects in a hash table, so that we have all
15464         the info to hand when waiting for them to finish
15465         (means we don't need OpenThread() any more, so mingw builds should
15466         be fully functional again.)
15467
15468         * verify.c:
15469         * object.h: Added thread ID to MonoThread
15470
15471 2002-09-03  Martin Baulig  <martin@gnome.org>
15472
15473         * icall.c (System.Reflection.Assembly::get_location): New interncall.
15474
15475 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15476
15477         * icall.c: fixed leak in get_temp_path. Thanks lupus.
15478
15479 2002-09-03  Martin Baulig  <martin@gnome.org>
15480
15481         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
15482         argument to store the end address of the disassembled instruction.
15483
15484         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
15485         here from debug-symfile.h.
15486         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
15487         JIT into this struct.
15488         (MonoSymbolFile): Added `char *image_file' field.
15489         (MonoDebugGetMethodFunc): Removed.
15490         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
15491         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
15492         (mono_debug_find_method): New method.
15493
15494         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
15495         create a full symbol file.
15496         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
15497         and static symbol files.
15498         (mono_debug_find_method): The symbol file keeps an internal method hash,
15499         call this to get a MonoDebugMethodInfo from a MonoMethod.
15500
15501         * debug-symfile.[ch]: Removed.
15502
15503 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
15504
15505         * image.c (do_mono_image_open): Remove linker version check.
15506
15507 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
15508
15509         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
15510         wrappers for instance methods.
15511         
15512 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15513
15514         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
15515
15516 2002-08-28  Dick Porter  <dick@ximian.com>
15517
15518         * Makefile.am: Export HOST_CC for w32 builds
15519
15520 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
15521
15522         * file-io.c process.c: MonoString are null terminated, no
15523         need for mono_string_to_utf16() anymore.
15524
15525 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
15526
15527         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
15528
15529 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
15530
15531         * icall.c, reflection.h: speedup System.MonoType.
15532
15533 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
15534
15535         * reflection.c: allow null as the value of a string argument in
15536         custom attributes constructors.
15537
15538 2002-08-27  Martin Baulig  <martin@gnome.org>
15539
15540         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
15541         `trampoline_address' field.
15542
15543 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
15544
15545         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
15546         check (fixes bug #29486) 
15547
15548 2002-08-27  Martin Baulig  <martin@gnome.org>
15549
15550         * debug-mono-symfile.c: Changed the file format in a way that allows us
15551         open it read-only and to use a specially malloced area for all the
15552         dynamic data.  We can now also generate a symbol file on-the-fly if we're
15553         debugging IL code and there is no MCS generated symbol file for it.
15554
15555 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
15556
15557         * object.c: added a define for a good string and array
15558         creation speedup (not enabled by default because we need to deal with
15559         the synch stuff).
15560
15561 2002-08-26  Martin Baulig  <martin@gnome.org>
15562
15563         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
15564         function to create a dynamic symbol file.  This is used by the
15565         debugger to create a symbol file for IL code on-the-fly.
15566
15567 2002-08-26  Martin Baulig  <martin@gnome.org>
15568
15569         * loader.c (mono_lookup_pinvoke_call): Include the error message
15570         from g_module_error() in the error message.
15571
15572 2002-08-24  Martin Baulig  <martin@gnome.org>
15573
15574         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
15575         function to update the symbol file.  The symbol file is mmap()ed
15576         writable, but private.  This allows us to install the symbol file
15577         together with the assembly.
15578
15579 2002-08-24  Martin Baulig  <martin@gnome.org>
15580
15581         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
15582         but they can read the new symbol file format which mcs is now creating.
15583
15584         * debug-symfile.c (mono_debug_find_source_location): Moved to
15585         debug-mono-symfile.c; this is now operating on the new symbol file.
15586
15587 2002-08-23  Martin Baulig  <martin@gnome.org>
15588
15589         * debug-helpers.c (mono_method_desc_from_method): New function to get
15590         a MonoMethodDesc from a MonoMethod.
15591
15592 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
15593
15594         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
15595         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
15596
15597 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
15598
15599         * string-icalls.[ch]: make helper methods static.
15600
15601 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15602
15603         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
15604         types to it and to SetValueInternal.
15605
15606         * object.c: Moved handle_enum label to its proper place. This was the
15607         f... bug! ;-)
15608
15609         This time i compiled mcs and gtk-sharp and they both work.
15610
15611 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15612
15613         * icall.c: reverted partially my previous patch until 
15614         object.c:set_value handles enums correcly.
15615
15616 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15617
15618         * icall.c:
15619         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
15620         (ves_icall_System_Environment_get_MachineName): removed warning when
15621         compiling under cygwin.
15622
15623 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
15624
15625         * object.c: fixed field_get_value() for reference types.
15626
15627 2002-08-22  Dick Porter  <dick@ximian.com>
15628
15629         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
15630         Don't free a buffer while it's still needed.  Patch from Jonathan
15631         Liger <Jonathan.liger@wanadoo.fr>
15632
15633 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
15634
15635         * icall.c (ves_icall_System_Environment_get_Platform): Add new
15636         internal call.
15637
15638 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
15639
15640         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
15641         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
15642
15643         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
15644         we call unmanaged code which throws exceptions.
15645
15646 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
15647
15648         * appdomain.h: added per-domain entry_assembly.
15649         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
15650         arguments.
15651         * icall.c: Assembly::GetEntryAssembly icall.
15652         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
15653         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
15654
15655 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
15656
15657         * appdomain.h, gc.c: added mono_domain_finalize ().
15658
15659 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15660
15661         * object.c:
15662         (mono_print_unhandled_exception): changed g_warning by g_printerr
15663         because g_log has a 1024 characters limit (yeah, i got a big stack
15664         trace). Don't print exception name, that should be in ToString 
15665         returned string.
15666
15667 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15668
15669         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
15670         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
15671
15672 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15673
15674         * object.c:
15675         (mono_print_unhandled_exception): after previous commit, i realized
15676         that MS calls ToString on the exception. I changed this function to
15677         do that. This way we get stack_trace for free.
15678
15679 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15680
15681         * object.c:
15682         (mono_print_unhandled_exception): invoke Message property instead of
15683         getting 'message' field from Exception. Don't allocate memory for
15684         'trace' and 'message' if not needed.
15685
15686 2002-08-18  Dick Porter  <dick@ximian.com>
15687
15688         * unicode.c: Fix asserts to match Encoder.cs checks
15689
15690 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
15691
15692         * marshal.c: fix unaligned store issue and a few wrong
15693         opcode argument types.
15694
15695 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15696
15697         * icall.c: added GetUninitializedObjectInternal internal call.
15698
15699 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
15700
15701         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
15702         to the right domain.
15703
15704 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
15705
15706         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
15707
15708         * class.c (class_compute_field_layout): set blittable to false for Strings
15709
15710         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
15711
15712 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
15713
15714         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
15715         first chunk of code to create types at runtime. Code to
15716         handle ReflectedType/DeclaringType. Make reflection handles
15717         domain specific.
15718
15719 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
15720
15721         * class.c: set correct name in arrays.
15722
15723 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
15724
15725         * appdomain.c (mono_domain_transfer_object): make it work with
15726         valuetypes. bug fixes.
15727
15728 2002-08-12  Dick Porter  <dick@ximian.com>
15729
15730         * object.h: Rename some parameters to avoid c++ keywords (Patch
15731         from Joseph Wenninger <kde@jowenn.at>)
15732
15733 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
15734
15735         * icall.c: added icall to implement Assembly.GetFile*.
15736
15737 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
15738
15739         * reflection.h, reflection.c: code to embed managed resources.
15740
15741 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
15742
15743         * class.c: move all the type size stuff into
15744         class_compute_field_layout().
15745
15746 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
15747
15748         * class.c: ensure enums have always the correct instance size.
15749         * unicode.c: remove wrong assert.
15750
15751 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
15752
15753         * assembly.c: fix mem corruption issue.
15754         * image.h, image.c: added mono_image_get_resource () to access
15755         managed resources.
15756         * icall.c: implemented Assembly.EntryPoint property and some
15757         Managed Resources related internalcalls.
15758
15759
15760 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
15761
15762         * image.c, image.h: impemented mono_image_get_entry_point ().
15763         * appdomain.c: use mono_image_get_entry_point.
15764
15765 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
15766
15767         * reflection.c: support the object type argument when loading
15768         custom attributes.
15769
15770 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
15771
15772         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
15773         String as return type.
15774
15775 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
15776
15777         * reflection.c: fix encoding of named args for custom attrs to match
15778         the ms implementation. Read them back when instantiating custom
15779         attributes.
15780
15781 2002-08-02  Radek Doulik  <rodo@ximian.com>
15782
15783         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
15784         by Dietmar as quick fix
15785         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
15786         16 as stack size, used on more places as quick fix before Dietmar
15787         will fix it properly
15788
15789 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
15790
15791         * object.h, object.c: added accessors for fields and properties.
15792
15793 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
15794
15795         * class.c, class.h: made mono_class_get_field_from_name ()
15796         loop on parent types.
15797         Added mono_class_get_property_from_name ().
15798
15799 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
15800
15801         * class.c, class.h: move the code to setup the type vtable in its own
15802         function so that it can be reused also for types created at runtime.
15803         Eliminate the "class" identifier from the header file.
15804         * reflection.c: setup the vtable for enums so that we can create
15805         objects for use in SetConstant ().
15806
15807 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
15808
15809         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
15810         instead of the delegate itself as this pointer (bug #28383)
15811
15812 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
15813
15814         * marshal.c (mono_marshal_get_managed_wrapper): added return type
15815         conversions.
15816
15817 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
15818
15819         * loader.c: don't set the pinvoke bit on icalls.
15820
15821 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
15822
15823         * debug-helpers.c (mono_method_full_name): only print a number to
15824         indicate wrapper type (so that the output is more readable in traces).
15825
15826 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
15827
15828         * class.c (mono_class_init): include method override patch from Paolo
15829
15830 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
15831
15832         * icall.c: fixed GetTypeCode().
15833
15834 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
15835
15836         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
15837         use real delegate invoke function to make it work with multicast
15838         delegates (fix bug# 28291).
15839
15840 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
15841
15842         * object.c: load constant strings.
15843
15844 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
15845
15846         * reflection.c: no magic numbers.
15847         * tabledefs.h: security action enum.
15848
15849 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
15850
15851         * assembly.c: fix possible memory corruption.
15852
15853 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
15854
15855         * reflection.h, reflection.c: added support for linking resources.
15856         * verify.c: check we have an updated corlib.
15857
15858 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
15859
15860         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
15861         string arrays.
15862         (mono_marshal_string_array): null terminate unmanaged string arrays.
15863         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
15864
15865 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
15866
15867         * icall.c: Type.GetType () can now return also types from the
15868         calling assembly.
15869
15870 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
15871
15872         * loader.h, loader.c: stack walking support.
15873         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
15874         GetCallingAssembly.
15875
15876 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
15877
15878         * marshal.c: added optimisations for blittable types 
15879
15880         * class.c (mono_array_class_get): do not set blittable attribute on arrays
15881         (mono_class_setup_mono_type): set blittable attribute for single
15882         and double.
15883
15884         * marshal.c (mono_string_utf8_to_builder): impl.
15885         (mono_string_builder_to_utf8): impl.
15886         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
15887
15888 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
15889
15890         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
15891         (mono_marshal_get_managed_wrapper): impl. byref types
15892
15893 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15894
15895         * icall.c:
15896         (search_method): don't display debug message. 
15897
15898 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
15899
15900         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
15901
15902 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
15903
15904         * appdomain.c: set the missing filename when throwing exception.
15905
15906 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
15907
15908         * metadata.c (mono_type_size): code cleanup
15909         (mono_type_stack_size): removed some test code
15910
15911 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
15912
15913         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
15914         mono_get_exception_file_not_found now.
15915
15916         * exception.c (mono_exception_from_name_two_strings): New version
15917         that will call a constructor with two string arguments. 
15918         (mono_get_exception_file_not_found): New helper routine, used to
15919         report file-not-found errors.
15920
15921 2002-07-20  Dick Porter  <dick@ximian.com>
15922
15923         * process.h:
15924         * process.c: Pass file handles to CreateProcess
15925         
15926         * icall.c:
15927         * file-io.h:
15928         * file-io.c: Implemented CreatePipe
15929
15930 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
15931
15932         * metadata.c (mono_get_param_info): set alignment for value types
15933
15934 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
15935
15936         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
15937         Constify mono_domain_assembly_open().
15938         * loader.c: handle null namespace in icalls.
15939
15940 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
15941
15942         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
15943         (emit_str_to_ptr_conv): marshal object as structs
15944
15945         * metadata.c (mono_type_to_unmanaged): marshal object as structs
15946
15947         * marshal.c (mono_marshal_get_runtime_invoke): support value types
15948
15949 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
15950
15951         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
15952         (mono_marshal_get_native_wrapper): we an now return value types
15953
15954 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
15955
15956         * verify.c: more checks implemented.
15957
15958 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
15959
15960         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
15961         (fix bug #27695)
15962         (mono_marshal_get_native_wrapper): allow byref arguments
15963         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
15964         impl. PtrToStringXXX methods
15965         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
15966         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
15967         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
15968         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
15969         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
15970
15971 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
15972
15973         * reflection.c: fix buglet in parsing an assembly name.
15974
15975 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
15976
15977         * marshal.c (emit_ptr_to_str_conv): first impl.
15978
15979 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
15980
15981         * object.c, class.h: cache the vtable in the class as suggested by
15982         vargaz@freemail.hu (Zoltan Varga).
15983
15984 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
15985
15986         * class.h, loader.c: added mono_field_from_token().
15987         * verify.c: first cut of type checking code.
15988
15989 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
15990
15991         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
15992
15993 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
15994
15995         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
15996         (fix bug #27782)
15997         (mono_marshal_get_remoting_invoke): impl.
15998         (mono_delegate_begin_invoke): impl.
15999         (mono_mb_emit_save_args): impl.
16000         (mono_delegate_end_invoke): impl.
16001         (mono_marshal_get_delegate_begin_invoke):
16002         (mono_marshal_get_delegate_end_invoke):
16003         (mono_marshal_get_delegate_invoke): generate a special name for
16004         those methods (including the signature) and associate them whith
16005         the delegate class. 
16006
16007 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
16008
16009         * reflection.[ch]: 
16010         (mono_reflection_type_from_name): now it has a MonoImage parameter
16011         which is used as the default image to search the type in. If the image
16012         is NULL or getting the type from it fails, it defaults to corlib.
16013
16014         * icall.c: changed 1 call to mono_reflection_type_from_name to match
16015         new parameter.
16016
16017 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16018
16019         * reflection.c: update the parameter table index.
16020
16021 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16022
16023         * domain.c: don't include the mark byte in the string hash.
16024
16025 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16026
16027         * icall.cs: icall for Type.GetTypeCode ().
16028         * verify: a couple of fixes and disabled local initialization checks.
16029
16030 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
16031
16032         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
16033
16034         * debug-helpers.c (mono_method_full_name): print the type of the
16035         runtime wrapper
16036
16037         * metadata.c (mono_signature_hash): a hash function for signatures
16038         (mono_signature_hash): better hash algorithm
16039
16040         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
16041
16042         * debug-helpers.c (mono_method_full_name): this can now generate
16043         method names with signatures
16044
16045         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
16046         method dont have this pointers.
16047
16048 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
16049
16050         * reflection.c: fixup typebuilder tokens.
16051         * image.c: fix buglet.
16052         * marshal.h: remove whitespace.
16053         * metadata.h, metadata.c: reinstate code that was removed.
16054         * verify.c: handle catch directives and fix another couple of bugs.
16055
16056 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
16057
16058         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
16059         (mono_marshal_get_native_wrapper): make it comp. with the old code
16060         (mono_marshal_get_native_wrapper): support boolean
16061         (mono_marshal_get_managed_wrapper): support more types
16062
16063 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
16064
16065         * class.c (class_compute_field_layout): compute class->blittable attribute.
16066
16067 2002-07-09  Dick Porter  <dick@ximian.com>
16068
16069         * threads.c: Make the thread cleaning up cope with threads that
16070         call ExitThread()
16071
16072 2002-07-08  Radek Doulik  <rodo@ximian.com>
16073
16074         * reflection.c (method_encode_code): use non-translated values to
16075         compute finally_start, this fixes exception handling on ppc, yay!
16076
16077         * decimal.h (struct signscale): fix endianess
16078
16079 2002-07-07  Radek Doulik  <rodo@ximian.com>
16080
16081         * reflection.c: swap box_val and not val
16082
16083 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
16084
16085         * reflection.c, reflection.h: handle full assembly info in type name.
16086         Handle Type arguments when loading custom attributes.
16087         * icall.c: updated to use new mono_reflection_type_from_name () method.
16088
16089 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16090
16091         * loader.c:
16092         (method_from_memberref): also print assembly name when method not found.
16093
16094 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16095
16096         * icall.c:
16097         (ves_icall_TypeGetProperties): fixed bug #27473. 
16098
16099 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16100
16101         * reflection.c: display image name and token when cannot find the
16102         .ctor for an attribute.
16103
16104 2002-07-05  Martin Baulig  <martin@gnome.org>
16105
16106         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16107
16108 2002-07-04  Dick Porter  <dick@ximian.com>
16109
16110         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
16111         compile on mingw.  This will cause mingw builds to not wait for
16112         subthreads to terminate after the main thread does.  I've lodged a
16113         bug with the mingw developers for them to wrap OpenThread().
16114
16115 2002-07-03  Dick Porter  <dick@ximian.com>
16116
16117         * threads.c: Store thread IDs instead of handles, because
16118         GetCurrentThread() returns a pseudohandle and therefore stores
16119         useless values.  mono_thread_cleanup() continues checking the
16120         array of threads until it is empty, to cope with subthreads
16121         spawning new threads after the main thread has finished.
16122
16123         * profiler.h:
16124         * profiler.c:
16125         * profiler-private.h: Pass the thread ID to thread profiler
16126         functions, instead of a handle
16127
16128 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16129
16130         * verify.c: fixes to make it more usable.
16131         * pedump.c: added --verify code to verify IL code in an assembly.
16132
16133 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16134
16135         * reflection.c: turn errors into warnings to allow compiling corlib.
16136
16137 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
16138
16139         * reflection.c: add special cases to compile corlib.
16140
16141 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16142
16143         * reflection.c: handle properties with only a set method.
16144
16145 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16146
16147         * opcodes.h: add enum with opcodes in opval order.
16148
16149 2002-07-01  Dick Porter  <dick@ximian.com>
16150         
16151         * object.h:
16152         * object.c (mono_runtime_run_main): Removed unneeded argument
16153
16154 2002-06-28  Martin Baulig  <martin@gnome.org>
16155
16156         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16157
16158 2002-06-27  Dick Porter  <dick@ximian.com>
16159
16160         * threads.c: Store the handle in both the parent thread and in the
16161         subthread, to minimise the time between starting a new thread and
16162         storing its ID.
16163
16164 2002-06-26  Dick Porter  <dick@ximian.com>
16165
16166         * appdomain.c (mono_runtime_cleanup): Close the socket library
16167         after all the threads have finished, not before
16168
16169 2002-06-26  Martin Baulig  <martin@gnome.org>
16170
16171         * debug-symfile.c (mono_debug_find_source_location): Added
16172         `guint32 *line_number' argument.  If it's not NULL, store the line number
16173         there and return the file name without the line number.
16174
16175 2002-06-25  Dick Porter  <dick@ximian.com>
16176
16177         * icall.c:
16178         * process.h:
16179         * process.c: Process forking and other support functions
16180
16181 2002-06-25  Dick Porter  <dick@ximian.com>
16182
16183         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
16184         things dont happen when the image is closed.
16185         (mono_image_lookup_resource): Walk the resource section looking
16186         for a particular entry
16187
16188         * cil-coff.h: PE resource section decoding
16189
16190 2002-06-25  Dick Porter  <dick@ximian.com>
16191         
16192         * assembly.h:
16193         * assembly.c: 
16194         (mono_assembly_foreach): Accessor functions to walk the list of
16195         loaded assemblies
16196         (mono_assembly_set_main):
16197         (mono_assembly_get_main): Process methods need to know which
16198         assembly is the "main" one
16199
16200         * object.c (mono_runtime_run_main): Record the main assembly
16201
16202         * debug-helpers.c: Fix typo
16203
16204 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
16205
16206         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
16207         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
16208
16209 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16210
16211         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
16212
16213 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
16214
16215         * image.c (do_mono_image_open): Initialize reference count,
16216         otherwise we leak the MonoImage.
16217
16218 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16219
16220         * reflection.c: small tweak to handle self-hosting.
16221
16222 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16223
16224         * reflection.c: fix type name parse code.
16225
16226 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16227
16228         * reflection.c: break out of the loop.
16229         * image.c: special case corlib.
16230
16231 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16232
16233         * reflection.c: add all the custom attrs at the end to ensure the
16234         ctors have been properly initialized when the attributes are defined
16235         in the current assembly.
16236
16237 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16238
16239         * reflection.c: handle correctly multiple-nested types.
16240
16241 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16242
16243         * row-indexes.h: fix typos.
16244         * reflection.c: adjust for typos and fix method_def_or_ref
16245         encoding in MethodImpl table.
16246
16247 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16248
16249         * reflection.c: fix entry point patching (thanks Serge!).
16250
16251 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
16252
16253         * verify.c: add check for System.Exception
16254
16255 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16256
16257         * image.c, class.c: minifix for code just c&p'ed.
16258         * reflection.c: warning fix.
16259         * object.h, loader.h, domain.c: load also StringBuilder.
16260
16261 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16262
16263         * marshal.h, marshal.c: some support code to handle complex marshaling.
16264
16265 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16266
16267         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
16268         Better signatures with vtable error dump.
16269
16270 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
16271
16272         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
16273
16274 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
16275
16276         * icall.c (ves_icall_Type_GetField): impl.
16277
16278 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16279
16280         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
16281         to retrieve a marshal description blob for a field or param.
16282
16283 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16284
16285         * reflection.h, reflection.c: change order of nested type emission
16286         to avoid table corruption. The NestedTypes table is sorted.
16287         * icall.c: change order of GetConstructor results to workaround mcs bug.
16288
16289 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16290
16291         * reflection.h, reflection.c: handle field and param marshal
16292         information.
16293
16294 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16295
16296         * icall.c, marshal.c marshal.h: more Marshal class implementation.
16297
16298 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16299
16300         * reflection.c: fix call convention.
16301
16302 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16303
16304         * reflection.h, reflection.c: mono_image_get_memberref_token()
16305         takes a type instead of a class, now. Added
16306         mono_image_get_array_token() to create tokens for the special
16307         multi-dim array methods.
16308
16309 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16310
16311         * assembly.c: handle modules (no assembly table). Split
16312         loading references in its own function.
16313         * class.c: handle moduleref resolution scope.
16314         * image.c, image.h: cache module name in image.
16315
16316 2002-06-07  Martin Baulig  <martin@gnome.org>
16317
16318         * reflection.c (mono_image_get_type_info): Only add a class layout entry
16319         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
16320
16321 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16322
16323         * icall.c: more signature fixes that used uint instead of int.
16324
16325 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16326
16327         * reflection.c: fixed signature of field refs.
16328
16329 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16330
16331         * class.c, reflection.c: handle typerefs of nested types
16332         (both on read and when writing files).
16333
16334 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
16335
16336         * icall.c: fix method signatures that tried to workaround the previous
16337         typo, d'oh!
16338
16339 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16340
16341         * debug-helpers.c: fix typo.
16342
16343 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
16344
16345         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
16346         rewrote the PE/COFF writing code (our programs are understood by the
16347         ms runtime, now).
16348
16349 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16350
16351         * gc.c, gc.h, icall.c: weakreference support.
16352
16353 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16354
16355         * Makefile.am, mono-config.c: use $(sysconfdir).
16356
16357 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16358
16359         * icall.c: changed default precision of Double.ToString() to 15.
16360         Fixed memory leak. Unified with Single.ToString.
16361
16362 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
16363
16364         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
16365
16366 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
16367
16368         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
16369         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
16370         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
16371         and myself.
16372
16373 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16374
16375         * debug-symfile.c, sysmath.c: yet more compilation fixes.
16376
16377 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16378
16379         * reflection.c, socket-io.c: more compilation fixes.
16380
16381 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16382
16383         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
16384         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
16385         unicode.c: warning and compiler compatibility fixes.
16386
16387 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
16388
16389         * class.h, metadata.c: fixed warnings/compilation errors.
16390
16391 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16392
16393         * Makefile.am, mono-config.c, mono-config.h: configuration file
16394         support routines.
16395         * loader.c, loader.h: make Dll mapping configurable at runtime in the
16396         config file. Export methods to insert and lookup mappings.
16397
16398 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16399
16400         * reflection.c: handle types and boxed objects in custom attr
16401         constructors.
16402
16403 2002-05-30  Martin Baulig  <martin@gnome.org>
16404
16405         * debug-symfile.c
16406         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
16407
16408 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
16409
16410         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
16411         to lookup the implmap row for a P/Invoke method.
16412         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
16413         P/Invoke method from the runtime on an as needed basis.
16414
16415 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
16416
16417         * metadata.c (mono_metadata_parse_signature): impl.
16418
16419 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16420
16421         * class.c: handle .pack directive.
16422
16423 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16424
16425         * object.c: initialize static fields with RVA data.
16426
16427 2002-05-25  Martin Baulig  <martin@gnome.org>
16428
16429         * debug-symfile.c
16430         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
16431
16432 2002-05-24  Martin Baulig  <martin@gnome.org>
16433
16434         * debug-symfile.c
16435         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
16436         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
16437         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
16438
16439 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
16440
16441         * object.c: special case string ctros in invoke.
16442         * gc.c: silly whitespace changes.
16443
16444 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
16445
16446         * threadpool.[ch]: impl. a threadpool that can
16447         be used by mint and mono.
16448
16449 2002-05-22  Martin Baulig  <martin@gnome.org>
16450
16451         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
16452         The first argument is now a `MonoReflectionModuleBuilder *', the return
16453         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
16454         `methods' field to get the method builder.  The `token' argument is the
16455         unfixed token.
16456
16457         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
16458         invalid characters instead of g_assert_not_reached()ing.  This seems
16459         to be the behaviour of mscorlib.
16460
16461 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
16462
16463         * object.c (mono_runtime_invoke_array): applied patch from Rachel
16464         Hestilow to fix bug #25104
16465
16466 2002-05-21  Martin Baulig  <martin@gnome.org>
16467
16468         * debug-symfile.c (mono_debug_find_source_location): New function.
16469         Looks up an IL offset in the line number table and returns the source
16470         location as a string.
16471
16472 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16473
16474         * icall.c:
16475         (mono_double_ToStringImpl): changed %f by %g until we have something
16476         better.
16477
16478 2002-05-21  Nick Drochak  <ndrochak@gol.com>
16479
16480         * icall.c : Use different name for Math.Pow's icall.  Needed to check
16481         parameters first in C#.
16482
16483 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16484
16485         * icall.c, reflection.h: added icall to get info about an event.
16486
16487 2002-05-20  Radek Doulik  <rodo@ximian.com>
16488
16489         * object.c (mono_value_box): don't use memcpy for boxing on BIG
16490         endian
16491         (mono_value_box): don't use memcpy for small sizes on
16492         architectures with unaligned access
16493
16494 2002-05-20  Martin Baulig  <martin@gnome.org>
16495
16496         * reflection.c (mono_reflection_setup_internal_class): Don't crash
16497         if `tb->parent == NULL'.
16498         (mono_reflection_create_internal_class): New function.  This is
16499         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
16500         for enum types.
16501
16502         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
16503         New interncall.
16504
16505 2002-05-19  Martin Baulig  <martin@gnome.org>
16506
16507         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
16508         argument to get the length, don't default to the array length.
16509
16510 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
16511
16512         * assembly.c (mono_assembly_setrootdir): New function used to
16513         override the MONO_ASSEMBLIES directory.
16514
16515 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
16516
16517         * icall.c: ValueType_GetHashCode() initialize local var.
16518
16519 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16520
16521         * reflection.c: sort custom attributes table.
16522
16523 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
16524
16525         * reflection.c: support named args in custom attributes (write support).
16526
16527 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
16528
16529         * reflection.c: fix finally position calculation.
16530
16531 2002-05-15  Radek Doulik  <rodo@ximian.com>
16532
16533         * reflection.c: fixed endianess at many places
16534
16535         * icall.c (ves_icall_InitializeArray): comment out debug msg
16536
16537 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
16538
16539         * object.c (mono_unhandled_exception): new function to handle
16540         unhandled exceptions.
16541         (mono_unhandled_exception): call the UnhandledException event.
16542         (mono_runtime_delegate_invoke): impl.
16543
16544 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
16545
16546         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
16547         returns the RVA, not the direct pointer to the data. Handle the case
16548         when the class size is fixed.
16549
16550 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16551
16552         * reflection.c: fix some endianess issues.
16553
16554 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
16555
16556         * object.c (mono_runtime_invoke): is now able to catch exceptions.
16557
16558         * threads.c (mono_thread_init): added a callback which is invoked
16559         at thread start.
16560
16561 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
16562         
16563         * icall.c: make GetHashCode return non-negative values.
16564
16565 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
16566
16567         * object.c, icall.c, gc.c: revert to address-based hashcode.
16568
16569 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
16570
16571         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
16572
16573 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16574
16575         * icall.c, class.c: special case <Module>.
16576
16577 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
16578
16579         * icall.c: fix bug in GetNow().
16580
16581 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
16582
16583         * object.c (mono_runtime_class_init): make sure that we call all
16584         static class constructors.
16585
16586 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16587
16588         * reflection.c: sort methodsemantics table.
16589
16590 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16591
16592         * reflection.h, reflection.c: honour init locals setting.
16593
16594 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
16595
16596         * icall.c: copied Double ToStringImpl for Single ToStringImpl
16597
16598 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
16599
16600         * reflection.c: support ContructorBuilders in attribute blob creation.
16601
16602 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16603
16604         * reflection.c: some changes to build a binary that can be run
16605         directly in windows.
16606
16607 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
16608
16609         * loader.c: print a big message when an icall can't be found.
16610
16611 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16612
16613         * string-icalls.c: fix bug 24248.
16614
16615 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
16616
16617         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
16618         icall.c, reflection.h: separate assembly loading by pathname and by
16619         assembly name. Use the MONO_PATH env var to search for assemblies.
16620
16621 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16622
16623         * assembly.c, image.h: add some support for assemblies
16624         with multiple modules.
16625         * class.c, class.h: export mono_class_from_typeref().
16626         * loader.c: remove duplicated code and use mono_class_from_typeref(),
16627         instead.
16628
16629 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16630
16631         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
16632         documentation says (the ECMA one is correct).
16633
16634 2002-05-02  Dick Porter  <dick@ximian.com>
16635
16636         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
16637         Don't name the synchronisation mutex.
16638
16639 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
16640
16641         * rand.c
16642         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
16643         Make the prototypes match.
16644         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
16645         Same.
16646
16647         * icall.c
16648         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
16649         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
16650         all systems have tm.tm_zone, so use strftime() with %Z to print
16651         the timezone abreviation into a temp string.
16652
16653         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
16654         rather than mono_array_addr() on a MonoString on Big Endian
16655         machines.
16656
16657 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
16658
16659         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
16660         fix bug 24041
16661
16662 2002-04-30  Dick Porter  <dick@ximian.com>
16663
16664         * socket-io.c: Cope with SOCKET being an integer rather than a
16665         pointer now.
16666
16667         * threads.c: Added Thread_free_internal, to deal with thread
16668         handle cleanup.  Moved calls to handle_store() and handle_remove()
16669         to start_wrapper(), so each can only be called once.  Allocate
16670         synchronisation blocks with GC_malloc(), and use GC finalisation
16671         to close the handles.
16672
16673         * icall.c: added System.Threading.Thread::Thread_free_internal
16674
16675 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16676
16677         * icall.c: support Environment.Exit, CommandLineArgs().
16678
16679 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16680
16681         * object.c, object.h: added mono_runtime_run_main () and
16682         mono_runtime_get_main_args () for use in System.Environment.
16683
16684 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16685
16686         * gc.c: fix thinko, enable actual finalization since the jit is now
16687         fixed.
16688
16689 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16690
16691         * gc.c, object.c: take into account that an object may be offset wrt the address
16692         returned by GC_malloc().
16693
16694 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
16695
16696         * image.c: handle files without entries in the assembly table (modules).
16697
16698 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
16699
16700         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
16701         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
16702         allowed to be null when it's System.Object class setup.
16703
16704 2002-04-27  Martin Baulig  <martin@gnome.org>
16705
16706         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
16707         if `tb->parent == NULL' rather than crashing.
16708
16709 2002-04-28  Nick Drochak  <ndrochak@gol.com>
16710
16711         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
16712         calling acos() where asin() should have been called.
16713
16714 2002-04-26  Martin Baulig  <martin@gnome.org>
16715
16716         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
16717         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
16718         there's a subdirectory called `System', but we don't want to read that
16719         subdirectory as an assembly.
16720
16721 2002-04-25  Martin Baulig  <martin@gnome.org>
16722
16723         * debug-symfile.c: Reflect latest MonoString changes.
16724
16725 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
16726
16727         * rand.c, rand.h: instance method icalls need to have an explicit
16728         this pointer as first argument in the C implementation.
16729
16730 2002-04-25  Nick Drochak <ndrochak@gol.com>
16731
16732         * icall.c: Fix typo in map for GetNonZeroBytes
16733
16734 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
16735
16736         * string-icalls.c : String does now passes unit tests without any 
16737         errors, the following changes has been made:
16738         
16739         Implemented replace methods.
16740         Renaming of methods to (try) follow the standard.
16741         Fixed compare ordinal
16742         Made all memory allocated directly to function instead of via icall function.
16743         Small performance fix in is_in_array function
16744                         
16745  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
16746
16747         c (mono_string_Internal_ctor_charp_int_int):
16748         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
16749         sindex < 0, throw ArgumentOutOfRangeException instead of
16750         ArgumentNullException.
16751
16752         Added new check for length == 0, however
16753         I need to make it return String.Empty from the C code.
16754         
16755         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
16756         that calculate the length for us here.
16757         
16758         (mono_string_Internal_ctor_sbytep_int_int): Replaced
16759         mono_string_new_utf16 with mono_string_new, since value is utf8.
16760
16761 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16762
16763         * object.c: register the object for finalization if needed.
16764         Allocate one more char in the string for the terminating 0 char.
16765
16766 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16767
16768         * class.c, class.h, image.c: check if a type implemenst a destructor.
16769         Use the proper key for array class lookups.
16770         * icall.c: register the icalls in the System.GC class.
16771         * gc.c, gc.h: GC-related functions and icalls.
16772
16773 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16774
16775         * icall.c:
16776         * socket-io.c:
16777         * unicode.c: free some strings gotten from mono_string_to_utf8 and
16778         changed a couple of free () by g_free ().
16779
16780         * decimal.c: one-liner in the comments for decimal2string ().
16781
16782 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
16783
16784         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
16785
16786 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
16787
16788         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
16789         * object.c (mono_runtime_invoke_array) : handle null in params
16790
16791 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
16792
16793         * string-icalls.c: fixed bug in split (one off bug)
16794
16795 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
16796
16797         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
16798         * icalls.c: added String::Equals as internal method
16799
16800 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
16801
16802         * threads.c: fixed bug in the double interlocked functions
16803
16804 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
16805
16806         * threads.c: implemented all of the new interlocked icalls.
16807         * string-icalls.c: fix a bug in insert.
16808         * icalls.c: added the icalls for interlocked, removed old string functions.
16809         
16810 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
16811
16812         * loader.c: fix off-by-one error when reading argument names.
16813
16814 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16815
16816         * profiler.c: win32 counter implementation (untested).
16817         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
16818         (the latter needs testing and more complete impl. from win32 folks).
16819
16820 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
16821
16822         * object.c: mono_array_new_full workaround mono_array_class_get
16823         problem.
16824
16825 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
16826
16827         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
16828         * object.h (mono_string_chars): Changed casting type.
16829
16830 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
16831
16832         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
16833                            method signatures to use gunichar2 instead of gint16.
16834
16835 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
16836
16837         * object.h, object.c: domain-specific versions of mono_object_new and
16838         mono_array_new.
16839
16840 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
16841
16842         * object.c: changed String layout
16843
16844         * string-icalls.c (mono_string_Internal_ctor_chara): added
16845         internal string constructors.
16846
16847 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
16848
16849         * threads.c: pass 'this' to the thread start routine.
16850
16851 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16852
16853         * string-icalls.c: fix IndexOf and LastIndexOf. Now
16854         InternalCompareStr don't call twice mono_string_cmp_char for the last
16855         character. Improved performance in mono_string_cmp_char.
16856
16857 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
16858
16859         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
16860         code into its own library: libmonoruntime.
16861
16862 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
16863
16864         * object.h, object.c: changed array format so that szarrays do not
16865         require a bounds structure.
16866         * icall.c, appdomain.c: support for new szarray format.
16867
16868 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
16869
16870         * metadata.c: compare also the retuns type when comparing signatures:
16871         we didn't do this as an optimization since really overloaded methods
16872         must differ also in the arguments, but this doesn't work with
16873         low-level IL code (or when using explicit conversion operators: see
16874         bug#23498 for an example).
16875
16876 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16877
16878         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
16879
16880 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
16881
16882         * icall.c: make MonoType::GetElementType its own icall.
16883
16884 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16885
16886         * icall.c: remove MonoMethod_get_Name().
16887         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
16888         object.
16889
16890 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
16891
16892         * string-icalls.c: optimized a few methods.
16893
16894 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
16895
16896         * icall.c: added all new string internal calls
16897         * string-icalls.c: added, new string internal call implementation.
16898         * object.c: added mono_string_new_size for allocating a string a size
16899
16900 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
16901
16902         * object.c (mono_object_isinst): use the same code as in the
16903         optimized x86 version.
16904
16905 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16906
16907         * profiler.c: TSC-based timer code (faster and more accurate).
16908         Not hooked up in configure, yet (set USE_X86TSC to 1).
16909
16910 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
16911
16912         * profiler.c, profiler.h: track time spent compiling methods.
16913         * threads.c: track thread creation/destruction.
16914
16915 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
16916
16917         * profiler.c, profiler.h, profiler-private.h: profiling interface
16918         and sample implementation. Moved here so that it can be used also by
16919         the jit.
16920
16921 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
16922
16923         * reflection.c, reflection.h: keep types and other handles separate in
16924         the hash tables for referred tokens. Add guid for modules.
16925
16926 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16927
16928         * assembly.c: fix bugs found with valgrind.
16929         * metadata.h, metadata.c: added mono_metadata_guid_heap().
16930
16931 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
16932
16933         * threads: added icall support for getting current domain for
16934                    the thread.
16935  
16936 2002-04-13  Martin Baulig  <martin@gnome.org>
16937
16938         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
16939         (MonoDebugVarInfo): Added `index' field for register based addresses.
16940         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
16941         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
16942         `MonoDebugVarInfo *params' and `guint32 this_offset' with
16943         `MonoDebugVarInfo *this_var'.
16944
16945         * debug-symfile.c (relocate_variable): New static function to write
16946         a location description for a local variable or method parameter.
16947
16948 2002-04-12  Martin Baulig  <martin@gnome.org>
16949
16950         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
16951         stack offset and begin/end scope address of a local variable.
16952         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
16953         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
16954         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
16955
16956         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
16957         Added new relocation types for start/end scope of a local variable.
16958
16959 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16960
16961         * object.h: add mono_object_domain() macro.
16962         * reflection.c: handle typespecs.
16963         * icall.c: MonoMethod::get_Name() implementation.
16964
16965 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16966
16967         * icall.c: String::GetHashCode() icall implementation.
16968
16969 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16970
16971         * icall.c: String::IndexOfAny icall.
16972         * object.c, object.h: make array->max_length more useful.
16973         Intrduced mono_object_class() and mono_string_length() macros.
16974
16975 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16976
16977         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
16978         instead of g_unichar_isdigit.
16979
16980 2002-04-11  Nick Drochak  <ndrochak@gol.com>
16981
16982         * icall.c: Implement a simple Double.ToString().
16983
16984 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
16985
16986         * appdomain.h: only io-layer.h is supposed to be included.
16987         * icall.c: explicitly import environ. Fix warning.
16988
16989 2002-04-10  Nick Drochak  <ndrochak@gol.com>
16990
16991         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
16992                 return true even if it's not Daylight Savings time.
16993                 Only return false for the case where the function isn't
16994                 implemented for a plaform (read Windows).
16995
16996 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16997
16998         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
16999         data with a mutex.
17000
17001 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
17002
17003         * mempool.c (mono_mempool_alloc): only use g_malloc when
17004         absolutely necessary.
17005
17006 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17007
17008         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
17009
17010         * class.c (mono_class_vtable): use domain mempool to allocate vtable
17011         (mono_class_proxy_vtable): use domain mempool
17012
17013 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17014
17015         * appdomain.h, appdomain.c: split initialization that requires the
17016         execution engine support into mono_runtime_init().
17017
17018 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17019
17020         * class.c (mono_class_init): don't include vtable inside MonoClass
17021         to save some memory, gather some statistics.
17022         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
17023
17024 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17025
17026         * icall.c: internalcall implementation for ValueType.Equals().
17027
17028 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
17029
17030         * object.c (mono_message_init): moved 
17031         (mono_runtime_exec_main): new arch. independent impl.
17032         (mono_runtime_invoke_array): new method - like
17033         mono_runtime_invoke, but you can pass an array of objects.
17034         (mono_remoting_invoke): new arch. independent impl.
17035         (mono_message_invoke): new arch. independent impl.
17036         (mono_runtime_class_init): new arch. independent impl.
17037         (mono_runtime_object_init): new arch. independent impl.
17038
17039 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17040
17041         * metadata.c, object.c, reflection.c: documented the exported
17042         functions.
17043
17044 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17045
17046         * icall.c: simpler code to pass the assembly builder data to corlib.
17047         Implement GetNestedTypes() internalcall.
17048
17049 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17050
17051         * class.c: warn if a type can't be loaded.
17052
17053 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
17054
17055         * image.h: typedef MonoImageOpenStatus
17056         * types.h: removed unused file
17057         
17058 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
17059
17060         * icall.c: Enum_ToObject accepts enum value arguments.
17061
17062 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17063
17064         * class.c: move initialization of properties, events and nested
17065         classes, so that they happen for interfaces, too.
17066
17067 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17068
17069         * icall.c: cleanup some ugly casts in Array_SetValue*.
17070
17071 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17072
17073         * icall.c: the values array fro enums is of the correct type, now.
17074         Implement (correctly) getFullName instead of assQualifiedName for
17075         MonoType.
17076         * reflection.h, reflection.c: added mono_type_get_name ().
17077
17078 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17079
17080         * assembly.c, image.h: for each MonoImage, record from wich assembly
17081         it was loaded.
17082         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
17083         Make Type.Assembly work.
17084
17085 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
17086
17087         * debug-symfile.h: use char* instead of gpointer to avoid
17088         unnecessary casts.
17089
17090         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
17091
17092         * icall.c (ves_icall_InternalExecute): impl. FielSetter
17093         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
17094
17095 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
17096
17097         * icall.c (mono_message_init): impl. (code cleanup)
17098         (ves_icall_InternalExecute): impl. FieldGetter
17099
17100         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
17101         defined we call all (non-static)methods through the vtable. 
17102
17103 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
17104
17105         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
17106         finalizer even though the memory is still referenced (and the chunk of
17107         memory is not freed).
17108
17109 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
17110
17111         * assembly.c: fix brokeness.
17112
17113 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
17114
17115         * class.c: kill some warnings. Check explicit interface method
17116         implementation also without considering the namespace.
17117         Load also literal strings in static class data.
17118
17119 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
17120
17121         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
17122         (default_assembly_name_resolver): Make the resolver take the
17123         "base" directory where the assembly was originally defined, so we
17124         can load DLLs that are in the same directory as the assembly that
17125         is being referenced.
17126
17127 2002-03-28  Dick Porter  <dick@ximian.com>
17128
17129         * file-io.h: 
17130         * file-io.c:
17131         * socket-io.c: 
17132         * unicode.h: 
17133         * unicode.c: Warning cleanups
17134
17135 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
17136
17137         * object.h, reflection.h: use the correct type instead of MonoObject.
17138
17139 2002-03-28  Martin Baulig  <martin@gnome.org>
17140
17141         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
17142         (mono_debug_update_symbol_file): Initialize classes if necessary.
17143
17144 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17145
17146         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
17147         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
17148
17149 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
17150
17151         * assembly.h: fix function prototype.
17152         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
17153         * mono-endian.h: use const cast.
17154
17155 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17156
17157         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
17158
17159 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
17160
17161         * loader.c: don't assert when a typeref can't be loaded, give
17162         a chance to the runtime to trow an exception instead.
17163         * loader.h: fix warning.
17164
17165 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17166
17167         * class.c (mono_class_proxy_vtable): added proxy support
17168
17169 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
17170
17171         * icall.c: removed last of PAL calls, added System.Environment
17172         * file-io.h, file-io.c: MonoIO implementation
17173         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
17174
17175 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
17176
17177         * appdomain.c: do not use the byte marker in ldstr table lookup.
17178         * debug-helpers.c: allow two ':' to separate class and method name.
17179         * object.c: allocate arrays bounds with the GC, too.
17180         * verify: add a few more checks.
17181
17182 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
17183
17184         * reflection.c: output also literal strings. Allocate parameter data
17185         with GC_malloc() (thanks, Martin, for catching this!).
17186
17187 2002-03-26  Martin Baulig  <martin@gnome.org>
17188
17189         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
17190         include the `this' offset in the `param_offsets'.
17191
17192 2002-03-25  Martin Baulig  <martin@gnome.org>
17193
17194         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
17195         mono_debug_get_class() function to get the classes. Added new
17196         relocation types for arrays and strings.
17197         (mono_debug_get_class): New static function to search in all
17198         referenced assemblies for a metadata token.
17199
17200         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
17201
17202 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17203
17204         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
17205         hold gc-allocated objects. Make the string heap a stream like the
17206         others. Removed duplicated code when writing stream info.
17207         Added asserts to catch possible buffer overflows. Set the sorted map
17208         for tables that need sorting. Added some documentation.
17209
17210 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
17211
17212         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
17213         for interned strings and vtables.
17214
17215 2002-03-24  Martin Baulig  <martin@gnome.org>
17216
17217         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
17218         it in the array since it was created with g_slist_prepend().
17219
17220 2002-03-24  Martin Baulig  <martin@gnome.org>
17221
17222         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
17223         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
17224         (mono_debug_method_from_token): Renamed to
17225         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
17226         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
17227
17228         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
17229         relocation types.
17230
17231         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
17232
17233 2002-03-24  Martin Baulig  <martin@gnome.org>
17234
17235         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
17236         (mono_debug_method_from_token): New func.
17237
17238         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
17239         New interncall, calls mono_debug_local_type_from_signature().
17240         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
17241         calls mono_debug_method_from_token().
17242
17243 2002-03-23  Martin Baulig  <martin@gnome.org>
17244
17245         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
17246         specifies the number of bytes to be converted, not the array size.
17247         Return the number of chars, not the number of bytes.
17248         (ves_icall_iconv_get_chars): The `byteCount' argument
17249         specifies the number of bytes to be converted, not the array size.
17250
17251 2002-03-23  Martin Baulig  <martin@gnome.org>
17252
17253         * reflection.h (MonoReflectionSigHelper): New type.
17254
17255         * reflection.c (mono_reflection_sighelper_get_signature_local),
17256         (mono_reflection_sighelper_get_signature_local): New functions.
17257
17258         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
17259         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
17260         interncalls.
17261
17262 2002-03-23  Martin Baulig  <martin@gnome.org>
17263
17264         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
17265         is_writeable is set.
17266         (mono_raw_buffer_update): New function to write the modified map
17267         back to disk.
17268
17269         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
17270
17271         * debug-symfile.c (mono_debug_update_symbol_file): Call
17272         mono_raw_buffer_update() when done writing.
17273
17274 2002-03-23  Martin Baulig  <martin@gnome.org>
17275
17276         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
17277
17278         * debug-symfile.c: Added support for arguments and local variables.
17279
17280 2002-03-23  Dick Porter  <dick@ximian.com>
17281
17282         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
17283         protected by ifdefs, hence breaking the w32 build.
17284
17285 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17286
17287         * object.c: implement is_interned() the right way.
17288
17289 2002-03-21  Martin Baulig  <martin@gnome.org>
17290
17291         * debug-symfile.[ch]: New files to handle debugging information
17292         files. There's also support to dynamically update these symbol
17293         files to include machine dependent information.
17294
17295 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
17296
17297         * threads.c (mono_thread_create): new function to create thread
17298         from C
17299
17300 2002-03-20  Martin Baulig  <martin@gnome.org>
17301
17302         * icall.c (ves_icall_InternalInvoke): Create a new object if the
17303         method is a constructor.
17304         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
17305         points to ves_icall_InternalInvoke().
17306
17307 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
17308
17309         * file-io.c: Flush shouldn't throw exceptions.
17310
17311 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
17312
17313         * file-io.c: FileStream flush support; FileSetLength now
17314         restores file pointer.
17315
17316 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
17317
17318         * class.c: set image for pointer classes.
17319
17320 2002/03/19  Nick Drochak <ndrochak@gol.com>
17321
17322         * sysmath.c: Forgot one.
17323
17324 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
17325
17326         * sysmath.c: Avoid redefining existing names.
17327
17328 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
17329
17330         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
17331         handled by runtime as icall rather than dllimport from libm.so
17332         * file-io.c, file-io.h: fixed handle argument type.
17333
17334 2002-03-18  Dick Porter  <dick@ximian.com>
17335
17336         * reflection.c (mono_image_get_type_info): rename interface to
17337         iface, because of "#define interface struct" on windows.
17338
17339 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
17340
17341         * class.c, class.h: rename and export mono_ptr_class_get().
17342         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
17343         * reflection.c, reflection.h, icall.c: better/saner type name
17344         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
17345         method signatures.
17346
17347 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
17348
17349         * class.c (mono_class_init): removed hardcoded GHC_SLOT
17350
17351         * icall.c (ves_icall_InternalInvoke): impl.
17352
17353 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
17354
17355         * reflection.c: output the interface map table, too.
17356
17357 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
17358
17359         * class.c (class_compute_field_layout): separate computation of 
17360         static field layout
17361
17362 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
17363
17364         * icall.c: added System.Buffer support.
17365         * file-io.c: moved file icalls from PAL to FileStream.
17366
17367 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
17368
17369         * icall.c (ves_icall_System_Object_GetHashCode): impl.
17370
17371 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
17372
17373         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
17374
17375 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
17376
17377         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
17378
17379 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
17380
17381         * debug-helpers.{c,h}: moved here from monograph some useful functions
17382         to locate a method by name/signature in a class or image. Included
17383         also a small and flexible IL disassembler.
17384
17385 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
17386
17387         * reflection.c: fixup tokens in methods with small header size, too.
17388
17389 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
17390
17391         * object.c (mono_string_to_utf8): remove assert(!error), instead
17392         print a warning. 
17393
17394 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
17395
17396         * icall.c: update to the new mono_Array_class_get interface.
17397
17398 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
17399
17400         * appdomain.c, object.c: Boehm-GC enable.
17401         * icall.c: make get_data_chunk() support split data requests.
17402         Ensure a class is initialized in more cases. Return only the first
17403         property found in GetProperties() or the compiler gets confused. 
17404         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
17405         * reflection.h, reflection.c: add fixup mechanism for field and method
17406         tokens. Initialize assembly->typeref in a single place. Output
17407         properties after events. Support custom attributes for events, too.
17408         Typo fix for paramter custom attrs.
17409
17410 2002-03-07  Martin Baulig  <martin@gnome.org>
17411
17412         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
17413
17414 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
17415
17416         * class.c (mono_array_class_get): fix. for multi. dim. arrays
17417
17418 2002-03-06  Martin Baulig  <martin@gnome.org>
17419
17420         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
17421         non-zero lower bounds. See testcases #F10-#F13.
17422
17423 2002-03-05  Martin Baulig  <martin@gnome.org>
17424
17425         * exception.c (mono_get_exception_argument_out_of_range): New exception.
17426
17427         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
17428         ves_icall_System_Array_GetValue(), only calculate the absolute array position
17429         here.
17430         (ves_icall_System_Array_SetValue): Likewise.
17431         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
17432         as argument and does the actual work. This function is used when copying a
17433         multi-dimensional array.
17434         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
17435         now do all the widening conversions of value types.
17436         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
17437
17438 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17439
17440         * class.c: remove some magic numbers and use the smbolic names,
17441         instead. Added init_events() to load event info at class init time.
17442         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
17443         and mono_metadata_methods_from_event().
17444         * reflection.h, reflection.c: added support for writing out the evnets
17445         related information.
17446
17447 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17448
17449         * reflection.h, icall.c: use a different method (GetInterfaces)
17450         to gather interface info and add isbyref, isprimitive and
17451         ispointer to the ves_icall_get_type_info() return value.
17452
17453 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
17454
17455         * class.h: stared adding support for events.
17456         * icall.c: split find_members implementation. Added debug icall to get
17457         the address of an object.
17458         * reflection.c: handle TypeBuilders in mono_type_get_object().
17459
17460 2002-03-01  Martin Baulig  <martin@gnome.org>
17461
17462         * icall.c (ves_icall_System_Array_GetLength): This must throw an
17463         ArgumentOutOfRangeException(), not an ArgumentException().
17464         (ves_icall_System_Array_GetLowerBound): Likewise.
17465         (ves_icall_System_Array_GetValue): Improved argument checking.
17466         (ves_icall_System_Array_SetValue): Improved argument checking.
17467
17468 2002-03-01  Martin Baulig  <martin@gnome.org>
17469
17470         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
17471         called with invalid arguments rather than just dying with g_assert().
17472         (ves_icall_System_Array_SetValue): Likewise.
17473         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
17474         raise a NotImplementedException instead.
17475         (ves_icall_System_Array_GetLength): Added argument checking.
17476         (ves_icall_System_Array_GetLowerBound): Added argument checking.
17477
17478 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
17479
17480         * object.h (mono_assert): new macros mono_assert and
17481         mono_assert_not_reached
17482
17483 2002-02-28  Martin Baulig  <martin@gnome.org>
17484
17485         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
17486         and "System::String::IsInterned" to "System::String::_IsInterned".
17487
17488 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
17489
17490         * icall.c: remove hacks for typebuilder. Added icall to create a
17491         modified type from a tybebuilder.
17492         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
17493         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
17494         to create a backing MonoClass for a TypeBuilder.
17495
17496 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
17497
17498         * class.c, class.h: more refactoring of class init.
17499         Export mono_class_setup_mono_type() and mono_class_setup_parent().
17500
17501 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
17502
17503         * marshal.c, marshal.h: start of marshaling interface.
17504
17505 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
17506
17507         * icall.c: fix order in assembly qualified name icall.
17508
17509 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
17510
17511         * class.c: do not free str, since we store it in the hash table.
17512         * reflection.h: add label field to MonoILExceptionInfo.
17513         * reflection.c: handle references to more than one assembly. Handle
17514         case when there isn't a module created in the assembly.
17515
17516 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
17517
17518         * class.c: Fix typo. Start refactoring of class init code.
17519
17520 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
17521
17522         * appdomain.c: exit with 1 on error.
17523         * class.c: we already have the name in MonoClassField.
17524         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
17525         MonoStreamHeader instead of an offset of image->raw_metadata.
17526
17527 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
17528
17529         * appdomain.c (mono_init): Be even more descriptive about the error.
17530
17531 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
17532
17533         * appdomain.c: give the user an informative message when corlib can't
17534         be loaded.
17535
17536 2002-02-26  Martin Baulig  <martin@gnome.org>
17537
17538         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
17539         New icall to get the time zone data.
17540
17541 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
17542
17543         * reflection.c: set virtual and raw size of section correctly.
17544         * threads.c: transfer domain information to newly created threads.
17545
17546 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
17547
17548         * class.c: when instancing a class in a domain, load the default
17549         vaules for static fields from the constant table. Fix System.Enum to
17550         not be an enum.
17551         * icall.c: implement Object::GetType() internalcall. Implemented
17552         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
17553         Fixed checking of binding flags in find_members().
17554         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
17555         * reflection.c: handle enumerations when writing to the constant
17556         table. Use a different object cache for types.
17557
17558
17559 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
17560
17561         * object.c (mono_object_isinst): fix for arrays
17562
17563         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
17564
17565 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
17566
17567         * object.c: don't use mprotect ()  and fix intern pool hash table
17568         lookup for big endian systems.
17569
17570 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
17571
17572         * icall.c: change type_is_subtype_of () signature.
17573
17574 2002-02-21  Mark Crichton  <crichton@gimp.org>
17575
17576         * rand.c, rand.h: Added random number generator for
17577         System.Security.Cryptography classes.
17578
17579         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
17580
17581         * icall.c: Added System.Security.Cryptography calls.
17582
17583 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
17584
17585         * class.c, icall.c, metadata.c: better support for pointer types.
17586         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
17587         * reflection.c: Add support for getting custom attrs for properties
17588         and simplify some code.
17589
17590 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
17591
17592         * icall.c: change getToken () and add custom attribute GetBlob()helper
17593         method.
17594         * reflection.h: add custom attrs array to the reflection builder structures.
17595         * reflection.c: encode and emit custom attributes for all the relevant
17596         reflection objects. Cache fieldref and methodref tokens. Change
17597         mono_image_create_token() interface to take a MonoDynamicAssembly.
17598         More complete custom attributes decoder. Load custom attributes for
17599         Assembly, Field, Method and Constructor objects, too. Make the
17600         returned array an Attribute[] one, not object[]. Added
17601         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
17602         custom attribute constructor.
17603
17604 2002-02-20  Dick Porter  <dick@ximian.com>
17605
17606         * icall.c:
17607         * rawbuffer.c:
17608         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
17609         problem code out for now).
17610
17611 2002-02-19  Radek Doulik  <rodo@ximian.com>
17612
17613         * object.c (mono_ldstr): use hash table to avoid multiple swapping
17614
17615 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
17616
17617         * icall.c: register the GetCustomAttributes method.
17618         * object.c, object.h: add mono_string_new_len ().
17619         * reflection.h, reflection.c: added mono_runtime_invoke(),
17620         mono_install_runtime_invoke(). Added
17621         mono_reflection_get_custom_attrs () to load custom attributes and
17622         create the attribute objects.
17623
17624 2002-02-19  Dick Porter  <dick@ximian.com>
17625         * threads-dummy-types.c:
17626         * threads-dummy-types.h:
17627         * threads-dummy.c:
17628         * threads-dummy.h:
17629         * threads-pthread-types.c:
17630         * threads-pthread-types.h:
17631         * threads-pthread.c:
17632         * threads-pthread.h:  Deleted obsolete files
17633
17634 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
17635
17636         * class.c (mono_class_vtable): runtime init the class when we
17637         allocate static class data.
17638
17639         * icall.c (ves_icall_System_Array_SetValue): check for null values.
17640
17641         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
17642         and String - but we will need generic marshalling support in the
17643         future. 
17644         (mono_init): set the domain name in a ms compatible way
17645
17646         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
17647         String[].
17648
17649 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
17650
17651         * object.c (mono_array_clone): use alloca() instead of g_malloc  
17652         for sizes
17653
17654         * appdomain.c (mono_domain_unload): impl.
17655
17656 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
17657
17658         * appdomain.c, object.c: fix intern pool implementation.
17659         * class.c: fix alignment code.
17660
17661 2002-02-16  Radek Doulik  <rodo@ximian.com>
17662
17663         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
17664         and s2 > s1, just copy lower bytes to be compatible with little
17665         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
17666         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
17667
17668         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
17669         force big_endian to be 1 for big endian machines 
17670         (ves_icall_iconv_new_decoder): ditto
17671
17672 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
17673
17674         * socket-io.c (convert_sockopt_level_and_name): If the system
17675         doesn't define SOL_IP or SOL_TCP, get them by hand using
17676         getprotobyname() and caching the values (because this could be a
17677         slow operation).
17678         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
17679         Use the appropriate struct when the system does support it. Ie,
17680         not all systems have struct ip_mreqn so use struct ip_mreq when
17681         appropriate.
17682
17683 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
17684
17685         * reflection.c: handle finally clauses.
17686
17687 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
17688
17689         * socket-io.c: use g_snprintf() instead of snprintf.
17690
17691 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
17692
17693         * reflection.c (mono_param_get_objects): Cast second argument to
17694         mono_method_get_param_names to a const char** to silence the
17695         compiler warning.
17696
17697         * appdomain.c (mono_domain_assembly_open): Put parens around the
17698         truth statement in the for-loop.
17699
17700         * unicode.c (iconv_convert): Got rid of a compiler warning about
17701         int i being unused when the system has a new iconv.
17702         (iconv_get_length): Same.
17703
17704         * image.c (load_class_names): Cast the second argument to
17705         g_hash_table_insert() to char* to hush compiler warnings about the
17706         arg being a const.
17707         (mono_image_open): Same here.
17708
17709         * socket-io.c: Don't conditionally include sys/filio.h or
17710         sys/sockio.h here anymore since we now get them from
17711         io-layer/io-layer.h
17712         (inet_pton): If the system doesn't support inet_aton, implement
17713         using inet_addr and also #define INADDR_NONE if it isn't defined
17714         by the system.
17715
17716 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
17717
17718         * metadata.c, metadata.h: added function to get packing and size info
17719         of a typedef.
17720         * reflection.h, reflection.c: handle field RVA data. Save info about
17721         the table layout if needed. Assign typedef indexes to all the types
17722         before dumping the info about them to avoid forward reference problems.
17723
17724 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
17725
17726         * socket-io.c (convert_sockopt_level_and_name): ifdef
17727         SO_ACCEPTCONN because it is not defined on my system (old debian)
17728
17729 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
17730
17731         * opcode.c: use stddef.h to get NULL.
17732
17733 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
17734
17735         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
17736         for FIONBIO, FIONREAD and SIOCATMARK.
17737         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
17738         define INADDR_NONE and besides, inet_addr() is deprecated and
17739         should not be used. Use inet_pton() instead - it also has the
17740         added bonus that it can easily handle IPv6 addresses as well.
17741         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
17742
17743 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
17744
17745         * decimal.c: remove _MSC_VER conditional.
17746
17747 2002-02-13  Dick Porter  <dick@ximian.com>
17748
17749         * socket-io.c: 
17750         * icall.c: Internal calls for Blocking, Select, Shutdown,
17751         GetSocketOption and SetSocketOption
17752
17753 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17754
17755         * assembly.cs: better resolver: use it instead of some kludgy
17756         code.
17757
17758 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
17759
17760         * reflection.c: the best way to speed-up the compiler is to avoid
17761         infinite loops.
17762
17763 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
17764
17765         * class.c (mono_class_vtable): changed the object layout
17766         (obj->vtable->class). 
17767         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
17768
17769 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17770
17771         * assembly.c: look for assemblies in the assembly dir, too.
17772
17773 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
17774
17775         * class.c: fix thinko in mono_class_from_type().
17776
17777 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
17778
17779         * exception.h, exception.c: added TypeLoadException.
17780         * object.h, object.c: added mono_array_clone ().
17781         * icall.c: handle throwOnError in AssemblyGetType().
17782         Added Array.Clone().
17783         * opcode.h, opcode.c: use a single value for the opcode val.
17784         Compile fix for non-gcc compilers.
17785
17786 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
17787
17788         * opcodes.c, opcodes.h: export interesting info about opcodes.
17789
17790 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
17791
17792         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
17793         icalls. 
17794
17795         * class.c (class_compute_field_layout): set element_class for enums
17796         (mono_class_create_from_typedef): set element_class for normal classes
17797
17798         * icall.c (ves_icall_System_Enum_get_value): impl.
17799
17800         * class.c (mono_class_create_from_typedef): do not set valuetype
17801         flag for System.ValueType and System.Enum
17802
17803 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
17804
17805         * unicode.c (iconv_convert): fix big endian problem.
17806
17807 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
17808
17809         * class.c: add asserts if we are ever going to scribble over memory.
17810         * socket-io.c: not all systems have AF_IRDA defined.
17811
17812 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
17813
17814         * class.c (class_compute_field_layout): do not consider static
17815         fields to compute alignment
17816
17817 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
17818
17819         * appdomain.c (mono_appdomain_get): impl.
17820         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
17821
17822 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
17823
17824         * icall.c: ignore "file://" prefix when loading an assembly.
17825
17826 2002-01-23  Dick Porter  <dick@ximian.com>
17827
17828         * socket-io.c:
17829         * icall.c:
17830         * Makefile.am: Added socket support
17831
17832 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
17833
17834         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
17835         code back.  This should return the assemblies that are loaded by
17836         the runtime on behalf of an application domain. 
17837
17838         The current implementation is still broken, it just returns every
17839         assembly loaded, but until we get real applications domain this
17840         will do.
17841
17842 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
17843
17844         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
17845         AppDomain object.
17846
17847 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
17848
17849         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
17850         the mono_class_from_name lookup.
17851         (ves_icall_get_parameter_info): ditto.
17852         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
17853         method.
17854         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
17855
17856 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
17857
17858         * class.c: load also nested classes on class init.
17859         System.ValueType instance methods gets passed boxed
17860         values, unless methods in derived classed that get a pointer to the
17861         data.
17862         * icall.c: use better name parsing code in GetType().
17863         * image.c, image.h: add mono_image_loaded ().
17864         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
17865         * reflection.c, reflection.h: added mono_reflection_parse_type().
17866
17867 2002-01-22  Veronica De Santis <veron78@interfree.it>
17868
17869         * icall.c : Added mapping of internal calls for Manual and Auto reset events
17870         * threads.c : Added the implementation of internal calls for events
17871         * threads.h : Added prototypes of internal calls for events
17872         
17873 2002-01-21  Radek Doulik  <rodo@ximian.com>
17874
17875         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
17876
17877 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
17878
17879         * class.c (mono_class_init): set min_align to 1 (instead of 0)
17880         (mono_class_value_size): use min_align
17881
17882 2002-01-20  Dick Porter  <dick@ximian.com>
17883
17884         * threads.h:
17885         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
17886         so it compiles on w32.
17887
17888 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
17889
17890         * metadata.c (mono_type_stack_size): impl.
17891
17892         * class.c (mono_class_get_field): impl. memberref token
17893
17894 2002-01-16 Veronica De Santis <veron78@@interfree.it>
17895
17896         * icall.h : Added the internal calls mapping for CreateMutex_internal
17897                     and ReleaseMutex_internal.
17898         * threads.h : Added the prototype of mutexes internal calls.
17899         * threads.c : Added the implementations of mutexes internal calls.
17900
17901 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
17902
17903         * metaparse.h: removed unused file.
17904         * reflection.c, reflection.h: added stream_data_align () function 
17905         to align data in streams and keep stream aligned. Add support for
17906         exception support in method headers.
17907
17908 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
17909
17910         * unicode.c: make iconv_convert () return the number of bytess written
17911         in the output buffer.
17912
17913 2002-01-15  Dick Porter  <dick@ximian.com>
17914         * threads.c: Make the runtime's idea of infinite timeouts coincide
17915         with the class library's
17916
17917         Fix a particularly egregious bug in mono_thread_cleanup(). That
17918         code was so utterly bogus it must have been written on a Monday.
17919
17920 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
17921
17922         * reflection.h: add subtypes field to TypeBuilder.
17923         * reflection.c: encode constants for literal fields.
17924         Handle subtypes. Fix user string token (and add a zero byte)
17925         at the end.
17926         
17927 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
17928
17929         * class.c (mono_class_init): bug fix: assign slot numbers for
17930         abstract methods.
17931
17932 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
17933
17934         * reflection.c: don't try to output a code RVA for abstract methods.
17935         Small fixes for method header format. Output parameter info to the
17936         ParamDef table. Save method overriding info to MethodImpl table.
17937         Fix property support. Allow typedef.extends to be a type in the
17938         building assembly.
17939         * verify.c: fix off-by-one error.
17940
17941 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
17942
17943         * class.c: fix mono_class_from_mono_type () for szarray types.
17944         Remove unused cache check in mono_class_from_type_spec().
17945         * icall.c: *type_from_name () functions handle simple arrays and byref.
17946         * reflection.c: handle byref and szarray types. Handle methods without
17947         body (gets P/Invoke compilation working). Handle types and fields in
17948         get_token ().
17949         * reflection.h: add rank to MonoTypeInfo.
17950
17951 2002-01-10  Dick Porter  <dick@ximian.com>
17952
17953         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
17954         internal calls
17955
17956 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
17957
17958         * icall.c: initialize class in type_from_handle ().
17959         Loop also in parent classes for get_method ().
17960         * reflection.c: properly encode class and valuetype types.
17961         Start on encoding TypeBuilder types. Handle fieldrefs.
17962         Use correct length when registering a user string.
17963         Handle ConstructorBuilder and MonoMethod in get_token ().
17964         Make mono_type_get_object () aware of cached types.
17965         * object.c: back out change to mono_string_new ().
17966
17967 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
17968         * object.c: mono_string_new should return a NULL when the string 
17969         passed in is NULL -- not try to deference it.
17970         
17971 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
17972
17973         * icall.c: hack to make IsSubType work for TypeBuilders.
17974         * reflection.c: emit constructors before methods.
17975         Retrieve param names in mono_param_get_objects().
17976
17977 2002/01/05  Nick Drochak  <ndrochak@gol.com>
17978
17979         * Makefile.am: fix list of headers and sources so automake 1.5
17980         doesn't complain. Removed \# at end of list.
17981
17982 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
17983
17984         * reflection.c: get token for a method ref. Set return type of
17985         constructor to void.
17986         * loader.c: debug message.
17987         * class.c: typo fix.
17988
17989 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
17990
17991         * icall.c: fix array init with rank > 1. FindMembers
17992         loops in parent class as well.
17993         * image.c: do not insert nested types in name cache.
17994         * reflection.c: warning fix.
17995         * reflection.h: add override method (for interface impl).
17996
17997 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
17998
17999         * metadata.c: fix customattr decoding.
18000
18001 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
18002
18003         * rawbuffer.cs: Added native Win32 implementation, avoids using
18004         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
18005
18006 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
18007
18008         * class.c: make the low-level routines handle the cache.
18009
18010 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
18011
18012         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
18013
18014 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
18015
18016         * class.c: fix mono_array_element_size() for objects.
18017         * class.h, class.c: add properties to MonoClass and load them
18018         at init time.
18019         * icall.c: check with isinst() when assigning a value to an array
18020         instead of requiring the classes to match exactly.
18021         Implemented icall for System.Type::GetType().
18022         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
18023         enums. Handle bindingflags when looking for methods and fields.
18024         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
18025         and mono_metadata_methods_from_property().
18026         * reflection.h, reflection.c: added structures for propreties,
18027         parameters and enums. Implemented mono_property_get_object() and
18028         mono_param_get_objects().
18029
18030 2001-12-18  Dick Porter  <dick@ximian.com>
18031
18032         * file-io.c: Use mono_string_to_utf16() instead of
18033         mono_string_chars()
18034
18035         * object.c: Added mono_string_to_utf16(), which copies the non
18036         NULL-terminated MonoString into a new double-null-terminated
18037         buffer.
18038
18039 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
18040
18041         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
18042
18043 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
18044
18045         * file-io.c: raise exceptions if handle is invalid.
18046
18047 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
18048
18049         * assembly.c: yet another check for mscorlib.
18050         * class.c, class.h: load nesting info for classes.
18051         * icall.c: many new functions to support the Reflection classes.
18052         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
18053         * reflection.h, reflection.c: mono_image_create_token(),
18054         mono_assembly_get_object(), mono_type_get_object(),
18055         mono_method_get_object(), mono_field_get_object(): methods to return
18056         objects that parallel the C representation of assemblies, types,
18057         methods, fields.
18058
18059 2001-12-11  Dick Porter  <dick@ximian.com>
18060
18061         * icall.c:
18062         * file-io.c: Internal calls for file IO.
18063
18064 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
18065
18066         * tabledefs.h: missing FileAttributes.
18067         * verify.h, verify.c: use is_valid_string () to simplify and check for
18068         valid strings more correctly. Fix warnings and speeling.
18069         Check more tables: Filed, File, ModuleRef, StandAloneSig.
18070         Check code: branches, maxstack, method calls.
18071
18072 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
18073
18074         * object.c (mono_object_allocate): removed static, so that the jit
18075         can allocate value types.
18076
18077         * icall.c (ves_icall_System_DateTime_GetNow): impl.
18078
18079 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18080
18081         * class.c: init enum types right away and register the
18082         token->MonoClass map in mono_class_create_from_typedef ().
18083         * verify.h, verify.c: first cut of the verifier.
18084         * pedump.c: add --verify switch to verify metadata tables.
18085         * tabledefs.h: add some missing enums.
18086
18087 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
18088
18089         * class.c (mono_install_runtime_class_init): impl.
18090         (mono_class_init): renamed mono_class_metadata_init to
18091         mono_class_init, also removed the metadata_inited flag
18092
18093         * object.c (mono_object_isinst): use faster algorithm
18094
18095 2001-11-30  Radek Doulik  <rodo@ximian.com>
18096
18097         * mono-endian.h: reverted last change
18098         added function prototypes
18099
18100         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
18101         add mono-endian.c back
18102
18103         * mono-endian.c: returned back, as Paolo pointed out, it's needed
18104         for unaligned access, I've mistaked it with endianess. I am
18105         sorry.
18106         (mono_read16): fix reverted endianess
18107         (mono_read64): ditto
18108         (mono_read32): ditto
18109
18110 2001-11-30  Dick Porter  <dick@ximian.com>
18111
18112         * exception.c: Implement mono_exception_from_name()
18113
18114 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18115
18116         * metadata.h, metadata.c: remove params_size and locals_size and their
18117         calculation from the metadata code: they are only usefult to the
18118         interp.
18119
18120 2001-11-29  Radek Doulik  <rodo@ximian.com>
18121
18122         * object.c (mono_ldstr): swap bytes here, it's probably not the
18123         best place, but works for me now, I'll redo it once I know mono
18124         better, also note that I add PROT_WRITE and don't reset back, also
18125         note that it's only affects big endians, so x86 should be OK
18126
18127         * mono-endian.h (read16): use just glib macros for both endians
18128
18129         * mono-endian.c: removed as glib macros are used in in
18130         mono-endian.h so we don't need to care about endianess for read
18131         macros as glib does that for us already
18132
18133 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
18134
18135         * class.h, class.h: take minimum alignment into consideration so
18136         that the fields of a class remain aligned also when in an array.
18137
18138 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18139
18140         * loader.h, loader.c: add mono_method_get_param_names().
18141         * class.c: 0-init class fields.
18142
18143 2001-11-26  Dick Porter  <dick@ximian.com>
18144
18145         * icall.c:
18146         * threads-types.h:
18147         * threads.c: New file that handles System.Threading on all platforms
18148
18149         * object.c: 
18150         * object.h: Remove the synchronisation struct from MonoObject,
18151         replace it with a pointer that gets initialised on demand
18152
18153         * Makefile.am: Replace all the system-specific threading code with
18154         a single file that uses the new wrapper library
18155
18156 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
18157
18158         * class.c, class.h: add mono_install_trampoline() so that the runtime
18159         can register a function to create a trampoline: removes the ugly
18160         requirement that a runtime needed to export arch_create_jit_trampoline.
18161         * object.h, object.c: added mono_install_handler() so that the runtime
18162         can install an handler for exceptions generated in C code (with
18163         mono_raise_exception()). Added C struct for System.Delegate.
18164         * pedump.c: removed arch_create_jit_trampoline.
18165         * reflection.c: some cleanups to allow registering user strings and
18166         later getting a token for methodrefs and fieldrefs before the assembly
18167         is built.
18168         * row-indexes.h: updates and fixes from the new ECMA specs.
18169
18170 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
18171
18172         * class.h, class.c: add enum_basetype field to MonoClass.
18173         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
18174         to get index in the constant table reated to a field, param or
18175         property.
18176         * reflection.h, reflection.c: handle constructors. Set public-key and
18177         version number of the built assembly to 0.
18178         * row-indexes.h: update from new ECMA spec.
18179
18180 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18181
18182         * class.h, class.c: add a max_interface_id to MonoClass.
18183         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
18184         since it's used to do that. Added mono_type_type_from_obj().
18185         Make GetType() return NULL instead of segfaulting if the type was not
18186         found. Handle simple arrays in assQualifiedName.
18187         * object.h: add a struct to represent an Exception.
18188         * reflection.c: output call convention in method signature.
18189         Add code to support P/Invoke methods and fixed offsets for fields.
18190
18191 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
18192
18193         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
18194         the value.
18195         * icall.c: use mono_array_addr instead of array->vector: fixes the
18196         reflection image writing.
18197         * reflection.c: init call convention byte to 0 in method signature.
18198         Encode the property signature. Don't output property-related methods
18199         twice. Really process the properties for a type (don't cast a field to
18200         a property, my mom always told me that).
18201         Fix 64 bit issues in pointer alignment in a different and more
18202         readable way.
18203
18204 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
18205
18206         * loader.h: Removed type class from MonoDefaults, added monotype
18207
18208         * loader.c: Loaded MonoType, removed loading of Type
18209
18210         * icall.c (my_mono_new_object): Now returns a System.MonoType,
18211         and fills in System.Type._impl with a RuntimeTypeHandle rather
18212         than the actual MonoClass *
18213
18214         (ves_icall_type_from_handle): change from type_class to
18215         monotype_class
18216
18217         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
18218         implemented
18219
18220         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
18221         implemented
18222
18223         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
18224
18225         (ves_icall_System_Reflection_Assembly_GetType): implemented
18226
18227         (ves_icall_System_MonoType_assQualifiedName): implemented
18228
18229         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
18230
18231 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
18232
18233         * assembly.c (mono_assembly_open): Implement a cache for the
18234         assemblies. 
18235
18236         (mono_assembly_close): only destroy the assembly when the last
18237         reference is gone.
18238         
18239 2001-11-09  Dick Porter  <dick@ximian.com>
18240
18241         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
18242
18243 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
18244
18245         * class.c (mono_class_metadata_init): bug fix: compute the right slot
18246
18247 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18248
18249         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
18250         from Martin Weindel.
18251         * object.h: add mono_string_chars ().
18252
18253 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
18254
18255         * reflection.c (build_compressed_metadata): Eliminates warnings
18256         and uses 64-bit clean code.
18257
18258         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
18259         (mono_type_equal): Change signature to eliminate warnings.
18260
18261 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18262
18263         * icall.c, loader.c: remove the internalcall array constructors.
18264         Changes to match the new MonoArray structure.
18265         * object.h, object.c: an array object doesn't allocate an extra
18266         vector. Add mono_array_new_full () to create jagged arrays easily.
18267
18268 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18269
18270         * metadata.h, metadata.c: add mono_metadata_field_info () to
18271         retreive all the info about a field from vairous tables.
18272         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
18273         * class.h, class.c: augment MonoClassField with more info.
18274         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
18275         policy and load a field's RVA if needed.
18276
18277 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
18278
18279         * class.c (mono_class_metadata_init): create a trampoline for all
18280         virtual functions instead of actually compiling them.
18281
18282 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
18283
18284         * class.h, class.c: include name in MonoClassField.
18285         * class.c: fix fundamental type of System.Object and System.String.
18286         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
18287         tokens in ldtoken.
18288         * icall.c: remove internalcalls for the Reflection stuff that is now
18289         done in C# code.
18290         * loader.c: mono_field_from_memberref () implementation.
18291         * mono-endian.c: thinko (s/struct/union/g).
18292         * object.c, object.h: make the mono_string_* prototypes actually use
18293         MonoString instead of MonoObject.
18294         * reflection.c, reflection.h: updates for changes in the reflection
18295         code in corlib: we use C structures that map to the actual C# classes.
18296         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
18297         fat method header if needed and use the info from the ILGenerator for
18298         methods. Handle fields in types. Misc fixes.
18299
18300 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
18301
18302         * class.c (mono_class_metadata_init): bug fix: always allocate
18303         space for static class data
18304
18305 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
18306
18307         * class.c (mono_compute_relative_numbering): use relative
18308         numbering to support fast runtime type checks.
18309
18310 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
18311
18312         * class.c (mono_class_create_from_typeref): added debugging output
18313         to print class name when MonoDummy is returned instead of real class
18314
18315 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
18316
18317         * class.c (mono_class_metadata_init): interface offset table now
18318         contains pointers into the vtable - this is more efficient for the jit
18319
18320 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
18321
18322         * class.c (mono_class_metadata_init): use a temporary vtable (the
18323         old algorithm only worked for the interpreter, but not for the jit)
18324
18325 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
18326
18327         * loader.c (method_from_memberref): use mono_class_get to get the
18328         class of an array instead of using System.Array directly.
18329         (mono_get_method): also add MEMBERREF methods to the method cache
18330         which usefull for arrays.
18331
18332 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
18333
18334         * pedump.c (arch_compile_method): added to compute vtable entry
18335
18336         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
18337         number of interfaces.
18338         
18339         * class.h: merged MonoArrayClass into MonoClass
18340
18341         * class.c (mono_class_create_from_typedef): compute the vtable size and
18342         allocate space to include the vtable inside MonoClass
18343         (mono_class_metadata_init): initialize the vtable
18344
18345 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
18346
18347         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
18348         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
18349         * image.c: endian fixes by Laurent Rioux.
18350         * object.h, object.c: rename MonoStringObject to MonoString and
18351         MonoArrayObject to MonoArray. Change some function names to conform to
18352         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
18353         guint16* as first argument, so don't use char*.
18354         Provide macros to do the interesting things on arrays in a portable way.
18355         * threads-pthread.c: updates for the API changes and #include <sched.h>
18356         (required for sched_yield()).
18357         * icall.c: updates for the API changes above.
18358         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
18359         platforms that need them.
18360
18361 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
18362
18363         * class.c: set the correct type for all the fundamental
18364         type when loading the class.
18365
18366 2001-10-05  Dick Porter  <dick@ximian.com>
18367
18368         * threads-pthread.c (pthread_mutex_timedlock): Simple
18369         compatibility version for C libraries that lack this call.
18370
18371 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18372
18373         * class.c: MonoTypes stored in MonoClass are stored as
18374         fundamental MonoTypes when the class represents a
18375         fundamental type (System.Int32, ...).
18376         The TypeHandle return by ldtoken is a MonoType*.
18377         * icall.c: ves_icall_get_data_chunk () write out all the
18378         PE/COFF stuff. Implement ves_icall_define_method (),
18379         ves_icall_set_method_body (), ves_icall_type_from_handle ().
18380         * image.c: properly skip unknown streams.
18381         * loader.h, loader.c: add type_class to mono_defaults.
18382         * metadata.c, metadata.h: export compute_size () as
18383         mono_metadata_compute_size () with a better interface.
18384         Typo and C&P fixes.
18385         * pedump.c: don't try to print the entry point RVA if there is no entry point.
18386         * reflection.c, reflection.h: many cleanups, fixes, output method
18387         signatures and headers, typedef and typeref info, compress the metadata
18388         tables, output all the heap streams, cli header etc.
18389         * row-indexes.h: typo fixes.
18390
18391 2001-10-04  Dick Porter  <dick@ximian.com>
18392
18393         * object.h: Add a synchronisation mutex struct to MonoObject
18394
18395         * object.c (mono_new_object): Initialise the object
18396         synchronisation mutexes
18397
18398         * icall.c: System.Threading.Monitor internal calls
18399         
18400         * threads-pthread.h:
18401         * threads-pthread.c: System.Threading.Monitor internal calls
18402
18403         * threads-types.h: New file, includes the system-specific thread
18404         structures
18405         
18406         * threads-pthread-types.h:
18407         * threads-pthread-types.c: New files, handle pthread-specific
18408         synchronisation types
18409
18410         * threads-dummy-types.h: 
18411         * threads-dummy-types.c: New files of dummy support for
18412         thread-specific types
18413
18414         * metadata.c:
18415         * image.c:
18416         * pedump.c: include mono-endian.h not endian.h
18417         
18418         * Makefile.am: More threads files.
18419         Name mono-endian.h not endian.h
18420
18421 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
18422
18423         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
18424         stuff and implement a few more bits.
18425         * icall.c: a field needs to be dereferenced twice. Do not use the same
18426         name for two variables in the same scope.
18427         * image.c, image.h: cleanups.
18428
18429 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
18430
18431         * class.c (mono_class_metadata_init): bug fix: compute the right size
18432
18433 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
18434
18435         * icall.c: implemented some of the Reflection internalcalls.
18436         * image.c, image.h: start writing out the PE/COFF image.
18437         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
18438         that does the reverse than decode_blob_size ().
18439         * object.c: use mono_metadata_encode_value (). Move here
18440         temporary implementation of mono_string_to_utf8 ().
18441         * rawbuffer.c: make malloc_map static.
18442
18443 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18444
18445         * metadata.c: fix type comparison for arrays.
18446         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
18447         Added a couple of new classes to monodefaults.
18448         * icall.c: added a couple of Reflection-related internalcalls.
18449         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
18450         Added a byval_arg MonoType to MonoClass.
18451
18452 2001-09-28  Dick Porter  <dick@ximian.com>
18453
18454         * icall.c:
18455         * threads-pthread.h: 
18456         * threads-pthread.c: Implemented internal calls for
18457         LocalDataStoreSlot operations.  Applied mutexes around all shared
18458         data.  Reworked the thread creation and Start() operations to
18459         avoid a race condition.
18460         
18461         * threads-dummy.h:
18462         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
18463
18464 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
18465
18466         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
18467
18468 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
18469
18470         * class.c, loader.c: warn and return NULL instead of erroring out.
18471         * icall.c: added System.AppDomain::getCurDomain().
18472         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
18473
18474 2001-09-25  Dick Porter  <dick@ximian.com>
18475
18476         * threads-pthread.h:
18477         * threads-pthread.c: Implemented timed thread joining and added
18478         System.Threading.Thread::Join_internal internal call
18479
18480         * icall.c: Added System.Threading.Thread::Join_internal internal call
18481
18482         * threads-dummy.h:
18483         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
18484
18485 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
18486
18487         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
18488         mono_string_intern () to implement the semantics of the ldstr opcode
18489         and the interning of System.Strings.
18490         * icall.c: provide hooks to make String::IsIntern and String::Intern
18491         internalcalls.
18492
18493 2001-09-23  Dick Porter  <dick@ximian.com>
18494
18495         * threads-dummy.c: 
18496         * threads-dummy.h: New files of dummy threading routines
18497
18498         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
18499         support code based on system specifics
18500
18501         Rename PTHREAD_LIBS to THREAD_LIBS
18502         
18503 2001-09-23  Dick Porter  <dick@ximian.com>
18504
18505         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
18506         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
18507         internal calls.
18508         (mono_thread_init): Set up a Thread object instance to return when
18509         the main thread calls Thread.CurrentThread
18510         (mono_thread_cleanup): Wait for all subthreads to exit
18511
18512         * icall.c: New internal calls for System.Threading.Thread::Sleep
18513         (including Schedule) and CurrentThread
18514
18515         * threads.h: New file, to insulate thread-specific stuff from the
18516         rest of the code
18517
18518 2001-09-21  Dick Porter  <dick@ximian.com>
18519
18520         * threads-pthread.h: 
18521         * threads-pthread.c: New file, for handling pthreads-style
18522         threading support.  Start() now starts a new thread and executes
18523         the ThreadStart delegate instance.
18524
18525         * icall.c: Added the internalcall for
18526         System.Threading.Thread::Start_internal
18527
18528         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
18529
18530 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
18531
18532         * loader.c: work around the different signatures for delegates
18533         constructors csc generates in compiled code vs the ones compiled in mscorlib.
18534
18535 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
18536
18537         * class.h, class.c: add mono_class_get_field_from_name ().
18538         * *: Fix C comments and other ANSI C issues.
18539
18540 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
18541
18542         * endian.h, assembly.c: fix some endianness issues.
18543
18544 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
18545
18546         * loader.h, load.c: add delegate_class to mono_defaults.
18547         Handle runtime provided methods in mono_get_method ().
18548
18549 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
18550
18551         * loader.c (mono_get_method): use pinvoke for internal call
18552
18553         * icall.c: use pinvoke for internal call
18554
18555         * loader.c (method_from_memberref): set the method name
18556
18557 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
18558
18559         * metadata.c: help the compiler generate better code for
18560         mono_class_from_mono_type ().
18561
18562 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
18563
18564         * class.c (mono_class_metadata_init): delayed computing of the
18565         class size to mono_class_metadata_init ()
18566
18567 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
18568
18569         * class.c, class.h: add an interfaces member to MonoClass.
18570         * image.c, image.h: add assembly_name field to MonoImage
18571         from the assembly table.
18572         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
18573
18574 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
18575
18576         * class.c: Handle Array in mono_class_from_mono_type ().
18577         * metadata.c, pedump.c: some endian fixes.
18578
18579 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
18580
18581         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
18582         * metadata.c: fix small problem introduced with the latest commit.
18583
18584 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
18585
18586         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
18587         We don't need a MonoMetadata pointer anymore to compare signatures in
18588         mono_metadata_signature_equal (), update callers.
18589         Reduced memory usage an number of allocations for MonoMethodHeader and
18590         MonoMethodSignature.
18591
18592 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
18593
18594         * metadata.c: added compare for szarray.
18595
18596 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
18597
18598         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
18599         and add a couple more types to it and mono_defaults. Give an hint on
18600         classes that need implementing in our corlib and are referenced
18601         in mscorlib.
18602
18603 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
18604
18605         * class.h, class.c: keep track if a class is also an Enum.
18606         * loader.c: Implement a couple more types for use in libffi
18607         marshalling. Gives better diagnostics when failing to dlopen
18608         a library. Set method->klass for P/Invoke methods, too.
18609
18610 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
18611
18612         * class.c, class.h: add a MonoType this_arg to MonoClass that
18613         represents a pointer to an object of the class' type that
18614         can be used by the interpreter and later the type cache.
18615         Add best guess alignment info for valuetype objects.
18616
18617 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
18618
18619         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
18620         into MonoType: one less level of indirection and allocation and
18621         simplifies quite a bit of code. Added cache for MonoTypes that are
18622         used frequently, so that we don't need to allocate them all the time.
18623
18624 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
18625
18626         * class.c (mono_class_create_from_typedef): System.Enum is also a
18627         value type, although it does not derive from System.ValueType
18628         (maybe a bug in the ms compiler?)
18629
18630         * metadata.c (mono_type_size): return the right size for value types
18631
18632         * loader.c (mono_get_method): only initialize method header if not abstract
18633
18634         * class.c (mono_class_from_mono_type): use mono_default values. 
18635
18636 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
18637
18638         * *: use MonoClass pointers instead of <type_tokens>
18639         
18640         * class.h: new flag: metadata_inited.
18641
18642         * class.c (mono_class_metadata_init): impl.
18643         (mono_class_instance_size): impl.
18644         (mono_class_data_size): impl.
18645
18646 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18647
18648         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
18649         MonoClass now has the name and name_space fields. 
18650         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
18651         mono_get_method () takes and optional MonoClass as argument.
18652         Removed mono_typedef_from_name() and added mono_class_token_from_name()
18653         instead that takes advantage of a map from class names to typedef
18654         tokens in MonoImage.
18655
18656 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
18657
18658         * metadata.c: zero is not a valid alignment boundary.
18659         Merge MONO_TYPE_VOID in default decoding code.
18660
18661 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
18662
18663         * image.h: merged MonoMetadata into MonoImage
18664
18665         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
18666         identify the type of elements.
18667
18668 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
18669
18670         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
18671         * cil-coff.h: split MonoMSDOSHeader and add size info.
18672         * image.c: add some consistency checks.
18673         * metadata.c: fix row size computation: one programmer
18674         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
18675         add explanation for the locator routine.
18676         Fix decoding of size in method header.
18677         
18678 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
18679
18680         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
18681         (g_concat_dir_and_file): Bring g_concat_dir_and_file
18682         function from gnome-libs.  This uses the right path separator
18683         based on the OS, and also works around a bug in some systems where
18684         a double slash is not allowed. 
18685         (default_assembly_name_resolver): Use g_concat_dir_and_file
18686         (mono_assembly_open): ditto.
18687
18688 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
18689
18690         * metadata.c (mono_metadata_signature_equal): impl.
18691
18692         * *: void is now a realy MonoType (instead of using NULL)
18693         
18694         * metadata.c (do_mono_metadata_parse_type): use
18695         mono_metadata_parse_type to parse void value.
18696
18697 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
18698
18699         * metadata.c, metadata.h: in the signature and method header store
18700         only the space required for holding the loca vars and incoming arguments.
18701
18702 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
18703
18704         * metadata.c (do_mono_metadata_parse_type): treat void like any
18705         other type (instead of assigning NULL);
18706
18707 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
18708
18709         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
18710
18711 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
18712
18713         * image.c (do_mono_image_open): added a cache for arrays.
18714
18715 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
18716
18717         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
18718         decode a single column from a row in a metadata table and changes
18719         to take advantage of it in the typedef locator (gives a nice speed up).
18720         Store offset info for function params.
18721
18722 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
18723
18724         * image.h (MONO_IMAGE_IS_CORLIB): removed 
18725
18726 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
18727
18728         * assembly.c: how could mono_assembly_close () had ever worked?
18729         * metadata.c, metadata.h: provide offset info for local vars.
18730         Implement mono_type_size () to take care of alignment as well
18731         as size (it was mono_field_type_size in cli/class.c before).
18732
18733 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
18734
18735         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
18736
18737         * assembly.h (CORLIB_NAME): set to corlib.dll
18738
18739         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
18740
18741 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
18742
18743         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
18744         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
18745         tokentype.h: massive namespace cleanup.
18746
18747 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
18748
18749         * metadata.h, metadata.c: decode exception clauses when parsing method header.
18750
18751 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
18752
18753         * metadata.c (mono_metadata_free_type): added check for type !=
18754         NULL (void) before calling mono_metadata_free_type()
18755
18756 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
18757
18758         * metadata.h, row_indexes.h: added header with enumerations to use
18759         to index in the columns from tables in metadata and to decode coded
18760         tokens: we should start using this instead of embedding magic numbers
18761         all over the code.
18762
18763 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
18764
18765         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
18766         Move metadata_t info from cli_image_info_t to MonoImage, where
18767         it's easily accessible. Changed all the uses accordingly.
18768         Added the method and class caches to MonoImage.
18769         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
18770         and mono_metadata_decode_value () signature to be more consistent
18771         with the other parse functions (and simplify code). Taken advantage
18772         of zero-length array allocation with GCC. Removed reduntant (and
18773         wrong) MonoFieldType struct and use MonoParam instead. Changed
18774         mono_metadata_parse_field_type () to use common code for parsing.
18775         Added mono_metadata_typedef_from_field () and
18776         mono_metadata_typedef_from_method () to lookup a typedef index from a
18777         field or method token.
18778         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
18779
18780 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
18781
18782         * metadata.c (mono_metadata_parse_field_type): Implement. 
18783         (do_mono_metadata_parse_type): Split engine from
18784         mono_metadata_parse_type, so that we can create smaller structures
18785         for things that just have one pointer to the MonoType (look at
18786         the MonoFieldType)
18787
18788 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
18789
18790         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
18791         as Jan Gray found out, it is incorrect. 
18792
18793 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
18794
18795         * assembly.c: Implement asssembly loading.  This loads an image
18796         and loads all the referenced assemblies.  Come to think of it, we
18797         could always do lazy loading of the assemblies. 
18798
18799         * image.c (mono_image_open): Keep loaded images in a hashtable.
18800
18801         * image.h (MonoImage): Add reference count.
18802
18803 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
18804
18805         * assembly.c (mono_assembly_open): Keep track of the file name in
18806         case the assembly has no ASSEMBLY table.
18807
18808         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
18809         from get.c here.
18810
18811 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
18812
18813         * metadata.c, metadata.h: decode local vars in method header
18814         parse function. Change callers accordingly.
18815
18816 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
18817
18818         * metadata.h, cil-coff.h: protect against multiple inclusion.
18819         Added some new structures to hold information decoded from metadata:
18820         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
18821         and relevant decoding/free functions.
18822         * metadata.c: implement decoding functions. Add warning for out of bounds
18823         index in mono_metadata_locate(). Implement mono_get_method () to retreive
18824         all the info about a method signature and invocation. Remove check on
18825         uninitialized local var in parse_mh() and fix memory leak.
18826
18827 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
18828
18829         * metadata.h: More macros.
18830
18831         * tokentype.h: New file.
18832
18833 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
18834
18835         * assembly.c: added a consistency check and initialize
18836         some structures with g_new0().
18837         * metadata.c: fixed a couple more bugs in table size computation
18838         and add other checks for out-of bound access to metadata.
18839
18840 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
18841
18842         * metatada.c: fix bugs computing table sizes. Spew a
18843         warning when index in string heap is out of bounds.
18844
18845 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
18846
18847         * metadata.h: Add a couple of macros to manipulate tokens. 
18848
18849 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
18850
18851         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
18852         cli_section_tables).
18853
18854 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
18855
18856         * metadata.c (mono_metadata_user_string): New function, provides
18857         access to the UserString heap. 
18858
18859 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
18860
18861         * metadata.c: Add inline documentation.
18862
18863 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
18864
18865         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
18866         files. 
18867
18868 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
18869
18870         * typeattr.h: New file, TypeAttribute flags. 
18871
18872 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
18873
18874         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
18875         mono_assembly_ensure_section): Section loading code.
18876         (load_section_tables): Load the sections.
18877
18878         * mono/metadata/metadata.c (mono_metadata_locate_token,
18879         mono_metadata_locate): Functions to locate the information
18880         definition given a token or a table and an index.
18881         (mono_metadata_compute_table_bases): New.
18882         (compute_size): New function to compute the sizes of the various
18883         tables.
18884
18885         * mono/metadata/metadata.h: Finish listing the different index
18886         types. 
18887
18888         * mono/metadata/pedump.c: Improve to dump new information.
18889
18890 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
18891
18892         * mono/metadata/metadata.c: Entered all the tables matching
18893         Beta2. 
18894
18895         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
18896
18897
18898