* reflection.c (mono_class_bind_generic_parameters): Only support
[mono.git] / mono / metadata / ChangeLog
1 2007-06-10  Raja R Harinath  <harinath@gmail.com>
2
3         * reflection.c (mono_class_bind_generic_parameters): Only support
4         parameterizing generic type definitions.  Remove support for other
5         open types.
6
7 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
8
9         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
10
11         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
12         in the dynamic case.
13
14 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
15
16         * threads.c: When cleaning up thread, reset the Background bit.
17         Fixes bug #81720.
18
19 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
20
21        * metadata.c: Move variable declarations to top of scope.
22        * verify.c: Move variable declarations to top of scope.
23
24        Code is contributed under MIT/X11 license.
25
26 2007-06-08  Raja R Harinath  <rharinath@novell.com>
27
28         * reflection.c (mono_class_bind_generic_parameters): Replace
29         open-coded loop with mono_metadata_inflate_generic_inst.
30
31         * class.c (get_shared_generic_class): Don't call
32         mono_get_shared_generic_inst.  Use the container's own
33         'class_inst'.
34
35         * metadata.c (mono_metadata_load_generic_params): Move
36         initialization of 'context' field here from ...
37         * class.c (mono_class_create_from_typedef): ... here, and ...
38         * loader.c (mono_get_method_from_token): ... here.
39
40         * class.c (get_shared_generic_class): Rename from
41         mono_get_shared_generic_class and make static.
42         (mono_get_shared_generic_inst): Move to metadata.c.
43         * loader.c (mono_get_shared_generic_method): Likewise.
44         * class-internals.h, metadata-internals.h: Update to changes.
45
46         Fix #81830
47         * class.c (mono_class_from_generic_parameter): Don't assume a
48         generic container owner exists.  Generic containers from monodis
49         don't have any.
50
51 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
52
53         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
54         * verify.h: new typedefs to returns the non-verifiable status
55         * verify.c: initial implementation of generics, stack merging and object compatibility check
56
57 2007-06-06  Mark Probst  <mark.probst@gmail.com>
58
59         * class.c, image.c, class-internals.h (MonoImage): class_cache is
60         a MonoInternalHashTable again (fixed bug in internal hash table
61         code).
62
63 2007-06-06  Mark Probst  <mark.probst@gmail.com>
64
65         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
66         MonoInternalHashTable again (fixed bug in internal hash table
67         code).
68
69 2007-06-06  Mark Probst  <mark.probst@gmail.com>
70
71         * class.c, image.c, class-internals.h, domain.c,
72         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
73         changes.  Have to figure out what makes them break the SWF
74         regression.
75
76 2007-06-04  Mark Probst  <mark.probst@gmail.com>
77
78         * class.c, image.c, class-internals.h (MonoImage): class_cache is
79         a MonoInternalHashTable now.
80
81 2007-06-04  Mark Probst  <mark.probst@gmail.com>
82
83         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
84         MonoInternalHashTable now.
85
86 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
87
88         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
89         invoke_impl code.
90
91         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
92
93         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
94         dependent trampoline.
95
96         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
97
98         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
99
100 2007-05-29  Robert Jordan  <robertj@gmx.net>
101
102         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
103
104 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
105
106         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
107
108 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
109
110        * marshal.c: Fix interface lookup loops for
111        cominterop_get_com_slot_for_method and 
112        cominterop_get_method_interface. Only need to lookup
113        if type is a class, else use interface type method is on.
114
115        Code is contributed under MIT/X11 license.
116
117 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
118
119         * reflection.c: HasSecurity can be present even if no specially 
120         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
121         SecurityAttribute). Fix CAS regression tests on buildbot.
122
123 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
124
125        * appdomain.c: Add configure checks for header files.
126        * image.c: Add configure checks for header files.
127        * file-io.c: Add configure checks for header files.
128        * debug-mono-symfile.c: Add configure checks for header files.
129        * threadpool.c: Add configure checks for header files.
130        * console-io.c: Add configure checks for header files.
131        * profiler.c: Add configure checks for header files.
132        * rawbuffer.c: Add configure checks for header files.
133        * icall.c: Add configure checks for header files.
134        * rand.c: Add configure checks for header files.
135        * socket-io.c: Add configure checks for header files.
136
137        Code is contributed under MIT/X11 license.
138
139 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
140
141         * reflection.c (mono_custom_attrs_from_builders): Remove the 
142         assertion as it breaks the build.
143         
144         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
145
146         * reflection.c (lookup_custom_attr): Make a copy here too.
147
148         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
149         dynamic images.
150
151         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
152         images.
153
154         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
155         info.
156
157 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
158
159         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
160         (load_cattr_value): Ditto.
161
162 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
163
164         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
165
166 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
167
168         * threads.c: In "start_wrapper", set apartment_state to MTA if
169         apartment_state is Unknown and we're running on 2.0 profile or
170         higher.
171         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
172         to main method, then set apartment_state to Unknown on 1.0 profile,
173         and MTA on 2.0 profile.
174
175 2007-05-16  Jb Evain  <jb@nurv.fr>
176
177         * class-internals.h (MonoDefaults): Add an attribute_class and
178           customattribute_data_class.
179         * domain.c (mono_init_internal): Populate them.
180         * reflection.c: Use them to remove duplicates. Make a vew
181         MonoClass variables `static'.
182
183 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
184
185         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
186         step in implementing IMT, so that all isinst checks now can go
187         through the bitmap.
188         This was needed because vtables for TransparentProxy need to look
189         like the vtable of the "target" class, so they need to point to
190         its interface bitmap directly.
191
192         * object.c: inside "mono_class_create_runtime_vtable" and
193         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
194
195 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
196
197         * object-internals.h
198           culture-info.h : added territory field in MonoCulture and
199           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
200         * locales.c : fill territory field above too.
201         * culture-info-table.h : regenerated.
202
203 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
204
205         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
206         Fixes #81599.
207
208 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
209
210         * object.c: Always initialize apartment, even if 
211         there is no custom attributes on entry point.
212         
213         Code is contributed under MIT/X11 license.
214
215 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
216
217         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
218         * metadata.c: If no encoding is set, check for unicode
219         on class.
220         
221         Code is contributed under MIT/X11 license.
222
223 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
224
225         * threads.c: Handle if mono_thread_current returns NULL 
226         
227         Code is contributed under MIT/X11 license.
228
229 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
230
231         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
232         in start_wrapper. Added mono_thread_init_apartment_state and
233         mono_thread_cleanup_apartment_state.
234         * object.c: Initialize thread apartment state on main thread
235         by checking for STAThreadAttribute on entry point.
236         * object-internals.h: Add apartment_state field to MonoThread.
237         * threads-types.h: Add unmanaged definition of 
238         System.Threading.ApartmentState, MonoThreadApartmentState.
239         
240         Code is contributed under MIT/X11 license.
241         
242 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
243
244         * class.c: Fix windows build.
245         * class-internals.h: Fix windows build.
246         
247         Code is contributed under MIT/X11 license.
248
249 2007-05-08  Robert Jordan  <robertj@gmx.net>
250
251         * process.c (CreateProcess_internal):
252         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
253         .CreateNoWindow was specified. Fixes #81496.
254
255 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
256
257         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
258         step in implementing IMT, replaced it with two compact arrays
259         (interfaces_packed and interface_offsets_packed) and a bitmap that
260         is used for isinst checks (interface_bitmap).
261
262         * class.c: (compare_interface_ids): compare function to pass to
263         bsearch when looking for an interface with a given id.
264         (mono_class_interface_offset): reimplemented using bsearch on
265         interfaces_packed, getting the offset from interface_offsets_packed.
266         (print_implemented_interfaces): utility debugging function.
267         (setup_interface_offsets): reworked to initialize interfaces_packed,
268         interface_offsets_packed and interface_bitmap.
269
270         * object.c: replaced all accesses to "MonoClass.interface_offsets"
271         with uses of interfaces_packed and interface_offsets_packed.
272
273 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
274
275         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
276         mono_class_interface_offset prototype to wrap all accesses to
277         "MonoClass.interface_offsets".
278
279         * class.c: Implemented mono_class_interface_offset, and wrapped all
280         accesses to "MonoClass.interface_offsets".
281
282         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
283         "MonoClass.interface_offsets".
284
285 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
286
287         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
288         GetMethodFromHandle overloads (bug #78637).
289
290 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
291
292         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
293         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
294
295 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
296
297         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
298         #81498.
299
300         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
301         gracefully.
302         (mono_custom_attrs_from_index): Ditto.
303
304         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
305         Fixes #81501.
306
307 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
308
309         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
310         is now allocated from a mempool.
311
312 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
313
314         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
315         caller holds threads_lock, leading to deadlocks. Fixes #81476.
316
317 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
318
319         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
320         mono_loader_clear_error () too late. Fixes #81463.
321
322 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
323
324         * culture-info-table.h : regenerated.
325
326 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
327
328         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
329         is missing.
330
331 2007-04-25  Dick Porter  <dick@ximian.com>
332
333         * Makefile.am: Put the mingw enforced-optimisation back into the
334         PLATFORM_WIN32 section.
335
336 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
337
338         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
339         patch.
340
341         * image.c (mono_image_load_module): New API function to load a module reference.
342
343         * image.c (load_modules): Load modules lazily. Fixes #80812.
344
345         * class.c (mono_class_from_typeref): Use mono_image_load_module.
346         
347         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
348
349         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
350         to mono_image_load_module_dynamic.
351
352 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
353
354         * marshal.c: Fix calling convention for CCW on non-windows
355         platforms. STDCALL on windows, CDECL everywhere else to work 
356         with XPCOM and MainWin COM.
357         
358         Code is contributed under MIT/X11 license.
359
360 2007-04-23  Martin Baulig  <martin@ximian.com>
361
362         Fix #80969.
363
364         * loader.c
365         (method_from_memberref): Added `gboolean *used_context' argument.
366         (mono_get_method_from_token): Likewise.
367         (mono_get_method_full): Don't insert the method in the cache when
368         `used_context' is true.
369
370 2007-04-23  Raja R Harinath  <rharinath@novell.com>
371
372         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
373
374         * reflection.c (mono_reflection_bind_generic_parameters): Don't
375         create new MonoTypes for returned types.
376         * class.c (mono_generic_class_get_class): Export mono-internal.
377         * class-internals.h: Update to changes.
378
379 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
380
381         * threadpool.c, threadpool.h, icall-def.h: patch from
382         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
383
384 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
385
386         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
387         
388         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
389
390         * threads.c (mono_thread_get_stack_bounds): New helper function.
391
392         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
393         Correctly compute stack bounds when attaching. Fixes #81394.
394
395 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
396
397         * reflection.c: fix handling of doubles in custom attributes
398         for the arm-fpa format (bug #81368).
399
400 2007-04-18  Raja R Harinath  <rharinath@novell.com>
401
402         * reflection.c (assembly_add_win32_resources): Mildly relax an
403         bounds check to let the end pointer point just past the end of the
404         allocated buffer.  (may fix #81384)
405
406 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
407
408         * culture-info-table.h : regenerated.
409
410 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
411
412         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
413         the thread is aborted early.
414
415 2007-04-05  Dick Porter  <dick@ximian.com>
416
417         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
418         FindFirstFile()/FindNextFile() to find entries.  This lets the
419         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
420         81038.
421
422         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
423         the parameters of
424         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
425
426 2007-04-04  Martin Baulig  <martin@ximian.com>
427
428         * debug-helpers.c
429         (mono_method_desc_full_match): Add support for nested classes.
430
431 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
432
433         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
434
435 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
436
437         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
438         waiting for too many threads.
439
440 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
441
442         * environment.c: Fix return value check on uname so we can get the 
443         executing version on Solaris operating systems.
444
445 2007-03-28  Jb Evain  <jbevain@gmail.com>
446
447         * class.c (mono_type_get_name_recurse): Complete the
448         fix for the creation of assembly qualified names for
449         pointer types. Fixes #81208.
450
451 2007-03-27  Dick Porter  <dick@ximian.com>
452
453         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
454         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
455         changed.
456
457         * threads.c
458         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
459         the value of ReleaseMutex().
460
461 2007-03-27  Dick Porter  <dick@ximian.com>
462
463         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
464         in little-endian order, not network endian, so must be converted
465         to host endian here.  Fixes bug 80593.
466
467 2007-03-22  Jb Evain  <jbevain@gmail.com>
468
469         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
470         qualified names for pointer types. Fixes #81208.
471
472 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
473
474         * marshal.c: Add support for PreserveSigAttribute. 
475         
476         Code is contributed under MIT/X11 license.
477
478 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
479
480         * process.c: Fix endianness issues. Fixes #81126.
481
482         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
483         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
484
485         * image.c (mono_image_lookup_resource): Make this work on big-endian
486         machines.Change API contract so the caller needs to free the return value.
487         
488         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
489         API change.
490         
491 2007-03-14  Martin Baulig  <martin@ximian.com>
492
493         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
494         mono_type_get_desc() as well.
495
496 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
497
498         * icall.c:  Fix environ access in VS.  
499         
500 2007-03-13  Alp Toker  <alp@atoker.com>
501
502         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
503         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
504         #63841.
505
506 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
507
508         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
509         circular references among dynamic methods. Fixes #81091.
510
511         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
512
513 2007-03-09  Martin Baulig  <martin@ximian.com>
514
515         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
516
517 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
518
519         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
520         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
521         
522         Code is contributed under MIT/X11 license.
523         
524 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
525
526         * loader.c: Reapply patch for bug #79424.
527
528 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
529
530         * metadata.c (mono_type_to_unmanaged): Only convert object to
531         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
532
533 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
534
535         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
536         (and incorrectly set) is_reference field from MonoGenericInst.
537
538 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
539
540         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
541         a little earlier.
542
543         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
544
545         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
546
547 2007-03-05  Miguel de Icaza  <miguel@novell.com>
548
549         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
550         FileOptions.1 value to mean "temporary", map that to
551         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
552
553         Fixes 80688
554
555 2007-03-03  Marek Habersack  <mhabersack@novell.com>
556
557         * appdomain.c: implement MS .Net style shadow copying. Copies of
558         the assemblies are made in a subdirectory of the dynamic base
559         directory, the assembly names are preserved.
560         Copy .mdb and .config files along with the assemblies being shadowed.
561
562 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
563
564         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
565         (emit_marshal_handleref): Ditto.
566
567         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
568         on Visual C++. Fixes #80671.
569
570 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
571
572         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
573         for clone operations.
574
575 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
576
577         * marshal.c: Fix warnings.
578
579 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
580
581         * loader.c: allow case-insensitive matching of the dll name
582         in dllmap handling when prefixed with "i:".
583
584 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
585
586         * threads.c: Fix #ifdef for dummy_apc function for VS.
587
588 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
589
590         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
591
592 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
593         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
594         giving precedence to the methods with a fully qualified name
595         (InterfaceName.MethodName) when building the interface sections
596         of the vtable.
597
598 2007-02-16  Dick Porter  <dick@ximian.com>
599
600         * threadpool.c (append_job): Fix fast-path array handling, so it's
601         less likely the array will grow exponentially when the load is
602         heavy.
603
604 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
605
606         * metadata-internals.h, loader.c: fix dllmap lookup order
607         for non-function maps, too, and prepare for fallback code.
608
609 2007-02-12  Robert Jordan  <robertj@gmx.net>
610
611         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
612         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
613         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
614         GlobalFree. Fixes a part of bug #77075.
615
616 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
617
618         * loader.c: implemented typedef parent in field memberref.
619
620 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
621
622         * marshal.c: Fix warnings and remember to call Release on
623         IUnknown of RCW.
624         
625         Code is contributed under MIT/X11 license.
626
627 2007-02-10  Miguel de Icaza  <miguel@novell.com>
628
629         * class-internals.h: Add MonoHandleRef definition, and
630         handleref_class to mono_defaults. 
631
632         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
633         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
634
635         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
636         (do nothing on this stage)
637         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
638         (emit_marshal_handleref): New method, used for argument handling
639         of HandleRefs. 
640
641 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
642
643         * class.c (mono_class_setup_parent): Lazily init com types.
644         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
645         init com types.
646         * object.c (mono_remote_class_vtable): Lazily init com types.
647         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
648         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
649         * domain-internals.h: Expose mono_init_com_types.
650         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
651         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
652         Add support for COM Callable Wrapper marshalling.
653         * marshal.h: Add icall definitions.
654         * gc.c: Handle freeing of CCWs in finalizer code.
655         
656         Code is contributed under MIT/X11 license.
657
658 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
659
660         * reflection.c: changed all the signature encoding code to use
661         a variable-sized buffer.
662
663 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
664
665         * marshal.c: locking fixes: never take the loader lock
666         or other runtime locks when holding the marshal lock
667         (fixes bug#80664).
668
669 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
670
671         * marshal.c: make the delegate function pointer mapping
672         work for the moving GC.
673
674 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
675
676         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
677         for bug #80618.
678
679 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
680
681         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
682         gmodule.
683
684 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
685
686         * threadpool.c: made the code moving-GC safe.
687
688 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
689
690         * assembly.c, boehm-gc.c, class-internals.h, class.c,
691         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
692         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
693         warning cleanup.
694         * reflection.c: warning cleanup, some threading and moving GC fixes.
695
696 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
697
698         * class.c, loader.c: create the needed Set/Get/Address array methods
699         as well as the .ctors in mono_class_init (), fixes bug #80567.
700
701 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
702
703         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
704         we doesn't decrease its alignment. Should fix the sparc build.
705
706 2007-01-24  Dick Porter  <dick@ximian.com>
707
708         * socket-io.c
709         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
710         Create the returned object if we need to ignore an unsupported
711         socket option.  Fixes a segfault reported by Atsushi.
712
713 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
714
715         * class.c, object.c: restrict GC-tracked fields to
716         UIntPtr fields used inside corlib, so we provide better
717         type info to the GC and also allow broken packing as in
718         bug #80580.
719
720 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
721
722         * sgen-gc.c: removed duplicated function.
723
724 2007-01-19  Miguel de Icaza  <miguel@novell.com>
725
726         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
727         value that means that the value is not supported, but that we
728         should not return a failure, but instead report this as a
729         successful operation.
730
731 2007-01-19  Raja R Harinath  <rharinath@novell.com>
732
733         Fix tests/bug79956.2.il
734         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
735         (mono_generic_class_get_class): If the generic definition in an
736         enum, copy over other fields related to it.
737
738 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
739
740         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
741         genericinst enums (bug #79215).
742
743 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
744         * class.c: Fix bug 80307.
745
746 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
747
748         * image.c: if the file table is not present, try to load
749         all the modules, since we don't have info about them
750         having or not metadata (bug #80517).
751         * assembly.c: allow mono_assembly_load_references () to
752         work for netmodules.
753
754 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
755
756         * image.c, metadata-internals.h, object.c: execute module
757         cctors when running on the 2 runtime if present (bug #80487).
758
759 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
760
761         * icall.c: optimized InitializeArray() on bigendian.
762
763 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
764
765         * icall.c: fix for the broken ARM FPA double format.
766
767 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
768
769         * icall.c: handle endian issues for r4 and r8 types, too, in
770         the InitializeArray() icall.
771
772 2007-01-15  Miguel de Icaza  <miguel@novell.com>
773
774         * loader.c (mono_loader_error_prepare_exception): Clear the error
775         once we have extracted the information from it, do this before we
776         call into the JIT's class loading mechanisms.
777
778         * object.c (mono_class_create_runtime_vtable): Do not clear the
779         loader error before calling mono_class_get_exception_for_failure
780         as the loader error is needed inside
781         mono_class_get_exception_for_failure to throw the error (thinko).
782
783         Fixes #80521
784         
785 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
786
787         * reflection.c: align fields rva data so it's faster to load at
788         runtime.
789
790 2007-01-12  Raja R Harinath  <rharinath@novell.com>
791
792         Prepare to simplify GenericMethod handling.
793         * class-internals.h (mono_method_get_context): New accessor function.
794         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
795         rather than directly accessing '->context' field.
796
797         * class-internals.h (_MonoGenericParam.method): Move ...
798         (_MonoGenericContainer): ... here.  Add into union with klass field.
799         * class.c, icall.c, loader.c, metadata.c, reflection.c:
800         Update to changes.
801
802 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
803
804         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
805         the wrapper type enum and reduce relocations.
806
807 2007-01-12  Raja R Harinath  <rharinath@novell.com>
808
809         * reflection.c (inflate_mono_method): Reuse method instantiation
810         from the generic method, if available.
811
812 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
813
814         * marshal.c (emit_marshal_variant): Fix conv_arg
815         type in last commit, based on whether parameter is byref.
816         
817 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
818
819         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
820         marshalling.
821         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
822         MONO_TYPE_OBJECT back for VARIANT support.
823
824 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
825
826         * marshal.c, marshal.h, icall-def.h: Implement 
827         Marshal.ReAllocCoTaskMem.
828
829 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
830
831         * marshal.c: memory retention fixes: use the proper
832         image cache for runtime_invoke method lookups.
833
834 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
835
836         * mempool.c: added code to help debug mempool allocations.
837
838 2007-01-11  Dick Porter  <dick@ximian.com>
839
840         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
841         support (experimenting with faking it with IP_MTU_DISCOVER for
842         systems that don't have IP_DONTFRAGMENT.)
843         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
844         icall.
845
846         * icall-def.h: new System.Net.Sockets.Disconnect icall.
847
848         * socket-io.h: Add new fields to MonoSocketAsyncResult
849         corresponding to the new ones in Socket.cs.
850
851 2007-01-11  Raja R Harinath  <rharinath@novell.com>
852
853         Fix IronPython regression mentioned in #80249
854         * metadata.c (do_mono_metadata_parse_generic_class): Clear
855         'cached_context' field, since it may have been initialized as a
856         side-effect of metadata parsing.
857
858         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
859         (_MonoGenericClass.cached_class): Move here and rename from lone
860         remaining field of ...
861         (_MonoInflatedGenericClass): ... this.  Remove.
862         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
863         to changes.
864
865         Fix mcs/tests/test-128.cs regression.
866         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
867         2007-01-10 change below.
868         [MONO_TYPE_OBJECT]: Recurse into array case.
869
870 2007-01-11  Raja R Harinath  <harinath@gmail.com>
871
872         * class-internals.h (mono_get_inflated_generic_class): Remove.
873         * class.c (mono_get_inflated_generic_class): Remove.
874         (mono_generic_class_get_class): Rename from
875         mono_class_create_generic.
876         (mono_class_from_mono_type) [GENERICINST]: Use it.
877         * reflection.c, metadata.c: Update to changes.  Use
878         'mono_class_from_mono_type'.
879
880 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
881
882         * reflection.c: use passed type when encoding an array element
883         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
884
885 2007-01-09  Robert Jordan  <robertj@gmx.net>
886
887         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
888         result arguments (someDelegate.EndInvoke (unrelatedAres)).
889         Fixes bug #80392.
890
891 2007-01-09  Raja R Harinath  <rharinath@novell.com>
892
893         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
894
895         * object.c (set_value): Avoid aliasing between type->data.klass
896         and type->data.generic_class.
897
898         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
899
900 2007-01-08  Raja R Harinath  <rharinath@novell.com>
901
902         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
903         between type->data.klass and type->data.generic_class.
904
905 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
906
907         * marshal.c: In MS.NET, StringBuilder objects are not copied by
908         value in out parameters.
909
910 2007-01-08  Raja R Harinath  <rharinath@novell.com>
911
912         Simplify invariant for MonoGenericClass::klass field.
913         * class.c (mono_class_create_generic): Verify 'klass' is null.
914         * metadata.c (do_mono_metadata_parse_generic_class): Don't
915         initialize 'klass' field.
916
917 2007-01-05  Raja R Harinath  <rharinath@novell.com>
918
919         Ongoing work to avoid redundant data and simplify invariants.
920         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
921         'generic_class', and change type to a GenericInst.
922         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
923         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
924
925 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
926
927         * class.c : skip io-layer under PLATFORM_WIN32.
928
929 2007-01-03  Tor Lillqvist  <tml@novell.com>
930
931         Fix #80305: In a bundled executable, look in the bundled exe
932         assembly to determine the runtime version. Add the possibility to
933         bundle also the machine.config file.
934         
935         * assembly.c (mono_assembly_open_from_bundle): Make
936         non-static. Allow being called even if we have no bundled
937         assemblies, and return NULL right away in that case.
938
939         * domain-internals.h: Declare mono_assembly_open_from_bundle()
940         here.
941
942         * domain.c (app_config_parse): Take an assembly exe file name as
943         parameter instead of a config file name. Check for a bundled
944         config file for that assembly by calling
945         mono_config_string_for_assembly_file() (see below) before looking
946         for one in the file system.
947         (get_runtimes_from_exe): Corrsponding change to call of
948         app_config_parse().
949         (get_runtimes_from_exe): Check for bundled assembly exe file first
950         by calling mono_assembly_open_from_bundle(). If no bundled
951         assembly exe file is found, call mono_image_open() as before to
952         look it up in the file system.
953
954         * mono-config.c: Add variable bundled_machinec_onfig.
955         (mono_config_string_for_assembly_file): New function.
956         (mono_config_for_assembly): Move code snippet that looks for a
957         bundled assembly .config file into the above new function. Call
958         it.
959         (mono_register_machine_config, mono_get_machine_config): New
960         functions to set and retrieve
961
962         * assembly.h: Declare mono_register_machine_config().
963
964         * mono-config.h: Declare mono_get_machine_config() and
965         mono_config_string_for_assembly_file().
966
967         * icall.c: No declaration of environ necessary on Win32. It is
968         declared (as a macro expanding to a function call) in stdlib.h.
969         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
970         New internal mono function. Returns the value of
971         mono_get_machine_config() as a Mono string.
972
973         * icall-def.h: Add get_bundled_machine_config().
974
975 2007-01-04  Raja R Harinath  <rharinath@novell.com>
976
977         Remove redundant field
978         * class-internals.h (_MonoGenericContext.container): Remove field.
979         * loader.c (mono_method_get_signature_full): Don't parse a
980         "container" for a signature parse when the signature is inflated
981         immediately.
982         (method_from_methodspec): Likewise, for a generic_inst.
983         * class.c, metadata.c, reflection.c: Update to changes.
984
985 2006-01-04  Raja R Harinath  <rharinath@novell.com>
986
987         * class-internals.h (_MonoGenericClass): Rename 'context' field to
988         'cached_context', and change semantics -- it starts off NULL, and
989         is initialized on demand.
990         * class.c (mono_generic_class_get_context): New accessor to
991         replace 'context' field accesses.
992         (mono_class_get_context): New helper.
993         (*): Update to changes.
994         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
995
996 2007-01-03  Miguel de Icaza  <miguel@novell.com>
997
998         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
999         before the memcpy.   Fixes Marshal2 regression.
1000
1001 2007-01-02  Jb Evain  <jbevain@gmail.com>
1002
1003         * blob.h: add a MONO_TYPE_ENUM definition
1004         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
1005         fix the encoding of arrays of enums in custom attributes.
1006
1007         Fixes #79666.
1008
1009 2007-01-01  Miguel de Icaza  <miguel@novell.com>
1010
1011         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
1012         string is null terminated, but only cut the string short if it
1013         overflows the buffer.   
1014         
1015         (mono_string_to_byvalstr): Also fix this routine.   The code here
1016         was not properly terminating a string (it was only terminated
1017         because of the previous catch-all memset). 
1018
1019         I left the memset, because I do not know if applications expect
1020         the runtime to clear this region. 
1021
1022         Fixes #79944.
1023
1024         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
1025         Clear the error before returning to unmanaged code to prevent the
1026         runtime from being confused later on (fixes  80420).
1027         (ves_icall_type_from_name): Always call mono_loader_clear_error
1028         after parsing a type that could have failed.
1029         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
1030
1031         * loader.c (mono_loader_clear_error): Fix indentation.
1032
1033 2006-12-28  Martin Baulig  <martin@ximian.com>
1034
1035         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
1036
1037 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
1038
1039         * reflection.c: patch from Rolf Bjarne Kvinge to fix
1040         getting a token for an EnumBuilder.
1041
1042 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
1043
1044         * reflection.c: be more careful in case resource generation
1045         fails to create the data array.
1046
1047 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
1048
1049         * sgen-gc.c: write barrier for clone and fix unregister handles.
1050
1051 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
1052
1053         * reflection.c: some fixes needed in the generics code for the moving GC.
1054
1055 2006-12-22  Robert Jordan  <robertj@gmx.net>
1056
1057         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
1058         account. Fixes bug #80299.
1059
1060 2006-12-21  Raja R Harinath  <rharinath@novell.com>
1061
1062         Fix WaitHandle usage in delegates.
1063         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
1064         * object.c (mono_wait_handle_new): Use the property set method to
1065         initialize the handle.
1066         (mono_wait_handle_get_handle): New.
1067         * threadpool.c (mono_async_invoke): Use it.
1068         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
1069         Likewise.
1070         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
1071
1072 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
1073
1074         * marshal.c (emit_marshal): Call emit_marshal_variant and
1075         emit_marshal_com_interface when applicable.
1076         (emit_marshal_variant, emit_marshal_com_interface): Add
1077         methods for this case and remove if's from emit_marshal_object.
1078         
1079 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
1080
1081         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
1082
1083 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
1084
1085         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
1086         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
1087         and GlobalFree on Windows. Remove FIXME.
1088
1089 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
1090
1091         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
1092         implementation for managed objects.
1093
1094 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
1095
1096         * object.c: implemented code to be used for checking
1097         that no reference field overlaps with non-references.
1098
1099 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1100
1101         * threadpool.c: fix queue code to be compatible with the
1102         moving GC.
1103
1104 2006-12-18  Miguel de Icaza  <miguel@novell.com>
1105
1106         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
1107         in structures by throwing ArgumentNullException.
1108
1109         (emit_marshal_safehandle): Also when they are null parameters.
1110
1111         (emit_marshal_safehandle): Add support for ref
1112         SafeHandles parameters
1113
1114 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1115
1116         * profiler.c: updated to use the mono-dl API instead of
1117         gmodule.
1118
1119 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1120
1121         * profiler.c: updated to use the mono-dl dynamic loading
1122         API instead of gmodule.
1123
1124 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
1125
1126         * profiler.c: use readlink, older versions of glib don't have
1127         g_file_read_link ().
1128
1129 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1130
1131         * profiler.c: try to detect the path to mono if libc fails to provide
1132         a useful name (bug #80286).
1133
1134 2006-12-16  Raja R Harinath  <rharinath@novell.com>
1135
1136         Fix #80242
1137         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
1138         instance, use the generic type definition instead.
1139         (ves_icall_Type_GetNestedTypes): Likewise.
1140         * class.c (mono_class_create_generic): Always set the
1141         nested_classes of a generic instance to NULL, even if the generic
1142         type definition has nested types.
1143
1144 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
1145
1146         * marshal.c (mono_string_from_bstr): Revert previous Windows change
1147         and fix on Linux.
1148         
1149 2006-12-15  Miguel de Icaza  <miguel@novell.com>
1150
1151         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
1152         my arguments were in the wrong order.   I also fixed the Windows
1153         version which seems to have had the same issue.
1154
1155         (mono_free_bstr): On Unix, this is g_free.
1156         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
1157         conversions (for the tests in corlib to pass).
1158
1159 2006-12-14  Miguel de Icaza  <miguel@novell.com>
1160
1161         * marshal.c (emit_ptr_to_object_conv): For now, ignore
1162         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
1163         exception if a ref SafeHandle in a struct has changed).
1164         
1165         (emit_struct_conv): Do not perform layout checks for classes
1166         derived from SafeHandle, as those are specially handled. 
1167
1168         (emit_object_to_ptr_conv): Add support for
1169         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
1170
1171         (emit_marshal_safehandle): Implement conversion of return values
1172         of safehandles (MARSHAL_ACTION_CONV_RESULT).
1173         
1174         * threads.c: WaitHandle now is compiled with two different handles
1175         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
1176         for 2.0.
1177         
1178         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
1179         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
1180         these routines to cope with both kinds of fields.
1181
1182 2006-12-12  Miguel de Icaza  <miguel@novell.com>
1183
1184         * metadata.c (mono_type_to_unmanaged): Handle the case where
1185         type->data.klass is a SafeHandle, and in that case, return the
1186         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
1187         MONO_MARSHAL_CONV_SAFEHANDLE. 
1188
1189 2006-12-11  Miguel de Icaza  <miguel@novell.com>
1190
1191         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
1192         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
1193         calling emit_marshal_object.
1194
1195         (emit_marshal_safehandle): Implement marshalling of
1196         SafeHandle parameters (no ref support yet).
1197
1198         (MarshalAction): Document the defines as I implement
1199         them for SafeHandle.
1200
1201         (emit_marshal_object): indentation police.
1202
1203         * class-internals.h: Define MonoSafeHandle.
1204         Add safehandle_class to MonoDefaults type.
1205
1206         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
1207         list of classes to check for fields. 
1208
1209         * domain.c (mono_init_internal): Add SafeHandle to the list of
1210         mono_defaults loaded.
1211
1212 2006-12-15  Raja R Harinath  <rharinath@novell.com>
1213
1214         Fix #80253
1215         * reflection.c (mono_reflection_bind_generic_parameters): If the
1216         generic type definition is a type builder, ensure that it is fully
1217         initialized before instantiating it.  Kill some dead code.
1218
1219 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
1220
1221         * object.c: clear the loader_error () before loading
1222         more metadata stuff (bug #80258).
1223
1224 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
1225
1226         * icall.c, icall-defs.h: type modifiers icalls for
1227         parameters and properties.
1228
1229 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
1230
1231         * object.c, icall.c: fixed warnings.
1232
1233 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
1234
1235         * marshal.c: fixed a couple of leaks and coding style in a few places.
1236
1237 2006-12-08  Dick Porter  <dick@ximian.com>
1238
1239         * process.c: Cope with NULL ProcessStartInfo arguments on windows
1240         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
1241         80173.
1242
1243 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
1244
1245         * process.c: ProcessStartInfo may have only filename set and
1246         arguments can be NULL.
1247
1248 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1249
1250         * icall.c: fix leak found by Robert Jordan.
1251
1252 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
1253
1254         * marshal.c, marshal.h: generate managed method to access an element
1255         of a multi-dimensional array.
1256
1257 2006-11-30  Paolo Molaro (lupus@ximian.com)
1258
1259         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
1260
1261 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1262
1263         * icall.c: back out GetFields () fix until the serialization code is
1264         fixed to not depend on the incorrect behaviour.
1265
1266 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
1267
1268         * profiler.c: provide defaults if none are set.
1269
1270 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
1271
1272         * Makefile.am, attrdefs.h: new public header file with
1273         constants for attributes for use by embedders.
1274
1275 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
1276
1277         * icall.c: GetFields () fix for bug #80064.
1278
1279 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
1280
1281         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
1282         removed long unused icalls.
1283
1284 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
1285   
1286         * marshal.c: 
1287                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
1288                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
1289                 can be generated without a delegate class.
1290                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
1291         
1292         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
1293
1294 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1295
1296         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
1297         #80069.
1298
1299 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1300
1301         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
1302         icall-def.h: added icalls needed by System.GC.
1303
1304 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
1305
1306         * loader.c: ensure the class in catch clauses is handled
1307         correctly for generics methods (fixes bug#79980).
1308
1309 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
1310
1311         * monitor.h, monitor.c: added mono_locks_dump () function
1312         to help debug deadlocks involving managed locks.
1313
1314 2006-11-13  Dick Porter  <dick@ximian.com>
1315
1316         * file-io.c (get_file_attributes): If the file is a symlink try
1317         and get the stat data for the target, but also add the
1318         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
1319         the specs for the windows symlink support, but will probably have
1320         to be reworked when I have test data from a vista machine.  Fixes
1321         bug 79887.
1322
1323 2006-11-13  Dick Porter  <dick@ximian.com>
1324
1325         * gc.c (mono_domain_finalize): 
1326         * marshal.c (mono_delegate_begin_invoke): 
1327         * threadpool.c (socket_io_init, mono_thread_pool_init)
1328         (mono_thread_pool_finish): 
1329         * monitor.c (mono_monitor_try_enter_internal): 
1330         * threads.c (mono_thread_resume, mono_thread_init)
1331         (mono_thread_suspend_all_other_threads)
1332         (mono_thread_execute_interruption): 
1333         * appdomain.c (mono_domain_unload): Check for NULL error returns
1334         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
1335         75733.
1336
1337 2006-11-11  Miguel de Icaza  <miguel@novell.com>
1338
1339         * process.c
1340         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
1341         Only close the handle if the value of the handle is not
1342         INVALID_HANDLE_VALUE.  This just makes the process a bit more
1343         robust.
1344
1345         Improvement for #75733, so that we do not run into this problem. 
1346
1347         
1348         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
1349         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
1350         internal variables.  Fixes #79462 
1351         
1352
1353 2006-11-09  Dick Porter  <dick@ximian.com>
1354
1355         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
1356         Use poll() not select().  Fixes bug 79397.
1357
1358 2006-11-09  Raja R Harinath  <rharinath@novell.com>
1359
1360         Fix #79872
1361         * assembly.c (mono_assembly_load_from_full): Check that the given
1362         image has an assembly manifest.
1363
1364 2006-11-09  Ankit Jain  <jankit@novell.com>
1365
1366         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
1367         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
1368         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
1369
1370 2006-11-07  Dick Porter  <dick@ximian.com>
1371
1372         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
1373         Put the old resolver behaviour back for pre-2.0 profiles.
1374
1375 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
1376
1377         * threadpool.c: precise GC and locking fixes.
1378
1379 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
1380
1381         * class.c: don't load types that have an explicit unaligned
1382         managed reference. Provide better info in the TypeLoad exception.
1383         Part of the fix for bug #79744.
1384         * object.c: use the correct check for class type load issues.
1385
1386 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
1387
1388         * class.c: enforce alignment of fields with managed references
1389         even when Pack=1 is forced by the user (bug #77788).
1390
1391 2006-11-03  Dick Porter  <dick@ximian.com>
1392
1393         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
1394         If the address reverse lookup fails, return it as the hostname
1395         anyway.  Fixes bug 79721.
1396
1397 2006-11-03  Dick Porter  <dick@ximian.com>
1398
1399         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
1400         Fix build on Windows.
1401
1402 2006-11-02  Dick Porter  <dick@ximian.com>
1403
1404         * icall-def.h: 
1405         * object-internals.h: 
1406         * exception.c (mono_get_exception_thread_interrupted): 
1407         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
1408         Fixes bug 74525.
1409
1410         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
1411         Check for pending Thread.Interrupt.
1412
1413 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
1414         * loader.c: Fixed bug 79684.
1415
1416 2006-10-27  Dick Porter  <dick@ximian.com>
1417
1418         * file-io.c (get_file_attributes): Force symlinks to directories
1419         to be returned as a regular file.  Fixes bug 79733.
1420 2006-10-26  Dick Porter  <dick@ximian.com>
1421
1422         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
1423         CreateFile to open a directory then we need to set the
1424         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
1425
1426 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
1427
1428         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
1429         friends.
1430
1431 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1432
1433         * sgengc.c: small cleanup of timer code.
1434
1435 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
1436
1437         * sgen-gc.c: fix some warnings and start adding support for
1438         complete object removal on domain unload.
1439
1440 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
1441
1442         * assembly.c: build_assembly_name should not consider a version
1443         number without build or revision number invalid. Fixes bug #79715.
1444
1445 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
1446
1447         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
1448         call kernel32 function OutputDebugString directly.
1449         
1450         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
1451         
1452 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
1453
1454         * reflection.c: small cleanup, using a function to insert a MonoString
1455         in the string heap.
1456
1457 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
1458
1459         * reflection.c: moving GC fixes.
1460
1461 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
1462
1463         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
1464         all the objects with finalizers belonging to an unloading appdomain.
1465
1466 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
1467
1468         * sgen-gc.c: added ability to allocate even when the nursery is fully
1469         pinned and fixed a couple of bugs.
1470
1471 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
1472
1473         * threads.h: Revert the last change for now.
1474
1475         * threads.h (mono_thread_get_pending_exception): Rename this to
1476         mono_thread_get_undeniable_exception ().
1477
1478 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
1479
1480         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
1481         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
1482         when fname does not refer to valid assembly. This result in a more
1483         meaningful error message.
1484         * exception.c: added mono_get_exception_bad_image_format2 which 
1485         constructs a BadImageFormatException using the ctor taking a custom
1486         message and the file name. Passing in a NULL msg results in a default
1487         message.
1488         * exception.h: define mono_get_exception_bad_image_format2 function.
1489         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
1490         when file name pointed to an invalid IL image. Use 
1491         mono_get_exception_file_not_found2 to construct FileNotFoundException,
1492         as this results in a more meaningful error message.
1493
1494 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
1495
1496         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
1497         #79465.
1498
1499 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
1500
1501         * metadata.c (mono_type_size): Change the align parameter to guint32 for
1502         consistency with the other _size functions.
1503         (mono_type_stack_size): Ditto.
1504
1505         * class.c object.c icall.c: Fix warnings caused by the above change.
1506
1507         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
1508
1509         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
1510
1511         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
1512
1513 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1514
1515         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
1516         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
1517         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
1518         threadpool.h, threads-types.h: mark more internal functions.
1519
1520 2006-10-11  Dick Porter  <dick@ximian.com>
1521
1522         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
1523         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
1524         reproduce the bug even before applying the fix.)
1525
1526 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
1527
1528         * reflection.c: allow retrieving attributes for arguments in generic
1529         methods (bug #79241).
1530
1531 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
1532
1533         * debug-mono-symfile.c: properly check fopen () result (found by
1534         coverity).
1535
1536 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
1537
1538         * reflection.c: make error message clearer and fixed two
1539         issuelets found by Coverity.
1540
1541 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
1542
1543         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
1544
1545 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
1546
1547         * object-internals.h, gc-internal.h, profiler-private.h:
1548         mark internal functions.
1549
1550 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
1551
1552         * reflection.c: put data in the text section.
1553         * icall.c: recognize more types in type_from_typename ().
1554         * process.c, marshal.c: added some GC FIXMEs.
1555
1556 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1557
1558         * loader.c: check for NULL before initializing.
1559
1560 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
1561
1562         * gc.c (finalizer_thread): Use a non-alertable wait here.
1563
1564         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
1565         until the correct solution is found.
1566
1567 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1568
1569         * reflection.c (mono_module_get_object): Avoid an assert when operating on
1570         modules with no metadata. Fixes #79596.
1571
1572         * image.c (load_metadata_ptrs): Put back the error message when
1573         the #- heap is encountered since the support is not complete yet.
1574
1575 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1576
1577         * gc.c: do not allow the user to SuppressFinalize () a
1578         delegate because it would leak the trampoline if present.
1579
1580 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1581
1582         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
1583         PropertyPtr table.
1584
1585 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
1586
1587         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
1588
1589         * metadata.c (mono_metadata_get_param_attrs): Ditto.
1590
1591         * row-indexes.h: Add definitions for *Ptr tables.
1592
1593         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
1594
1595         * metadata.c (mono_metadata_translate_token_index): New helper function to
1596         translate table indexes used in uncompressed metadata.
1597         (mono_metadata_decode_table_row): Ditto.
1598         (mono_metadata_decode_table_row_col): Ditto.
1599
1600         * metadata.c: Add table schema for *Ptr tables.
1601
1602         * class.c loader.c: Use the new helper function to access the affected metadata
1603         tables.
1604         
1605         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
1606         #38532.
1607         
1608 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
1609
1610         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
1611         sequences which can be unbounded in size. Fixes #79583.
1612
1613 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
1614
1615         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
1616         static initialization.
1617
1618         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
1619
1620         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
1621
1622         * domain.c (mono_domain_free): Free up type_init_exception_hash.
1623
1624         * object.c (mono_runtime_class_init): Implement correct semantics when a static
1625         ctor fails, i.e. throw the same exception on subsequent accesses.
1626         
1627 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
1628
1629         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
1630         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
1631         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
1632         Handle marshalling of interfaces and VARIANTs contained in structs.
1633         
1634         Code is contributed under MIT/X11 license.
1635         
1636 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
1637
1638         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
1639         
1640         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
1641         mempool.
1642
1643 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1644
1645         * console-io.c: ignore previous SIGINT handler.
1646
1647 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
1648
1649         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
1650         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
1651         #79460, #79461, #79485.
1652
1653         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
1654
1655         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
1656         #79217.
1657
1658 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1659
1660         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
1661         could be generated from it.
1662
1663 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
1664
1665         * rand.c: fix read loop to correctly handle EINTR.
1666
1667 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1668
1669         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
1670         internal calls are defined to keep methods closer to the declaring
1671         type and allow a significant reduction in runtime relocations and
1672         memory usage.
1673
1674 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
1675
1676         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
1677         exception message to have FileNotFoundException use the default
1678         assembly load error message. Fixes bug #79426.
1679         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
1680
1681 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1682
1683         * threadpool.c: (start_thread_or_queue) use the root domain when
1684         creating the thread instead of the async object one.
1685
1686 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
1687
1688         * class.c, object.c, class-internals.h, reflection.c:
1689         for arrays, store element_size inside MonoClass (speedup
1690         for array object creation).
1691
1692 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
1693
1694         * icall.c: fixed CodeBase to use the file name and not the module
1695         name (bug #79365).
1696
1697 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1698
1699         * mono-debug.c, mono-debug.h: export find_method as
1700         mono_debug_find_method ().
1701
1702 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1703
1704         * debug-helpers.c, class-internals.h: added a few functions useful
1705         when debugging under gdb.
1706
1707 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1708
1709         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
1710         characters that need special handling.
1711
1712 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
1713
1714         * mono-config.c: make the os/cpu specification more flexible,
1715         allowing lists and negation.
1716
1717 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
1718
1719         * marshal.c: COM Interop fixes. Handle case where method->klass.
1720         is interface. Handle BSTR/MonoString when null. Use CDECL as 
1721         calling convention on non-windows platforms. This is for
1722         compatibility with XPCOM and MainWin COM.
1723         
1724         Code is contributed under MIT/X11 license.
1725         
1726
1727 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
1728
1729         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
1730         correctly. Fixes #79217.
1731
1732         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
1733
1734 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
1735
1736         * mono-config.c: allow both an os and cpu attribute for dllmap
1737         and dllentry elemnets to enable a single config file to be used
1738         for multiple architectures.
1739
1740 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
1741
1742         * loader.c: MonoLoaderError was cleared too soon on load failure.
1743         Fixes bug #79424.
1744
1745 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
1746
1747         * icall.c: use the defining class vtable when accessing a
1748         static field, not a pobblibly derived class.
1749
1750 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
1751
1752         * icall.c string-icalls.c: Remove references to unicode.h.
1753
1754         * unicode.h unicode.c Makefile.am: Remove these unused source files.
1755
1756         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
1757
1758         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
1759         indicating the image where custom marshaller types should be looked up.
1760         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
1761         custom marshallers, instead of corlib. Fixes #79425.
1762
1763 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
1764
1765         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
1766
1767 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
1768
1769         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
1770         Implement Environment.ProcessorCount.
1771         
1772         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
1773         Implement Environment.ProcessorCount.
1774         
1775         * icall.c: 
1776         Add Environment.ProcessorCount icall.
1777         
1778         Patch by Jason McFall.
1779
1780 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1781
1782         * assembly.c: don't append .exe/.dll when the filename already contains
1783         one of those extensions.
1784
1785 2006-09-12  Martin Baulig  <martin@ximian.com>
1786
1787         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
1788         to array interfaces.
1789
1790 2006-09-11  Martin Baulig  <martin@ximian.com>
1791
1792         * reflection.c (mono_image_build_metadata): Create the
1793         MethodImpl's after emitting all types and methods, so we don't
1794         need another fixup pass for them.
1795
1796 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1797
1798         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1799         change.
1800
1801 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1802
1803         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1804         unload.
1805
1806 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1807
1808         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1809         args is not set. Fixes #78926.
1810
1811 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1812
1813         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1814
1815         * image.c (load_class_names): Move this to class.c, and rename it to 
1816         'mono_image_init_name_cache'.
1817         (load_modules): Fix a warning.
1818
1819         * class.c icall.c image.c: Initialize image->name_cache lazily.
1820
1821         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1822         on its name using information in the AOT file.
1823
1824         * class.c (mono_class_from_name): Use the new hook function.
1825
1826 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1827
1828         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1829         correctly.
1830
1831         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1832         Fixes #79289.
1833         
1834 2006-09-06  Martin Baulig  <martin@ximian.com>
1835
1836         * icall.c (mono_lookup_internal_call): Small fix.
1837
1838 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1839
1840         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1841         double g_free.
1842
1843 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1844
1845         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1846         when --debug is specified.
1847
1848 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1849
1850         * class.c (setup_generic_array_ifaces): Fix a warning.
1851
1852 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1853
1854         * Temporarily remove the patch to assemly.c that checks the
1855         assembly versions as it breaks our gacutil.
1856
1857 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1858
1859         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1860
1861         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1862         a net 1.0 runtime.
1863
1864         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1865         created using the default ctor. Fixes #79152.
1866         (mono_string_builder_to_utf16): Ditto.
1867
1868 2006-09-01  Martin Baulig  <martin@ximian.com>
1869
1870         Fix handling of the generic array interfaces.
1871
1872         * class-internals.h
1873         (MonoDefaults): Removed `generic_array_class' and added
1874         `generic_ilist' class.
1875
1876         * class.c
1877         (mono_bounded_array_class_get): Add the new generic array interfaces.
1878         (setup_generic_array_ifaces): New static method; create vtable
1879         entries for each method in the generic array interfaces.
1880
1881         * metadata.c
1882         (select_container): Allow "parent-less" generic methods.
1883
1884         * marshal.c
1885         (mono_marshal_get_generic_array_helper): New public method.
1886
1887         * icall.c
1888         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1889         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1890         moved the interncall into System.Array.
1891
1892 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1893
1894         A few more cases of avoiding work on types with ->byref set.
1895         Has the real fix for #79238
1896         * icall.c (is_generic_parameter): New helper.
1897         (ves_icall_Type_GetGenericParameterPosition): Use it.
1898         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1899         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1900         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1901         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1902         reference types.
1903         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1904         reference types.
1905         (ves_icall_Type_get_IsGenericInstance): Likewise.
1906         (ves_icall_Type_get_IsGenericType): Likewise.
1907
1908 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1909
1910         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1911         class if possible.
1912
1913         * mempool.h (mono_mempool_get_allocated): New helper function.
1914
1915         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1916         change.
1917
1918         * mempool.c: Fix warnings and the calculation of stats.
1919
1920         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1921
1922         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1923
1924         * loader.c (mono_get_method_from_token): Update method_count stat.
1925
1926         * class-internals.h (MonoStats): Add some stats.
1927
1928 2006-08-31 Robert Jordan  <robertj@gmx.net>
1929
1930         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1931         with managed variants.
1932         All code is contributed under the MIT/X11 license.
1933         
1934 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1935
1936         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1937         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1938
1939         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1940
1941         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1942         with cycles in classes.
1943
1944         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1945
1946         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1947         missing a [MarshalAs] directive. Fixes #79203.
1948
1949         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1950         klass->marshal_info. Fixes #79217.
1951
1952 2006-08-30  Martin Baulig  <martin@ximian.com>
1953
1954         Committing a patch from Joachim Ante <joe@otee.dk>:
1955         Add support for binary data symbol stores.
1956
1957         * debug-mono-symfile.c
1958         (mono_debug_open_mono_symbol_file): Renamed into
1959         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
1960         arguments.
1961
1962         * mono-debug.c
1963         (mono_debug_open_image): Added `raw_contents' and `size' args.
1964         (mono_debug_init_2_memory): New public function.
1965
1966 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
1967
1968         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
1969
1970 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1971
1972         * appdomain.c: implement support for ShadowCopyFiles.
1973
1974 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
1975
1976         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
1977         when value is NULL (and should remove CID #51).
1978
1979 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1980
1981         * image.c: moved 2 functions to ../utils.
1982
1983 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1984
1985         * gc.c: cope with the target object of a GC handle being NULL
1986         (bug #78877).
1987
1988 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1989
1990         * class.c: recursively check parent's explicit implementations
1991         of interface methods (fixes bug #79125).
1992
1993 2006-08-19  Miguel de Icaza  <miguel@novell.com>
1994
1995         * filewatcher.c: Avoid warnings when building, do not redefine
1996         constants that are defined.
1997
1998         Remove warnings.
1999
2000 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2001
2002         * image.c: don't fail when the link points to an absolute path.
2003
2004 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
2005
2006         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
2007         Fix CID #3.
2008
2009 2006-08-17  Miguel de Icaza  <miguel@novell.com>
2010
2011         * image.c (full_path): A new method used to obtain the actual path
2012         of an assembly even in the presence of symbolic links.  
2013
2014         This is necessary for the case where we are running a binary that
2015         has been GACed, but we are using the "published" path name
2016         ($prefix/mono/1.0/blah.exe) which happens to point to the real
2017         file in the GAC.
2018
2019         This was the source of the failure for the `xsp' command with the
2020         recent AppDomain changes, as far as the runtime was concerned,
2021         there were two different assemblies: $prefix/mono/1.0/blah.exe and
2022         $prefix/mono/gac/blah/version/blah.exe.
2023
2024         (do_mono_image_open): use full path
2025
2026 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2027
2028         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
2029
2030 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
2031
2032         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
2033         domain_id is supplied. Fix CID #241 and corlib's unit tests.
2034
2035 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2036
2037         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
2038         small structures. Fixes #78990.
2039
2040 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2041
2042         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
2043
2044         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
2045
2046 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2047
2048         * appdomain.c:
2049         * marshal.c: don't load all the assemblies from a domain into newly
2050         created ones. The new domains might have different rules and load
2051         assemblies from different locations. Fixes bug #76757.
2052
2053         Patch by Lluis. Conflicts resolved by Brian Crowell.
2054
2055 2006-08-16  Alp Toker  <alp@atoker.com>
2056
2057         * socket-io.c: First half of the fix for #79084.
2058         Set sa_size to the length of the content, not that of the struct.
2059         Don't add NULL suffix to the content, this should be done in
2060         managed code if needed.
2061
2062 2006-08-14  Raja R Harinath  <rharinath@novell.com>
2063
2064         Fix part of #79012
2065         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
2066         mono_metadata_parse_type returns NULL.
2067
2068 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
2069
2070         * normalization-tables.h : new file for string normalization data.
2071         * locales.c, locales.h, icall.c :
2072           added load_normalization_resource() for string normalization,
2073           and icall as well.
2074         * Makefile.am : added normalization-tables.h to the sources.
2075
2076 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
2077
2078         * marshal.c: Add more helper functions to reduce code duplication and use them
2079         everywhere.
2080
2081 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
2082
2083         * marshal.c: Fix non-x86 stdcall warnings.
2084         
2085         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
2086         them everywhere.
2087
2088 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
2089
2090         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
2091         type check on multi-dimensional arrays. Fixes #79000.
2092
2093 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
2094
2095         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
2096         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
2097         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
2098         * class-internals.h: add is_com_object to class structure.
2099         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
2100         null checks to COM object marshalling. Fix .ctor call on RCW.
2101         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
2102         
2103         All code is contributed under the MIT/X11 license.
2104
2105 2006-08-09  Dick Porter  <dick@ximian.com>
2106
2107         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
2108         racing mono_monitor_allocator_lock() somewhere, so don't delete
2109         the critical section for now.  Found by running and exiting
2110         monodevelop.
2111
2112 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
2113
2114         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
2115         (ves_icall_System_ComObject_FindInterface): Ditto.
2116         (ves_icall_System_ComObject_CacheInterface): Ditto.
2117
2118         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
2119         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
2120
2121 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2122
2123         * threadpool.c: treat pipes from process asynchronous reads as sockets
2124         when reading from them, so we get select/poll or epoll to wait for
2125         data.
2126
2127 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
2128
2129         * loader.c: Fix a typo (CID #233) in the null check.
2130
2131 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
2132
2133         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
2134         Hopefully fixes #78949.
2135         
2136         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
2137         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
2138         bytes. Fixes #78972.
2139
2140 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2141
2142         * filewatcher.c: we need to set errno here.
2143
2144 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2145
2146         * filewatcher.c: let Win32Exception get the error value.
2147
2148 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2149
2150         * filewatcher.c: translate errno into win32 errors for Win32Exception
2151         to know what happened.
2152
2153 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
2154
2155         * threadpool.c: Fix more warnings.
2156
2157         * assembly.c (search_loaded): Fix warnings.
2158
2159         * threadpool.c (mono_thread_pool_finish): Fix warnings.
2160         (mono_async_invoke): Ditto.
2161
2162 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
2163
2164         * object.c (mono_remote_class_vtable): Need to create proxy vtable
2165         entries for __ComObject type in addition to ComImport types.
2166         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
2167         about hash table.
2168         
2169         All code is contributed under the MIT/X11 license.
2170
2171 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2172
2173         * image.c: avoid tentative loading of modulerefs that contain
2174         no metadata (P/Invoke library names).
2175
2176 2006-07-28  Dick Porter  <dick@ximian.com>
2177
2178         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
2179         mono_loader_lock() somewhere, so don't delete the critical section
2180         for now.  Found by running and exiting monodevelop.
2181
2182 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2183
2184         * filewatcher.c: define the inotify syscalls when we're building on
2185         linux and have sys/syscall.h. The build system might not have support
2186         for inotify but the target system might have it.
2187
2188 2006-07-26  Miguel de Icaza  <miguel@novell.com>
2189
2190         * domain.c: Documentation updates.
2191
2192         * loader.c (mono_free_method): Do not release the method
2193         information if we are being profiled, as profilers will use this
2194         information at shut down to present some data to the user.
2195
2196         This is needed so that the profiler does not crash, as the
2197         profiler tends to keep MonoMethods around, and they might become
2198         invalid if we free these.
2199
2200         (mono_get_method_constrained): Return the original CIL stream
2201         method as well, so verification can be performed against it.
2202
2203 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2204
2205         * filewatcher.[ch]: support for inotify file system watcher.
2206         * icall.c: add new internal calls for the inotify file system watcher.
2207
2208 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2209
2210         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
2211         #78888.
2212
2213 2006-07-20  Dick Porter  <dick@ximian.com>
2214
2215         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
2216         warning.
2217
2218 2006-07-20  Dick Porter  <dick@ximian.com>
2219
2220         * threads.c (start_wrapper): Do the thread cleanup while we still
2221         hold a reference to its object.  Fixes bug 78123.
2222
2223 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
2224
2225         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
2226         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
2227           "managed-to-managed".
2228         * icall.c: Redirect string constructors that take sbyte* to
2229           ves_icall_System_String_ctor_RedirectToCreateString.
2230         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
2231           to CreateString () methods with matching signature.
2232         * reflection.c: Use original security informations for
2233           MONO_WRAPPER_MANAGED_TO_MANAGED.
2234         * security-manager.c: Use original security informations for
2235           MONO_WRAPPER_MANAGED_TO_MANAGED.
2236         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
2237           that is a placeholder and only its address should be used.
2238         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
2239           that is a placeholder and only its address should be used.
2240
2241 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
2242
2243         Begin implementing COM Interop.
2244         * appdomain.c: Increment corlib version.
2245         * class.c: Set ComImport classes' parent to __ComObject.
2246         * loader.c: Mark cominterop methods as such.
2247         * domain.c: Add __ComObject class to MonoDefaults structure.
2248         * image.c: Add 2 hashtables to the image for COM Interop related methods
2249         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
2250         using the mempool allocator
2251         
2252         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
2253         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
2254         declaration for mono_metadata_type_dup_mp.
2255         
2256         * debug-helpers.c: Added strings for two additional wrapper types
2257         * object.c: Create proxy objects for ComImport classes
2258         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
2259         and added __ComObject class to MonoDefaults structure.
2260         
2261         * object-internals.h: Finish MonoRealProxy definition, and add definition of
2262         MonoComInteropProxy and MonoComObject.
2263         
2264         * marshal.c: Added support for COM Interop
2265         (signature_cominterop): Converts managed signature to corresponding
2266         unmanaged COM signature.
2267         (cominterop_get_function_pointer): gets unmanaged function pointer via
2268         COM object vtable
2269         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
2270         (cominterop_get_method_interface): returns interface type that method is defined on
2271         (mono_mb_emit_cominterop_call): emits native call to function pointer
2272         gotten from vtable
2273         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
2274         that matches signature of unmanaged function.
2275         (cominterop_get_native_wrapper): wrapper around adjusted method call.
2276         (cominterop_get_invoke): forwards call from proxy to __ComObject
2277         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
2278         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
2279         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
2280         
2281         * marshal.h: Added Marshal icall declarations.
2282         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
2283         so we can access them in finalizer
2284         
2285 2006-07-14  Dick Porter  <dick@ximian.com>
2286
2287         * object.c (mono_type_initialization_cleanup): Fix a race
2288         condition by temporarily commenting out the critical section
2289         deletion.
2290
2291 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
2292
2293         * reflection.c (create_custom_attr): Fix some warnings.
2294         (create_custom_attr_data): Ditto.
2295         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
2296         types. Fixes #78855.
2297
2298 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
2299
2300         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
2301
2302         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
2303
2304 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
2305
2306         * reflection.c (resolve_object): Add support for DynamicMethod.
2307
2308         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
2309         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
2310
2311 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
2312
2313         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
2314         don't leak GPtrArray's pdata has we have no use (nor free) for it.
2315
2316 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
2317
2318         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
2319         Fixes #77888.
2320
2321 2006-06-30  Raja R Harinath  <rharinath@novell.com>
2322
2323         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
2324         slightly: remove a shadow local variable.
2325
2326 2006-06-29  Raja R Harinath  <rharinath@novell.com>
2327
2328         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
2329         definition that introduces the virtual function slot.
2330         Also fix Coverity #105.
2331
2332 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
2333
2334         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
2335         for dynamic assemblies. Fixes #78724.
2336
2337 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
2338
2339         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
2340         Fixes #78722.
2341
2342 2006-06-21  Martin Baulig  <martin@ximian.com>
2343
2344         * reflection.c
2345         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
2346         fixes #76484.
2347
2348 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
2349
2350         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
2351
2352 2006-06-20  Raja R Harinath  <rharinath@novell.com>
2353
2354         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
2355         nor TYPEREFs.
2356         * class.c (mono_class_create_from_typespec): Add 'context' argument.
2357         Inflate result if necessary.
2358         (mono_class_get_full): Remove old version.  Rename from
2359         'mono_class_get' and add 'context' argument.  Pass it to
2360         ..._create_from_typespec.
2361         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
2362         (mono_ldtoken): Revert change below.
2363
2364 2006-06-20  Martin Baulig  <martin@ximian.com>
2365
2366         * class.c (mono_ldtoken): Don't pass the generic context to
2367         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
2368
2369 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
2370
2371         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
2372         and later freeing it. Fixes #78638.
2373
2374 2006-06-15  Miguel de Icaza  <miguel@novell.com>
2375
2376         * icall.c (mono_class_get_throw): Revert over-zealous error
2377         throwing, the caller for mono_class_get_throw will cope with
2378         errors when classes are not properly initialized already.
2379
2380         The code still copes with loader exceptions though.
2381
2382         Fixes the regression in reftype1 and reftype3 from the CAS tests.
2383         
2384 2006-06-14  Miguel de Icaza  <miguel@novell.com>
2385
2386         Fixes the `make run1' version of RuntimeAbort (to be commited,
2387         source is in Bugzilla).
2388         
2389         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
2390         FALSE on class loading failure instead of returning true.
2391
2392         * class.c (mono_class_create_from_typedef): It is possible for
2393         mono_metadata_interfaces_from_typedef_full to fail if a class is
2394         not found, cope with this.
2395         
2396
2397 2006-06-14  Dick Porter  <dick@ximian.com>
2398
2399         * socket-io.c: 
2400         * process.c: Fix a bunch of signed/unsigned warnings from gcc
2401         4.1.1
2402
2403 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
2404
2405         * culture-info-table.h : oops, forgot to make it nsync with r61548.
2406
2407 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
2408
2409         * icall.c: Another fix for building mono in Visual Studio.
2410
2411 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
2412
2413         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
2414         
2415 2006-06-09  Martin Baulig  <martin@ximian.com>
2416
2417         * debug-mono-symfile.c: Put this back and really fix it this
2418         time. Sorry for all the trouble.
2419
2420 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
2421
2422         * icall.c (mono_class_get_throw): Fix a warning.
2423         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
2424         ReflectionTypeLoadException if needed. Fixes #78606.
2425
2426         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
2427         (mono_class_init): Ditto.
2428
2429         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
2430         ref_only exceptions.
2431         (mono_loader_clear_error): Make this work even if there is no error.
2432
2433 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
2434
2435         * object-internals.h marshal.c marshal.h icall.c: Implement method 
2436         Marshal.GetComSlotForMethodInfo using internal call.
2437
2438 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
2439
2440         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
2441         a function for signalling it.
2442
2443         * class.c (mono_class_from_typeref): Use the new kind of loader error when
2444         a referenced assembly is not found.
2445
2446         * loader.c (mono_loader_error_prepare_exception): Add support for 
2447         LOADER_ERROR_ASSEMBLY. Fix formatting.
2448
2449 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
2450
2451         * domain.c appdomain.c class-internals.h marshal.c: Add support 
2452         for VARIANT marshalling on windows and increment corlib version
2453         since Variant struct was added.
2454
2455 2006-06-03  Miguel de Icaza  <miguel@novell.com>
2456
2457         * debug-mono-symfile.c: Revert Martin's previous patch which broke
2458         stack trace line information:
2459
2460         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
2461         (Martin) when looking up B which is between A and C, return A not C.
2462
2463         Bug is #78573.
2464
2465         Thanks to Alexander Olk for tracking this down.
2466
2467 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
2468
2469         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
2470         
2471         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
2472         avoid clobbering its value.
2473         (mono_string_to_lpstr): Fix a warning on windows.
2474
2475 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
2476
2477         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
2478
2479         * reflection.c loader.c: Removed references to 'dummy' flag.
2480
2481         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
2482
2483         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
2484         it gets GC tracking.
2485
2486         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
2487         GC tracking.
2488         
2489         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
2490
2491         * marshal.c threadpool.c: Update callers of mono_async_result_new.
2492
2493         * appdomain.c: Bump corlib version.
2494
2495 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2496
2497         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2498         CEE_STIND_REF when working with object references.
2499
2500 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
2501
2502         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
2503         Fixes #78539.
2504
2505 2006-05-30  Miguel de Icaza  <miguel@novell.com>
2506
2507         * loader.c (method_from_memberref): Fix argument value for
2508         mono_loader_set_error_method_load (I was passing the MonoClass
2509         instead of the class name char *).
2510
2511 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2512
2513         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2514         CEE_STIND_REF when working with object references.
2515
2516 2006-05-30  Martin Baulig  <martin@ximian.com>
2517
2518         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
2519         mono_method_full_name() change and replace the ':' with a '.'
2520         here.
2521
2522 2006-05-30  Martin Baulig  <martin@ximian.com>
2523
2524         * debug-mono-symfile.c
2525         (mono_debug_symfile_lookup_location): Fix the algorithm:
2526         when looking up B which is between A and C, return A not C.
2527
2528 2006-05-29  Martin Baulig  <martin@ximian.com>
2529
2530         * mono-debug.h
2531         (MonoDebugMethodInfo): Make the typedef public.
2532         (MonoDebugSourceLocation): New public struct.
2533
2534         * mono-debug.c
2535         (mono_debug_source_location_from_address): Removed.
2536         (mono_debug_source_location_from_il_offset): Removed.
2537         (mono_debug_il_offset_from_address): Removed.
2538         (mono_debug_address_from_il_offset): Removed.
2539         (mono_debug_lookup_method): New public function.
2540         (mono_debug_lookup_source_location): New public function; replaces
2541         the old mono_debug_source_location_from_*() functions; see the
2542         inline documentation.
2543         (mono_debug_free_source_location): New public function.
2544         (mono_debug_print_stack_frame): New public function; see the
2545         inline documentation.
2546
2547         * debug-mono-symfile.c
2548         (mono_debug_find_source_location): Renamed into
2549         mono_debug_symfile_lookup_location(); only take a
2550         `MonoDebugMethodInfo *' and an `offset' argument; added inline
2551         documentation.
2552         (mono_debug_find_method): Renamed into
2553         mono_debug_symfile_lookup_method().
2554
2555 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
2556
2557         * assembly.c (mono_assembly_open_full): Dont overwrite the status
2558         returned by mono_image_open_full ().
2559
2560         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
2561         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
2562         #78517.
2563
2564         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
2565         #78518.
2566
2567 2006-05-27  Miguel de Icaza  <miguel@novell.com>
2568
2569         * class.c (mono_class_from_typeref): handle missing images
2570         earlier, deals with bug #78418.   Refactor code; 
2571
2572         Fix a warning introduced in my previous commit (some stale code
2573         from before I revisited my patch).
2574
2575         * class.c (mono_class_create_from_typedef): On failure, remove the
2576         class from the MonoImage->class_cache as the class is not
2577         initialized;   Fixes the leak pointed out by Paolo.
2578
2579 2006-05-25  Dick Porter  <dick@ximian.com>
2580
2581         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
2582         DeleteCriticalSections until I figure out which one may still be
2583         sometimes locked when mono_thread_cleanup is called.
2584
2585 2006-05-24  Dick Porter  <dick@ximian.com>
2586
2587         * threads.c (mono_thread_cleanup): Move the threading cleanup out
2588         of mono_thread_manage and back into its own function, so it can be
2589         called after the finalizer thread has finished.
2590
2591         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
2592
2593 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
2594
2595         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
2596         Fixes #78495.
2597
2598         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
2599         with non-blittable elements.
2600         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
2601
2602 2006-05-24  Martin Baulig  <martin@ximian.com>
2603
2604         * mono-debug-debugger.h (MonoDebuggerEvent): Added
2605         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
2606
2607         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
2608         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
2609         `mono_debugger_event_handler' to NULL.
2610
2611 2006-05-24  Martin Baulig  <martin@ximian.com>
2612
2613         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
2614
2615 2006-05-24  Martin Baulig  <martin@ximian.com>
2616
2617         * mono-debug-debugger.h
2618         (mono_debugger_create_notification_function): Added
2619         `MonoCodeManager *' argument.
2620
2621 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
2622
2623         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
2624
2625 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
2626
2627         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
2628         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
2629         implementation.
2630
2631 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
2632
2633         * icall.c: precise GC support: objects can't be stored in unmanaged
2634         memory anymore, even if they are kept alive by other references: since
2635         they can move the GC needs to be able to always find them.
2636
2637 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2638
2639         * object.c: precise GC support for static fields. Support
2640         for moving GCs: write barriers and pinned allocation for interned
2641         strings.
2642
2643 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2644
2645         * domain.c, domain-internals.h: precise GC support for the MonoDomain
2646         structure.
2647
2648 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2649
2650         * class.c, gc.c: sgen and precise GC updates.
2651
2652 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
2653
2654         * marshal.h, marshal.c: added write barrier wrapper and precise type
2655         fixes.
2656
2657 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
2658
2659         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
2660         support.
2661
2662 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2663
2664         * reflection.c: precise and sgen GC updates.
2665
2666 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
2667
2668         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
2669
2670 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
2671
2672         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
2673
2674 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
2675
2676         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
2677         MONO_TYPE_OBJECT. Fixes #78462.
2678
2679 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
2680
2681         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
2682         and blittable types.
2683
2684 2006-05-17  Miguel de Icaza  <miguel@novell.com>
2685
2686         * class.c (mono_class_get_exception_for_failure): Implement parts
2687         of a TODO: if the loader error is set (instead of the class
2688         error), we return a Loader exception that can be properly thrown
2689         elsewhere.
2690
2691         This was exposed by some Winforms 2.0 code that I tried to run
2692         (Atsushi pointed me to it).
2693
2694 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
2695
2696         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
2697         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
2698         
2699         * marshal.c (emit_marshal_vtype): Add limited support for 
2700         UnmanagedType.LPStruct. Fixes #78427.
2701
2702         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
2703         Applied a patch from kangaroo to fix #77523.
2704
2705 2006-05-17  Martin Baulig  <martin@ximian.com>
2706
2707         * threads.c
2708         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
2709         (debugger_thread_created): Removed.
2710         (debugger_thread_exited): Removed.
2711
2712 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
2713
2714         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2715
2716         * object-internals.h (MonoReflectionResource): Sync with managed version.
2717
2718 2006-05-12  Wade Berrier <wberrier@novell.com>
2719
2720         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
2721
2722 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
2723
2724         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
2725         functions try to allocate from the image mempool.
2726
2727 2006-05-12  Dick Porter  <dick@ximian.com>
2728
2729         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
2730
2731 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
2732
2733         * object.c: The FieldGetter and FieldSetter methods require the full
2734         name of the class, not only the name. Fixes bug #78277.
2735
2736 2006-05-11  Miguel de Icaza  <miguel@novell.com>
2737
2738         * loader.c (method_from_memberref): Do not pass the NULL klass to
2739         mono_loader_set_error_() methods.  Pass the non-NULL value
2740         (class). 
2741
2742 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
2743
2744         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
2745         (mono_assembly_close): Null out assembly->image->references after freeing it.
2746
2747         * image.c (mono_image_close): Free image->references.
2748         
2749         * reflection.c (mono_image_basic_init): Fix a small memory leak.
2750
2751 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2752
2753         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
2754         before checking if it's NULL (g_assert).
2755
2756 2006-05-10  Martin Baulig  <martin@ximian.com>
2757
2758         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
2759         I thought I already killed that two months ago, but now it somehow reappeared.
2760
2761 2006-05-10  Martin Baulig  <martin@ximian.com>
2762
2763         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
2764
2765 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
2766
2767         * reflection.c: Allocate memory for dynamically created methods in the image
2768         mempools.
2769
2770 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2771
2772         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
2773         don't use the ad pointer before checking if it's NULL (g_assert).
2774
2775 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
2776
2777         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
2778         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
2779
2780         * marshal.c: Allocate all signatures from mempools.
2781
2782         * marshal.c: Allocate some more signatures from mempools.
2783
2784 2006-05-09  Miguel de Icaza  <miguel@novell.com>
2785
2786         * object.c (mono_load_remote_field): The code used to provide a
2787         temporary variable for returning results if the user did not
2788         provide a result pointer.  But our temporary variable was allocted
2789         on the satck.
2790
2791         Fix calling code to always pass a result area.   Coverity ID 103.
2792
2793 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2794
2795         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2796         value, not the old. Fixes #78312.
2797         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2798
2799         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2800         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2801         per-image cache.
2802
2803         * assembly.c (mono_assembly_close): Free image->references.
2804
2805         * assembly.c (mono_assembly_names_equal): Fix a warning.
2806         (mono_assemblies_cleanup): Cleanup more global data.
2807
2808         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2809
2810         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2811         ptr_cache and image->modules.
2812
2813         * image.c (mono_image_init): Allocate array_cache lazily.
2814         
2815 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2816
2817         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2818         behavior was changed recently and has bad side effects.
2819
2820 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2821
2822         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2823         
2824         * assembly.c (mono_assembly_close): Remove a debug printf.
2825
2826         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2827
2828         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2829         to also allow for temporary references between mono_image_open ()/close ().
2830
2831         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2832
2833 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2834
2835         * marshal.c: Fix support for dynamic methods.
2836
2837         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2838
2839         * marshal.c (mono_marshal_cleanup): New cleanup function.
2840
2841         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2842         image mempools.
2843
2844         * class.c (mono_class_init): Fix leaking class->nested_classes.
2845
2846         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2847
2848         * image.c (mono_image_init): Initialize the new cashes.
2849
2850         * image.c (mono_image_close): Destroy the new cashes.
2851
2852         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2853
2854         * mempool.c (mono_mempool_strdup): New helper function.
2855
2856         * class-internals.h: Add prototype for mono_loader_unlock ().
2857
2858         * domain.c (mono_jit_info_table_find): Fix a warning.
2859         (mono_debugger_check_runtime_version): Ditto.
2860
2861         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2862         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2863         functions to these modules.
2864
2865         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2866         metadata modules.
2867         
2868         * marshal.c (mono_free_bstr): Fix a warning.
2869
2870         * assembly.c (mono_assembly_open_full): Fix another small leak.
2871
2872         * object.c: Fix some unload leaks in the remoting code.
2873
2874         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2875         function.
2876
2877         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2878
2879         * reflection.c: Fix some unload leaks in dynamic assemblies.
2880
2881 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2882
2883         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2884         * marshal.h: Add BSTR support on Win32
2885         * icall.c: Add BSTR icalls
2886         * metadata.h: Add BSTR enums
2887
2888 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2889
2890         Work to catch the crash from #76795 and turn it into an
2891         exception.   As I stubbed out pieces of the VisualBasic support,
2892         I found a number of places where the code was failing and I added
2893         checks to those places. 
2894         
2895         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2896         function return a status code.  If we fail to parse the signature
2897         from mono_metadata_parse_generic_inst, return FALSE.
2898
2899         * loader.c (mono_get_method_from_token): If we fail to load the
2900         method (mono_class_get) return NULL.   
2901
2902         * (method_from_memberref): Return NULL if we are unable to parse
2903         the method signature
2904
2905         (mono_loader_error_prepare_exception): Since we now use the
2906         loader_error flag internally to stop processing, and obtaining
2907         exceptions that might be thrown will walk this code path the
2908         proper way of going from a MonoLoaderError into a
2909         MonoException was convoluted.   This new routine encapsulates the
2910         process of turning the error into an exception and *clearing* the
2911         error afterwards.
2912         
2913 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2914
2915         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2916         with missing assemblies), and to cope with:
2917
2918                 * Missing fieldref from a non-existing assembly.
2919                 * Missing methodref from a non-existing assembly.
2920
2921         The first batch of work to address *some* of the issues from 76661.
2922         
2923         * object.c (mono_class_create_runtime_vtable): If we fail to
2924         initialize the class raise the exception here. 
2925
2926         * metadata.c (mono_class_get_overrides_full): If any methods fail
2927         to load return the failure to the caller.
2928
2929         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2930         flagging assemblies that failed to load.   
2931
2932         Do not crash if we are unable to load the assembly.
2933
2934         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2935         assemblies. 
2936
2937         * loader.c (mono_loader_set_error_type_load): Change the
2938         convention to always pass unallocated strings, so we make our own
2939         copies (I know our own code had duplicated strings before, but
2940         this keeps the normal conventions).
2941         (method_from_memberref): Call mono_loader_set_error_method_load
2942         for all possible failures of loading the class. 
2943         Remove assert, turn into a loader error.
2944
2945         (mono_loader_error_to_exception): Move this routine from mini
2946         (mini_loader_error_to_exception) there was no need to have that in
2947         mini. 
2948
2949         * class.c (mono_class_from_typeref): If we were not able to load
2950         the assembly with mono_assembly_load_reference, call the
2951         mono_loader_set_error_type_load to register the problem.
2952
2953         (mono_class_setup_fields): If we fail to load the type from
2954         mono_metadata_parse_type_full, call mono_class_set_failure and
2955         break from the loop.
2956
2957         If class->exception_type is set, we do not layout the fields as
2958         that might crash the runtime, and instead return (from breaking
2959         from the previous loop).
2960
2961         (mono_class_setup_vtable): This now returns a boolean indicating
2962         whether the table was properly setup.   The decision is driven by
2963         mono_class_get_overrides_full which might run into non-existing
2964         methods. 
2965         
2966         (mono_class_init): Returns TRUE on success or FALSE if there was a
2967         problem in loading the type (incorrect assemblies, missing
2968         assemblies, methods, etc).
2969
2970         When we call mono_class_setup_fields we also check for a potential
2971         error inside this call (either a class exception or a general
2972         loader exception).
2973
2974         (mono_class_create_from_typedef): If the parent fails to load
2975         (calling mono_class_get_full) return NULL.
2976         
2977         ** Important **
2978
2979         calls to mono_metadata_parse_type_full should be checked
2980         everywhere and set the mono_class_set_failure
2981         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
2982
2983         The current patch checks the places where my manually constructed
2984         tests show the errors are showing up, but we should do it
2985         everywhere. 
2986
2987         ** Important2 **
2988
2989         mono_class_init return values should be tested everywhere, like
2990         the previous case this is something that we should audit
2991         everywhere and not only on the cases exposed by the tests I
2992         created. 
2993
2994 2006-04-26  Miguel de Icaza  <miguel@novell.com>
2995
2996         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
2997         boolean parameter and instead pass the information on `options'
2998         parameter (FileOptions).
2999
3000         * icall.c: Register the new signature for MonoIO.Open.
3001
3002         * debug-helpers.c (dis_one): Trying to understand how coverity
3003         works.  Fix Run 5, item 78.
3004
3005 2006-04-26  Dick Porter  <dick@ximian.com>
3006
3007         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
3008         dereference.
3009
3010 2006-04-25  Martin Baulig  <martin@ximian.com>
3011
3012         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
3013
3014         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
3015         debugger_thread_created().
3016         (debugger_gc_push_all_stacks): Don't handle the main thread in any
3017         special way.
3018         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
3019         (mono_debugger_finalize_threads): New function; undo the effects
3020         of mono_debugger_init_threads().
3021         (mono_debugger_create_all_threads): Removed.
3022
3023 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
3024
3025         * image.c (mono_image_close): Tidy up trace messages.
3026
3027         * assembly.c (mono_assembly_close): Ditto.
3028
3029         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
3030         no longer references an already freed assembly. Fixes #78168.
3031
3032 2006-04-21  Dick Porter  <dick@ximian.com>
3033
3034         * threads.c (mono_thread_detach): Fix reference counting when
3035         detaching threads.
3036
3037 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
3038
3039         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
3040         #78155.
3041
3042 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
3043
3044         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
3045         (mono_type_to_stind): Ditto.
3046
3047         * marshal.c: Use the new helper functions to simplify code.
3048
3049         * image.c (mono_image_close): Add some code for help debug assembly unloading
3050         problems.
3051
3052         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
3053         image mempool.
3054
3055         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
3056         assembly was already loaded in another appdomain. Fixes #78083.
3057
3058 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
3059
3060         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
3061         referenced assemblies.
3062         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
3063
3064         * domain.c (mono_domain_free): Add a trace message.
3065
3066         * appdomain.c (add_assemblies_to_domain): Ditto.        
3067
3068         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
3069         field.  
3070
3071 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
3072
3073         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
3074
3075 2006-04-12  Martin Baulig  <martin@ximian.com>
3076
3077         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
3078         `USE_INCLUDED_LIBGC'.   
3079
3080 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
3081
3082         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
3083         the patch contains ../ and a small directory name later. Hopefully fixes
3084         #78035.
3085
3086 2006-04-10  Martin Baulig  <martin@ximian.com>
3087
3088         Clean up the debugger's thread-handling code.
3089
3090         The debugger's thread-handling code has been moved from
3091         ../mini/debug-debugger.c to threads.c.  We now iterate directly
3092         over the `threads' hash, keep track of exiting threads and also
3093         use proper locking.
3094
3095         We can now debug XSP and XSP based applications with the debugger.
3096
3097         * object-internals.h (MonoThread): Added `gpointer end_stack'.
3098
3099         * threads.h
3100         (MonoThreadCallbacks): Removed; this was only used by the debugger.
3101         (mono_install_thread_callbacks): Likewise.      
3102
3103         * threads.c (mono_thread_callbacks): Removed.
3104         (debugger_thread_created, debugger_thread_exited): New static functions.
3105         (start_wrapper): Call debugger_thread_created().
3106         (thread_cleanup): Call debugger_thread_exited().
3107         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
3108         (mono_debugger_init_threads): New public function.
3109         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
3110         iterate directly over the `threads' hash and also use proper locking.
3111
3112         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
3113
3114         * mono-debug-debugger.h
3115         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
3116
3117 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
3118
3119         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
3120         argument type=array. Fixes #78057.
3121
3122 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
3123
3124         * culture-info-table.h : regenerated. Fixed bug #69652.
3125
3126 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
3127
3128         * loader.c metadata.c: Reapply a variant r59116.
3129         
3130         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
3131
3132         * class.c (mono_class_setup_interface_offsets): New internal function.
3133
3134         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
3135         interfaces too. Fixes #77398.
3136
3137         * reflection.c (encode_cattr_value): Add support for 
3138         parameter type=object, argument type=array.
3139         (load_cattr_value): Ditto. Fixes #77916.
3140
3141         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
3142         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
3143
3144         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
3145         a byval char array and CharSet is Ansi.
3146
3147         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
3148
3149 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
3150
3151         * metadata.c: Add some locking comments.
3152         
3153         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
3154         mempool.
3155         (mono_metadata_free_method_signature): Don't free the signature itself.
3156
3157         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
3158
3159         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
3160         reference the same MonoImage.
3161         (mono_assembly_load_from_full): Add an assert.
3162
3163 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
3164
3165         * image.c (mono_image_close): Don't put the image we are about to free into the
3166         loaded_images_guid_hash.
3167
3168         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
3169         to reduce code duplication.
3170
3171         * marshal.c: Register the native functions called by this module as icalls, to
3172         somewhat centralize the creation of MonoMethodSignature's.
3173
3174         * loader.c (mono_method_signature): Add a cache for method signatures.
3175
3176         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
3177         the parameter attributes of a method.
3178         (mono_metadata_parse_method_signature_full): Refactored the computation of
3179         parameter attributes into a separate function. Also avoid one allocation in
3180         most cases.
3181
3182         * assembly.c (mono_assembly_close): Ditto.
3183
3184         * image.c (mono_image_close): Log trace messages with INFO level.
3185
3186         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
3187
3188         * image.c reflection.c: Correct reference counting of image modules.
3189         
3190         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
3191         of this function from the image mempool.
3192         
3193         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
3194         to allow more cached types to be used.
3195
3196         * mono-debug.c (mono_debug_add_method): Appled patch from
3197         David S. Miller  <davem@sunset.davemloft.net>: Access 
3198         minfo->lexical_blocks[] entry elements using read32().
3199
3200 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
3201
3202         * loader.c (mono_free_method): No longer free the method header for non-dynamic
3203         methods as it is allocated from the mempool.
3204
3205         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
3206         image mempool.
3207
3208         * metadata-internals.h: Add comments describing the reference counting scheme
3209         used for MonoImage and MonoAssembly.
3210
3211         * image.c assembly.c reflection.c: Rework reference counting of images and 
3212         assemblies so they are freed when the runtime is shut down. Free some 
3213         additional memory structures when an image is unloaded.
3214         
3215 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
3216
3217         * class.c loader.c reflection.c: Allocate more data structures in
3218         the image mempool.
3219
3220 2006-03-31  Miguel de Icaza  <miguel@novell.com>
3221
3222         * icall.c
3223         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
3224         build on pre glib 2.4 systems.
3225
3226 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
3227
3228         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
3229
3230         * icall.c: Fix some warnings.
3231
3232 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
3233
3234         * culture-info-table.h : regenerated.
3235
3236 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
3237
3238         * threads.c, object-internals.h, verify.c: changed the culture caching
3239         code to use a normal MonoArray for storage so the GC can keep track of
3240         them easily. Fixed bits of the cache logic, too and simplified the
3241         code.
3242
3243 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
3244
3245         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
3246         thread for non-Boehm GCs.
3247
3248 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3249
3250         * domain.c, object.c, domain-internals.h: reduce the amount of memory
3251         needed to keep track of the data for static fields.
3252
3253 2006-03-29  Raja R Harinath  <rharinath@novell.com>
3254
3255         Fix #75172
3256         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
3257         for interface classes.  Use 'num_methods' instead.
3258         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
3259         before using '->vtable_size' field.
3260
3261 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
3262
3263         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
3264         doesn't contain managed pointers, so use a normal hashtable.
3265
3266 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
3267
3268         * reflection.c, class-internals.h, domain.c: fixed handling of types
3269         used as values for objects in custom attributes (bug #77915):
3270
3271 2006-03-24  Martin Baulig  <martin@ximian.com>
3272
3273         * class.c (mono_class_setup_fields): Added support for generic
3274         instances; fixes #77580.
3275
3276 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3277
3278         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
3279
3280 2006-03-24  Dick Porter  <dick@ximian.com>
3281
3282         * file-io.c (get_file_attributes): More stat macro breakage.
3283         Fixes bug 77759.
3284
3285 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
3286
3287         * profiler.c: added the file=filename option in the default profiler
3288         to output the profile data to filename.
3289
3290 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3291
3292         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
3293         bug #77877.
3294
3295 2006-03-22  Martin Baulig  <martin@ximian.com>
3296
3297         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
3298         allocated `MonoClassField *' in `fb->handle'.
3299
3300 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3301
3302         * class.c, image.c, metadata-internals.h: implemented new mechanism to
3303         allocate interface ID to save memory and allow better ID reuse on
3304         appdomain unload. setup_generic_vtable () removal from Martin.
3305
3306 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
3307
3308         * object.h, appdomain.c, domain.c, exception.c, icall.c,
3309         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
3310         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
3311         write barriers for reference stores with managed objects accessed with
3312         C structures in the runtime and in embedding programs.
3313
3314 2006-03-20  Raja R Harinath  <rharinath@novell.com>
3315
3316         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
3317         'interface_id' and 'max_interface_id' fields of MonoClasses
3318         representing open generic types.
3319
3320 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
3321
3322         * object.h, object.c, icall.c: added functions to deal with
3323         storing valuetypes that contain references in managed objects.
3324         * reflection.c, string-icalls.c, threads.c, marshal.c: small
3325         fixes and comments around uses of mono_array_addr ().
3326
3327 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
3328
3329         * object.h, icall.c, monitor.c: object.GetHashCode ()
3330         implementation that supports the moving garbage collector.
3331
3332 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
3333
3334         * icall.c, threads-types.h, threads.c: implemented finalizer for
3335         LocalDataStoreSlot.
3336
3337 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
3338
3339         * metadata.c (mono_type_size): Add a fixme.
3340         (mono_type_stack_size): Ditto.
3341
3342         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
3343         'type_forwarders' field.
3344
3345         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
3346         attribute from net 2.0.
3347
3348         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
3349         from class.c.
3350
3351         * class.c (mono_class_setup_fields): Fix a warning.
3352         
3353         * class.c (mono_class_from_name): Add support for assemblyref entries
3354         in the EXPORTEDTYPE table.
3355
3356         * reflection.c: Add support for handling type forwarders under net 2.0.
3357
3358         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
3359         
3360 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
3361
3362         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
3363         overwriting entries in ModuleBuild->types, also clean up the code
3364         a little. Fixes #77774.
3365
3366 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
3367
3368         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
3369         load friend assembly info when present.
3370
3371 2006-03-14  Raja R Harinath  <rharinath@novell.com>
3372
3373         Fix crasher on gtest-158.cs.
3374         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
3375         the return value if the MonoClass we want is yet in an
3376         inconsistent state.
3377         * class.c (mono_class_create_from_typedef): Add an comment
3378         explaining an order dependency between mono_class_setup_parent and
3379         mono_class_setup_mono_type.
3380
3381 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
3382
3383         * class.c: documentation updates and events bug fix.
3384
3385 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
3386
3387         * class.c: some cleanup, locking fixes.
3388
3389 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
3390
3391         * class.c: fix the generics code to setup nested
3392         type info to the instantiated type (bug #77770).
3393
3394 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
3395
3396         * marshal.c: fixed a few type correctness issues.
3397
3398 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3399
3400         * loader.c: the Set/Get/Addrtess array methods should be public.
3401
3402 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
3403
3404         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
3405         
3406         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
3407         info->wrapper.
3408
3409 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
3410
3411         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
3412
3413         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
3414
3415         * mempool.c (mono_mempool_alloc): Speed this up a bit.
3416         (mono_mempool_alloc0): Ditto.
3417
3418 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3419
3420         * socket-io.c:
3421         (create_object_from_sockaddr): it was allocating 4 extra bytes
3422         for the AF_UNIX data. Fixes bug #77747.
3423
3424 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
3425
3426         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
3427
3428 2006-03-09  Dick Porter  <dick@ximian.com>
3429
3430         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
3431         Fixes bug 76966 again.
3432
3433 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
3434
3435         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
3436         names from r57532
3437         * appdomain.c: Bumped corlib version to 48 (due to r57532)
3438
3439 2006-03-07  Martin Baulig  <martin@ximian.com>
3440
3441         * object.c
3442         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
3443
3444 2006-03-07  Martin Baulig  <martin@ximian.com>
3445
3446         * class.c
3447         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
3448         regression introduced in r56970; see gtest-252.cs.
3449
3450         * loader.c (mono_get_method_constrained): Correctly handle generic
3451         methods; see gtest-253.cs.
3452
3453 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
3454
3455         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
3456
3457 2006-03-04  Martin Baulig  <martin@ximian.com>
3458
3459         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
3460         compute the parent type at runtime, just like we're already doing
3461         it for interfaces.
3462
3463         * reflection.c
3464         (mono_reflection_bind_generic_parameters): Don't compute the
3465         parent type anymore.
3466
3467         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
3468
3469 2006-03-04  Martin Baulig  <martin@ximian.com>
3470
3471         * mono-debug-debugger.h
3472         (mono_debugger_create_notification_function): Allocate memory at
3473         runtime and return a pointer to it.
3474
3475 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
3476
3477         * assembly.c: Fix windows build.
3478         
3479         * assembly.c: Fix build.
3480
3481         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
3482
3483         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
3484         
3485 2006-03-03  Dick Porter  <dick@ximian.com>
3486
3487         * process.c
3488         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3489         Check parameters before dereferencing them.  Fixes Aaron's part of
3490         bug 77393.
3491
3492 2006-03-03  Raja R Harinath  <rharinath@novell.com>
3493
3494         Fix performance regression.
3495         * loader.c (find_method_in_class): Add 'from_class' argument.
3496         Rename 'klass' argument to 'in_class'.  The signature is compared
3497         against the method in 'in_class', and the corresponding method is
3498         returned from 'from_class'.
3499         (find_method): Walk both 'in_class' and 'from_class' in parallel.
3500         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
3501         type definition and generic instantiation in parallel.
3502         (mono_get_method_constrained): Update to changes.
3503
3504 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
3505
3506         * threads.c: make sure the domain is correct, too when doing
3507         mono_thread_attach ().
3508
3509 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
3510
3511         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
3512         windows. Fixes #77683.
3513
3514 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
3515
3516         * object.h, *: introduced specific way to set elements of an array
3517         of references to be used as write barrier. Still need to audit the
3518         uses of mono_array_addr.
3519
3520 2006-03-01  Miguel de Icaza  <miguel@novell.com>
3521
3522         * object-internals.h: New field to cache the assmebly name, patch
3523         from Tambet Ingo (tambet@ximian.com)
3524
3525 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
3526
3527         * decimal.h, class-internals.h, metadata-internals.h,
3528         file-io.h: mark a few function declarations as internal, to
3529         reduce the number of PLT entries.
3530
3531 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3532
3533         * file-io.c: fix typo in warning message.
3534
3535 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
3536
3537         * loader.c: on unix, lookup the "*A" version of a function
3538         if charset is auto as a second option before failing.
3539
3540 2006-02-28  Raja R Harinath  <rharinath@novell.com>
3541
3542         * class.h (mono_class_inflate_generic_method): Revert to two
3543         argument version.
3544         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
3545         (mono_class_inflate_generic_method_full): Add.
3546         * class.c (mono_class_inflate_generic_method_full): Rename from
3547         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
3548         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
3549         * loader.c, reflection.c: Update to changes.
3550
3551 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
3552
3553         * icall.c: const fixes and small improvements.
3554
3555 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3556
3557         * threadpool.c: for asynchronous connect(), enable the same workaround
3558         for BSD 6 as for the Mac. Fixes bug #77637.
3559
3560 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
3561
3562         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
3563         formatted classes. Fixes #77524.
3564
3565 2006-02-24  Raja R Harinath  <rharinath@novell.com>
3566
3567         * class.c (inflate_generic_type): Add a couple more
3568         micro-optimizations.
3569         (inflate_generic_context): Don't use the 'gmethod' from
3570         'inflate_with'.
3571         (mono_class_inflate_generic_method): If the method has generic
3572         parameters, but the passed-in context doesn't have a 'gmethod',
3573         create one.  Use the possibly simplified generic instantiation
3574         from the declaring class instead of the one passed in.
3575
3576 2006-02-24  Raja R Harinath  <harinath@gmail.com>
3577
3578         Make generic method signature and method header handling lazy.
3579         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
3580         (inflate_generic_header): Likewise.
3581         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
3582         parameter to avoid inflating types.
3583         (mono_get_inflated_method): Empty out.
3584         * class.h (mono_class_inflate_generic_method): Update to changes.
3585         * loader.c (mono_get_method_from_token): Don't parse signature for
3586         generic methods, nor methods of generic classes.
3587         (mono_method_signature): Rename from 'mono_method_signature'.
3588         Inflate signature on demand.
3589         (mono_method_get_header): Inflate method header on demand.
3590         * reflection.c: Update to changes.
3591
3592 2006-02-23  Raja R Harinath  <rharinath@novell.com>
3593
3594         * metadata.c (mono_metadata_inflate_generic_inst): If the
3595         instantiation is closed, don't bother expanding it in the new
3596         context.
3597         * class.c (inflate_generic_class): If the generic instantiation
3598         doesn't change after inflation, return the argument itself.
3599         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
3600         Add bounds checks.
3601         (inflate_generic_context): If neither the generic class nor the
3602         generic method instantiations change, return the original context.
3603         * reflection.c (mono_method_get_object): Do
3604         'mono_get_inflated_method' before accessing the ->klass field.
3605         (inflate_mono_method): Don't create a MonoGenericMethod unless
3606         necessary.
3607         (inflate_method): Don't pass a constructed type as the declaring
3608         type of a methodbuilder.
3609
3610 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
3611
3612         * object.c: fix memory overwrite.
3613
3614 2006-02-22  Dick Porter  <dick@ximian.com>
3615
3616         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
3617         it doesn't work any more.
3618         (mono_threads_request_thread_dump): Fix unused variable warnings.
3619
3620 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3621
3622         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
3623         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
3624         the public header file.
3625
3626 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
3627
3628         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
3629
3630 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
3631
3632         * class-internals.h, object.c: reduce the size of MonoVTable
3633         and store the interface_offsets array at negative offsets.
3634
3635 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
3636
3637         * metadata.c: tweak table descriptors data structures to reduce
3638         size and runtime relocations.
3639
3640 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3641
3642         * marshal.c: fix some types and opcodes to be type-safe
3643         in marshaling wrappers.
3644
3645 2006-02-21  Ankit Jain  <jankit@novell.com>
3646
3647         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
3648
3649 2006-02-21  Raja R Harinath  <rharinath@novell.com>
3650
3651         * metadata.c (get_constraints): Relax debugging checks for monodis.
3652
3653 2006-02-21  Ankit Jain  <jankit@novell.com>
3654
3655         * metadata.c (mono_metadata_load_generic_params): Move the code
3656         checking for ambiguous generic params from here to mono/dis/get.c
3657         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
3658
3659 2006-02-21  Raja R Harinath  <harinath@gmail.com>
3660
3661         Fix assertion triggered when compiling nemerle.
3662         * class.c (mono_get_shared_generic_inst): Rename from
3663         get_shared_inst and make non-static.
3664         * loader.c (mono_get_shared_generic_method): New.  Used to create
3665         the MonoGenericContext-equivalent of a MonoGenericContainer.
3666         (mono_get_method_from_token): Initialize the 'context' field of
3667         the created MonoGenericContainer.
3668         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
3669         * metadata.c (get_constraints): Add sanity check.
3670         * class-internals.h: Add new internal methods.
3671
3672         * reflection.c (verify_safe_for_managed_space): New sanity check.
3673         Currently checks that owner-less generic parameters aren't allowed
3674         in managed space.
3675         (mono_type_get_object): Use it.
3676         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
3677         that are now in mono_type_get_object.
3678         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
3679
3680 2006-02-19  Raja R Harinath  <harinath@gmail.com>
3681
3682         * metadata.c (mono_type_create_from_typespec): Rename from
3683         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
3684         argument and caching of types in the generic container.
3685         (unwrap_arrays, find_generic_param): Remove.
3686         * metadata-internals.h: Update.
3687         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
3688
3689 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
3690
3691         * class.c (mono_class_get_exception_for_failure): Fix a warning.
3692
3693         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
3694         return values. Fixes #77581.
3695
3696         * class.c (mono_fnptr_class_get): Switch name and name_space.
3697
3698         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
3699         classes and add support for [In, Out] attributes.
3700         (mono_marshal_free_asany): Ditto. Fixes #77524.
3701
3702 2006-02-18  Raja R Harinath  <harinath@gmail.com>
3703
3704         * class.c (mono_class_from_generic_parameter): Make more robust to
3705         incomplete MonoGenericContainers from monodis.
3706
3707 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3708
3709         * class-internals.h: added some more exception types.
3710         * class.c, metadata.c: added a few checks to handle missing
3711         types.
3712
3713 2006-02-17  Raja R Harinath  <rharinath@novell.com>
3714
3715         Use owner-less generic-params some more.
3716         * class.c (my_mono_class_from_generic_parameter): Remove.
3717         (mono_class_from_generic_parameter): Handle null image,
3718         param->name and param->owner.
3719         (mono_class_from_mono_type): Update.
3720         (mono_class_create_from_typespec): Remove 'container' parameter.
3721         If that parameter is non-null, the result is always inflated by
3722         'mono_class_get_full' anyway.
3723         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
3724         parameter.
3725         (mono_class_get_full): Update.
3726
3727         * class.c (inflate_generic_type) [GENERICINST]: If the generic
3728         instance is not open, don't bother inflating.
3729         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
3730         parse metadata for inflated classes.
3731         (_mono_class_get): Change GenericContext* parameter to
3732         GenericContainer*.
3733         (mono_class_create_from_typespec): Likewise.  Simplify, and
3734         implement trivially.  All the cases are handled in
3735         mono_class_from_mono_type.  Don't inflate returned class.
3736         (mono_class_get_full): Delegate GENERICINST optimization to
3737         inflate_generic_type.
3738         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
3739
3740 2006-02-16  Dick Porter  <dick@ximian.com>
3741
3742         * socket-io.c (create_object_from_sockaddr): Fix typo.
3743         (create_sockaddr_from_object): Check array lengths before
3744         potentially accessing items off the end.
3745         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
3746         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
3747         (ves_icall_System_Net_Sockets_Socket_Send_internal)
3748         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
3749         length checks to avoid wraparound overflows.
3750         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
3751         contents of the array of sockets
3752         (hostent_to_IPHostEntry2)
3753         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
3754         Check return value of inet_ntop ().
3755         (addrinfo_to_IPHostEntry): Fix typo
3756
3757 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3758
3759         Type metadata parsing doesn't use generic-instantiation information.
3760         * metadata.c (mono_metadata_parse_array_full): Change
3761         MonoGenericContext* parameter to MonoGenericContainer*.
3762         (mono_metadata_parse_type_full): Likewise.
3763         (mono_type_create_from_typespec_full): Likewise.
3764         (mono_metadata_parse_mh_full): Likewise.
3765         (mono_metadata_parse_generic_inst): Likewise.
3766         (do_mono_metadata_parse_generic_class): Likewise.
3767         (do_mono_metadata_parse_type): Likewise.
3768         * metadata-internals.h: Update to changes.
3769         * class.c (mono_class_find_enum_basetype): Likewise.
3770         (mono_class_setup_fields): Likewise.
3771         (mono_class_create_from_typespec): Likewise.
3772         * loader.c (method_from_methodspec): Likewise.
3773         (mono_get_method_from_token): Likewise.
3774         (mono_method_get_header): Likewise.
3775
3776 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3777
3778         * marshal.c: handle additional GENERICINST case (patch from
3779         Thong Nguyen <tum@veridicus.com>).
3780         Fix a few cases where LDIND_I/STIND_I was used for references.
3781
3782 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3783
3784         * reflection.c (mono_reflection_get_token): Remove unused variable.
3785
3786 2006-02-16  Martin Baulig  <martin@ximian.com>
3787
3788         * reflection.c (mono_reflection_get_token): Add support for fields
3789         in instantiated generic types.
3790
3791         * icall.c
3792         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3793
3794 2006-02-15  Martin Baulig  <martin@ximian.com>
3795
3796         * icall.c
3797         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3798         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3799         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3800         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3801
3802 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3803
3804         * class.c, metadata.c, metadata.h, object.c, icall.c,
3805         marshal.c: changed mono_type_get_underlying_type () to do
3806         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3807         Fixed handling of instantiated generic valuetypes (bug #75479).
3808
3809 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3810
3811         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3812         Delegate to mono_metadata_decode_value, and work on the returned value.
3813
3814         * icall.c (ves_icall_MonoType_GetGenericArguments):
3815         Add consistency check here too.
3816         
3817 2006-02-15  Ankit Jain  <jankit@novell.com>
3818
3819         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3820         char/short etc.
3821
3822 2006-02-15  Ankit Jain  <jankit@novell.com>
3823
3824         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3825         signed values, used only for representing lower bounds of arrays.
3826         (mono_metadata_parse_array_full): Use new
3827         mono_metadata_decode_signed_value to decode lower bounds.
3828
3829 2006-02-14  Martin Baulig  <martin@ximian.com>
3830
3831         * reflection.c
3832         (mono_reflection_get_token): Support "MonoGenericMethod" and
3833         "MonoGenericCMethod" and allow generic instances / methods.
3834
3835 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3836
3837         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3838         to obtain the terminal size using an ioctl.
3839
3840         * object.c (mono_nullable_init): Revert this as nullable reference
3841         types are not valid.
3842         (mono_nullable_box): Ditto.
3843
3844 2006-02-09  Dick Porter  <dick@ximian.com>
3845
3846         * threads.c (mono_thread_detach): Drop a reference to the thread
3847         we're detaching.
3848
3849 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3850
3851         * object.c (mono_nullable_init): Handle nullable reference types.
3852         (mono_nullable_box): Ditto. Fixes #77446.
3853
3854 2006-02-07  Martin Baulig  <martin@ximian.com>
3855
3856         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3857
3858 2006-02-07  Ankit Jain  <jankit@novell.com>
3859
3860         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3861         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3862         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3863         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3864         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3865         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3866
3867 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3868
3869         * class.c (mono_class_create_generic): Set type_token as well.
3870
3871         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3872         compatible with MS.
3873
3874 2006-02-02  Martin Baulig  <martin@ximian.com>
3875
3876         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3877         has never been used so far.
3878
3879 2006-02-02  Martin Baulig  <martin@ximian.com>
3880
3881         * mono-debug-debugger.h: Changed comment at the top of this file;
3882         the header is not installed, but it's safe to #include it from
3883         within the JIT.
3884
3885         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3886         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3887
3888 2006-02-02  Martin Baulig  <martin@ximian.com>
3889
3890         * mono-debug.h
3891         (MonoSymbolTable): Removed the `metadata_info' field.
3892
3893         * mono-debug.c
3894         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3895
3896         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3897         (mono_debugger_add_builtin_types): Removed.
3898         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3899         (mono_debugger_create_notification_function): We now operate on a
3900         pre-allocated area; take a `gpointer' and return `void'.
3901
3902         * mono-debug-debugger.c
3903         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3904         (mono_debugger_add_builtin_types): Removed.
3905
3906 2006-02-02  Martin Baulig  <martin@ximian.com>
3907
3908         * threads.c (mono_debugger_create_all_threads): New public method.
3909
3910 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3911
3912         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3913         breaks on several platforms.
3914
3915 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3916
3917         * assembly.c: the VS.NET build doesn't supply default values for
3918         MONO_ASSEMBLIES and MONO_CFG_DIR.
3919
3920 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3921
3922         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3923         helper function.
3924
3925         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3926
3927         * loader.c (method_from_memberref): Fix a warning.
3928
3929         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3930
3931         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3932         with explicit layout. Fixes #77433.
3933
3934 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3935
3936         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3937         max_interface_id is initialized before using it. Fixes #77398.
3938         (ves_icall_Type_GetInterfaces): Ditto.
3939
3940 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3941
3942         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3943         allocate memory for parameter attributes when parsing memberref
3944         signatures.
3945         * loader.c (mono_loader_set_error_method_load): Don't warn.
3946         (method_from_memberref): Ensure MissingMethodException gets thrown
3947         if method is not found.  Make warning more informative.
3948
3949 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3950
3951         Fix #77397
3952         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3953         return true if is byref.
3954         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3955         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3956         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3957
3958 2006-01-27  Raja R Harinath  <rharinath@novell.com>
3959
3960         Fix tests/find-method.2.il
3961         * loader.c (find_method, find_method_in_class): Remove is_inflated
3962         argument.  Revert 2006-01-18 change.
3963         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
3964         is generic, search for method in its generic definition.
3965         * class.c (mono_class_setup_vtable_general): Print generic
3966         arguments of generic types in debugging printf.
3967
3968 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
3969
3970         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
3971
3972         * threads.c (mono_threads_request_thread_dump): New helper function.
3973
3974 2006-01-25  Raja R Harinath  <rharinath@novell.com>
3975
3976         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
3977
3978 2006-01-25  Ankit Jain  <jankit@novell.com>
3979
3980         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
3981         move definition to ..
3982         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
3983         
3984 2006-01-25  Ankit Jain  <jankit@novell.com>
3985             Raja R Harinath  <rharinath@novell.com>
3986
3987         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
3988         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
3989         as necessary.
3990
3991 2006-01-25  Martin Baulig  <martin@ximian.com>
3992
3993         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
3994         `MonoDebuggerThread' into debug-debugger.c.
3995
3996 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
3997
3998         * profiler.c: fix printing of data.
3999
4000 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
4001
4002         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
4003           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
4004
4005 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
4006
4007         * object.c: fix deadlock related to string interning.
4008
4009 2006-01-23  Martin Baulig  <martin@ximian.com>
4010
4011         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
4012
4013         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
4014
4015 2006-01-23  Martin Baulig  <martin@ximian.com>
4016
4017         * mono-debug.h: Moved the prototypes of some functions which are
4018         used by the JIT here from mono-debug-debugger.h.
4019
4020 2006-01-21  Martin Baulig  <martin@ximian.com>
4021
4022         * Makefile.am: Don't install mono-debug-debugger.h.
4023
4024 2006-01-21  Martin Baulig  <martin@ximian.com>
4025
4026         * mono-debug-debugger.h: Enforce the private status of this header
4027         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
4028         Moved some stuff from mono-debugger-jit-wrapper.h here.
4029
4030 2006-01-20  Raja R Harinath  <rharinath@novell.com>
4031
4032         * class.c (mono_class_from_typeref): Add a sanity test to help
4033         catch lack of assembly load/search hooks.
4034
4035 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
4036
4037         * marshal.c (emit_struct_conv): Relax the fields with same offset
4038         check even more. Fixes #77230.
4039
4040 2006-01-18  Martin Baulig  <martin@ximian.com>
4041
4042         * loader.c (find_method_in_class): Added `gboolean is_inflated'
4043         argument; if false, we compare the uninstantiated signatures.
4044         (method_from_memberref): Compare the uninstantiated signatures;
4045         fixes #76417.
4046
4047 2006-01-18  Robert Jordan  <robertj@gmx.net>
4048
4049         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
4050         Clear the weak link. Fixes bug #77170.
4051
4052         * gc.c (mono_gchandle_free):
4053         Reflect *-gc.c changes (tiny optimization).
4054
4055 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
4056
4057         * metadata.c (mono_metadata_signature_dup): Applied patch from
4058         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
4059         Fixes #77288.
4060
4061 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
4062
4063         * marshal.c (emit_struct_conv): Allow fields with the same offset when
4064         marshalling from native to managed code. Fixes #77230.
4065
4066 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4067
4068         * threadpool.c: fix problem (Mac only) when more than one asynchronous
4069         connect. Fixes bug #77020.
4070
4071 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
4072
4073         * class.c: fixed id assignement for nested interfaces (bug #77275).
4074         Added also better info for --print-vtable debugging.
4075
4076 2006-01-12  Martin Baulig  <martin@ximian.com>
4077
4078         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
4079         interfaces on-the-fly; fixes #76625.
4080
4081         * class-internals.h
4082         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
4083         don't need that anymore.
4084
4085 2006-01-12  Miguel de Icaza  <miguel@novell.com>
4086
4087         * socket-io.c
4088         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4089         To avoid initing the nested_classes when not needed I turned the
4090         PeerCredData as a toplevel internal class, as it has to be shared
4091         anyways. 
4092
4093         Fixes the CASA issue.
4094
4095 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
4096
4097         * domain.c: Accessors for MonoJitInfo
4098
4099         * profiler-private.h: Add jitinfo to the end jit hook
4100
4101         * profiler.[ch]: Define new hooks, called after jitting which give
4102         the MonoJitInfo that was compiled
4103
4104 2006-01-10  Martin Baulig  <martin@ximian.com>
4105
4106         * class.c (mono_class_setup_events): Add support for generic
4107         classes; fixes #76440.
4108
4109 2006-01-06  Raja R Harinath  <rharinath@novell.com>
4110
4111         Fix #77160.
4112         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
4113         on passed-in method.
4114
4115 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
4116
4117         * object.c (mono_runtime_invoke_array): Add Nullable support.
4118
4119         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
4120
4121 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
4122
4123         * file-io.c: Don't consider sockets as directory and avoid an endless
4124         loop. Fix bug #76966.
4125
4126 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
4127
4128         * object.c (mono_nullable_init): New helper function.
4129         (mono_nullable_box): Ditto.
4130
4131         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
4132
4133         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
4134
4135         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
4136         
4137 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
4138
4139         * class.c (mono_class_is_assignable_from): Make T assignable to 
4140         Nullable<T>.
4141
4142 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
4143
4144         * appdomain.c: Bump corlib version to 46.
4145         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
4146         serialization purpose) and changed ves_icall_System_Reflection_
4147         Assembly_get_code_base signature to accept a boolean (to escape, or 
4148         not, the assembly code base).
4149
4150 2005-12-23  Dick Porter  <dick@ximian.com>
4151
4152         * icall.c: 
4153         * threads-types.h: 
4154         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
4155         CreateEvent icall now returns "created" boolean parameter.
4156
4157 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
4158
4159         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
4160         #76967.
4161
4162         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
4163         when attr_klass is an interface. Fixes #77045.
4164
4165 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
4166
4167         * marshal.c (emit_struct_conv): Fix previous patch.
4168         
4169         * marshal.c (emit_struct_conv): Add a check for fields with the same
4170         offset.
4171
4172 2005-12-20  Raja R Harinath  <rharinath@novell.com>
4173
4174         Fix regression in Mono.C5.
4175         * class.c (mono_class_create_generic): If 'klass' is an interface
4176         set up the interface offsets.
4177         (mono_class_is_assignable_from): Don't throw away generic arguments.
4178
4179 2005-12-19  Raja R Harinath  <rharinath@novell.com>
4180
4181         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
4182         type parameters.
4183
4184 2005-12-15  Raja R Harinath  <rharinath@novell.com>
4185
4186         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
4187         dead store.
4188         (do_mono_metadata_parse_generic_class): Don't pass the current
4189         generic context when parsing the type being instantiated: it
4190         cannot use it, anyway.
4191
4192         * loader.c (method_from_memberref): Don't inflate a signature if
4193         it doesn't contain any type parameters.
4194
4195 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
4196
4197         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
4198
4199 2005-12-14  Martin Baulig  <martin@ximian.com>
4200
4201         * class.c
4202         (mono_type_get_name_recurse): Don't return null for type
4203         parameters and open generic classes.
4204         (mono_class_setup_methods): Don't exclude generic instances.
4205         (mono_get_unique_iid): Use different IDs for different
4206         instantiations of the same generic type.
4207         (mono_class_setup_vtable): Only use setup_generic_vtable() for
4208         open generic instances; create a normal vtable for closed generic
4209         instances.
4210         (mono_class_setup_vtable_general): We're now also called for
4211         closed generic instances.
4212
4213         * reflection.c
4214         (mono_reflection_bind_generic_parameters): Correctly use
4215         mono_metadata_lookup_generic_inst() everywhere.
4216
4217 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
4218
4219         * object.c (mono_class_create_runtime_vtable): Call 
4220         mono_class_setup_vtable ().
4221
4222         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
4223         function.
4224         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
4225         #76959.
4226
4227         * loader.c (mono_loader_set_error_type_load): Print the type load
4228         warnings to the console so they are more visible to the user.
4229         (mono_loader_set_error_method_load): Ditto.
4230
4231         * reflection.c (ensure_runtime_vtable): Revert the last change as it
4232         is still broken.
4233         
4234         * reflection.c (ensure_runtime_vtable): Fix build.
4235
4236         * reflection.c (ensure_runtime_vtable): Disable an optimization which
4237         doesn't work in all cases.
4238
4239 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
4240
4241         * object.c (mono_array_new_full): Treat a single dimensional array
4242         with 0 lower bounds as an szarray. Fixes #76973.
4243
4244         * reflection.c (custom_attr_visible): Really fix this.
4245
4246 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
4247
4248         * reflection.c (custom_attr_visible): Allow nested public attributes
4249         as well.
4250
4251         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
4252         interface check.
4253
4254 2005-12-12  Raja R Harinath  <harinath@gmail.com>
4255
4256         * class.c (set_generic_param_owner): Delete.
4257         (mono_class_create_from_typedef): Don't set ->owner field of
4258         generic parameters to "param containers" of enclosing classes.
4259         * reflection.c (mono_reflection_initialize_generic_parameter):
4260         Likewise.
4261
4262 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
4263
4264         * reflection.c (custom_attr_visible): Fix build.
4265
4266 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
4267
4268         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
4269         private attributes.
4270         
4271         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
4272         handling of null parameter defaults.
4273
4274 2005-12-09  Raja R Harinath  <rharinath@novell.com>
4275
4276         * class.c (mono_class_from_generic_parameter): Don't set
4277         klass->generic_container.
4278         (my_mono_class_from_generic_parameter): Likewise.
4279
4280 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
4281
4282         * reflection.c (load_public_key): Fix a warning.
4283         (method_encode_code): Fix unaligned accesses.
4284
4285 2005-12-07  Martin Baulig  <martin@ximian.com>
4286
4287         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
4288
4289         * reflection.c
4290         (write_generic_param_entry): Encode our custom attrs.
4291
4292         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
4293
4294 2005-12-07  Martin Baulig  <martin@ximian.com>
4295
4296         * reflection.c (encode_new_constraint): Removed; we don't use the
4297         `NewConstraintAttribute' anymore.
4298
4299 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
4300
4301         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
4302         not fire a TypeResolve event when Assembly.GetType () is called.
4303
4304 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
4305
4306         Beginning of support for nullable types in the runtime. Parts of
4307         this patch are from Martin.
4308
4309         * appdomain.c (MONO_CORLIB_VERSION): Bump
4310
4311         * domain.c (mono_init_internal): get the nullable type
4312
4313         * class.c (mono_class_is_nullable): New method
4314         (mono_class_get_nullable_param): New mehod
4315         (mono_class_create_generic): In types T? set cast_class to T
4316
4317         * class-internals.h (MonoDefaults): new nullable default class
4318         (mono_class_get_nullable_param, mono_class_get_nullable_param):
4319         new methods.
4320
4321 2005-12-05  Raja R Harinath  <rharinath@novell.com>
4322
4323         * metadata.c (select_container): New.  Refactor code to select the
4324         appropriate GenericContainer given the type of generic parameter
4325         we are looking for.
4326         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
4327         not a MonoGenericContext.  Use select_container.  Update parameters.
4328         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
4329         and MONO_TYPE_MVAR.
4330         (unwrap_arrays): Remove duplicate tests.
4331         (find_generic_param): Rename from 'has_same_context'.  Now walks a
4332         generic instantiated class to find any arguments that are generic
4333         parameters.
4334         (mono_type_create_from_typespec_full): Use find_generic_param to
4335         avoid evicting some generic instantiations from the typespec
4336         cache.
4337
4338 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
4339
4340         * reflection.c: fixed writing of doubles on ARM FPA.
4341
4342 2005-12-02  Robert Jordan  <robertj@gmx.net>
4343
4344         * icall.c: Fixed EventInfo.ReflectedType (#76829).
4345
4346 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4347
4348         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
4349         least on SUSE 10 they are not the same (on debian, they are just the
4350         same thing).
4351
4352 2005-12-01  Raja R Harinath  <rharinath@novell.com>
4353
4354         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
4355         DeclaringType for VARs and MVARs.
4356         * class.c (set_generic_param_owner): Fix initialization of owner
4357         fields.
4358
4359 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
4360
4361         * icall.c: fixed Enum.ToObject() to correctly convert the values.
4362
4363 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4364
4365         * threadpool.c: workaround for a bug that shows up on the Mac:
4366         select()+connect() on a blocking socket is not like it should
4367         be, so we proceed to connect() in that case, wasting the I/O
4368         threadpool thread until connect succeedes. Fixes bug #75436.
4369
4370 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4371
4372         * threadpool.c: fix typo when setting file descriptor states.
4373
4374 2005-11-28  Raja R Harinath  <rharinath@novell.com>
4375
4376         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
4377         * metadata.c (mono_metadata_parse_method_signature_full): Don't
4378         create a temporary signature container.
4379         (mono_metadata_parse_generic_param): Update to changes.
4380         (mono_type_create_from_typespec_full): Update to changes.
4381         * loader.c (method_from_memberref): Don't use a
4382         MonoGenericContainer while parsing a memberref signature.
4383         (method_from_methodspec): Remove dead-store of the 'container'
4384         variable.  It's overwritten before use.
4385
4386         * metadata.c (mono_type_create_from_typespec_full): Make debugging
4387         checks tighter.
4388         (mono_metadata_parse_generic_param): Likewise.
4389         * loader.c (find_method_in_class): Does not need a
4390         MonoGenericContainer.  Use 'mono_method_signature' rather than
4391         'mono_method_signature_full'.
4392         (find_method, mono_get_method_constrained, method_from_memberref):
4393         Update to changes.
4394
4395         * metadata.c (mono_type_create_from_typespec_full): Ensure that
4396         owner-less generic-parameters are never evicted from the typespec
4397         cache.
4398
4399         * loader.c (method_from_memberref): Don't use the current context
4400         when parsing signatures.
4401         (method_from_methodspec, mono_get_method_from_token): Update to changes.
4402
4403         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
4404         side-effects in g_assert.
4405         * loader.c (mono_get_method_from_token): Resolve klass earlier so
4406         that we don't potentially lose information.
4407
4408 2005-11-26  Dick Porter  <dick@ximian.com>
4409
4410         * icall.c:
4411         * threads.c: icalls to implement basic (ie, not named)
4412         System.Threading.Semaphore.
4413
4414 2005-11-24  Dick Porter  <dick@ximian.com>
4415
4416         * process.c
4417         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4418         Use GetProcessId() if it's available.
4419
4420 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
4421
4422         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
4423
4424 2005-11-23  Raja R Harinath  <rharinath@novell.com>
4425             Ankit Jain  <jankit@novell.com>
4426
4427         * loader.c (mono_get_method_from_token): Initialize 'method' field
4428         of all generic parameters before parsing the signature.  Remove
4429         code that "fixed"-up MVAR references.
4430
4431 2005-11-23  Ankit Jain  <jankit@novell.com>
4432
4433         * metadata.c (mono_metadata_has_generic_params):
4434         (mono_metadata_load_generic_param_constraints):
4435         (mono_metadata_load_generic_params): Move duplicate code ...
4436         (mono_metadata_get_generic_param_row): ... here. Returns the
4437         first row-id in GenericParam table for a given owner (token).
4438         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
4439         prototype.
4440
4441 2005-11-23  Raja R Harinath  <rharinath@novell.com>
4442             Ankit Jain  <jankit@novell.com>
4443
4444         * metadata.c (mono_metadata_class_equal): Pass signature_only when
4445         comparing VARs too.
4446         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
4447         type->data.generic_param only if the type is an MVAR.
4448         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
4449         leak owner-less VARs and MVARs into managed space.
4450
4451 2005-11-21  Martin Baulig  <martin@ximian.com>
4452
4453         * class-internals.h
4454         (MonoMethod): Moved the `generic_container' here from
4455         `MonoMethodNormal' since we now also need it for
4456         `MonoMethodPInvoke';
4457         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
4458         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
4459         an union containing both `MonoMethodNormal' and
4460         `MonoMethodPInvoke'.
4461
4462         * loader.c
4463         (mono_get_method_from_token): Allow implementing generic methods
4464         as interncalls.
4465
4466         * threads.c
4467         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
4468         icall.
4469
4470 2005-11-17  Dick Porter  <dick@ximian.com>
4471
4472         * icall.c: 
4473         * process.h: 
4474         * process.c: Split the Process Start_internal icall into
4475         ShellExecuteEx_internal and CreateProcess_internal, which are
4476         called depending on whether UseShellExecute is true.  Fixes bug
4477         76670.
4478
4479         * appdomain.c (MONO_CORLIB_VERSION): Incremented
4480
4481 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
4482
4483         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
4484         'msize' parameters, use the information in 'mspec' instead.
4485         (emit_object_to_ptr_conv): Ditto.
4486
4487         * marshal.c (emit_struct_conv): Handle explicit layout structs with
4488         fields out of order. Fixes #76733.
4489
4490 2005-11-17  Ankit Jain  <jankit@novell.com>
4491
4492         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
4493
4494 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
4495
4496         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
4497           bug #76575.
4498
4499 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4500
4501         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
4502         for types with non-auto layout. Fixes #76717.
4503
4504 2005-11-16  Ankit Jain  <jankit@novell.com>
4505
4506         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
4507         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
4508         if generic_context is null.
4509           (mono_metadata_generic_param_equal): param->owner can be null.
4510           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
4511         null.
4512
4513 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4514
4515         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
4516         the correct value.
4517
4518 2005-11-15  Martin Baulig  <martin@ximian.com>
4519
4520         * object.c (set_value): Use mono_class_from_mono_type() instead of
4521         the hack for generic instances; fixes #76136.
4522
4523 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
4524
4525         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
4526         fields.
4527
4528         * image.c (load_metadata_ptrs): Initialize the new fields.
4529
4530         * reflection.c (create_dynamic_mono_image): Ditto.
4531
4532         * reflection.c (build_compressed_metadata): Use the new fields.
4533
4534         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
4535         icall.
4536
4537         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
4538         icall.
4539         
4540 2005-11-15  Ankit Jain  <jankit@novell.com>
4541             Raja R Harinath  <harinath@gmail.com>
4542
4543         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
4544         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
4545         new per-generic_container cache if the cached MonoType's context matches
4546         the current context.
4547           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
4548         to the expected context.
4549           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
4550
4551 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4552
4553         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
4554         we changed the signature of an icall.
4555         * icall.c: Modify to mono_double_ParseImpl return true/false 
4556         depending on the success, instead of throwing the exception. This will
4557         help us in Double.TryParse methods.
4558         
4559 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
4560
4561         * marshal.c (emit_marshal_object): Throw an exception when
4562         marshalling 'object' instead of crashing. Fixes #76696.
4563
4564 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4565
4566         * class-internals.h: Add prototype for mono_type_get_full_name ().
4567
4568 2005-11-11  Dick Porter  <dick@ximian.com>
4569
4570         * threads.c (mono_thread_manage): Make sure the main thread has
4571         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
4572
4573 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4574
4575         * loader.c (mono_loader_set_error_type_load): Log a warning to the
4576         console about the missing type.
4577         (mono_loader_set_error_method_load): Ditto.
4578
4579 2005-11-09  Miguel de Icaza  <miguel@novell.com>
4580
4581         * mono-config.c (mono_get_config_dir): Set the system defaults if
4582         none is specified.
4583
4584         * assembly.c (mono_set_dirs): New API entry point to set the
4585         assembly and the config directory in one call
4586
4587 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
4588
4589         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
4590         the ftnptr was created from a delegate in a domain other than the
4591         current domain. Fixes #75377.
4592
4593         * exception.h exception.c: Add mono_get_exception_not_supported ().
4594
4595 2005-11-08  Martin Baulig  <martin@ximian.com>
4596
4597         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
4598
4599 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
4600
4601         * security-manager.h: Added definitions to deal with strongname key 
4602         pairs bigger (and smaller) than 1024 bits.
4603         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
4604         adjust wrt the public key length being used.
4605
4606 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4607
4608         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
4609           Windows build (r51396-51397).
4610
4611 2005-11-03  Martin Baulig  <martin@ximian.com>
4612
4613         * class.c (mono_class_setup_vtable_general): Also add generic
4614         methods to the vtable; fixes #76581.
4615
4616 2005-11-01  Miguel de Icaza  <miguel@novell.com>
4617
4618         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
4619         sure that we lookup GetString method from the System.Text.Encoding
4620         class, not the derived class or we get an empty method.
4621
4622         Fixed class #76612.
4623
4624 2005-10-25  Miguel de Icaza  <miguel@novell.com>
4625
4626         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
4627         if it has been previously set (embedders). 
4628
4629         Make mono_set_rootdir available also on Unix.
4630
4631 005-10-24  Robert Jordan  <robertj@gmx.net>
4632
4633         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
4634
4635 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
4636
4637         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
4638         only calls which are made to native code use this flag.
4639
4640         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
4641
4642 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
4643
4644         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
4645         Add support for FieldBuilders.
4646
4647 2005-10-29  Martin Baulig  <martin@ximian.com>
4648
4649         * mono-debug.c
4650         (mono_debug_using_mono_debugger): New public method; returns
4651         whether we're running inside the debugger.
4652
4653 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
4654
4655         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
4656         for Method/Constructor/FieldBuilders.
4657
4658 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
4659
4660         * reflection.c (module_add_cattrs): Save custom attributes for global methods
4661         and fields as well.
4662
4663 2005-10-26  Martin Baulig  <martin@ximian.com>
4664
4665         * mono-debug-debugger.c
4666         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
4667
4668 2005-10-24  Raja R Harinath  <harinath@gmail.com>
4669
4670         * icall.c (base64_to_byte_array): Don't pass an out-of-range
4671         integer to isspace.
4672
4673 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
4674
4675         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
4676         when passing valuetypes byref. Fixes #76502.
4677
4678 2005-10-19  Jackson Harper  <jackson@ximian.com>
4679
4680         * profiler.c: Don't put a . in front of types that are not in a
4681         namespace.
4682
4683 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
4684
4685         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
4686
4687 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
4688
4689         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
4690         #76436.
4691         (mono_marshal_get_ldflda_wrapper): Fix a warning.
4692
4693 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4694
4695         * assembly.c metadata-internals.h icall.c: Define an additional
4696         parameter for mono_assembly_name_parse_full, so we can avoid creating
4697         S.R.AssemblyName.Version when no version info wasn't passed.
4698         
4699 2005-10-09  Miguel de Icaza  <miguel@novell.com>
4700
4701         * class.c (mono_type_get_full_name): Reimplement method that was
4702         removed. 
4703
4704         * image.c: Some docs
4705
4706 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
4707
4708         * profiler.c (output_newobj_profile): Fix printing of Total memory
4709         on x86.
4710
4711 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4712
4713         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
4714
4715 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
4716
4717         * threads.c: remove debug output.
4718
4719 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4720
4721         * threads.c (mono_thread_manage): Fix crashes if more than 64
4722         threads need to be aborted. Hopefully fixes #75899.
4723
4724         * assembly.c (mono_stringify_assembly_name): New helper function.
4725
4726         * class.c: Use mono_stringify_assembly_name instead of the similar
4727         static function.
4728
4729         * assembly.h assembly.c: Add support for calling a postload search 
4730         hook if an assembly cannot be loaded.
4731
4732         * appdomain.c: Register new search hooks which call the AssemblyResolve
4733         events in AppDomain. Fixes #75231
4734
4735 2005-10-07  Martin Baulig  <martin@ximian.com>
4736
4737         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
4738         methods without debug info.
4739
4740 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
4741
4742         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
4743         wrappers.
4744
4745 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4746
4747         * file-io.c: now that we return symlinks, use lstat and, when the file
4748         is a symbolic link, stat, to get the file attributes. Also avoid the
4749         conversion to/from utf16/external.
4750
4751 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
4752
4753         * class.c (mono_class_layout_fields): Compute klass->has_references
4754         correctly if an embedded valuetype is not yet initialized. Fixes
4755         #76331.
4756
4757 2005-10-04  Martin Baulig  <martin@ximian.com>
4758
4759         * metadata.c
4760         (mono_metadata_load_generic_param_constraints): New public
4761         function; splitted the constraints loading out from
4762         mono_metadata_load_generic_params().
4763
4764         * class.c (mono_class_create_from_typedef): Call
4765         mono_metadata_load_generic_param_constraints() after setting up
4766         the type and creating our parent; fixes #75329.
4767
4768 2005-10-04  Martin Baulig  <martin@ximian.com>
4769
4770         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
4771         non-dynamic parent classes.
4772
4773 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4774
4775         * file-io.c : win32 build fix (ETXTBSY seems not found).
4776
4777 2005-10-04  Martin Baulig  <martin@ximian.com>
4778
4779         * reflection.c
4780         (mono_image_get_methodspec_token): Make the cache actually work;
4781         fixes #75974.
4782
4783 2005-10-04  Martin Baulig  <martin@ximian.com>
4784
4785         * class.c (mono_class_name_from_token): Removed the unneccessary
4786         `MonoGenericContext *' argument.
4787
4788 2005-10-04  Martin Baulig  <martin@ximian.com>
4789
4790         * loader.c
4791         (method_from_methodspec): Make the caching work again; fixes the
4792         performance regression from #76262.
4793
4794 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4795
4796         * file-io.c:
4797         * file-io.h:
4798         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4799         GetFileSystemEntries that performs the same work but without going
4800         into io-layer, locking, etc.
4801
4802 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4803
4804         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4805         ThreadState_Stopped as well. Fixes #76047.
4806
4807 2005-09-29  Martin Baulig  <martin@ximian.com>
4808
4809         * class.c
4810         (inflate_generic_context): If the new context has a `gmethod', set
4811         its `container' that that gmethod's `container'.
4812
4813         * metadata.c
4814         (mono_metadata_parse_generic_param): Simplify things;
4815         `generic_container = generic_context->container;' is just fine.
4816
4817         * loader.c (method_from_methodspec): Code cleanups.
4818
4819 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4820
4821         * decimal.c: fix warning (and let gcc generate correct
4822         code on ARM with optimizations).
4823
4824 2005-09-28  Martin Baulig  <martin@ximian.com>
4825
4826         * loader.c
4827         (method_from_memberref): Added `MonoGenericContext *class_context'
4828         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4829         (method_from_methodspec): If we're a memberref, use the enclosing
4830         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4831
4832 2005-09-28  Martin Baulig  <martin@ximian.com>
4833
4834         * object.c (mono_runtime_invoke_array): Added support for
4835         MONO_TYPE_GENERICINST; fixes #75917.
4836
4837 2005-09-27  Martin Baulig  <martin@ximian.com>
4838
4839         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4840         `k->byval_arg.type' to determine the actual type.
4841
4842         * loader.c (method_from_methodspec): Removed some hacks.
4843
4844 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4845
4846         * class-internals.h (mono_field_is_deleted): Do the test for
4847         rtspecialname before we check the actual name of the field. This
4848         prevents us from dereferencing a pointer into the string table,
4849         saving us from accessing a few pages
4850
4851         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4852         macros. This will allow a deadlock debugger to easily be plugged
4853         in.
4854
4855 2005-09-27  Martin Baulig  <martin@ximian.com>
4856
4857         * loader.c (method_from_methodspec): Create a "signature"
4858         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4859
4860 2005-09-27  Martin Baulig  <martin@ximian.com>
4861
4862         * class.c
4863         (inflate_generic_class): Correctly set the new context's
4864         container.
4865
4866         * loader.c
4867         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4868         instead of a `MonoGenericContext *'.
4869         (mono_method_signature_full): Take a `MonoGenericContainer *'
4870         instead of a `MonoGenericContext *'.
4871
4872         * metadata.c
4873         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4874         instead of a `MonoGenericContext *'.
4875         (mono_metadata_parse_method_signature_full): Likewise.
4876
4877 2005-09-26  Martin Baulig  <martin@ximian.com>
4878
4879         * class.c
4880         (mono_class_from_generic_parameter): Set `klass->generic_container'
4881         (mono_class_from_generic_parameter): Likewise.
4882         (mono_bounded_array_class_get): We inherit the generic container
4883         from the element class.
4884
4885         * loader.c
4886         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4887         argument rather than computing it here.
4888         (method_from_memberref): Correctly set the generic context before
4889         parsing the signature.  Fixes #75681.
4890
4891 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4892
4893         * object.c (mono_class_has_special_static_fields): Fix warnings.
4894
4895 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4896
4897         * assembly.c: Add parse_public_key function, to
4898         par the public keys. Also added mono_assembly_name_parse_full,
4899         to define it the parsed key should be freed or not.
4900         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4901         to parse a long format assembly name.
4902         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4903         private, since calling it to preserve the key requires
4904         freeing it manually.
4905         
4906 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4907
4908         * locales.c : removed HAVE_ICU part.
4909
4910 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4911
4912         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4913         field_is_special_static if the klass has no special static fields.
4914
4915         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4916         (MonoCachedClassInfo): Likewise.
4917
4918         * object.c (mono_class_has_special_static_fields): New helper function.
4919
4920 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4921
4922         * class.c (mono_class_create_from_typedef): Don't call 
4923         interfaces_from_typedef_full for enums.
4924         (mono_class_create_from_typedef): Compute the base types of enums directly
4925         without calling mono_class_setup_fields ().
4926         (mono_class_find_enum_basetype): New helper function.
4927
4928         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4929         one place inside the string heap.
4930         
4931 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4932
4933         * class.c: locking fixes, code cleanups, some docs added.
4934         Allocate some data structures in the image mempool.
4935
4936 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4937
4938         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4939         the example code.
4940         
4941 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4942
4943         * class-internals.h, class.c, reflection.c: reduce memory taken by
4944         MonoClass.
4945
4946 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4947
4948         * metadata.c, metadata.h, loader.h: documentation updates, code and
4949         API cleanups.
4950
4951 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4952
4953         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4954         the example code.
4955
4956         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
4957         page faults caused by the runtime while reading metadata.
4958
4959 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4960
4961         * socket-io.c: the field names were changed 3 months ago and no one
4962         realized until bug #76077 got filed!
4963
4964 2005-09-20  Martin Baulig  <martin@ximian.com>
4965
4966         * icall.c (assembly_icalls): Removed some unused debugger icalls.
4967
4968 2005-09-20  Martin Baulig  <martin@ximian.com>
4969
4970         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
4971         write the rank into the class entry.
4972
4973 2005-09-20  Martin Baulig  <martin@ximian.com>
4974
4975         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
4976
4977 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
4978
4979         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4980
4981         * icall.c (custom_attrs_defined_internal): New icall.
4982
4983         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
4984         function.
4985         (mono_custom_attrs_construct_by_type): New helper function.
4986
4987 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
4988
4989         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
4990         terminate the resulting string. Fixes #76123.
4991
4992 2005-09-16  Martin Baulig  <martin@ximian.com>
4993
4994         * mono-debug.c
4995         (mono_debug_add_method): Ignore inflated methods for the moment.
4996
4997 2005-09-14  Martin Baulig  <martin@ximian.com>
4998
4999         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
5000
5001 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
5002
5003         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
5004         return a success/failure indication.
5005         (mono_metadata_interfaces_from_typedef_full): Ditto.
5006         (get_constraints): Ditto.
5007
5008 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
5009
5010         * marshal.c (emit_marshal_array): Fix handling of null arrays.
5011         
5012         * marshal.c (emit_marshal_array): Add support for returning string
5013         arrays from delegates. Fixes #76063.
5014
5015         * marshal.c: Use the emit_ldloc/stloc macros where possible.
5016
5017 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
5018
5019         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
5020         icall.
5021
5022 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
5023
5024         * reflection.c icall.c: Fix after mono_get_exception_type_load
5025         signature change.
5026
5027         * assembly.c (mono_assembly_get_assemblyref): New helper function.
5028         (mono_assembly_load_reference): Use the new helper.
5029
5030         * class-internals.h (MonoLoaderError): New structure containing 
5031         information about type loading errors.
5032
5033         * class-internals.h loader.c: Add APIs to store per-thread loader
5034         error information.
5035
5036         * loader.c class.c: Set the loader error if needed.
5037
5038         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
5039
5040 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
5041
5042         * decimal.c: fixed to handle the broken ARM fp format.
5043
5044 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
5045
5046         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
5047         broken.
5048
5049 2005-09-06  Martin Baulig  <martin@ximian.com>
5050
5051         * domain.c (supported_runtimes): Added v2.0.50727.
5052
5053 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
5054
5055         * culture-info.h: reduce the size of some structures.
5056
5057 2005-09-05  Martin Baulig  <martin@ximian.com>
5058
5059         Reflect latest API changes in the August CTP.
5060
5061         * icall.c
5062         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
5063         ("MonoType.HasGenericArguments"): Removed.
5064         ("MonoMethod.BindGenericParameters"): Renamed to
5065         "MakeGenericMethod".
5066         ("MethodBuilder.BindGenericParameters"): Renamed to
5067         "MakeGenericMethod".    
5068
5069 2005-09-05  Martin Baulig  <martin@ximian.com>
5070
5071         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
5072
5073 2005-09-05  Martin Baulig  <martin@ximian.com>
5074
5075         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5076
5077         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
5078         generic_container is non-NULL.
5079
5080 2005-09-05  Martin Baulig  <martin@ximian.com>
5081
5082         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5083
5084         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
5085
5086 2005-08-29  Michal Moskal  <malekith@nemerle.org>
5087
5088         * reflection.c (encode_locals,
5089         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
5090         for large generic types.
5091
5092 2005-09-05  Martin Baulig  <martin@ximian.com>
5093
5094         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5095
5096         * class.c (mono_dup_array_type): New public method.
5097         (mono_metadata_signature_deep_dup): New public method.
5098         (dup_type): Correctly duplicate array and function types.
5099
5100 2005-09-05  Martin Baulig  <martin@ximian.com>
5101
5102         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5103
5104         * reflection.c (get_default_param_value_blobs): Handle generic types
5105         and generic methods.
5106
5107 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
5108
5109         * class.c: Fixed error reporting (method/class were inversed) for 
5110         inheritance demands.
5111         * security-manager.c|h: Added the AppDomain when calling the managed
5112         System.Security.SecurityManager.InheritanceDemand method.
5113
5114 2005-09-01  Raja R Harinath  <rharinath@novell.com>
5115
5116         * reflection.c (encode_marshal_blob): 'marshaltype' and
5117         'marshaltyperef' are alternate sources for the custom marshaler
5118         name.
5119
5120 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
5121
5122         * class.c: fix creation of array classes with rank == 1
5123         (patch by Ankit Jain <jankit@novell.com>).
5124
5125 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
5126
5127         * object.c: fix check for creating the bound data for arrays vs
5128         szarrays.
5129
5130 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5131
5132         * object.c: configuration file name is now based on the executable name,
5133         not the image name. Fixes bug #75931.
5134
5135 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
5136
5137         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
5138         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
5139
5140 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
5141
5142         * rand.c: Use wincrypt.h instead of WinCrypt.h.
5143
5144 2005-08-24  Ankit Jain  <jankit@novell.com>
5145             Raja R Harinath  <rharinath@novell.com>
5146
5147         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
5148           called by it recursively.
5149           (mono_class_init): Remove special case in pending_init handling, since it's
5150           superseded by the fix to mono_class_from_typeref.
5151
5152 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
5153
5154         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
5155         BROKEN_THREAD_START stuff.
5156
5157 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
5158
5159         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
5160         trampoline.
5161
5162         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
5163         
5164         * object.c (mono_delegate_ctor): Replace the original function address with
5165         a delegate trampoline.
5166
5167 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
5168
5169         * icall.c: add boolean argument to base64_to_byte_array and 
5170         InternalFromBase64String to control whether a whitespace-only string
5171         is allowed (or should casue a FormatException to be thrown). We need
5172         this as the behavior has changed between MS.NET 1.x and 2.0, and we
5173         to match the MS behaviour in both profiles.
5174         * appdomain.c: Bump corlib version.
5175
5176 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5177
5178         This patch implements a big portion of publisher policy
5179         support, used to bind assembly versions and redirect
5180         one assembly from version A to version B.
5181
5182         * assembly.c:
5183         New GSList loaded_assembly_bindings, for storing the cached
5184         assembly bindings.
5185         (assembly_binding_maps_name): New static function for checking if a 
5186         assembly binding information maps an assembly name.
5187         (mono_assembly_binding_info_free): New function for freeing
5188         assembly binding information resources.
5189         (get_publisher_policy_info): New static function for retrieving 
5190         assembly binding information from a MonoImage.
5191         (compare_versions): New static function for comparing an assembly
5192         binding information data and the version of an assembly name.
5193         (check_policy_versions): New static function for checking if an
5194         assembly binding info mapping an assembly name is valid for it.
5195         (mono_assembly_load_publisher_policy): New static function for
5196         loading the 'policy.major.minor.MyAssembly' image for an assembly
5197         with an assembly name 'aname'.
5198         (mono_assembly_bind_version): New static function for updating
5199         assembly redirection.
5200         (mono_assembly_apply_binding): New static function for applying
5201         assembly binding.
5202         (search_binding_loaded): New static function for searching 
5203         loaded assembly binding infos in the cache domain.
5204         (mono_assembly_load_full): Don't apply assembly binding for
5205         reflection only assemblies.
5206
5207         * metadata-internals.h: Add MonoAssemblyBindingInfo,
5208         which contains information about assembly binding. Also
5209         declare signature for mono_config_parse_publisher_policy ()
5210         function, used to retrieve pub policy info.
5211         
5212         * mono-config.c:
5213         (publisher_policy_start): New static function used to parse publisher 
5214         policy config files.
5215         (publisher_policy_parser): New static MonoParseHandler containing 
5216         the functions used when parsing config files.
5217         (mono_config_parse_publisher_policy): New function for parsing
5218         publisher policy files.
5219         
5220 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
5221
5222         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
5223
5224         * marshal.c (mono_delegate_free_ftnptr): Ditto.
5225
5226         * object.c (mono_get_addr_from_ftnptr): New helper function.
5227
5228         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
5229
5230         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5231
5232 2005-08-19  Dick Porter  <dick@ximian.com>
5233
5234         * threads.c, threads.h, appdomain.c, appdomain.h,
5235         profiler-private.h, monitor.c, object.c, object-internals.h,
5236         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
5237         store the thread ID, so it can hold a 64 bit value if needed.
5238
5239 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
5240
5241         * reflection.c (mono_reflection_create_dynamic_method): Store the
5242         handle class into the method references as well so ldtoken works in
5243         dynamic methods.
5244
5245         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
5246         types.
5247
5248 2005-08-19  Ankit Jain <jankit@novell.com>
5249
5250         Fix #75847.
5251         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
5252           here rather than using the method signature of a arbitrary function
5253           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
5254           two arguments.
5255           Hack done with Harinath.
5256
5257 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5258
5259         * threadpool.c: disable printing stack traces when we get a exception
5260         in a threadpool thread. I need to do more testing to figure out which
5261         cases actually print this. Fixes bug #75828.
5262
5263 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5264
5265         * icall.c: there might be ignored whitespace after the last '='. This
5266         fixes length computation and bug #75840.
5267
5268 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
5269
5270         * assembly.c (mono_assembly_load_full): Consider .exe extension as
5271         well. Fixes #75809.
5272
5273         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
5274         #75784.
5275         
5276         * reflection.c (create_custom_attr_data): Ditto.
5277
5278 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
5279
5280         * locales.c, culture-info.h : removed RegionLCIDMap.
5281         * culture-info-tables.h : regenerated.
5282
5283 2005-08-16  Martin Baulig  <martin@ximian.com>
5284
5285         * class.c (mono_type_get_name_recurse): Small fix.
5286
5287 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
5288
5289         * locales.c : indentation fixie.
5290
5291 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
5292
5293         * object-internals.h,
5294           locales.h,
5295           locales.c,
5296           culture-info.h,
5297           icall.c : added RegionInfo table support.
5298         * culture-info-table.h : regenerated for region support.
5299
5300 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
5301
5302         * reflection.c (resolve_object): handle all kinds of MonoMethod
5303         including generic ones
5304
5305 2005-08-12  Ankit Jain <jankit@novell.com>
5306
5307         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
5308           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
5309
5310 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
5311
5312         * process.c: Don't close a thread handle when it's NULL. This is a
5313         workaround for bug #75733.
5314
5315 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
5316
5317         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
5318
5319 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
5320
5321         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
5322
5323 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5324
5325         * threadpool.c: if a work item in the thread pool has a callback that
5326         catches a exception, don't propagate it after invoking the callback.
5327         Fixes bug #75336.
5328
5329 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
5330
5331         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
5332
5333         * class-internals.h (MonoCachedClassInfo): Add some new fields.
5334
5335         * class.c (mono_class_init): Load field info lazily in the AOT case.    
5336
5337         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
5338
5339 2005-08-03  Ankit Jain  <jankit@novell.com>
5340
5341         Fix #75683.
5342         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
5343           PInvoke calling convention is 0.
5344
5345 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
5346
5347         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
5348         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
5349
5350 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
5351
5352         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
5353         to handle threads not started by the GC (patch by Michael Meeks
5354         <michael.meeks@novell.com>).
5355
5356 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
5357
5358         * reflection.c: Make buffer used in emitting types larger for some
5359         big generic types (patch by Michal Moskal).
5360
5361 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
5362
5363         * mono-debug.c: Fix some (not all) alignment problems.
5364
5365 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5366
5367         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
5368         Invoke mono_image_load_from_data_full passing the refonly
5369         parameter.
5370
5371         * assembly.c
5372         (mono_assembly_open_from_bundle): Add the refonly argument, 
5373         in order to pass it to other methods it calls to.
5374         (do_mono_assembly_open): Add the refonly argument, in order 
5375         to pass it to other methods it calls to.
5376         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
5377         the refonly parameter to it.
5378
5379         * image.c: Add loaded_images_refonly_hash and
5380         loaded_images_refonly_guid_hash to cache the reflection
5381         only loaded images.
5382         (mono_images_init): Initialize the hash tables used for
5383         caching the reflection only images.
5384         (load_modules): Invoke mono_image_open_full passing the refonly
5385         parameter to load the modules the correct way.
5386         (build_guid_table): Add the refonly argument, to re-build the 
5387         correct hash table.
5388         (do_mono_image_open): Added the refonly argument, in order to
5389         define it for the loaded image.
5390         (mono_image_loaded_full): New function, which receives an
5391         additional parameter to look for the image in the refonly or
5392         non-refonly section.
5393         (mono_image_loaded): Updated, using mono_image_loaded_full.
5394         (mono_image_loaded_by_guid_full): The same case that happens
5395         with mono_image_loaded_full.
5396         (mono_image_loaded_by_guid): Likewise.
5397         (register_image): Use the ref_only variable inside MonoImage
5398         to decide in which hash table store the current image.
5399         (mono_image_open_from_data_full): Rename
5400         mono_image_open_from_data to mono_image_open_from_data_full,
5401         adding the refonly argument, to define the ref_only variable 
5402         inside MonoImage.
5403         (mono_image_open_from_data): Return 
5404         mono_image_open_from_data_full.
5405         (mono_image_open_full): Rename mono_image_open to
5406         mono_image_open_full, receiving the new refonly argument,
5407         to pass it to inner methods.
5408         (mono_pe_file_open): Update this function, to open
5409         a MonoImage as a non-refonly image.
5410         (mono_image_close): Use the refonly variable inside
5411         MonoImage to remove the image from the correct caches.
5412
5413         * image.h: Add the signatures of mono_image_open_full,
5414         mono_image_open_from_data_full, mono_image_loaded_full,
5415         mono_image_loaded_by_guid_full.
5416
5417         * metadata-internals.h: Add the ref_only field to 
5418         MonoImage.
5419         
5420 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5421
5422         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
5423         Fix the last behavior, which used to load the assemblies and
5424         extract MonoReflectionAssemblyName information, instead of
5425         extract it from the metadata tables. Needed for Reflection
5426         Only assemblies.
5427         
5428 2005-07-29  Martin Baulig  <martin@ximian.com>
5429
5430         * mono-debug-debugger.c
5431         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
5432         not initialized.
5433
5434         * mono-debug.c
5435         (mono_debug_address_from_il_offset): Check whether we have
5436         debugging support before attempting to take the lock.
5437         (mono_debug_source_location_from_address): Likewise.
5438         (mono_debug_source_location_from_il_offset): Likewise.
5439         (mono_debug_il_offset_from_address): Likewise.
5440         (mono_debug_address_from_il_offset): Likewise.
5441
5442 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
5443
5444         * class.c (mono_class_from_name_case): Add support for dynamic images.
5445         Fixes #75650.
5446
5447         * object.c (mono_class_compute_gc_descriptor): Add a workaround
5448         for #75479.
5449
5450 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
5451         
5452         * reflection.c (mono_method_get_object): Fix warning.
5453
5454 2005-07-28  Martin Baulig  <martin@ximian.com>
5455
5456         * mono-debug.c
5457         (mono_debug_add_wrapper): Also write the wrapper type.
5458
5459 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
5460
5461         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
5462         
5463         * class.c (mono_class_init): Avoid reading nested classes if the AOT
5464         data indicates the class has none.
5465
5466 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
5467
5468         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
5469         loader lock with the debugger lock. Prevents deadlocks for beagle.
5470
5471         Beagle can now run on an smp box for a weekend without any
5472         issues. Woohoo!
5473
5474 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
5475
5476         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
5477         in a module. Fixes #75629.
5478
5479 2005-07-26  Martin Baulig  <martin@ximian.com>
5480
5481         * mono-debug.c (mono_debug_add_wrapper): New static method.
5482         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
5483         interncall or a wrapper.
5484
5485         * mono-debug.h (MonoDebugWrapperData): New public typedef.
5486         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
5487         (MONO_DEBUGGER_VERSION): Bump to 51.
5488
5489         * mono-debug-debugger.c
5490         (mono_debugger_add_type): Removed this empty function.
5491         (mono_debugger_add_method): Likewise.
5492
5493 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
5494
5495         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
5496         before accessing method->slot.
5497
5498 2005-07-21  Jb Evain  <jbevain@gmail.com>
5499
5500         * reflection.c (method_encode_clauses/class): Handle filters clauses.
5501         Fixes #75010.
5502
5503 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
5504
5505         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
5506         #75587.
5507
5508 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
5509
5510         * image.h image.c: Add mono_image_get_guid () API function.
5511
5512 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
5513
5514         There were issues when multiple threads tried to load
5515         assemblies. A deadlock was created between assemblies_mutex and
5516         mono_domain_assemblies_lock. This fixes the issue by making the
5517         assembly ref counting be lock free. See bug 75586.
5518         
5519         * image.c (mono_image_close): The add ref function here was using
5520         Interlocked operations while the unref was using a mutex and a
5521         --. I don't think this was ever a bug that would be exposed in a
5522         non-pendantic way (ie, by an embedder doing a ref on one thread
5523         and an unref on another), but for the sake of correctness, this is
5524         now Interlocked.
5525
5526         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
5527         (mono_assembly_load_reference): Call mono_assembly_addref rather
5528         than touching the refcount ourselves.
5529         (mono_assembly_close): Use InterlockedDecrement to unref the
5530         assembly. Don't acquire the lock unless it is actually needed.
5531
5532 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5533
5534         * class.c (mono_class_layout_fields): Fix calculation of has_references
5535         for generic types.
5536
5537 2005-07-12  Martin Baulig  <martin@ximian.com>
5538
5539         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5540
5541         * metadata.c
5542         (mono_type_hash): Provide better hashing for generic instances.
5543         (mono_generic_inst_hash): Improve hashing.
5544         (mono_generic_class_hash): Likewise.
5545
5546         * reflection.c (mymono_metadata_type_hash): Improve hashing for
5547         generic instances.
5548
5549 2005-07-12  Martin Baulig  <martin@ximian.com>
5550
5551         * reflection.c (mono_reflection_create_runtime_class): Remove the
5552         hack for generic type definitions and non-`Run' assemblies.
5553         (mono_reflection_bind_generic_parameters): Also use
5554         `klass->wastypebuilder' to check for TypeBuilders.
5555
5556 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5557
5558         * class.c (mono_class_layout_fields): Fix calculation of has_references
5559         for generic types.
5560
5561         * class.c (inflate_generic_class): Fix a leak.
5562         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
5563         for generic types.
5564
5565 2005-07-11  Martin Baulig  <martin@ximian.com>
5566
5567         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
5568         on error.
5569
5570 2005-07-11  Martin Baulig  <martin@ximian.com>
5571
5572         * loader.c (find_method): Also lookup in
5573         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
5574
5575 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5576
5577         * appdomain.c (mono_domain_unload): Don't free the error message
5578         before passing it to mono_get_exception_...
5579
5580         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
5581         
5582 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
5583
5584         * threads.c: try to better guess an available RT signal (bug #75387).
5585
5586 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5587
5588         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
5589         and CACHE_OBJECT.
5590
5591 2005-07-07  Martin Baulig  <martin@ximian.com>
5592
5593         * class.c (mono_type_get_name_full): Return NULL for
5594         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
5595         fixes #75408.
5596
5597 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5598
5599         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
5600         exit the appdomain as well being aborted.
5601
5602         * threadpool.c: Create all threadpool threads inside the root appdomain, and
5603         change back to the root domain after calling managed code. This enables
5604         appdomains using threadpools to be unloaded.
5605
5606 2005-07-07  Martin Baulig  <martin@ximian.com>
5607
5608         * class-internals.h
5609         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
5610         into `MonoDynamicGenericClass' since we only need it for dynamic
5611         types.
5612
5613         * reflection.c (mono_class_bind_generic_parameters): We don't need
5614         to compute the `parent' here.
5615
5616 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
5617
5618         * culture-info-table.h : regenerated.
5619
5620 2005-07-06  Martin Baulig  <martin@ximian.com>
5621
5622         * icall.c
5623         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
5624
5625         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
5626
5627 2005-07-06  Martin Baulig  <martin@ximian.com>
5628
5629         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
5630         we're doing a signature-only comparision; fixes #74945.
5631
5632 2005-07-06  Martin Baulig  <martin@ximian.com>
5633
5634         * class-internals.h (MonoGenericClass): Moved some things out into
5635         a new `MonoInflatedGenericClass' type.  
5636         (MonoInflatedGenericClass): New type; the `klass' of a
5637         `MonoGenericClass' is now computed lazyly in
5638         mono_get_inflated_generic_class().      
5639
5640         * class.c (mono_get_inflated_generic_class): New public function.
5641         (mono_class_inflate_generic_method): Removed the unused
5642         `MonoClass *' argument.
5643         (setup_generic_vtable): Don't call mono_get_inflated_method() on
5644         all the methods.
5645         (mono_class_create_generic): Make this static and merge it with
5646         mono_class_create_generic_2(); we're now called automatically from
5647         mono_get_inflated_generic_class().
5648
5649         * loader.c (mono_method_signature): Call
5650         mono_get_inflated_method() here.
5651
5652 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
5653
5654         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
5655         type of fields with RVA.
5656
5657         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
5658         for this pseudo class.
5659         (my_mono_class_from_generic_parameter): Likewise.
5660         (mono_class_init): Allow interfaces to have cctors.
5661
5662 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5663
5664         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
5665         lazily for AOT methods.
5666
5667 2005-07-05  Martin Baulig  <martin@ximian.com>
5668
5669         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
5670         returns FALSE for a successful match, not TRUE.
5671
5672 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5673
5674         * loader.c (mono_method_get_index): Optimize this a bit.
5675
5676 2005-07-04  Martin Baulig  <martin@ximian.com>
5677
5678         * class.c
5679         (class_compute_field_layout): Move the check for generic type
5680         definitions into mono_class_layout_fields().  Fixes #74684.
5681         (mono_class_from_generic_parameter): Correctly compute
5682         `klass->parent'; fixes #75457.
5683
5684         * reflection.c (register_assembly, register_module): Make sure
5685         `domain->rejobject_hash' is already created.
5686
5687 2005-07-02  Martin Baulig  <martin@ximian.com>
5688
5689         * class-internals.h
5690         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
5691         `MonoDynamicGenericClass'.      
5692
5693 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
5694
5695         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
5696         returned by a field getter is null, since null is a valid value.
5697
5698 2005-07-01  Martin Baulig  <martin@ximian.com>
5699
5700         * reflection.c (mono_reflection_generic_class_initialize): Update
5701         the `dgclass->fields [i].parent' to the correct class.
5702         (mono_image_get_fieldref_token): Use the declaring type, not the
5703         reflected type.
5704
5705 2005-07-01  Martin Baulig  <martin@ximian.com>
5706
5707         * loader.c (find_method): Also look in the interfaces; fixes #75429.
5708
5709 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
5710
5711         * threads.c (thread_cleanup): assert that thread != NULL
5712         (wait_for_tids_or_state_change): We were using the wrong variable
5713         when accessing wait->threads. `i' was always out of the bounds of
5714         the array.
5715
5716 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5717
5718         * loader.c: map user32 and kernel32 to libMonoSupportW
5719
5720 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
5721
5722         * appdomain.c (unload_thread_main): Mark this as WINAPI.
5723
5724 2005-06-28  Martin Baulig  <martin@ximian.com>
5725
5726         * loader.c (method_from_methodspec): Fix #75334.
5727
5728 2005-06-28  Martin Baulig  <martin@ximian.com>
5729
5730         Fix #74953 - Arrays now implement the generic IList<T> interface
5731         on the 2.0 platform.
5732
5733         * class-internals.h (MonoDefaults): Added `generic_array_class'.
5734
5735         * reflection.c (mono_class_bind_generic_parameters): New public
5736         function; similar to mono_reflection_bind_generic_parameters(),
5737         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
5738
5739         * domain.c (mono_init_internal): Try to initialize.
5740         `mono_defaults.generic_array_class' here; this'll only succeed if
5741         we're using the 2.0 corlib.
5742
5743         * icall.c
5744         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
5745         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
5746         (mono_lookup_internal_call): Added support for nested classes.
5747
5748         * loader.c
5749         (mono_get_method_from_token): Set `result->signature->pinvoke' if
5750         we're an interncall and have generic arguments.
5751
5752         * class.c
5753         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
5754         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
5755         instance of System.Array.InternalArray<T> for arrays, so they
5756         implement the generic IList<T> interface.
5757
5758 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
5759
5760         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
5761         (chastamar@yahoo.com). Fixes #75374.    
5762
5763 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
5764
5765         * culture-info-table.h: regenerated.
5766
5767 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5768
5769         * icall.c: handle spaces correctly for base64 strings.
5770
5771 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
5772
5773         * *.c: Kill some warnings.
5774
5775 2005-06-23  Duncan Mak  <duncan@novell.com>
5776
5777         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
5778         that this builds on Solaris 10 (x86).
5779
5780 2005-06-23  Martin Baulig  <martin@ximian.com>
5781
5782         * class.c
5783         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
5784         generic type definitions.
5785
5786 2005-06-23  Martin Baulig  <martin@ximian.com>
5787
5788         Fix #75331.
5789
5790         * metadata.c (mono_class_get_overrides): Renamed to
5791         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5792         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5793         pass it to mono_get_method_full().
5794
5795 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5796
5797         * reflection.c (mono_reflection_create_runtime_class): take the
5798         mono_domain_lock in this method. Prevents deadlocks
5799
5800 2005-06-22  Martin Baulig  <martin@ximian.com>
5801
5802         * loader.c (method_from_methodspec): Fix #75330.
5803
5804 2005-06-22  Martin Baulig  <martin@ximian.com>
5805
5806         * reflection.c (type_get_qualified_name): Use
5807         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5808         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5809         argument; use it if we don't have an assembly name.
5810
5811 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5812
5813         * object.c: In mono_message_init, set "copy out" flag for in
5814         parameters with the [Out] flag.
5815
5816 2005-06-21  Martin Baulig  <martin@ximian.com>
5817
5818         * class.c
5819         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5820         and MONO_TYPE_PTR.
5821
5822 2005-06-21  Martin Baulig  <martin@ximian.com>
5823
5824         * class.c (mono_class_init): Don't initialize `class->fields' for
5825         generic instances since they're initialized again in
5826         compute_field_layout(). 
5827         (compute_field_layout): Set the field's `generic_info' here; fix
5828         #75320. 
5829
5830 2005-06-21  Martin Baulig  <martin@ximian.com>
5831
5832         * class-internals.h
5833         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5834
5835         * metadata.c (mono_metadata_generic_method_equal): Also
5836         distinguish the `generic_class'; fixes #75334.
5837
5838 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5839
5840         * domain.c:
5841         * appdomain.c:
5842         * domain-internals.h:
5843         * reflection.c: 'domain_assemblies' field is now protected by its own
5844         lock. Don't call into managed code to run the AssemblyLoad event if we
5845         now there are no registered delegates for it.
5846
5847 2005-06-20  Martin Baulig  <martin@ximian.com>
5848
5849         * class.c (mono_class_is_assignable_from): Use a custom version of
5850         mono_class_has_parent() to make things work for generic instances;
5851         fix #75300.
5852
5853 2005-06-20  Martin Baulig  <martin@ximian.com>
5854
5855         * loader.c (method_from_methodspec): Apply a patch from
5856         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5857
5858 2005-06-20  Martin Baulig  <martin@ximian.com>
5859
5860         * class.c (mono_class_init): Reverted Zoltan's last change; it
5861         breaks generics.
5862
5863 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5864
5865         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5866
5867 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5868
5869         * socket-io.c: fix the index in the socket array for writable/error
5870         sockets. Fixes bug #75306.
5871
5872 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5873
5874         * class.c (mono_class_init): Allow interfaces to have static ctors.
5875
5876 2005-06-17  Martin Baulig  <martin@ximian.com>
5877
5878         * loader.c (method_from_methodspec): Use `context->container' when
5879         parsing the `gmethod->inst'.
5880
5881 2005-06-17  Martin Baulig  <martin@ximian.com>
5882
5883         * class.c (mono_type_get_name_recurse): Don't add the assembly
5884         name for type arguments.
5885
5886 2005-06-15  Martin Baulig  <martin@ximian.com>
5887
5888         * reflection.c (mono_image_get_inflated_method_token): Encode
5889         correct klass; fixes #75260.
5890
5891 2005-06-13 Michal Moskal <malekith@nemerle.org>
5892
5893         * icall.c: Make GetCorrespondingMethod/Constructor take
5894         MonoReflectionMethod method not MonoMethod. Removed
5895         MonoType.GetCorrespondingField, and make
5896         MonoGenericType.GetCorrespondingField take name not
5897         MonoClassField.
5898
5899 2005-06-13  Michal Moskal <malekith@nemerle.org>
5900
5901         * reflection.c (field_encode_signature, encode_locals):
5902          Make sizes of buffers for types larger (for big generic types).
5903          (create_generic_typespec,
5904          mono_reflection_sighelper_get_signature_local,
5905          mono_reflection_sighelper_get_signature_field):
5906          Add asserts for too small buffers.
5907
5908 2005-06-15  Martin Baulig  <martin@ximian.com>
5909
5910         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5911         if our parent is not a dynamic type.
5912
5913 2005-06-15  Martin Baulig  <martin@ximian.com>
5914
5915         * class-internals.h (MonoTypeNameFormat): New enum.
5916
5917         * class.c
5918         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5919         (mono_type_get_full_name): Removed.
5920         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5921         argument instead of the boolean's.
5922
5923         * icall.c (ves_icall_System_MonoType_getFullName):
5924         Added `gboolean assembly_qualified'.    
5925
5926         * reflection.h
5927         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5928
5929         * reflection.c (mono_reflection_parse_type): Parse the new type
5930         name format.
5931
5932 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5933
5934         * icall.c: no need to convert from utf16 to utf8 and then back again
5935         after the call to GetLogicalDrives.
5936
5937 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5938
5939         * icall.c: frombase64. Fix problems exposed by new tests.
5940
5941 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5942
5943         * icall.c: added internal calls for converting char [] and strings in
5944         base64 into byte [].
5945
5946 2005-06-10  Martin Baulig  <martin@ximian.com>
5947
5948         * class.c (mono_class_create_generic_2): Read the nested classes
5949         from the metadata rather than from `gklass->nested_classes' since
5950         `gklass' might not be initialized yet.
5951
5952 2005-06-09  Duncan Mak  <duncan@novell.com>
5953
5954         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5955         all public headers. Fixes #74919.
5956
5957 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
5958
5959         * domain.c: The key for proxy_vtable_hash is now a pointer
5960         array. Added new GHashFunc and GCompareFunc functions for this.
5961
5962         * class.h: The list of interfaces in MonoRemoteClass is known in
5963         advance and can't grow (we create a new MonoRemoteClass if needed),
5964         so now the interface array can be allocated together with
5965         MonoRemoteClass.
5966         
5967         * object.c: Added a new method create_remote_class_key.
5968         Fixed mono_remote_class so it does not depend on
5969         mono_upgrade_remote_class.
5970         Removed extend_interface_array.
5971         Added new method clone_remote_class(), which makes a copy of a remote
5972         class and adds a new interface or class to it.
5973         mono_upgrade_remote_class() now creates a new remote class (or gets
5974         it from the cache) if an vtable upgrade is needed. In this way
5975         we make sure that other objects sharing the same remote class
5976         don't get the new vtable with unwanted interfaces.
5977         
5978         * object-internals.h:
5979         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
5980         
5981         * marshal.c: Track changes in mono_upgrade_remote_class().
5982
5983 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
5984         * icall.c: Add runtime methods for obtaining members of inflated
5985         class, which were created from supplied non-inflated members. It
5986         is used in internal Get{Method,Constructor,Field} methods in
5987         System.Type
5988
5989 2005-06-09  Martin Baulig  <martin@ximian.com>
5990
5991         * reflection.c
5992         (mono_reflection_bind_generic_method_parameters): Fix #75169.
5993
5994 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5995         * reflection.c (mono_image_basic_init): Define
5996         Version in MonoDynamicAssembly. 
5997         
5998 2005-06-08  Martin Baulig  <martin@ximian.com>
5999
6000         Fix #75136.
6001
6002         * loader.c
6003         (mono_method_signature_full): New public method; takes a
6004         `MonoGenericContext *'.
6005         (find_method): Use mono_method_signature_full() and pass the
6006         klass'es context to it.
6007
6008         * class.c (mono_class_is_inflated_method): Use
6009         mono_method_signature_full() and pass the context to it.
6010
6011 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
6012
6013         * object.c: add proper locking in mono_remote_class_vtable(),
6014         fixes possible memory corruption.
6015
6016 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
6017
6018         * marshal.c (mono_remoting_marshal_init): set
6019         initialized after initialization.
6020
6021 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
6022
6023         * locales.c : hush.
6024
6025 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
6026
6027         * object.c (extend_interface_array): fix really silly
6028         memory corrupting / comparison bug.
6029
6030 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6031
6032         * reflection.c: Functions added to support the creation
6033         of CustomAttributeData, which includes Attribute data
6034         used by ReflectionOnly methods.
6035
6036         * reflection.h:  mono_reflection_get_custom_attrs_data and
6037          mono_custom_attrs_data_construct added (functions exposed).
6038
6039          * icall.c: Added mono_reflection_get_custom_attrs_data
6040          as icall.
6041         
6042 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
6043
6044         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
6045         lupus's request.
6046
6047 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
6048
6049         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
6050
6051         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
6052         dynamic DllImportAttribute.
6053
6054         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
6055         dynamic DllImportAttribute.
6056
6057         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
6058         Fixes #75162.
6059
6060 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6061
6062         * threads.c: avoid segfault when an unstarted thread is aborted.
6063
6064 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
6065
6066         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
6067         Returns the name and version of the runtime for reporting.
6068
6069 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6070
6071         * appdomain.c: bump corlib version.
6072         * object-internals.h: new field in MonoReflectionAssembly.
6073
6074 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6075
6076         * object-internals.h: Carlos forgot to add this field.
6077
6078 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6079
6080         * icall.c: Added create_version to create instances
6081         of Version of MonoReflectionAssemblyName. This change helps
6082         the AssemblyName tests to keep running fine.
6083         
6084 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
6085   
6086         * object.c (mono_method_return_message_restore): A somehow less
6087         intrusive fix for #75138.
6088
6089 2005-06-03  Raja R Harinath  <rharinath@novell.com>
6090
6091         * object.c (mono_method_return_message_restore): Fix computation
6092         of expected number of out args.
6093
6094 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
6095
6096         * reflection.c (mono_image_get_method_info): Fix the case when the
6097         charset is empty.
6098
6099 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
6100
6101         * object.c: Added missing null check in
6102           mono_method_return_message_restore.
6103
6104 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
6105
6106         * reflection.c (mono_image_get_method_info): Handle the case when
6107         dllentry is empty.
6108
6109 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
6110
6111         * object.c: When creating the vtable for a proxy, take into account
6112         all inherited interfaces, not only the ones registered in
6113         iclass->interfaces. This fixs bug #74996.
6114         Also, in mono_method_return_message_restore, verify that the array
6115         of out args has the expected lengh.
6116
6117 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6118
6119         * socket-io.c: update the timeout in Poll when the call is interrupte.
6120
6121 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6122
6123         * socket-io.c: support abort/suspend in Select_internal after last
6124         change.
6125
6126 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6127
6128         * threadpool.c: remove warning.
6129
6130 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6131
6132         * icall.c:
6133         * socket-io.[ch]: Select_internal uses poll() now when available, thus
6134         removing the 1024 limit from select(). Runtime part of the fix for
6135         bug #71203.
6136
6137 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6138
6139         * socket-io.c: when resolving the addresses for the same
6140         host returned by gethostname(), get the local IPs from the interface
6141         list. Loopback addresses are discarded if the are interfaces up with
6142         non-loopback ones. Fixes bug #63265.
6143
6144 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
6145
6146         * appdomain.c, verify.c, object-internals.h, reflection.c:
6147         bumped corlib number to 36, and added new extra_flags field
6148         to ReflectionMethodBuilder and friends.  Fixes #75060.
6149
6150 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
6151
6152         * gc.c: register a new weak link only if the object is non-null
6153         (fixes bug#75047).
6154
6155 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
6156
6157         * culture-info.h : short time pattern too.
6158
6159 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
6160
6161         * culture-info.h : expand long time pattern string length.
6162
6163 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
6164
6165         * culture-info-table.h : update (more French date format; #72788).
6166
6167 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
6168
6169         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
6170         the method is static. Fixes #75029.
6171
6172 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
6173
6174         * reflection.c: Update the table_idx field of method builders after
6175         saving the module, since it can change. This is a workaround for
6176         bug #74914. 
6177
6178 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
6179
6180         * culture-info-table.h : update (additional French date format).
6181
6182 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
6183
6184         * icall.c (ves_icall_type_Equals): Revert last change.
6185         
6186         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
6187
6188         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
6189
6190 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
6191
6192         * class-internals.h: Added executioncontext_class field to 
6193         MonoDefaults structure.
6194         * domain.c: Cache System.Threading.ExecutionContext class in 
6195         mono_defaults.
6196         * object.c: Capture the ExecutionContext for asynchroneous calls in
6197          mono_async_result_new.
6198         * object-internals.h: Added execution_context and original_context 
6199         fields to MonoAsyncResult. Added execution_context to MonoThread.
6200         * security-manager.c|.h: Added mono_get_context_capture_method to 
6201         return the capture method (if required by the security manager or by
6202         the framework version used).
6203         * threadpool.c: Apply capture (if present) ExecutionContext in 
6204         mono_async_invoke and revert to original context after it completes.
6205
6206 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
6207
6208         * culture-info-table.h : updated (real hacky solution for zh-CHT).
6209
6210 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
6211
6212         * culture-info-table.h : zh-CHT related workaround.
6213
6214 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
6215
6216         * marshal.c (emit_marshal_custom): Add some error checking and call the
6217         methods in the ICustomMarshaler interface. Fixes #74875.
6218         
6219         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
6220         native->managed wrappers.
6221
6222 2005-05-12  Martin Baulig  <martin@ximian.com>
6223
6224         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
6225         here and use the loader lock.
6226
6227         * mono-debug.c: Properly lock when the debugger is not attached.
6228         (mono_debug_init): Release the initial lock if we're not running
6229         in the debugger.
6230
6231 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
6232
6233         * marshal.c (emit_marshal_custom): Pass through NULL values without
6234         calling the custom marshalling routines.
6235
6236         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
6237         conversion in structures. Fixes #74882.
6238
6239 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
6240
6241         * culture-info-table.h : zh-* cultures were missing.
6242
6243 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
6244
6245         * threads.c: Added a new event background_change_event which is signaled
6246         when a thread changes its background mode.
6247         Moved here several checks previously done in managed code. The checks
6248         require the thread lock, and using the thread lock in managed code
6249         can result in deadlocks.
6250         Merged Start_internal and Thread_internal into a single method. Now 
6251         Thread_internal does all work of creating and starting a thread.
6252         Added icalls for setting and getting the state of the object. Moved from
6253         managed code to avoid locking there.
6254         Added wait_for_tids_or_state_change() which is called instad of
6255         wait_for_tids when waiting for non-backround threads to end. This method
6256         will return if one of the threads ends or the background_change_event
6257         is signaled.
6258         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
6259         the background mode. This method signals the background_change_event
6260         event.
6261         * icall.c:
6262         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
6263         removed Start_internal.
6264         
6265 2005-05-11  Martin Baulig  <martin@ximian.com>
6266
6267         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
6268         to order of some fields to get proper alignment on 64-bit machines.
6269
6270 2005-05-11  Martin Baulig  <martin@ximian.com>
6271
6272         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
6273         changes as they're broken and completely fuck up the debugger.
6274
6275         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
6276
6277 2005-05-10  Martin Baulig  <martin@ximian.com>
6278
6279         * reflection.c (mono_reflection_generic_class_initialize): Don't
6280         call mono_class_setup_parent() here.
6281
6282 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6283
6284         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
6285         send/receive timeout use an integer in milliseconds. We were using a
6286         struct timeval.
6287
6288 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6289
6290         * locales.c:
6291         (internal_get_cultures): reserve the first slot of the array for the
6292         InvariantCulture, which will be filled in managed code.
6293
6294 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
6295
6296         * reflection.c (mono_image_fill_module_table): Initialize the
6297         GENERATION field as well.
6298
6299 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6300
6301         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
6302         Monitor.Enter on the object.
6303
6304 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
6305
6306         * threads.c: Enable the wait for running threads when exiting.
6307         * icall.c: Suspend all threads before exiting.
6308
6309 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
6310
6311         * assembly.c (mono_assembly_load_reference): Fix warning.
6312
6313 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6314
6315         * threadpool.c: changed the default number of threads per cpu. From now
6316         on, the default will be 20 + (5 * number of cpus) instead of 50.
6317
6318 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
6319
6320         * loader.c (mono_method_get_signature_full): Add locking here.
6321
6322 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
6323
6324         * appdomain.c: Moved methods for parsing and freeing assembly
6325         names to assembly.c.
6326         * assembly.c, domain-internals.h: Created public methods for parsing
6327         assembly names. Fixed mono_assembly_load_with_partial_name:
6328         it now finds the best match, taking into account the version,
6329         token and culture specified in the partial name. Also return
6330         the latest version if no version information is specified.
6331
6332 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
6333
6334         * threadpool.c: replace check for SocketAsyncCall class.
6335
6336 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6337
6338         * threadpool-internals.h:
6339         * Makefile.am: added threadpool-internals.h
6340
6341         * threadpool.c: call mono_unhandled_exception on exceptions not handled
6342         that happen in threadpool threads (tested on MS).
6343         (mono_thread_pool_remove_socket): new function that dispatch any pending
6344         AIO call on a socket that is closing. By now only epoll really needs it,
6345         as select/poll wake up when the socket closes.
6346
6347
6348         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
6349
6350 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
6351
6352         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
6353
6354 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
6355
6356         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
6357
6358 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
6359
6360         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
6361         has an abort request, convert it into a suspend request.
6362
6363 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
6364
6365         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
6366         warning for the usage of `UnmanagedFunctionPointerAttribute' which
6367         is not supported yet.
6368
6369 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6370
6371         * image.c: register assemblies loaded from data (bundles) in the loaded
6372         assemblies hash. Fixes bug #74772.
6373
6374 2005-04-29  Martin Baulig  <martin@ximian.com>
6375
6376         * class.c (mono_type_get_name_recurse): Update to the new naming
6377         schema from the latest .NET 2.x beta2.
6378         (mono_class_setup_vtable_general): If we're a generic instance,
6379         copy the vtable from our generic type definition and inflate all
6380         the methods in it.
6381
6382         * loader.c (find_method): Update to the new naming schema from the
6383         latest .NET 2.x beta2.
6384
6385 2005-04-29  Raja R Harinath  <harinath@gmail.com>
6386
6387         * class.c (mono_class_init): Add a mono_loader_unlock to the
6388         #74734 fix.
6389
6390 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
6391
6392         * icall.c (ves_icall_System_Environment_Exit): Remove the 
6393         suspend_all_other_threads () call for the time being, since it can hang.
6394
6395         * threads.c (mono_thread_manage): Similarly, disable the waiting for
6396         the background threads to exit, since it can also hang.
6397
6398         * class.c (mono_class_init): Applied patch from Ankit Jain 
6399         (radical@gmail.com). Avoid pending init errors when a field refers
6400         to a nested class using a typeref. Fixes #74734.
6401
6402         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
6403         this for dynamic modules.
6404
6405 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6406
6407         * threads.c: don't wait for threads that are in the process of aborting
6408         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
6409         and waiting for background threads to finish. This makes xsp and
6410         mod-mono-server exit without random length delays and/or hangs.
6411
6412 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6413
6414         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
6415
6416 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
6417
6418         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
6419         dynamic types to prevent infinite loops. Fixes #74727.
6420
6421         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
6422         ..._is_assignable_to.
6423
6424 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
6425
6426         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
6427
6428 2005-04-25  Martin Baulig  <martin@ximian.com>
6429
6430         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
6431
6432         * domain.c
6433         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
6434
6435         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
6436
6437         * reflection.c (build_compressed_metadata): Set metadata header
6438         version to 2.0.
6439
6440 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
6441
6442         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
6443         number into an integral and a decimal part. Fixes #70473.
6444
6445         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
6446
6447 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
6448
6449         * culture-info-table.h : reflected the latest locale-builder output.
6450
6451 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6452
6453         * threadpool.c: check for SuspendRequested too when deciding if
6454         mono_thread_interruption_checkpoint should be called.
6455
6456 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6457
6458         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
6459         * threads.c: remove interruption_mutex and use Interlocked instead. When
6460         suspending all the threads, wait for all the suspended events at once.
6461         If we're shutting down and get an APC that is going to be queued,
6462         call mono_thread_execute_interruption immediately, as the thread might
6463         be sleeping on a pthread condition or mutex.
6464
6465         * icall.c: call mono_runtime_set_shutting_down before suspending the
6466         threads.
6467
6468         Fixes bug #74693. And now xsp is happier when exiting.
6469
6470 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
6471
6472         * loader.c (mono_stack_walk): Fix #74690.
6473
6474 2005-04-22  Martin Baulig  <martin@ximian.com>
6475
6476         * mono-debug.h (MonoDebugMethodJitInfo): Added
6477         `MonoDebugMethodJitInfo *jit'.
6478
6479         * mono-debug.c (mono_debug_read_method): Cache the
6480         MonoDebugMethodJitInfo in `address->jit'.
6481         (mono_debug_free_method_jit_info): New public method.
6482
6483 2005-04-22  Martin Baulig  <martin@ximian.com>
6484
6485         * class.c (mono_class_is_assignable_from): Disallow
6486         type parameter -> interface.
6487
6488 2005-04-21  Dick Porter  <dick@ximian.com>
6489
6490         * threads.c (mono_thread_create): Turn an assertion into an error.
6491
6492 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
6493
6494         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
6495         
6496         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
6497         Fix some gcc 4.0 warnings.
6498
6499 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
6500
6501         * file-io.c: fix alt dir separator char on unix systems
6502         and cleanup (fixes bug #71214).
6503
6504 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
6505
6506         * marshal.c: Use CALLVIRT instead of CALL when dispatching
6507         a call to a remote domain, since the method may be an
6508         interface method in the client domain. This fixes bug #74192.
6509
6510 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6511
6512         * threadpool.c: recv/send are now performed before going back to managed
6513         code to save one transition.
6514
6515 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6516
6517         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
6518
6519         * metadata/threadpool.c: removed hack to workaround the bug above.
6520
6521         Fixes bug #74618.
6522
6523 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
6524
6525         * reflection.c reflection.h: Fix handling of parameter defaults in
6526         dynamic methods. Also fixes handling of parameter attributes.
6527         Fixes #74609.
6528
6529         * mono-debug.c (mono_debug_close_image): Fix warning.
6530
6531 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6532
6533         * socket-io.h: replaced old unused field with new 'blocking'.
6534         * threadpool.c: restore socket blocking state on windows(tm).
6535
6536 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
6537
6538         * icall.c: don't return the codebase in the AssemblyName[] returned by
6539         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
6540         * object-internals.h: Removed FIXME (fields were presents) and fixed
6541         versioncompat declaration.
6542
6543 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6544
6545         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
6546         not closed, so don't cleanup when it happens.
6547
6548 2005-04-13  Chris Toshok  <toshok@ximian.com>
6549
6550         * mono-debug-debugger.h: change prototype for
6551         mono_debugger_lookup_type.
6552
6553         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
6554         this function, although it should probably be named
6555         mono_debugger_init_type.
6556
6557 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6558
6559         * threadpool.c: fix non-AIO case.
6560
6561 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
6562
6563         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
6564         the built-in profiler to measure just JIT compilation times.
6565
6566 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6567
6568         * threadpool.c: the epollfd might be closed by another thread at
6569         any time, so ignore EBADF at treat it as a "we're closing" sign.
6570
6571 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6572
6573         * threadpool.c: release the semaphores with a count equals to the number
6574         of working threads in both IO and regular pools. Fixed typo that messed
6575         up the count of IO pool threads. Don't initialize the pipe handles if
6576         we're using epoll.
6577
6578 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6579
6580         * threadpool.c: some systems don't like a NULL when deleting the socket
6581         from epoll.
6582
6583 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6584
6585         * threadpool.c: fix semaphore allocation.
6586
6587 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6588
6589         * threadpool.c: added epoll() based implementation for asynchronous IO
6590         that is used instead of the default poll() when available.
6591         It can be disabled by setting MONO_DISABLE_AIO.
6592
6593 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6594
6595         * threadpool.c: windows needs 'closesocket' and instead of returning
6596         0 when the stream is closed while in select, it returns -1. Fixes bug
6597         #74573.
6598
6599 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
6600
6601         * class.c (class_compute_field_layout): Fix the regression caused by
6602         the previous try.
6603
6604 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6605
6606         * threadpool.c: separate pool for socket async. IO.
6607         * threadpool.h: mono_max_worker_threads is not a global any more.
6608
6609 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
6610
6611         * class.c (class_compute_field_layout): Fix #74549.
6612
6613 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6614
6615         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
6616         use 2 connected sockets instead.
6617
6618 2005-04-08  Miguel de Icaza  <miguel@novell.com>
6619
6620         * mono-config.c: Add new entry point for mkbundle
6621         mono_config_parse_memory. 
6622
6623 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6624
6625         * threadpool.c: removed another unused function.
6626
6627 2005-04-08  Ankit Jain  <radical@corewars.org>
6628
6629         * reflection.c (get_default_param_value_blobs): Add 'types'
6630         parameter to get the types encoded in the constant table.
6631         (mono_param_get_objects): Use the type from the constant table,
6632         not the type of the parameter, when creating default values.
6633         Handle null default values correctly.
6634
6635 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6636
6637         * file-io.c:
6638         * file-io.h:
6639         * threadpool.c:
6640         * threadpool.h:
6641         * icall.c:
6642         * socket-io.c: removed dead code for async IO.
6643
6644 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6645
6646         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
6647
6648         * threadpool.c: intercept socket async. calls and pass them to a thread
6649         that is polling and dispatching the job items to the threadpool as
6650         socket become ready. Fixes bugs #71217, #71933.
6651
6652         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
6653         between char and short/ushort arrays.
6654
6655         * socket-io.c: remove dead code.
6656
6657 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6658
6659         * locales.c,
6660           icall.c : removed InternalToUpper_Comp() and
6661           InternalToLower_Comp().
6662
6663 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6664
6665         * char-conversions.h : The tables were incorrectly generated. Should
6666           be generated against invariant culture.
6667
6668 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
6669
6670         * object.c (mono_runtime_invoke_array): Fix return value when 
6671         passing pre-created valuetype objects to ctors.
6672
6673         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
6674         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
6675         Fixes #74338.
6676
6677 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
6678
6679         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
6680         only used with --security and hides the wrong corlib version error.
6681
6682 2005-03-30  Joshua Tauberer  <tauberer@for.net>
6683
6684         * class.c: Changed mono_class_name_from_token so that types
6685         outside of a namespace don't have an initial period.  Improved
6686         the g_warning message used in _mono_class_get when loading
6687         fails.
6688         * assembly.c: In mono_assembly_load_reference, when an assembly
6689         can't be found, "No such file or directory" is misleading and
6690         unhelpful because a few paths were checked for the presence of
6691         the assembly.  When that happens (ENOENT), display a nicer
6692         message indicating the directories that were searched.  In all
6693         cases, the warning is made easier to read for non-hackers.
6694
6695 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
6696
6697         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
6698         project/solution.
6699         * appdomain.h|domain.c: Removed inline from functions.
6700         * appdomain.c: Reduced warnings when compiling on windows.
6701         * icall.c: Fixed output_debug declaration to gunichar2*.
6702         * mono-config.c: Reduced warnings when compiling on windows.
6703         * rand.c: Added missing "windows.h". Added missing return value.
6704         * rawbuffer.c: Added missing winsock2.h for windows.
6705         * sysmath.h: Added mono-compiler.h header to allow/ease 
6706         compilation with non-GCC compilers.
6707         * threads.c: Fixed declarations to compile with VS.NET C compiler.
6708         Removed cast warnings.
6709
6710         Adapted from the work of J Lothian (for VC6).
6711
6712 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
6713
6714         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
6715         from default_path.
6716
6717 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
6718
6719         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
6720         the 2.0 profile.
6721
6722 2005-03-27  Raja R Harinath  <harinath@gmail.com>
6723
6724         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
6725         has to be in $(exec_prefix).  $(prefix) is for arch-independent
6726         stuff, and it would probably use $(prefix)/share rather than
6727         $(prefix)/lib.
6728
6729 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6730
6731         * console-io.c: added 2 includes that might be missing.
6732
6733 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
6734
6735         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
6736         profile.
6737
6738         * reflection.c (create_custom_attr): Allocate the params array using
6739         alloca so it gets GC tracking.
6740
6741 2005-03-23  Chris Toshok  <toshok@ximian.com>
6742
6743         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
6744         out some spew.
6745
6746 2005-03-24  Raja R Harinath  <rharinath@novell.com>
6747
6748         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
6749         changes to pick up any changes in prefix, etc.
6750
6751 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6752
6753         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
6754         
6755         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
6756         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
6757
6758 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6759
6760         * class-internals.h object-internals.h class.c reflection.c: Extend the
6761         mono_lookup_dynamic_token () function to return the class of the
6762         token as well. 
6763
6764         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
6765         well. Fixes #73848.
6766
6767 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
6768
6769         * security-manager.c: Skip inheritance checks for intra-corlib
6770         class inheritance and method overrides. This skips a lot of checks
6771         and (anyway) permissions cannot work until corlib is loaded.
6772
6773 2005-03-23  Martin Baulig  <martin@ximian.com>
6774
6775         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
6776         MONO_TYPE_GENERICINST.  
6777
6778 2005-03-23  Martin Baulig  <martin@ximian.com>
6779
6780         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
6781
6782 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6783
6784         * class.c: added locking comments to some functions.
6785         Cache the interface offsets arrays (saves about 20 KB
6786         of runtime memory in a typical app).
6787         Reduce the time overhead in mono_class_setup_supertypes ().
6788
6789 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6790
6791         * icall.c: speedup and fix leaks in GetMethodsByName and
6792         GetPropertiesByName.
6793
6794 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6795
6796         * reflection.c: some locking fixes.
6797
6798 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6799
6800         * metadata.c: added missing break in case statement.
6801
6802 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6803
6804         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6805         typedbyref return values. Fixes #73941.
6806
6807 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6808
6809         * security-manager.c|h: Added demandunmanaged method and 
6810         suppressunmanagedcodesecurity class to MonoSecurityManager.
6811         Renamed aptc class to allowpartiallytrustedcallers.
6812
6813 2005-03-17  Martin Baulig  <martin@ximian.com>
6814
6815         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6816
6817 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6818
6819         * file-io.c: disabled file async. IO using aio_*. It uses the
6820         threadpool now. Workaround for bug #73718.
6821
6822 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6823
6824         * assembly.h, mono-config.c: added code to deal with bundled configs
6825         for bundled assemblies.
6826
6827 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6828
6829         * *.c, private.h: cleanup, removing old private.h header file.
6830
6831 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6832
6833         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6834         and throw_on_unmappable_char attributes.
6835
6836 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6837
6838         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6839         _ProcessName_internal.
6840
6841 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6842
6843         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6844         #73631.
6845
6846         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6847         are no longer used.
6848
6849 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6850
6851         * object.c (compute_class_bitmap): Add support for generics. Fixes
6852         #73527.
6853
6854 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6855
6856         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6857
6858 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6859
6860         * filewatcher.c: commented out the code for windows watcher, as we don't
6861         use it (we use the managed implementation instead).
6862
6863 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6864
6865         * object-internals.h (MonoThread): Remove 'unused1' field.
6866
6867         * appdomain.c: Bump corlib version.
6868
6869         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6870
6871         * reflection.c (mono_reflection_create_runtime_class): Remove the
6872         AssemblyBuilder.Save optimization since it causes too many problems.
6873
6874 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6875
6876         * exception.c|h: Added mono_get_exception_reflection_type_load to
6877         create a ReflectionTypeLoadException object.
6878         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6879         to return NULL is a InheritanceDemand fails during reflection. Updated
6880         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6881         ReflectionTypeLoadException if an InheritanceDemand fails during 
6882         reflection. Added icall mapping for GetLinkDemandSecurity.
6883         * security-manager.c|h: Added ves_icall_System_Security_
6884         SecurityManager_GetLinkDemandSecurity internal call to return the
6885         class and methods permissions set for a LinkDemand. Removed unused
6886         fields in MonoSecurityManager.
6887
6888 2005-03-10  Martin Baulig  <martin@ximian.com>
6889
6890         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6891         it's a generic instance.
6892
6893 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6894
6895         * reflection.c (mono_get_object_from_blob): Applied patch from
6896         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6897
6898         * class.c (mono_class_is_assignable_from): Another try at fixing 
6899         #73469 without breaking anything.
6900
6901 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6902
6903         * class.c: (mono_class_is_assignable_from): Revert the last changes
6904         since they don't work with generics.
6905         
6906         * class.c (mono_class_is_assignable_from): Fix build bustage.
6907
6908         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6909         the managed IsAssignableFrom method. Fixes #73469.
6910
6911         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6912         function.
6913
6914 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6915
6916         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6917         memory when the remoting callback does not sets the out arguments.
6918         Fixes #73007.
6919
6920         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6921         by mistake.
6922
6923         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6924
6925         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6926
6927         * appdomain.c: Bump corlib version.
6928
6929 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6930
6931         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6932         function.
6933
6934         * threads.c (mono_thread_attach): Detect threads which are not started
6935         by the GC pthread wrappers.
6936
6937 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6938
6939         * icall.c: Added new icall for RNG.
6940         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6941         single handle on Linux to access /dev/urandom and fix #73183.
6942
6943 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6944
6945         * object.c: setting the new vtable in a transparent proxy object must
6946         not change the GC descriptor.
6947
6948 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6949
6950         * object.c: fixed compilation without GCJ support.
6951         * reflection.c: for runtime-created types ensure klass->has_references
6952         is correct (bug #73215).
6953
6954 2005-03-02  Martin Baulig  <martin@ximian.com>
6955
6956         * class.c (mono_class_is_assignable_from): Make this work if
6957         `oklass' is a generic instance; fixes #72831.
6958
6959 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6960
6961         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
6962         with hasthis set.
6963         
6964         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
6965
6966         * marshal.c: Reorganize native->managed marshalling code to also use
6967         the emit_marshal_... functions.
6968
6969 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6970
6971         * object.c: typed allocs have issues with bitmap sizes > 30,
6972         so check for max_set >= 30.
6973
6974 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6975
6976         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
6977         managed code. Fixes #73012.
6978
6979         * metadata.h (MonoMarshalSpec): Add elem_mult field.
6980
6981         * metadata.c reflection.c: Load/Emit elem_mult as well.
6982         
6983         * metadata.h (MonoMarshalSpec): Add comment.
6984
6985         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
6986
6987         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
6988         num_elem to -1 if not given.
6989
6990         * object-internals.h (MonoReflectionMarshal): Add has_size field.
6991
6992         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
6993         given values.
6994
6995 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
6996
6997         * null-gc.c (mono_gc_free_fixed): Was not compilable.
6998
6999 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
7000
7001         * reflection.c (encode_marshal_blob): Encode param_num field as well.
7002
7003         * object-internals.h (MonoReflectionMarshal): Add param_num field.
7004
7005 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
7006
7007         * object.c: generalized the reference bitmap creation
7008         and added hooks for the new GC.
7009         * class-internals.c: removed the gc_bitmap field from MonoClass.
7010
7011 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7012
7013         * domain.c: help the compiler to produce better code
7014         in mono_jit_info_table_find ().
7015
7016 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
7017
7018         * object.c: make all allocations look typed.
7019
7020 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7021
7022         * socket-io.c: load Mono.Posix if it's not loaded already
7023         (fixes bug#73033).
7024
7025 2005-02-24  Martin Baulig  <martin@ximian.com>
7026
7027         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
7028         * reflection.c (dup_type): Likewise.
7029
7030 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
7031
7032         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
7033         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
7034
7035 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7036
7037         * domain.c, threads.c, object-internals.h: make the critical thread
7038         local vars use the fast access mode (even when we're compiled in
7039         a lib). Provide accessors to be used by the jit during codegen.
7040
7041 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7042
7043         * appdomain.c: Changed hook functios behavior to include
7044         support for the reflection only assemblies. Some icalls were changed
7045         to support the mentioned assemblies too. Signatures of static methods
7046         try_assembly_resolve and real_load now have an additional parameter:
7047         refonly.
7048
7049         * assembly.c: General changes to mono_assembly_ methods to support
7050         reflection only api. Functions mono_assembly_open, mono_assembly_load,
7051         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
7052         suffix, to support an additional gbool parameter to specify whether
7053         the assembli is reflection only or not. Created some new hook functions 
7054         to add support for reflection only assemblies. Signatures of static 
7055         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
7056         have now an additional parameter: refonly.
7057
7058         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
7059         indicating whether the assembly is reflection only or not.
7060
7061         * exception.c: Add mono_get_exception_invalid_operation.
7062
7063         * icall.c: Throw an InvalidOperationException when trying to invoke
7064         a property/method/event, or trying to set/get the value of a field.
7065         Also add an icall to retrieve the ref_only flag to the
7066         MonoReflectionAssembly.
7067
7068 2005-02-23  Chris Toshok  <toshok@ximian.com>
7069
7070         Part of fix for #72827.
7071         * mono-debug.c (mono_debug_add_method): add lexical block data to
7072         the info we write.  Kind of a hack at the moment - we copy the
7073         lexical block info from the MonoDebugMethodInfo to the
7074         MonoDebugMethodJitInfo here, before writing it.
7075         (mono_debug_read_method): read the lexical block info.
7076
7077         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
7078
7079         * debug-mono-symfile.h: add lexical block support.
7080
7081         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
7082         support.
7083
7084 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
7085
7086         * loader.c (mono_lookup_pinvoke_call): Fix warning.
7087
7088         * object.c (mono_runtime_free_method): Call mono_free_method () and
7089         put the TODOs there.
7090
7091         * loader.c (mono_free_method): Free up most memory allocated for 
7092         dynamic methods.
7093
7094 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7095
7096         * reflection.c: properly flag a Type argument to a
7097         named custom attr value (bug #72248).
7098
7099 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7100
7101         * reflection.c: reduce code duplication in named custom
7102         attribute encoding.
7103
7104 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
7105
7106         * reflection.c: properly encode custom attrs of type object
7107         (bug #72649).
7108
7109 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
7110
7111         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
7112
7113 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
7114
7115         * socket-io.c: load System.dll if it's not loaded already
7116         (bug #72850 and #70477).
7117
7118 2005-02-21  Martin Baulig  <martin@ximian.com>
7119
7120         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7121         generic instances.
7122
7123 2005-02-21  Martin Baulig  <martin@ximian.com>
7124
7125         * reflection.c (mono_image_build_metadata): We also need to
7126         "fixup" the MethodImpl table after we computed the final method
7127         indices.  Call fixup_methodimpl() to do that.
7128         (fixup_methodimpl): New private method.
7129
7130 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
7131
7132         * assembly.c: special case mscorlib.dll (bug#72536),
7133         patch from Carlos Alberto Cortez.
7134
7135 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
7136
7137         * threads-types.h threads.c: Fix build bustage.
7138
7139         * threads.c: Use a union for long<->double conversions.
7140
7141         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
7142         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
7143
7144         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
7145         containing the checkpoint call with NOT_TAKEN.
7146         
7147         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
7148         checkpoint before pushing the arguments, so they won't have to be
7149         spilled to stack.
7150
7151 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7152
7153         * domain.c, assembly.c, domain-internals.h: make some data
7154         const and relocation-free.
7155
7156 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
7157
7158         * object.c, appdomain.c, class-internals.h: introduce the
7159         MonoClassRuntimeInfo structure to hold the info needed to
7160         use a class at runtime. Made mono_class_vtable() lock-free
7161         for all the appdomains.
7162
7163 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
7164
7165         * metadata-internals.h, image.c: introduce a per-image mempool to
7166         be used for memory that has the same lifetime as the image.
7167
7168 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
7169
7170         * domain.c: In mono_init_internal(), instead of selecting the first
7171         runtime version supported by an executable, get a list of all
7172         supported versions and select the one for which an mscorlib exists
7173         (since even if the runtime supports a given version, it doesn't mean
7174         that the framework for that version is installed).
7175         Modified get_runtimes_from_exe to support this behavior.
7176         In supported_runtimes, added information about additional system
7177         assembly versions.
7178         
7179         * assembly.c: Added support for more than one system assembly version
7180         per runtime version. Updated the assembly list.
7181         In mono_assembly_remap_version, removed the initial version check,
7182         since we don't know to which version we need to compare until we
7183         get the version set on which the assembly is based.
7184         Moved the code for loading corlib into the new method
7185         mono_assembly_load_corlib(), so it can be used by the initialization
7186         code.
7187         
7188         * domain-internals.h: Updated data structures and added declaration
7189         for mono_assembly_load_corlib.
7190
7191 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
7192
7193         * reflection.c (resolve_object): Fix the creation of the signature in 
7194         the SignatureHelper case.
7195
7196         * assembly.c (mono_assembly_remap_version): Fix binary search.
7197         
7198 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
7199  
7200         * class.c: Added inheritance check when a method is overloaded (from a
7201         virtual method or when implementing an interface) and when a class is
7202         inherited. Added functions to set a failure for a class and to 
7203         retreive the exception from a failure.
7204         * class-internals.h: Added fields to MonoClass to keep the exception
7205         information status for inheritance (or other exceptions) to be thrown
7206         later (i.e. not at load time).
7207         * object.c: Throw the inheritance SecurityException when a type is to 
7208         be created with either class or method inheritance violations.
7209         * reflection.c|h: Fix when getting declsec from a class. Removed 
7210         unrequired code for class. Improved sanity in parameter naming.
7211         * security-manager.c|h: Added functions to check for class and method
7212         inheritance.
7213
7214 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
7215
7216         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
7217         and has_finalize in dynamic types as well.
7218
7219 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
7220
7221         * culture-info-table.h : fixed currency format for en-GB (and so on).
7222
7223 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
7224
7225         * gc.c: ensure the GC handles never have 0 as a value.
7226
7227 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
7228
7229         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
7230         a pointer to a struct to unmanaged code. Fixes #72625.
7231
7232 2005-02-16  Martin Baulig  <martin@ximian.com>
7233
7234         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
7235
7236 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
7237
7238         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
7239
7240 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
7241
7242         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
7243
7244         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
7245         UnmanagedFunctionPointerAttribute, use it for determining calling convention
7246         etc. Fixes #71471.
7247
7248         * reflection.c (mono_custom_attrs_get_attr): New helper function.
7249
7250         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
7251
7252 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
7253
7254         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
7255         changes to make the current context a field in MonoThread.
7256
7257 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
7258
7259         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
7260         the last change.
7261         
7262         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
7263         extracted from mono_marshal_get_native_wrapper.
7264
7265         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
7266         to create wrappers around native functions.
7267
7268         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
7269         delegates for arbitrary function pointers. Fixes #71472.
7270
7271 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7272
7273         * threads.c: cleaned up the code a little.
7274
7275 2005-02-15  Martin Baulig  <martin@ximian.com>
7276
7277         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
7278         the data table.
7279
7280         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
7281         allocate larger chunks if needed.
7282
7283 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
7284
7285         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
7286         in by mistake.
7287
7288 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
7289
7290         * domain.c: keep the domains in an array and ensure the domain ids
7291         are kept small, so they can be used as indexes to domain-specific data
7292         with a small memory overhead.
7293
7294 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
7295
7296         * icall.c: Handle byref types in Type icalls. Fixes #72544.
7297
7298 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
7299
7300         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
7301
7302 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
7303
7304         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
7305
7306         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
7307         values.
7308
7309         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
7310         
7311 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
7312
7313         * domain-internals.h: add the hashtable here.
7314
7315         * class-internals.h: Remove `info' from MonoMethod
7316
7317         * domain.c: Add a new hashtable, jit_trampoline_hash
7318
7319 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7320
7321         * object.c: don't set the value of static fields
7322         (fixes bug#72494).
7323
7324 2005-02-11  Martin Baulig  <martin@ximian.com>
7325
7326         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
7327         (mono_debug_add_method): Silently ignore the method if it's too big.
7328         (mono_debug_add_type): Likewise.
7329
7330 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
7331
7332         * threads.c, appdomain.c: remove #ifdefs from the code.
7333
7334 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
7335
7336         * metadata-internals.h: Added flags to MonoAssembly to cache the most
7337         common security informations. This allows us to stay in unmanaged code
7338         when doing LinkDemand and it's special cases (except for the first 
7339         time for initialization). The flags a very much used with --security.
7340         * reflection.c|h: Added code to get declarative security attributes 
7341         for LinkDemand and InheritanceDemand. This required to refactor the
7342         existing code for Demand.
7343         * security-manager.c|h: Added new method fields for the special cases
7344         of LinkDemand.
7345
7346 2005-02-10  Martin Baulig  <martin@ximian.com>
7347
7348         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
7349         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
7350
7351 2005-02-10  Martin Baulig  <martin@ximian.com>
7352
7353         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
7354         debugging code; this is almost a complete rewrite.
7355
7356         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
7357
7358 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7359
7360         * domain.c, object.h: expose mono_string_equal () and 
7361         mono_string_hash ().
7362         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
7363         it's implemented in managed code.
7364
7365 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7366
7367         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
7368         lo leak objects between appdomains.
7369
7370 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7371
7372         * assembly.c: old compilers compilation fix from 
7373         robertj@gmx.net (Robert Jordan).
7374
7375 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
7376
7377         * class-internals.h: Little reminder for the future.
7378
7379         * debug-helpers.c: Fix up wrapper_type_names
7380
7381 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7382
7383         * image.c, metadata-internals.h: when loading an image from a file,
7384         mmap all of it and use the same codepaths as when using a
7385         in-memory image: the code is simpler and we use less memory
7386         (both writable and readonly).
7387
7388 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
7389
7390         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
7391         API to alloc runtime data structures that need to be tracked by the
7392         GC and contain pointers.
7393         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
7394         make the code more readable and eventually use a different GC.
7395
7396 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
7397
7398         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
7399         for out arguments.
7400         
7401 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
7402
7403         * object.c: In release_type_locks(), don't release the cctor lock
7404         if it has already been released. This fixes a crash in the
7405         thread5 test.
7406
7407 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7408
7409         * gc.c, marshal.c, icall.c: register a delegate for finalization
7410         only when the native function pointer has been allocated for it.
7411
7412 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7413
7414         * object.c: cleaned up some code, allocate objects that are
7415         pointer free with the atomic malloc variant. Allocate memory
7416         for static data from the mempool if it's pointer-free.
7417         Allocate the bounds array at the end of the array data, when needed.
7418         * object-internals.h, object.h: move a private function in a private
7419         header.
7420         * class.c: handle missing case in tracking references in fields.
7421
7422 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
7423
7424         * class.c, class-internals.h: keep track if a type has
7425         reference fields in either the instance or static fields.
7426
7427 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
7428
7429         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
7430         and renamed to MonoRuntimeInfo. Added fields to store the expected
7431         framework assembly version. Changed mono_get_framework_version and
7432         mono_get_runtime_version for a single mono_get_runtime_info method.
7433         
7434         * assembly.c: Added method to remap system assembly versions to the
7435         current executing runtime version. Removed old mapping code.
7436         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
7437         
7438         * icall.c, reflection.c: Track api changes.
7439
7440 2005-02-06  Miguel de Icaza  <miguel@novell.com>
7441
7442         * loader.c (method_from_memberref): Improve error reporting,
7443         produce the class name instead of the typeref/typedef index. 
7444
7445 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
7446
7447         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
7448
7449 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7450
7451         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
7452         stdcall and charset name mangling.  Reorganize the code and add
7453         some tracing stuff.
7454
7455 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
7456
7457         * monodiet.c: More iters!
7458
7459         * marshal.c: Iter usage.
7460
7461         * icall.c: Iter usage.
7462
7463         * object.c: Use iters.
7464
7465         * debug-helpers.c: More iters
7466
7467 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7468
7469         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
7470         under win32.
7471
7472 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
7473
7474         * mono-debug-debugger.c: use iters
7475
7476         * class.c, class-internals.h: mono_class_setup_events is static
7477         now
7478
7479         * All callers: use iters
7480
7481 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7482
7483         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
7484         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
7485
7486 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7487
7488         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
7489
7490         * marshal.h: Add prototypes for ldfld/stfld_remote.
7491
7492         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
7493         this is called during startup.
7494         
7495 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
7496
7497         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
7498         MonoThreadsSync struct private in monitor.c. Changed the way
7499         MonoThreadsSync is allocated so it's faster and there is no
7500         need to keep track of it with a finalizer and it uses less memory.
7501         This also finally allows us to allocate mono objects as ptrfree when
7502         there are no reference fields.
7503
7504 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
7505
7506         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
7507         disappearing link to the GC interface and use them to simplify
7508         the gchandles code.
7509
7510 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7511
7512         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
7513         stfld_remote which call mono_load/store_field_new. This allows methods
7514         calling ldfld/stfld wrappers to be AOTed.
7515
7516         * console-io.c: Include sys/filio.h under solaris.
7517         
7518         * console-io.c: Include curses.h if needed correctly.
7519
7520 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7521         
7522         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
7523         method->klass as well.
7524
7525         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
7526
7527         * class.c (mono_class_init): Switch on lazy initialization of 
7528         methods.
7529
7530         * class.c (mono_class_get_finalizer): Handle the case when the 
7531         finalizer is inherited.
7532
7533 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7534
7535         * console-io.c: <curses.h> is needed by term.h on solaris.
7536
7537 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
7538
7539         * icall.c, class-internals.h, monodiet.c, class.c: Remove
7540         mono_class_setup_properties where possible. Remove this ftn from
7541         the header file, and make it static.
7542
7543 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7544
7545         * loader.c: Add missing setup_... call.
7546
7547         * class.c: Add missing setup_... calls.
7548
7549         * class.c (mono_class_init): Switch on lazy initialization of 
7550         the generic vtable.
7551         
7552         * class.c (mono_class_init): Fix generics broken by the recent changes.
7553
7554         * monodiet.c (handle_type): Add missing setup_... calls.
7555
7556         * class.c: Back out garbage in previous patch.
7557         
7558         * class.c: Add missing setup_... calls.
7559
7560         * class.c (mono_class_get_method_from_name_flags): Avoid calling
7561         mono_class_setup_methods () if possible.
7562
7563         * class-internals.h (MonoClass): Add 'has_cctor' flag.
7564
7565         * class-internals.h (MonoCachedClassInfo): New structure.
7566
7567         * class.c: Initialize properties and events fields of MonoClass lazily.
7568
7569         * class.c: Add infrastructure for lazily initializing the methods and
7570         vtable fields of MonoClass. Not yet used.
7571
7572         * class.c (mono_class_get_finalizer): New helper function.
7573
7574         * class.c: Add infrastructure for loading some class related data from
7575         an AOT file.
7576
7577         * object.c: Add infrastructure for initializing the vtable from data
7578         in the AOT file.
7579
7580         * gc.c (run_finalize): Use mono_class_get_finalizer ().
7581
7582         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
7583         appropriate initialization function before accessing parts of the
7584         MonoClass structure.
7585
7586         * marshal.c: Fix warnings.
7587         
7588         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
7589
7590         * mono-debug-debugger.c (get_exception_message): Use 
7591         mono_class_get_method_from_name_flags ().
7592
7593 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
7594
7595         * reflection.c, appdomain.c: Replace a few manual searches that
7596         Zoltan missed. (Paolo approved this part of my initial patch).
7597
7598 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
7599
7600         * profiler.c: disable recording statistical events at report time.
7601
7602 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7603
7604         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
7605         to byteswap arrays of enum values, too (bug #72080).
7606
7607 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
7608
7609         * appdomain.c (set_domain_search_path): Allow this to be called if
7610         domain->setup is not yet set.
7611
7612         * loader.c (mono_method_get_index): New helper function.
7613
7614         * loader.c reflection.c: Use mono_method_get_index ().
7615
7616         * class.c (mono_class_get_method_from_name_flags): New helper method.
7617
7618         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
7619         this.
7620
7621         * class.c (mono_class_get_cctor): New helper method.
7622
7623         * string-icalls.c object.c class.c marshal.c reflection.c: Use
7624         mono_class_get_method () to look up methods.
7625
7626 2005-02-01  Miguel de Icaza  <miguel@novell.com>
7627
7628         * console-io.c: Fix the build, this should work on Windows.
7629
7630 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
7631
7632         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
7633         be set to null to keep things valid
7634
7635 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7636
7637         * icall.c: added Console 2.0 icalls.
7638         * Makefile.am: added console-io.[ch]
7639         * console-io.[ch]: internal calls for Console 2.0 API.
7640
7641 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7642
7643         * class.c: make sure we consider all the interfaces
7644         when calculating max_interface_id (bug found by
7645         Jeroen Frijters running ikvm).
7646
7647 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
7648
7649         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
7650         valuetype fields to null.
7651
7652         * object.c (set_value): Ditto. Fixes #71669.    
7653
7654 2005-01-31  Martin Baulig  <martin@ximian.com>
7655
7656         * metadata.c (mono_metadata_has_generic_params): New public
7657         function; checks whether something is a generic method.
7658
7659 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
7660
7661         * appdomain.c: fix infinite recursion when adding assemblies.
7662
7663 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
7664
7665         * object.c: Fix small typo to return all items for Environment.
7666         GetCommandLineArgs.
7667
7668 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7669
7670         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
7671         reflection.c: more domain and assembly-unload related fixes
7672         and memory leaks plugs.
7673
7674 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
7675
7676         * 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.
7677
7678 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
7679
7680         * loader.c (mono_method_signature): Make this method lazy
7681         (mono_get_method_from_token): Don't computate the signature here.
7682
7683         Doing this saves quite a bit of memory. I got 90 kb on starting up
7684         monodoc. It should also save some disk reads on startup.
7685
7686         * *: MonoMethod->signature might be NULL now. You *MUST* use
7687         mono_method_signature.
7688
7689 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
7690
7691         * object.c (mono_runtime_get_main_args): Return an array from the
7692         current domain here. Fixes #71938.
7693
7694 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
7695
7696         * monitor.c: formatting changes to comply with the
7697         mono coding style and remove #ifdefs from the code.
7698
7699 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7700
7701         * metadata.c, private.h: remove some unneeded data
7702         and use a more compact representation for table schemas.
7703
7704 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
7705
7706         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
7707         to get a better distribution in hash tables.
7708         * *.c: use mono_aligned_addr_hash() where appropriate.
7709         * assembly.c: make var static.
7710
7711 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
7712
7713         * domain-internals.h: Put MonoJitInfo on a diet.
7714
7715         * domain.c: Fix a warning.
7716
7717 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7718
7719         * gc.c: rework the gc handles code to reuse handles
7720         when freed.
7721
7722 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7723
7724         * domain.c: fixed long standing bug in mono_string_equal() which
7725         was brought to light with the ldstr changes.
7726
7727 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
7728
7729         * reflection.c: Remove warning by adding missing include for marshal.h
7730
7731 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7732
7733         * domain.c, object.c: change the ldstr_table to hold
7734         MonoString* as keys: makes the runtime isinterned lookup
7735         faster and simplifies memory management.
7736
7737 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
7738  
7739         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
7740         possible to add imperative security checks before calling the icall.
7741         * reflection.c: Return security attributes on the original MonoMethod
7742         (and not the wrapped one). This fix permissions on icalls.
7743
7744 2005-01-25  Dick Porter  <dick@ximian.com>
7745
7746         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
7747         the check for mktime() support actually test the mktime() return
7748         value.  "Fixes" bug 71682, though the output is still different to
7749         MS.
7750
7751 2005-01-25  Martin Baulig  <martin@ximian.com>
7752
7753         * class.c (mono_class_is_assignable_from): Make this work for
7754         generic instances.
7755
7756 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
7757
7758         * marshal.c (mono_string_utf8_to_builder)
7759         (mono_string_builder_to_utf16): We might not have ownership of the
7760         string. In thise case, we need to create a new buffer.
7761
7762         * object-internals.h (mono_stringbuilder_capacity): sb->str might
7763         be null, in which case, use the default capacity.
7764
7765 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7766
7767         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
7768         GC events to the profiler.
7769
7770 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7771
7772         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
7773         if you don't want the GC to run.
7774
7775 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
7776
7777         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
7778         start providing a GC API and keeping different implementations in
7779         their own file.
7780         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
7781
7782 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
7783
7784         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
7785         mmap rather than allocating a huge buffer.
7786         (mono_debug_close_mono_symbol_file): Free the buffer allocated
7787         above.
7788
7789 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
7790
7791         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7792         and CheckExecutionRights.
7793         * reflection.c|h: Keep the index of the declarative security to be 
7794         used, instead of the pointer, when AOT compiler is used. Also add 
7795         class initialization when requesting demands.
7796         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7797         CheckExecutionRights. Both properties are now FALSE by default, and
7798         unmodifiable, unless the --security option is used.
7799
7800 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7801
7802         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7803         reflection.c: properly refcount images and assemblies, many leaks fixed.
7804
7805 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7806
7807         * threadpool.c: increase the timeout for threads in the thread pool to
7808         10s.  Fixes bug #67159.
7809
7810 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7811
7812         * class-internals.h: Sun's compiler insists on explicit
7813         signed on bit fields to handle then correctly.
7814
7815 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7816
7817         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7818         Make the size of the array fit only the number of invalid path
7819         chars that we have.
7820
7821         * class.c (_mono_class_get): Improve the error reporting when a
7822         class referenced is not found, to assist debugging. 
7823
7824 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7825
7826         * threads.c: fix off-by-one error.
7827         * domain.c: free data allocated in the domain.
7828
7829 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7830
7831         * reflection.c (mono_method_body_get_object): Fill out exception info
7832         as well.
7833
7834         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7835         structure.
7836         
7837 2005-01-19  Martin Baulig  <martin@ximian.com>
7838
7839         * loader.c (mono_get_method_constrained): Make this work again.
7840
7841 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7842
7843         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7844         guint16 to match the managed side.
7845
7846         * reflection.c (mono_reflection_body_get_object): Fill out local
7847         variables array.
7848
7849         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7850         as well.
7851
7852         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7853         'local_var_sig_token'.
7854
7855 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7856
7857         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7858         System.Drawing.
7859
7860         * reflection.c (mono_method_body_get_object): Handle abstract and
7861         runtime methods.
7862
7863 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7864
7865         * marshal.c, loader.c, class-internals.h, reflection.c:
7866         store the emthod data for a wrapper in an array instead of a list.
7867
7868 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7869
7870         * marshal.c: change the code to allocate memory more
7871         conservatively for method wrappers.
7872
7873 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7874
7875         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7876         fields from MonoClass to the marshal info structure where they belong.
7877
7878 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7879
7880         * class.c, object.c, class-internals.h, marshal.c: rearrange
7881         some fields and tweak some types to lower memory usage.
7882
7883 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7884
7885         * threads.c (signal_thread_state_change): Handle the case when the
7886         target thread is the current thread.
7887
7888         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7889
7890         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7891         emit_ptr_to_object_conv. 
7892
7893         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7894         marshalling. Fixes #71352.
7895
7896 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7897
7898         * metadata.h, blob.h: move table enum to blob.h so it can be included
7899         in any header.
7900         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7901         cut the size of MonoImage/MonoDynamicImage.
7902
7903 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7904
7905         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7906
7907 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7908
7909         * reflection.c, reflection.h, icall.c: add a function to check
7910         if an attribute type is defined for a metadata object.
7911
7912 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7913
7914         * object-internals.h: Added some needed fields from StringBuilder class.
7915         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7916
7917 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7918
7919         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7920         threads before shutting down the runtime.
7921
7922         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7923
7924 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7925
7926         * object-internal.h, threads.c: implement stacksize and 
7927         parameterized thread start functionality (requires
7928         matching corlib). Marked broken code for later removal.
7929
7930 2005-01-12  Martin Baulig  <martin@ximian.com>
7931
7932         * class-internals.h (MonoGenericClass): Moved the `initialized'
7933         flag to MonoDynamicGenericClass, removed `init_pending'.
7934         (MonoGenericInst): Added `is_reference' flag.
7935
7936 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7937
7938         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7939         inside the MSDOS header. Fixes #71201.
7940
7941         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7942         gc thread.
7943         (mono_domain_finalize): Ditto.
7944
7945 2005-01-12  Martin Baulig  <martin@ximian.com>
7946
7947         * class.c (mono_get_shared_generic_class): Use the cache for
7948         non-dynamic generic classes.
7949
7950         * class-internals.h (mono_class_create_generic_2): Removed
7951         function prototype, this function is now static inside class.c.
7952
7953         * class.c (mono_class_create_generic_2): Made this static, only
7954         call it from mono_class_init() and mono_class_setup_parent().
7955         (collect_implemented_interfaces_aux): Call mono_class_init() on
7956         the interfaces we collect.
7957         (mono_class_setup_vtable): Call mono_class_init (class->parent).
7958
7959 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7960
7961         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
7962         it a real thread handle.
7963
7964         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
7965         MonoJitExceptionInfo, since each catch clause needs its own variable.
7966         
7967 2005-01-11  Dick Porter  <dick@ximian.com>
7968
7969         * image.c (mono_pe_file_open): New variant on mono_image_open()
7970         that does not set up the CLI metadata; used for FileVersionInfo so
7971         it can get the data for windows binaries too.
7972         
7973         * process.c (process_read_string_block): Don't read off the end of
7974         the StringTable block.
7975
7976         These both fix bug 70766.
7977
7978 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
7979
7980         * gc.c: set some fields to NULL at GC cleanup time.
7981         * threads.c: if we quit the main thread, call exit ().
7982
7983 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7984
7985         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
7986
7987 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
7988
7989         * threads.h, threads.c, object.c: added accessor and settor for
7990         main_thread. Handle it specially when exiting from it: wait
7991         for other foreground threads to exit.
7992
7993 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
7994
7995         * process.c, verify.c: remove some bloat.
7996
7997 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
7998
7999         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
8000         the calling convention to cdecl under win32.
8001
8002 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
8003
8004         * object.c (mono_object_get_size): New function to get the size of
8005         an object instance.
8006
8007         * profiler.c (simple_allocation): Use above.
8008
8009 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
8010
8011         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
8012         ves_icall_System_AppDomain_getRootDomain (as it's not required to
8013         get an appdomain by it's id and we can't assume the root's id is 0).
8014         * domain-internals.h: Change the function prototype to match.
8015         * icall.c: Change the icall table for AppDomain.
8016
8017 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
8018
8019         * locales.c (string_invariant_compare_char): Only compute
8020         GUnicodeTypes in the case where we need them.  Test for ordinality
8021         first and return if so.
8022
8023         From the commit:
8024
8025                 /*
8026                  * FIXME: here we must use the information from c1type and c2type
8027                  * to find out the proper collation, even on the InvariantCulture, the
8028                  * sorting is not done by computing the unicode values, but their
8029                  * actual sort order.
8030                  */
8031
8032 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8033
8034         * loader.c: for P/Invoke methods, allow the "Internal" shared
8035         library name to refer to the calling process symbol namespace.
8036
8037 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
8038
8039         * Makefile.am: Add the security manager to the build.
8040         * security-manager.c|h: New. Initialization of the security manager.
8041
8042 2005-01-07  Dick Porter  <dick@ximian.com>
8043
8044         * threads.c: 
8045         * monitor.c: Update thread state during Monitor and WaitHandle
8046         waits.  Fixes bug 71031.
8047
8048 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
8049
8050         * reflection.c (property_encode_signature): Correctly handle when the
8051         property has no methods.
8052
8053 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
8054
8055         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
8056         
8057         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
8058         fields from mb, not rmb. Fixes #71017.
8059
8060         * marshal.c (emit_ptr_to_str_conv): Add support for 
8061         ByValTStr -> string conversion. Fixes #71015.
8062
8063         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
8064
8065         * mempool.c (mono_mempool_contains_addr): New helper function.
8066
8067 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8068
8069         * metadata.c (mono_metadata_compute_size): Fix size calculation of
8070         HasSematics encoded fields.
8071         
8072         * metadata.c (mono_type_to_unmanaged): Improve error message for 
8073         invalid string marshalling.
8074
8075         * metadata.c: Fix warnings.
8076         
8077 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8078
8079         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
8080         profiler support.
8081
8082 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8083
8084         * domain.c object.c domain-internals.h: Revert part of r38077 since the
8085         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
8086         tests.
8087
8088 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
8089
8090         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
8091         so methods containing these can be AOTed.
8092
8093 2005-01-03  Martin Baulig  <martin@ximian.com>
8094
8095         * loader.c (find_method): Removed the hack for generic instances.
8096         (method_from_memberref): If our parent is a generic instance, pass
8097         its generic type definition to find_method() and then inflate the
8098         method.
8099         (mono_get_method_constrained): Pass the generic type definition to
8100         find_method() and inflate the method later.
8101
8102         * class-internals.h (MonoStats): Added `generic_class_count'.
8103
8104         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
8105         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
8106
8107         * reflection.c (mono_custom_attrs_from_params): Don't ignore
8108         generic type definitions.
8109
8110 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
8111
8112         * loader.c icall.c: Fix warnings.
8113
8114 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
8115
8116         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
8117         blittable types. Fixes #70864.
8118
8119 2004-12-29  Martin Baulig  <martin@ximian.com>
8120
8121         * icall.c
8122         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
8123
8124         * reflection.c (mono_method_get_object): Create a
8125         "System.Reflection.MonoGenericMethod" for inflated methods; don't
8126         call mono_get_inflated_method().
8127
8128         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
8129
8130 2004-12-27  Martin Baulig  <martin@ximian.com>
8131
8132         * class-internals.h (MonoMethod): Added `is_inflated' flag.
8133         (MonoMethodInflated): Added `inflated' field.
8134
8135         * class.c (mono_class_inflate_generic_method): Don't really
8136         inflate the method here; just set the `is_inflated' flag in the
8137         MonoMethod.
8138         (mono_class_get_inflated_method): Actually inflate the method here
8139         if it's not already inflated; we use the MonoMethodInflated's new
8140         `inflated' field as a cache.
8141
8142 2004-12-26  Martin Baulig  <martin@ximian.com>
8143
8144         * class.c
8145         (inflate_generic_class): Moved some code out of inflate_generic_type().
8146         (mono_class_inflate_generic_method): If we're already inflated,
8147         inflate the context and use the declaring method; ie. make sure
8148         the declaring method of an inflated method is always the generic
8149         method definition.
8150         (mono_class_create_from_typedef): Create
8151         `class->generic_container->context->gclass'.
8152
8153 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
8154
8155         * metadata-internals.h, marshal.c, reflection.c: More
8156         MonoGHashTable->GHashTable.
8157
8158         * domain-internals.h, class.c: Change MonoGHashTable's into
8159         GHashTables for some cases where no gc stuff is used
8160
8161         All users: update apis
8162
8163 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
8164
8165         * metadata.c (builtin_types): Make this `const'. Makes this get
8166         put into the shareable section.
8167         (mono_metadata_init): Casts to make gcc happy.
8168
8169 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
8170
8171         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
8172
8173 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
8174
8175         * icall.c: Added an internal call to retrieve the position and length
8176         of assembly-level declarative security attributes (RequestMinimum, 
8177         RequestOptional and RequestRefuse). This is used by the Assembly class
8178         to re-create the corresponding permission sets.
8179
8180 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
8181
8182         * marshal.c: fix the stelemref wrapper to be type correct
8183         (and faster).
8184
8185 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
8186
8187         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
8188         to do key & 0x7fffffff. Hashtable already does this. It just
8189         results in longer code.
8190
8191 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
8192
8193         * appdomain.c: Bump corlib version.
8194         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
8195         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
8196         * reflection.c|h: Add functions to get declarative security infos
8197         (blob position and length) for assemblies, classes and methods.
8198
8199 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
8200
8201         * reflection.c: sort the constant table (bug #70693).
8202
8203 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
8204
8205         * object-internals.h, threads.c, domain.c: add accessors for
8206         the MonoThread and MonoDomain tls keys.
8207
8208 2004-12-18  Martin Baulig  <martin@ximian.com>
8209
8210         * class.c (inflate_generic_type): If we're inflating a generic
8211         instance, set `ngclass->context->container = context->container';
8212         ie. the container we inflated into.
8213
8214         * metadata.c (mono_metadata_parse_generic_param): Reflect above
8215         inflate_generic_type() changes.
8216
8217 2004-12-17  Martin Baulig  <martin@ximian.com>
8218
8219         * class-internals.h
8220         (MonoGenericClass): Replaced `MonoType *generic_type' with
8221         `MonoClass *generic_class'.  Removed `dynamic_info'; if
8222         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
8223         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
8224
8225 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
8226
8227         * exception.c (mono_exception_from_token): New helper function.
8228
8229 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
8230
8231         * assembly.c (mono_assembly_load_with_partial_name): Call 
8232         mono_assembly_loaded before invoking the preload hooks. Fixes
8233         #70564.
8234
8235         * object-internals.h (MonoThread): Change culture_info and 
8236         ui_culture_info into an array.
8237
8238         * threads.c: Cache culture info objects from more than one appdomain.
8239
8240         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
8241         current UI culture.
8242
8243 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
8244
8245         * threads.h threads.c appdomain.c: Clear the culture_info field of
8246         all threads during unloading if they point to an object in the dying
8247         appdomain.
8248
8249 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
8250
8251         * culture-info.h (TextInfoEntry): New struct
8252         * object-internals.h: sync with managed
8253         * locales.c: fill the `text_info_data' field
8254         * culture-info-tables.h: update
8255
8256 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
8257
8258         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
8259         collector.
8260
8261 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
8262
8263         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
8264         (ves_icall_ModuleBuilder_getMethodToken): Ditto
8265
8266 2004-12-12  Martin Baulig  <martin@ximian.com>
8267
8268         * mono-debug-debugger.c (write_type): If we're an enum and the
8269         builtin types have already been initialized, call mono_class_init().
8270
8271 2004-12-11  Martin Baulig  <martin@ximian.com>
8272
8273         * metadata.c (mono_metadata_load_generic_params): Added
8274         `MonoGenericContainer *parent_container' argument; automatically
8275         compute `container->is_method'; pass the correct owner to
8276         get_constraints().      
8277
8278         * reflection.c (compare_genericparam): Sort the GenericParam table
8279         according to increasing owners. 
8280
8281 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
8282
8283         * profiler.c: allow disabling the default profiler.
8284
8285 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
8286
8287         * decimal.c, icall.c: allow disabling System.Decimal support.
8288
8289 2004-12-09  Marek Safar <marek.safar@seznam.cz>
8290
8291         * reflection.c: Add support for null attribute arguments.
8292
8293 2004-12-09  Martin Baulig  <martin@ximian.com>
8294
8295         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
8296         names to get rid of compiler warnings.
8297
8298 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
8299
8300         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
8301         mono_marshal_load_type_info (). Fixes #69625.
8302         (mono_marshal_get_ptr_to_struct): Likewise.
8303
8304 2004-12-08  Martin Baulig  <martin@ximian.com>
8305
8306         * mono-debug.h: Bumped version number to 47.
8307
8308         * mono-debug-debugger.c
8309         (mono_debugger_event_handler, mono_debugger_event): Take two
8310         guint64 arguments insteed of a gpointer and a guint32.  
8311
8312 2004-12-08  Martin Baulig  <martin@ximian.com>
8313
8314         * debug-mono-symfile.h
8315         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
8316         `address' to `native_offset'.
8317
8318 2004-12-08  Martin Baulig  <martin@ximian.com>
8319
8320         * class.c (mono_class_create_from_typespec): Only inflate if we
8321         either have `context->gclass' or `context->gmethod'.
8322
8323 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
8324
8325         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
8326
8327         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
8328
8329         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
8330
8331         * reflection.c (mono_assembly_get_object): Remove the workaround put
8332         in for the release.
8333         
8334         * appdomain.c: Use the corlib_internal field from MonoAssembly.
8335
8336         * appdomain.c: Bump corlib version.
8337
8338         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
8339         be visible in other appdomains.
8340
8341 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
8342
8343         * threads.c: Interlocked inc and dec for longs were messed up,
8344         use a KISS based impl for this. Fixes 70234
8345
8346 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
8347
8348         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
8349
8350 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
8351
8352         * icall.c: fix to follow policy not to allow struct
8353         arguments in icalls.
8354
8355 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8356
8357         * process.c: make the patch that handles spaces in file paths work
8358         on mono/windows too.
8359
8360 2004-12-06  Martin Baulig  <martin@ximian.com>
8361
8362         * class.c (mono_class_create_generic): Call
8363         mono_class_setup_supertypes() if we're dynamic.
8364         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
8365
8366 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
8367
8368         * object-internals.h: Add new fields to MonoThread.
8369
8370         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8371
8372         * icall.c threads-types.h threads.c: Add new icalls.
8373
8374         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
8375
8376         * object-internals.h (MonoReflectionAssembly): Sync object layout with
8377         managed side.
8378
8379         * appdomain.c: Bump corlib version.
8380
8381         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
8382         internal assemblies. Fixes #69181.
8383
8384 2004-12-05  Martin Baulig  <martin@ximian.com>
8385
8386         * class.c (mono_class_inflate_generic_signature): Make this a
8387         no-op if `context' is NULL or we don't have any type parameters;
8388         also copy `sentinelpos'.        
8389
8390 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
8391
8392         * image.c: Add unbox_wrapper_cache.
8393
8394         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
8395
8396         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
8397         function generator.
8398         
8399         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
8400         Fixes #70173.
8401
8402         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
8403         
8404 2004-12-04  Martin Baulig  <martin@ximian.com>
8405
8406         * loader.c (mono_method_get_signature_full): New public function;
8407         like mono_method_get_signature(), but with an additional
8408         `MonoGenericContext *' argument.
8409
8410         * class.c (mono_class_inflate_generic_signature): Formerly known
8411         as inflate_generic_signature(); make this public.
8412
8413 2004-12-04  Martin Baulig  <martin@ximian.com>
8414
8415         * metadata.c
8416         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
8417         instead of a `MonoGenericContainer *'.  
8418         (mono_metadata_parse_array_full): Likewise.
8419         (mono_metadata_parse_signature_full): Likewise.
8420         (mono_metadata_parse_method_signature_full): Likewise.
8421         (mono_metadata_parse_generic_inst): Likewise.
8422         (mono_metadata_parse_generic_param): Likewise.
8423         (mono_metadata_parse_mh_full): Likewise.
8424         (mono_type_create_from_typespec_full): Likewise.
8425
8426 2004-12-03  Martin Baulig  <martin@ximian.com>
8427
8428         * class-internals.h (MonoGenericContainer): Replaced the
8429         `MonoGenericContext * pointer with a `MonoGenericContext'
8430         structure and made it the first element.
8431
8432 2004-12-03  Martin Baulig  <martin@ximian.com>
8433
8434         * class.c
8435         (inflate_generic_type): Set the `context->container' when creating
8436         a new MonoGenericContext.
8437         (mono_class_inflate_generic_method): Likewise.
8438         (mono_class_create_from_typespec): Just use `context->container'
8439         to get the container.
8440
8441         * loader.c (method_from_methodspec): Set `context->parent' from
8442         `context->container' - and if that's a method container, use its
8443         parent.  Also set the `context->container' when creating a new
8444         MonoGenericContext.
8445         (mono_get_method_from_token): Use just `context->container' to get
8446         the container.
8447
8448         * metadata.c (do_mono_metadata_parse_generic_class): Also set
8449         `gclass->context->container'.
8450
8451         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
8452         the `context->container' when creating a new MonoGenericContext.
8453
8454 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
8455
8456         * reflection.c (compare_genericparam): Sort params with identical
8457         owner by their number. Fixes gen-111 on sparc.
8458
8459 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8460
8461         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
8462         around the domain changes.
8463
8464         * appdomain.c (mono_domain_unload): Handle the case when the thread
8465         calling Unload is itself being aborted during unloading. Fixes #70022.
8466
8467         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
8468
8469         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
8470         checkpoint_func as an icall so it gets a wrapper.
8471         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
8472         in the cross-appdomain wrappers too.
8473
8474         * threads.c (mono_thread_has_appdomain_ref): Make this public.
8475
8476         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
8477
8478         * reflection.c: Fix some memory leaks.
8479         
8480 2004-12-02  Martin Baulig  <martin@ximian.com>
8481
8482         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
8483
8484         * metadata.c (generic_class_cache): New static hashtable.
8485         (mono_metadata_lookup_generic_class): New public method.
8486
8487 2004-12-02  Martin Baulig  <martin@ximian.com>
8488
8489         * class.c (mono_class_create_from_typedef): Call
8490         mono_class_setup_parent() and mono_class_create_mono_type() before
8491         parsing the interfaces.
8492
8493 2004-12-02  Martin Baulig  <martin@ximian.com>
8494
8495         * metadata.c (generic_inst_cache): New static hashtable.
8496         (mono_metadata_lookup_generic_inst): New public function.
8497         (mono_metadata_inflate_generic_inst): New public function.
8498         (mono_metadata_parse_generic_inst): New public function.
8499         (do_mono_metadata_parse_generic_class): Use the new
8500         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
8501         since this'll also use the cache.
8502
8503         * reflection.c (mono_reflection_bind_generic_method_parameters):
8504         Use mono_metadata_lookup_generic_inst() to use the new cache.
8505
8506         * class.c (inflate_mono_type): Use
8507         mono_metadata_inflate_generic_inst() to inflate a generic
8508         instance; this'll also use the new cache.
8509
8510         * loader.c (method_from_methodspec): Use
8511         mono_metadata_parse_generic_inst() and
8512         mono_metadata_inflate_generic_inst() rather than parsing it
8513         manually, so we can use the new cache.
8514
8515 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8516
8517         * threads.c (wait_for_tids): Do not incorrectly free threads when 
8518         the wait times out.
8519
8520 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
8521
8522         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
8523         iter->args based on whether parameters are passed in registers (i.e.
8524         MONO_ARCH_REGPARMS is defined)
8525
8526 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
8527
8528         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
8529         the exception message. Fixes #70070.
8530         (method_from_methodspec): Fix warnings.
8531
8532 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8533
8534         * process.c: (complete_path) return the path quoted
8535
8536 2004-12-01  Martin Baulig  <martin@ximian.com>
8537
8538         * class-internals.h (MonoGenericInst): New structure.
8539         (MonoGenericClass): Replaced `type_argc', `type_argv' and
8540         `is_open' with `MonoGenericInst *inst'.
8541         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
8542         `is_open' with `MonoGenericInst *inst'.
8543
8544 2004-11-30  Martin Baulig  <martin@ximian.com>
8545
8546         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
8547
8548         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
8549         to `generic_class_cache'.
8550
8551         * metadata.c
8552         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
8553         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
8554         (mono_generic_inst_is_valuetype): Renamed to
8555         mono_generic_class_is_valuetype().
8556
8557         * class-internals.h
8558         (MonoGenericInst): Renamed to MonoGenericClass.
8559         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
8560         (MonoClass): Renamed `generic_inst' to `generic_class'.
8561         (MonoGenericContext): Renamed `ginst' to `gclass'.
8562
8563         * object-internals.h
8564         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
8565
8566         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
8567         mono_reflection_generic_class_initialize().
8568
8569         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
8570         now known as "System.Reflection.MonoGenericClass".
8571         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
8572
8573 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
8574
8575         * class-internals.h: Added a flag field to MonoClass to cache the
8576         declarative security attributes actions associated with the class.
8577         * domain-internals.h: Added booleans to MonoJitInfo to cache the
8578         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
8579         applicable to the JITted method.
8580         * reflection.c|h: Added functions to extract (as flags) which security
8581         actions are available (declaratively) for a method, class or assembly.
8582         * metadata.c|h: Added functions to search the declarative security
8583         table in the metadata.
8584         
8585 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
8586
8587         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
8588         EXPORTEDTYPES are already in the class name cache, so there is no
8589         need to add extra code here to look at them. Just removes a bit of
8590         cruft.
8591
8592         (ves_icall_System_Environment_get_TickCount): No need for #if
8593         WINDOWS. We already have the code in io-layer.
8594
8595 2004-11-28  Martin Baulig  <martin@ximian.com>
8596
8597         * loader.c
8598         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
8599         Fixes gen-112.cs.
8600
8601 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
8602
8603         * assembly.c (do_mono_assembly_open): Instead of having a
8604         conditional WITH_BUNDLE, incorporate support for bundles here, by
8605         having a global `bundles' variable holding a pointer to the actual
8606         bundles. 
8607
8608         (mono_register_bundled_assemblies): New API call used by the
8609         bundle code. 
8610
8611         See mkbundle.1 for details.
8612         
8613 2004-11-27  Martin Baulig  <martin@ximian.com>
8614
8615         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
8616         the vtable for generic methods.
8617
8618 2004-11-26  Martin Baulig  <martin@ximian.com>
8619
8620         * metadata.c
8621         (mono_metadata_generic_method_hash): New public function.
8622         (mono_metadata_generic_method_equal): Likewise.
8623
8624         * class-internals.h
8625         (MonoGenericContainer): Added `GHashTable *method_hash'.
8626
8627         * reflection.c (ReflectionMethodBuilder): Added
8628         `MonoGenericContainer *generic_container'.
8629         (reflection_methodbuilder_to_mono_method): Don't create a new
8630         MonoGenericContainer each time we're called.
8631         (mono_reflection_bind_generic_method_parameters): Use
8632         `container->method_hash' to cache the results so we don't create a
8633         different method if we're called several times with the same
8634         arguments.
8635
8636         * loader.c (method_from_methodspec): Use the new
8637         `container->method_hash' here, too.
8638
8639 2004-11-26  Martin Baulig  <martin@ximian.com>
8640
8641         * class.c (inflate_generic_signature): Correctly compute
8642         `res->has_type_parameters'.
8643         (mono_class_vtable): Use the `has_type_parameters' flag to
8644         determine whether we're a generic method.
8645
8646         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
8647
8648 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
8649
8650         * object.c (mono_runtime_run_main): Fix a small memory leak.
8651
8652 2004-11-25  Martin Baulig  <martin@ximian.com>
8653
8654         * class.c (set_generic_param_owner): Fixed the loop.
8655
8656 2004-11-25  Martin Baulig  <martin@ximian.com>
8657
8658         * object.c (mono_class_vtable): Don't create any JIT wrappers for
8659         generic methods.
8660
8661 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
8662
8663         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
8664         names. Fixes #69787.
8665
8666 2004-11-24  Martin Baulig  <martin@ximian.com>
8667
8668         * class.c (mono_class_create_generic_2): If we don't have a
8669         `ginst->parent', inflate `gklass->parent' to get our parent.
8670
8671 2004-11-24  Martin Baulig  <martin@ximian.com>
8672
8673         * reflection.c (compare_genericparam): Correctly sort the
8674         GenericParam table; fixes #69779.
8675
8676 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
8677
8678         * reflection.c: When writing a PE file, don't create a huge
8679         buffer in memory. Just write the arrays we have to the file.
8680         This reduces memory usage.
8681
8682         * metadata-internals.h: MonoDynamicStream pefile is no longer used
8683         globally.
8684
8685 2004-11-17  Martin Baulig  <martin@ximian.com>
8686
8687         * class.c (mono_class_init): Don't setup `class->parent' for
8688         dynamic instances; moved this to mono_class_generic_2().
8689         (mono_class_create_generic): Also set `klass->inited' for dynamic
8690         generic instances.
8691         (mono_class_create_generic_2): Don't do anything for dynamic
8692         generic instances.  Set `klass->parent' here and also call
8693         mono_class_setup_parent() here. 
8694
8695         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
8696         `MonoType *parent' argument; set `ginst->parent' before calling
8697         mono_class_create_generic_2(), so we set the correct parent.
8698
8699 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
8700
8701         * reflection.c: allow getting attributes from ModuleBuilder
8702         (used by ikvm).
8703
8704 2004-11-17  Martin Baulig  <martin@ximian.com>
8705
8706         * class.c (mono_class_create_from_typedef): If a type parameter is
8707         inherited from an outer class, set its owner to that class.
8708
8709 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
8710
8711         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
8712           for (int*) written size. This fixes bug #69592.
8713
8714 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
8715
8716         * icall.c: Added IsAuthenticodePresnet internal call.
8717         * image.c|h: New function that check a MonoImage for an Authenticode
8718         signature in the certificate PE data directory.
8719         * security.c|h: New internal call to ask the runtime if an 
8720         Authenticode signature seems referenced in the PE header.
8721
8722 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
8723
8724         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
8725
8726         * reflection.c (mono_image_create_pefile): Free the assembly streams
8727         after writing out the assembly file.
8728
8729         * object.c (mono_runtime_run_main): Fix small memory leak.
8730
8731         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
8732         property access modifiers. Fixes #69389.
8733
8734 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
8735
8736         * domain.c, object.c, object-internals.h, domain-internals.h,
8737         object.h, marshal.c: keep dynamic code info per domain.
8738
8739 2004-11-15  Martin Baulig  <martin@ximian.com>
8740
8741         * class.c (mono_type_get_name_recurse): Put type arguments in
8742         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
8743         see bug #68387.
8744
8745 2004-11-15  Martin Baulig  <martin@ximian.com>
8746
8747         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
8748         (mono_class_setup_vtable): When computing `the_cname' for a
8749         generic instance, don't include the namespace since we'd otherwise
8750         add it twice.
8751
8752 2004-11-15  Martin Baulig  <martin@ximian.com>
8753
8754         * class.c (mono_class_create_generic): Changed return type to void.
8755         (mono_class_create_generic_2): New public function; setup
8756         `class->method', `class->field' and `class->interfaces' here
8757         instead of in mono_class_init().
8758
8759         * class.h (mono_class_create_generic): Moved to class-internals.h.
8760
8761 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
8762
8763         * reflection.c (mono_image_create_pefile): take a file HANDLE.
8764         rather than writing to memory, write to this file. Right now,
8765         we are just writting into a buffer, and copying that. However
8766         we can avoid the buffer later.
8767
8768         (mono_dynamic_stream_reset): new function
8769
8770         * icall.c, object-internals.h: update for the above.
8771
8772 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
8773
8774         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
8775         have been using gc'd memory. First it is slower, unlikely
8776         the comment in the source code said, secondly, it increases
8777         our footprint to do it in the gc.
8778
8779         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
8780         the method so that it does not have to copy to managed code.
8781
8782 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
8783
8784         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
8785
8786 2004-11-12  Martin Baulig  <martin@localhost>
8787
8788         * reflection.c (mono_image_create_token): Allow generic method
8789         definitions here, since they may appear in an `.override'; see
8790         gen-98/gen-99 for an example.
8791
8792 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
8793
8794         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8795         #69365.
8796
8797         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8798         descriptive.
8799
8800 2004-11-11  Martin Baulig  <martin@ximian.com>
8801
8802         * class.c (mono_class_setup_vtable): In an explicit interface
8803         implementation, the method name now includes the arity.
8804
8805 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8806
8807         * object.c (mono_array_full_copy): Fix warning.
8808
8809 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8810
8811         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8812         mono_class_get_method_from_name() instead.
8813         
8814         * class-internals.h: Added two new types of wrappers. 
8815         Added MonoRemotingTarget enum. Added new trampoline function type, which
8816         takes an additional MonoRemotingTarget value as parameter, so it is
8817         possible to request a trampoline for a specific target.
8818         
8819         * class.c: Added new mono_class_get_method_from_name() method.
8820         
8821         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8822         general remoting sinks and one specific for cross domain calls.
8823         
8824         * debug-helpers.c: Added new wrapper names.
8825         
8826         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8827         of a remote class.
8828         
8829         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8830         
8831         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8832         with several other methods (mono_marshal_get_xappdomain_dispatch,
8833         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8834         and others) can generate a fast remoting wrapper for cross domain calls.
8835         More information can be found in docs/remoting.
8836         Other changes: Removed mono_find_method_by_name, and used
8837         mono_class_get_method_from_name instead.
8838         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8839         is stored in the remoting invoke hashtable.
8840         
8841         * marshal.h: published the new method for getting the xdomain wrapper,
8842         and also added a method for getting the adequate wrapper for a given
8843         method and target.
8844         
8845         * object-internals.h, object.c: Added a couple of methods for capying and
8846         cloning arrays.
8847         Modified mono_install_remoting_trampoline, which takes the new remoting
8848         trampoline that has a remoting target as parameter.
8849         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8850         will return the most suitable vtable for the target.
8851         Added mono_remote_class_vtable, which returns the vtable of a remote class
8852         (which can be the normal remoting vtable or the xdomain vtable).
8853         
8854         * threads.c: the xdomain invoke and dispatch wrappers must also be
8855         protected against interruptions.
8856
8857 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8858
8859         * icall.c: use memmove in BlockCopyInternal when the source and
8860         destination arrays are the same.
8861
8862 2004-11-09  Martin Baulig  <martin@ximian.com>
8863
8864         * class-internals.h (MonoGenericContainer): Removed `method' and
8865         `signature', replaced them with `is_method' and `is_signature'
8866         flags.  Added `context'.
8867
8868         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8869         instead of a `MonoGenericContainer *'.
8870
8871         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8872         for dynamic type parameters.
8873         (mono_metadata_load_generic_params): Setup `container->context'.
8874
8875         * reflection.c (mono_reflection_setup_generic_class): Setup
8876         `tb->generic_container->context'.
8877         (do_mono_reflection_bind_generic_parameters): Use
8878         mono_class_inflate_generic_type() to correctly inflate types,
8879         rather than using our own hack just for MONO_TYPE_VAR.
8880
8881 2004-11-09  Martin Baulig  <martin@ximian.com>
8882
8883         * class.c (mono_class_inflate_generic_method): Small fix; don't
8884         crash here.
8885
8886         * icall.c
8887         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8888         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8889         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8890         (ves_icall_Type_BindGenericParameters): Likewise.
8891         (ves_icall_Type_get_IsGenericInstance): Likewise.
8892         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8893         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8894         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8895         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8896
8897 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8898
8899         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8900         assembly versions and public key tokens. Fixes #69113.
8901
8902 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8903
8904         * metadata.c: fix bug introduced with the type cache changes
8905         on 2004-11-06.
8906
8907 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8908
8909         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8910         the MonoClass pointer instead of the token in exception clauses.
8911         * reflection.c: updates for the above and make the code not depend
8912         on the structure of MonoExceptionClause.
8913
8914 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8915
8916         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8917         Add support for dynamic assemblies. Fixes #69114.
8918
8919         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8920
8921 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8922
8923         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8924         since most only those methods use it. the code member of
8925         MonoMethodPInvoke was dead, so that can be removed too. Also,
8926         remove inline_count (again, not used), and move slot so that it
8927         can share bits with some other flags. This saves 8 bytes in the
8928         structure and gives us about 50 kb back for mcs helloworld.cs
8929
8930         * *.[ch]: Do naming changes for the above.
8931
8932         * loader.c (mono_method_get_header): Lazily init the header
8933         on first access.
8934         (mono_get_method_from_token): don't init the header here
8935         (mono_free_method): the header may never be allocated
8936
8937         Overall, this saves 150 kb of unmanaged allocations
8938         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8939         memory at runtime.
8940         
8941         * loader.c, loader.h (mono_method_get_header): new accessor.
8942
8943         * *.[ch]: use the above method. Prepares us to lazily load
8944         the header.
8945
8946         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8947         three warnings, which are actual bugs (see 69206).
8948
8949         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8950         unused. Saves a cool 4 bytes / method.
8951
8952 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
8953
8954         * metadata.c (builtin_types): Add types for System.Object here.
8955         (mono_metadata_parse_type_full): Cache MonoType*'s that are
8956         for a class or valuetype from klass->this_arg or klass->byval_arg.
8957
8958         On mcs for a hello world, this gets us down from 21836 MonoType's
8959         to 14560.
8960
8961         (mono_metadata_free_type): Account for the above change.
8962
8963 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
8964
8965         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
8966         exception instead of asserting if name is null.
8967         (ves_icall_System_AppDomain_GetData): Ditto.
8968
8969 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
8970
8971         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
8972         EnumBuilder.
8973
8974         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
8975         Return NULL when the domain does not have entry_assembly set.
8976
8977         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
8978         Add a 'resource_modules' argument.
8979         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
8980
8981         * reflection.c (mono_reflection_create_runtime_class): Move setting
8982         of wastypebuilder here, so mono_get_type_object () returns a MonoType
8983         for enums too.
8984
8985         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
8986         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
8987         Throw an ArgumentNullException if 'ptr' is null.
8988
8989         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
8990         assemblies here. Fixes #69020.
8991
8992 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
8993
8994         * reflection.c (build_compressed_metadata): Fix the previous patch for
8995         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
8996         the stack.
8997
8998 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
8999
9000         * assembly.c (mono_assembly_names_equal): Allow a match if one of
9001         the cultures is false. Fixes #69090.
9002
9003         * reflection.c (build_compressed_metadata): Fix invalid memory read 
9004         detected by valgrind.
9005         
9006         * reflection.c (mono_reflection_get_type): Avoid triggering a 
9007         TypeResolve multiple times for the same type. Fixes #65577.
9008
9009 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
9010
9011         * marshal.c: Avoid using ldftn to call managed functions. It is
9012         much slower than just a call.
9013
9014         * reflection.c (mono_module_get_object): free the basename we
9015         allocate here from glib.
9016         
9017         * reflection.c (ensure_runtime_vtable): make sure to free
9018         overrides.  Also, we were allocating an array of MonoMethod not an
9019         array of MonoMethod*.
9020
9021         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
9022
9023         * image.c (mono_image_close): free image->guid here.
9024
9025 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
9026
9027         * reflection.c: Fix some spec conformance issues with the PE file
9028         structures so mcs compiled apps run on the Net 2.0 beta.
9029
9030 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
9031
9032         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
9033         Implement this. Fixes #67264.
9034
9035         * debug-helpers.h debug-helpers.c marshal.c: Move 
9036         mono_find_method_by_name to debug-helpers.c.
9037
9038 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
9039
9040         * object.c (mono_release_type_locks): type_initialization_hash is
9041         a GHashTable.
9042
9043         * reflection.c object.c object-internals.h: Fix warnings.
9044
9045         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
9046         without accessors. Fixes #61561.
9047
9048         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
9049         application base from the root domain if not set. Fixes #65641.
9050         (mono_runtime_init): Fix warning.
9051
9052 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9053
9054         * appdomain.c: call mono_thread_pool_init.
9055         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
9056         of worker threads based on the number of CPUs and the environment
9057         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
9058         for non-windows (windows) systems.
9059
9060 2004-10-27  Chris Toshok  <toshok@ximian.com>
9061
9062         * mono-debug-debugger.c (write_class): don't call mono_class_init
9063         here, as even with the check for (!klass->init_pending), we get
9064         into a situation where we're hitting cycles in class
9065         initialization.  Fixes #68816.
9066
9067 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
9068
9069         * image.c: Avoid overwriting values in the loaded_images_hash when an
9070         assembly is loaded multiple times. Fixes #61152.
9071
9072         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
9073         so multiple satellite assemblies for the same name can be loaded.
9074         Fixes #68259.
9075
9076         * mono_domain_assembly_preload: Actually return the loaded assembly, 
9077         not NULL.
9078
9079         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
9080         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
9081
9082         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
9083         pending finalizers are not invoked after the appdomain has been 
9084         unloaded. Fixes #67862.
9085
9086 2004-10-22  Martin Baulig  <martin@ximian.com>
9087
9088         * mono-debug-debugger.c
9089         (mono_debugger_runtime_invoke): Don't box valuetypes.
9090
9091 2004-10-22  Chris Toshok  <toshok@ximian.com>
9092
9093         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
9094         don't hide private methods.
9095
9096 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
9097
9098         * icall.c: Allows the runtime to "share" (when known) the public key
9099         token of an assembly. This avoid the need to recalculate the token 
9100         (from the public key) in managed code.
9101
9102 2004-10-21  Chris Toshok  <toshok@ximian.com>
9103
9104         * debug-helpers.c (append_class_name): argh, revert last patch.
9105         
9106 2004-10-21  Chris Toshok  <toshok@ximian.com>
9107
9108         * debug-helpers.c (append_class_name): use '+' as the delimiter,
9109         not '/', so that it matches what the debugger uses to look up
9110         methods.
9111
9112 2004-10-21  Martin Baulig  <martin@ximian.com>
9113
9114         * mono-debug-debugger.c (mono_debugger_throw_exception): New
9115         public method; this is called each time an exception is thrown and
9116         allows the debugger to use exception catch points.
9117
9118 2004-10-21  Martin Baulig  <martin@ximian.com>
9119
9120         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
9121         the stack pointer and the exception object in some struct and pass
9122         that to the debugger.
9123
9124 2004-10-21  Chris Toshok  <toshok@ximian.com>
9125
9126         * mono-debug-debugger.c (do_write_class): add instance/static
9127         event support.  We don't expose "raise" or "other" yet.
9128         (event_is_static): new method.
9129
9130 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
9131
9132         * mono-debug-debugger.c
9133         (mono_debugger_handle_exception): Remove
9134         bogus return value for fussy compilers.
9135
9136 2004-10-20  Martin Baulig  <martin@ximian.com>
9137
9138         * mono-debug-debugger.c
9139         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
9140         (mono_debugger_handled_exception): Likewise.
9141
9142 2004-10-20  Martin Baulig  <martin@ximian.com>
9143
9144         * mono-debug-debugger.h (MonoDebuggerEvent): Added
9145         MONO_DEBUGGER_EVENT_EXCEPTION.
9146
9147         * mono-debug-debugger.c (mono_debugger_handle_exception): New
9148         public function to send the debugger a notification for an
9149         exception and inform it about a catch/finally clause.
9150
9151 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
9152
9153         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
9154         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
9155         fix 2.95 build. 
9156
9157         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
9158
9159 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
9160
9161         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
9162         marshalled as [In,Out]. Fixes #58325.
9163
9164 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
9165
9166         * reflection.c (mono_method_body_get_object): Implement some fields.
9167
9168 2004-10-12  Martin Baulig  <martin@ximian.com>
9169
9170         * reflection.c (mono_reflection_bind_generic_parameters): Small
9171         fix, correctly retrieve our parent from a generic instance.
9172
9173 2004-10-12  Martin Baulig  <martin@ximian.com>
9174
9175         * metadata.c (mono_metadata_generic_param_equal): We always have
9176         an owner.
9177
9178         * class.c
9179         (mono_class_from_generic_parameter): We need to have an owner.
9180         (my_mono_class_from_generic_parameter): Likewise.
9181
9182         * reflection.c (mono_reflection_setup_generic_class): Renamed to
9183         mono_reflection_create_generic_class() and added a new
9184         mono_reflection_setup_generic_class().  
9185         (mono_reflection_initialize_generic_param): If we're a nested
9186         generic type and inherited from the containing class, set our
9187         owner to the outer class.
9188
9189 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
9190
9191         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
9192
9193         * reflection.c (mono_method_body_get_object): New function to create
9194         a MethodBody object.
9195
9196         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
9197
9198 2004-10-11  Martin Baulig  <martin@ximian.com>
9199
9200         * metadata.c (_mono_metadata_type_equal): Renamed to
9201         do_mono_metadata_type_equal() and made static.
9202
9203 2004-10-11  Martin Baulig  <martin@ximian.com>
9204
9205         * appdomain.c: Bump corlib version number to 28.
9206
9207 2004-10-10  Martin Baulig  <martin@ximian.com>
9208
9209         * class-internals.h
9210         (MonoGenericInst): Added `MonoGenericContainer *container'.
9211         (MonoGenericMethod): Likewise.
9212         (MonoGenericContext): Likewise.
9213         (MonoGenericParam): Added `MonoGenericContainer *owner'.
9214
9215         * metadata.c
9216         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
9217         (do_mono_metadata_parse_generic_inst): Likewise.
9218         (mono_metadata_parse_type_full): New public method.  This is the actual
9219         mono_metadata_parse_type() implementation - with an additional
9220         `MonoGenericContainer *' argument.
9221         (mono_metadata_parse_array_full): Likewise.
9222         (mono_metadata_parse_signature_full): Likewise.
9223         (mono_metadata_parse_method_signature_full): Likewise.
9224         (mono_metadata_parse_mh_full): Likewise.
9225         (mono_type_create_from_typespec): Likewise.
9226         (mono_metadata_interfaces_from_typedef_full): New public method;
9227         this is similar to the other _full() methods, but we take a
9228         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
9229         (mono_metadata_parse_generic_param): Take an additional
9230         `MonoGenericContainer *' argument and lookup the MonoGenericParam
9231         from that container.
9232         (mono_metadata_generic_param_equal): New static method to compare
9233         two type parameters.
9234         (_mono_metadata_type_equal): New static method; takes an
9235         additional `gboolean signature_only' argument - if true, we don't
9236         compare the owners of generic parameters.
9237         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
9238         with a TRUE argument - do a signature-only comparision.
9239
9240         * loader.c: Use the new _full() methods and pass the
9241         MonoGenericContainer to them.
9242
9243         * object-internals.h (MonoReflectionTypeBuilder): Added
9244         `MonoGenericContainer *generic_container' field.
9245         (MonoReflectionMethodBuilder): Likewise.
9246
9247 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
9248
9249         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
9250         case initial images of dynamic assemblies.
9251
9252         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
9253
9254         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
9255
9256         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
9257         length of event->other array.
9258         (typebuilder_setup_events): Ditto.
9259
9260         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
9261         'assembly_by_name' and add an 'assemblies' list.
9262
9263         * assembly.h assembly.c: Add a new search hook for determining whenever
9264         an assembly is already loaded. Use this instead of searching in the
9265         loaded_assemblies list.
9266
9267         * domain.c appdomain.c: Implement the new search hook so loaded 
9268         assemblies are now scoped by appdomain. Fixes #67727.
9269
9270 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
9271
9272         * threads.c (mono_thread_attach): Initialize synch_lock field so
9273         mono_thread_detach works again.
9274
9275         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
9276         'lib' too. Fixes #63130.
9277
9278 2004-10-06  Jackson Harper  <jackson@ximian.com>
9279
9280         * culture-info-tables.h: regenerated.
9281
9282 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
9283
9284         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
9285         implemented by other interfaces in the result. Fixes #65764.
9286         
9287         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9288         Handle unloadable modules without crashing.
9289
9290         * image.c (load_modules): Revert the previous patch since modules must
9291         have a fixed index inside the array.
9292         
9293         * image.c (load_modules): Don't include native modules in the modules
9294         array.
9295
9296 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
9297
9298         * reflection.h: Add param_defaults field.
9299
9300         * reflection.c: Add support for parameter defaults in dynamic methods.
9301         Fixes #64595.
9302
9303         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
9304         an empty string when a type has no namespace. Fixes #64230.
9305
9306 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
9307
9308         * tabledefs.h: Added "internal" security actions to support non-CAS
9309         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
9310         Note: they do not seems to be used anymore in 2.0 (new metadata format)
9311
9312 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
9313
9314         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
9315         constructor of abstract class. Fixes #61689.
9316
9317 2004-10-04  Martin Baulig  <martin@ximian.com>
9318
9319         * class-internals.h (MonoGenericContainer): New type.
9320         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
9321         `MonoGenericContainer *generic_container'.
9322         (MonoClass): Replaced `gen_params' and `num_gen_params' with
9323         `MonoGenericContainer *generic_container'.
9324
9325         * metadata.c (mono_metadata_load_generic_params): Return a
9326         `MonoGenericContainer *' instead of a `MonoGenericParam *';
9327         removed the `num' argument.
9328
9329 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
9330
9331         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
9332         for dynamic images.
9333
9334         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
9335         machine fields.
9336
9337         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
9338
9339         * reflection.c: Save pe_kind and machine values into the generated
9340         image file.
9341
9342         * appdomain.c: Bump corlib version number.
9343
9344         * object-internals.h: Reorganize layout of LocalBuilder.
9345
9346         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
9347         New helper function.
9348
9349         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
9350         created MonoType for dynamic types. Fixes #66180.
9351
9352 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
9353
9354         * threadpool.c: the ares hashtable needs a critical section around it.
9355         this prevents some nasty segfaults
9356
9357 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
9358
9359         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
9360         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
9361         bug 67324).
9362         
9363 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
9364
9365         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
9366         
9367 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
9368
9369         * image.c: Always canonicalize image file names, to avoid loading
9370         the same assembly twice when referenced using a relative path.
9371
9372 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
9373
9374         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
9375
9376         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
9377
9378         * marshal.c: Fix warnings.
9379
9380 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
9381
9382         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
9383         attempting to marshal the delegate_trampoline as the method_addr.
9384         This patch has a static hashtable of marshalled delegates so that 
9385         we can map delegate_trampoline addresses back to delegates.  This
9386         allows a delegate passed to managed code to be passed back into native
9387         code.  Fixes #67039
9388
9389 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
9390
9391         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
9392
9393         * reflection.c (method_encode_code): Align method headers properly.
9394         Fixes #66025.
9395
9396 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
9397
9398         * marshal.c: In the runtime invoke wrapper, reset the abort
9399         exception if it is cached. This avoids the automatic rethrowal of 
9400         the exception after the catch of the wrapper. Also check for pending
9401         interruptions before calling the managed method. This is done using
9402         the new method emit_thread_force_interrupt_checkpoint, since the
9403         normal checkpoint method is ignored when running the invoke wrapper.
9404         * object.c: If the abort exception is rethrown, set the abort_exc
9405         field of the thread, so it will be rethrown aftere every catch.
9406         * threadpool.c: Only run an interruption checkpoint if what has been
9407         requested is a stop of the thread (aborts will be ignored).
9408         * threads.c: By default, a thread will now never be interrumped while
9409         running the runtime invoke wrapper (this ensures that runtime_invoke
9410         will always return to the caller if an exception pointer is provided).
9411         There is a new special method mono_thread_force_interruption_checkpoint()
9412         to force an interruption checkpoint even if running a protected
9413         wrapper, which is used by the same runtime invoke wrapper to do a check
9414         at a safe point.
9415
9416 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
9417
9418         * object.c, object-internals.h: Implemented mono_release_type_locks,
9419         which releases the cctor locks held by a thread.
9420         * threads.c, threads.h: In thread_cleanup, release cctor locks held
9421         by a thread. Added mono_thread_exit() method to be used to safely stop
9422         a thread.
9423
9424 2004-09-28  Raja R Harinath  <rharinath@novell.com>
9425
9426         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9427         Move null check before dereference.  Avoid indexing beyond the end
9428         of the 'modules' array.
9429
9430 2004-09-28  Raja R Harinath  <rharinath@novell.com>
9431
9432         * metadata-internals.h (MonoImage): Add module_count field.
9433         * image.c (load_modules): Set image->module_count.
9434         (mono_image_load_file_for_image): Use image->module_count.
9435         * reflection.c (mono_image_load_module): Append to image->modules array 
9436         of dynamic assembly.
9437         (mono_module_get_object): Fix loop to actually increment index.
9438         Use image->module_count.
9439         * assembly.c (mono_assembly_load_references): Use image->module_count.
9440         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
9441         Likewise.
9442
9443 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
9444
9445         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
9446         Avoid assert on generic types.
9447
9448 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
9449
9450         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
9451
9452         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
9453
9454         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
9455         function to convert a MarshalSpec structure to its managed counterpart.
9456
9457         * reflection.c: Fix warnings.
9458         
9459         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
9460         field.
9461
9462         * icall.c (mono_create_icall_signature): Fix build.
9463
9464 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
9465
9466         * icall.c: Add MakePointType icall.
9467
9468         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
9469         warnings.
9470
9471 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9472
9473         * threadpool.c: reuse allocated slots in the queue.
9474
9475 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
9476
9477         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
9478
9479         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
9480
9481         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
9482         previous change.
9483
9484         * tabledefs.h: Add constants for pinvoke attributes BestFit and
9485         ThrowOnUnmappableChar.
9486
9487         * icall.c (ves_icall_Type_GetPacking): New icall.
9488
9489 2004-09-24  Martin Baulig  <martin@ximian.com>
9490
9491         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
9492
9493 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9494
9495         * appdomain.c:
9496         (mono_domain_set): allow setting a domain that is being unloaded.
9497         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
9498         being unloaded.
9499
9500 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9501
9502         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
9503         the GetCustomAttributes icall.
9504
9505 2004-09-23  Martin Baulig  <martin@ximian.com>
9506
9507         * object-internals.h (MonoReflectionGenericParam): Replaced
9508         'has_ctor_constraint', `has_reference_type' and `has_value_type'
9509         with `guint32 attrs'.
9510
9511 2004-09-23  Martin Baulig  <martin@ximian.com>
9512
9513         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
9514
9515 2004-09-23  Martin Baulig  <martin@ximian.com>
9516
9517         * object-internals.h (GenericParameterAttributes): New enum.
9518
9519 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9520
9521         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
9522         
9523         * class.c (init_events): Fill out event->other field.
9524
9525         * class.c: Fix warnings.
9526
9527         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
9528
9529 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
9530
9531         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
9532         walk which doesn't supply the IL offset.
9533
9534 2004-09-22  Martin Baulig  <martin@ximian.com>
9535
9536         * reflection.c (mono_reflection_setup_internal_class): If we're
9537         System.ValueType, System.Object or System.Enum, set
9538         `klass->instance_size' and create the vtable.
9539         (mono_reflection_create_internal_class): If we're an enum type,
9540         get the base class from our current corlib.
9541
9542 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
9543
9544         * reflection.h (MonoResolveTokenError): New type.
9545
9546         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
9547         icall.
9548
9549         * icall.c: Add an 'error' argument to the ResolveToken icalls.
9550
9551 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
9552
9553         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
9554         Support also calling constructors, but only for already allocated objects.
9555
9556 2004-09-17  Geoff Norton <gnorton@customerdna.com>
9557
9558         * reflection.c (type_get_qualified_name): If the klass is null
9559         return the typename to avoid a NullRefEx.
9560         (encode_cattr_value): Get the qualified name of the boxed type,
9561         not the underlying enumtype.  Fixes #62984.
9562
9563 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
9564
9565         * marshal.c: Fix problems with previous checkin.
9566
9567 2004-09-21    <vargaz@freemail.hu>
9568
9569         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
9570         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
9571
9572         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
9573
9574 2004-09-21  Geoff Norton <gnorton@customerdna.com>
9575
9576         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
9577         should only return a type for pointers, arrays, and passbyref types.
9578         Fixes bug #63841.
9579
9580 2004-09-21  Martin Baulig  <martin@ximian.com>
9581
9582         * domain.c (mono_debugger_check_runtime_version): New public
9583         function.
9584
9585         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
9586
9587 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
9588
9589         * reflection.c: Added missing sort to the declarative security 
9590         attributes table. MS implementation stops seeing the attributes if the
9591         token number regress in the table (as shown by ildasm and permview).
9592
9593 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
9594
9595         * object-internals.h (MonoReflectionModule): Add 'token' field.
9596         
9597         * reflection.c (mono_reflection_get_token): Add support for Module
9598         and Assembly.
9599         (mono_module_get_object): Set 'token' field.
9600         (mono_module_file_get_object): Set 'token' field.
9601
9602         * icall.c: Add new Assembly and Module icalls.
9603
9604         * appdomain.c: Bump corlib version.
9605
9606 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
9607
9608         * loader.h loader.c class.h class.c: Add helper functions for obtaining
9609         tokens of metadata objects.
9610
9611         * reflection.h reflection.c (mono_reflection_get_token): New function
9612         to obtain the token of a metadata object.
9613
9614         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
9615
9616 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
9617
9618         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
9619         
9620         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
9621
9622 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
9623
9624         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
9625         * object-internals.h: Added 3 MonoArray* members to MonoReflection
9626         AssemblyBuilder to access the permissions set in the class lib.
9627         * reflection.c: Added security attributes encoding step in 
9628         mono_image_build_metadata.
9629         * tabledefs.h: Added new security actions defined in 2.0:
9630         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
9631
9632 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9633
9634         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
9635         macro parameter.
9636
9637 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9638  
9639         * locales.c: nullify the ICU_collator member of CompareInfo when it is
9640           finalized. There where random SIGSEVs at program termination, when
9641           an object being finalized was trying to do a string comparison and
9642           the current culture was already finalized.
9643  
9644 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9645
9646         * threads.c: call thread_cleanup before finishing the thread if we get
9647         there.
9648
9649 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
9650
9651         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
9652         assemblies from the parent. Fixes #65665.
9653
9654 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
9655
9656         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
9657         modifiers.
9658
9659 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
9660
9661         * reflection.h: add prototype for mono_get_dbnull_object
9662         * reflection.c: add prototypes for get_default_param_value_blobs 
9663         and mono_get_object_from_blob for fussier compilers
9664
9665 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
9666  
9667         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
9668         false deadlock checks in class initialization.
9669  
9670 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
9671
9672         * image.c (mono_image_addref): Fix comment.
9673
9674         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
9675         possible.
9676
9677 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
9678
9679         * reflection.c (mono_param_get_objects): Modified to return
9680         ParameterInfo.DefaultValue object.
9681
9682         (get_default_param_value_blobs):
9683         (mono_get_object_from_blob):
9684         (mono_get_dbnull_object): New helper routines. 
9685
9686         * object.c (mono_get_constant_value_from_blob): New helper routine
9687         carved out from get_default_field_value ()
9688
9689         * object-internals.h (mono_get_constant_value_from_blob): Added
9690         function declaration.
9691
9692 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
9693
9694         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
9695         referenced assemblies. Fixes #62135.
9696
9697         * exception.h exception.c (mono_get_exception_file_not_found2): New
9698         helper function.
9699
9700 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
9701
9702         * class.h class.c: Add mono_type_get_underlying_type ().
9703
9704 2004-09-09  Geoff Norton <gnorton@customerndna.com>
9705
9706         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
9707         Fix GetTypes() to support dynamically created assemblies.
9708
9709 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
9710
9711         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
9712         
9713         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
9714         previous patch.
9715
9716         * reflection.h reflection.c loader.c: Allow dynamic construction of
9717         pinvoke methods. Fixes #65571.
9718         
9719         * reflection.c (mono_reflection_get_type): Revert previous change since
9720         it causes regressions.
9721
9722 2004-09-08  Martin Baulig  <martin@ximian.com>
9723
9724         * class.c (class_compute_field_layout): Don't call
9725         mono_class_layout_fields() for open generic instances.
9726
9727 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
9728         * threads.c appdomain.c: fix typo in GC macro
9729
9730 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9731
9732         * threads.c: don't call mono_thread_detach() in start_wrapper(),
9733         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
9734
9735 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
9736
9737         * image.c (mono_image_close): Applied patch from 
9738         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
9739         assembly is loaded multiple times from data.
9740         
9741         * image.c (mono_image_open): Fix warning.
9742
9743 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9744
9745         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
9746         once. Fixes #58334.
9747         
9748         * reflection.c (mono_reflection_create_runtime_class): Initialize
9749         klass->nested_classes. Fixes #61224.
9750
9751 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9752
9753         * threads.c: sched_yield() on exit, to allow threads to quit.
9754
9755 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9756
9757         * object.c (mono_unhandled_exception): Remove leftover debug code.
9758
9759 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
9760
9761         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
9762
9763 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9764
9765         * marshal.c (emit_marshal_array): Really null terminate string arrays.
9766         
9767         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
9768
9769 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9770
9771         * marshal.c (emit_marshal_array): Null terminate string arrays.
9772         
9773         * marshal.c (raise_auto_layout_exception): Fix warning.
9774
9775         * reflection.c (mono_param_get_objects): Initialize the default value
9776         with DBNull.Value, not null. Fixes #62123.
9777
9778 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
9779
9780         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
9781         throw an exception with a cute explanation.
9782
9783 2004-09-06  Dick Porter  <dick@ximian.com>
9784
9785         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
9786         Close the new process's thread handle, as we don't use it.  The
9787         handle stays around forever otherwise.
9788
9789 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9790
9791         * object.c (arith_overflow): Fix warning.
9792
9793         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9794         calling conventions in method refs. Fixes #65352.
9795
9796         * reflection.c: Fix warnings.
9797
9798 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9799
9800         * icall.c: Add a new icall for Array.Clear
9801
9802 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9803
9804         * object.c: When allocating an array, we have to throw
9805         an overflow exception if any of the lengths are < 0.
9806
9807 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9808
9809         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9810         properly. Also move implementation of string array marshalling to 
9811         managed code. Fixes #42316.
9812
9813 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9814
9815         * assembly.c: provide more information when loading an assembly fails.
9816
9817 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9818
9819         * filewatcher.c: don't expect the development fam package to be
9820         installed.
9821
9822 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9823
9824         * marshal.c: Make a copy of the signature cookie since it will be
9825         freed by the caller.
9826         
9827         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9828
9829         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9830
9831         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9832         marshal specs.
9833
9834         * marshal.c: More refactoring.
9835         
9836         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9837         smaller functions.
9838
9839 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9840
9841         * object.c: In mono_message_invoke, fill the output parameter array after
9842           calling the managed method (it was done before the call). This fixes
9843           bug #59299.
9844
9845 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9846
9847         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9848         as well.
9849
9850 2004-09-02  Martin Baulig  <martin@ximian.com>
9851
9852         * class.c (mono_class_instance_size): Don't allow generic type
9853         definitions or open generic instances.
9854         (mono_class_array_element_size): If we're a value type, call
9855         mono_class_instance_size() on the original class.
9856
9857         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9858         handle generic instances.
9859
9860         * mono-debug-debugger.c (write_type): Handle generic instances
9861         like classes.
9862
9863 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9864
9865         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9866         the allocation request fails. Fixes #65089.
9867
9868         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9869         
9870         * object.c (mono_runtime_free_method): New function to free a dynamic
9871         method.
9872
9873         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9874         delegate trampoline.
9875
9876         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9877         with hasthis as dynamic,
9878
9879         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9880
9881         * domain.c (mono_jit_info_table_remove): New function to remove an
9882         entry from the jit info table.
9883
9884         * class-internals.h (MonoMethod): Add 'dynamic' field.
9885
9886         * loader.c: Fix warnings.
9887
9888 2004-09-01  Martin Baulig  <martin@ximian.com>
9889
9890         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9891         instead of mono_debugger_lock() because the latter one is a no-op
9892         unless running in the debugger.
9893
9894 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9895
9896         * class.c (class_compute_field_layout): Classes with auto-layout or
9897         reference fields are not blittable.
9898         
9899 2004-09-01  Dick Porter  <dick@ximian.com>
9900
9901         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9902         mono_image_get_filename() to get the assembly location.
9903
9904         * icall.c:
9905         * metadata.h: Fix compile warnings
9906
9907 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9908
9909         * class.c (class_compute_field_layout): System.Object is blittable.
9910
9911         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9912         as in/out. Fixes #59909.
9913
9914 2004-09-01  Martin Baulig  <martin@ximian.com>
9915
9916         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9917         mono_metadata_generic_inst_is_valuetype() if we're a generic
9918         instance to check whether our underlying type is a reference type.
9919
9920 2004-09-01  Martin Baulig  <martin@ximian.com>
9921
9922         * metadata.c (mono_type_size): If we're a generic instance, call
9923         mono_class_value_size() for value types.
9924
9925 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9926
9927         * marshal.c: Implement more custom marshalling functionality. Fixes
9928         #64915.
9929
9930 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9931
9932         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9933
9934 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9935
9936         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9937
9938         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9939
9940         * icall.c: Fix some warnings.
9941
9942         * threads.c (abort_appdomain_thread): Fix unref errors.
9943         (mono_thread_current): Fix THREAD_DEBUG define.
9944
9945 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9946
9947         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9948
9949         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9950
9951 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
9952
9953         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
9954         string arrays.
9955
9956 2004-08-28  Martin Baulig  <martin@ximian.com>
9957
9958         * metadata.c
9959         (mono_metadata_generic_inst_is_valuetype): New public function.
9960
9961         * metadata.h (MONO_TYPE_ISSTRUCT): Call
9962         mono_metadata_generic_inst_is_valuetype() if we're a generic
9963         instance to check whether our underlying type is a valuetype.
9964
9965 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
9966
9967         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
9968         #63768.
9969
9970 2004-08-25  Martin Baulig  <martin@ximian.com>
9971
9972         * loader.c (mono_get_method_from_token): Abstract methods can also
9973         be generic and thus have type parameters.
9974
9975         * metadata-internals.h
9976         (MonoDynamicImage): Added `GPtrArray *gen_params'.
9977
9978         * reflection.c (mono_image_get_generic_param_info): Don't create a
9979         metadata row, just add an entry to the `gen_params' array.
9980         (build_compressed_metadata): Sort the `gen_params' array and then
9981         actually create the metadata.
9982
9983 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9984
9985         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
9986
9987 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
9988
9989         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
9990
9991 2004-08-24  Martin Baulig  <martin@ximian.com>
9992
9993         * class.cs (mono_class_is_subclass_of): Like an interface, a
9994         generic instance also derives from System.Object.
9995
9996 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
9997
9998         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
9999         custom modifiers to be in any order. Fixes #61990.
10000
10001 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
10002
10003         * object.c: Register mono_object_new_fast icall.
10004         
10005         * object.c (mono_class_get_allocation_ftn): Return to calling
10006         mono_object_new_fast, since it seems faster to compute the object 
10007         size in unmanaged code than passing it as a parameter.
10008
10009         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
10010
10011         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
10012         this function with Boehm as the oom handler, so we don't have to check
10013         the result of GC_malloc.
10014
10015         * object.c: Remove checks for oom.
10016
10017         * object.h object.c (mono_class_get_allocation_ftn): New function to
10018         return the icall which can be used to allocate an instance of a given
10019         class. 
10020
10021         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
10022
10023         * class-internals.h: Add 'enabled' field.
10024
10025 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
10026
10027         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
10028
10029 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
10030         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
10031         value 0x0010.
10032
10033 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
10034
10035         * appdomain.c: use the Tls function for appdomain too,
10036         at Zoltan's request. Actually return in mono_context_get
10037
10038         * appdomain.c, profiler.c, threads.c: use __thread
10039
10040 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
10041
10042         * appdomain.c threads.c: Call GC_CreateThread on windows.
10043
10044         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
10045         multiple libraries since this don't work on windows.
10046
10047 2004-08-18  Martin Baulig  <martin@ximian.com>
10048
10049         * class-internals.h
10050         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
10051         MonoMethodHeader.
10052
10053         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
10054         MonoMethodNormal since we also need it for abstract and interface
10055         methods.
10056
10057         * reflection.c
10058         (build_compressed_metadata): Sort the GenericParam table.
10059         (mono_image_create_token): Added `gboolean create_methodspec'
10060         argument; this is false when generating a MethodImpl token.
10061         (reflection_methodbuilder_to_mono_method): Abstract and interface
10062         methods may also have generic parameters.
10063
10064 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
10065
10066         * appdomain.c: thread local alloc
10067
10068 2004-08-17  Martin Baulig  <martin@ximian.com>
10069
10070         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
10071
10072         * icall.c
10073         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
10074         argument.
10075
10076         * class.c (mono_type_get_full_name): New public function.
10077         (mono_type_get_name): Don't include the type arguments.
10078
10079 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
10080
10081         * Makefile.am: Build static versions of libmetadata and libmonoruntime
10082         for inclusion into the mono executable.
10083
10084 2004-08-16  Martin Baulig  <martin@ximian.com>
10085
10086         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
10087         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
10088
10089 2004-08-14  Martin Baulig  <martin@ximian.com>
10090
10091         * class.c (dup_type): Also copy the `byref' field.
10092
10093 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
10094
10095         * reflection.c (create_dynamic_mono_image): Revert the last change 
10096         since it breaks bootstrap.
10097
10098 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
10099
10100         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
10101
10102         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
10103         not free them with g_free.
10104
10105 2004-08-11  Martin Baulig  <martin@ximian.com>
10106
10107         * reflection.c (mono_reflection_setup_internal_class): Also call
10108         mono_class_setup_mono_type() if we already have a `tb->type.type'.
10109
10110 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
10111
10112         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
10113         called during default (first) AppDomain creation. Keep track of
10114         Evidence when loading assemblies.
10115
10116 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10117
10118         * opcodes.c, opcodes.h: reduce runtime relocations.
10119
10120 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
10121
10122         * culture-info.h, locales.c: fixes and chages to sue the new
10123         optimized format of the locale data.
10124         * culture-info-tables.h: regenerated.
10125
10126 2004-08-06  Geoff Norton <gnorton@customerdna.com>
10127         
10128         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
10129
10130 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
10131
10132         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
10133         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
10134         * domain-internals.h: icall declaration.
10135         * icall.c: icall registration.
10136         * object-internals.h: New fields in MonoAssembly for CAS.
10137
10138 2004-08-05  Duncan Mak  <duncan@ximian.com>
10139
10140         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
10141         CEE_LDELEM_ANY.
10142
10143 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10144
10145         * reflection.c: fix to deal with object[] arrays in custom ctors
10146         (bug #62550).
10147
10148 2004-08-05  Martin Baulig  <martin@ximian.com>
10149
10150         * class.c (mono_class_array_element_size): Added support for
10151         generic instances and correctly handle "recursive" types.
10152
10153 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
10154
10155         * assembly.c: Fix warnings.
10156
10157 2004-08-04  Martin Baulig  <martin@ximian.com>
10158
10159         * class.c
10160         (mono_type_get_name_recurse): Added `gboolean include_arity'
10161         argument specifying whether or not we should include the generic
10162         arity in the type name.
10163         (_mono_type_get_name): New static function.
10164         (mono_class_setup_vtable): If we're a generic instance, don't
10165         include the generic arity in the names of explicit method
10166         implementations.        
10167
10168 2004-08-03  Martin Baulig  <martin@ximian.com>
10169
10170         * class.c (mono_type_get_name_recurse): Enclose the generic type
10171         arguments in `<', '>'.
10172
10173 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10174
10175         * gc.c: make GC warning messages use the trace API, they are just
10176         noise to most of the users.
10177
10178 2004-08-03  Martin Baulig  <martin@ximian.com>
10179
10180         * debug-mono-symfile.c (read_string): Correctly read the string.
10181
10182 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
10183
10184         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
10185         
10186         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
10187         icalls.
10188         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
10189
10190 2004-07-30  Martin Baulig  <martin@ximian.com>
10191
10192         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
10193         Reflect latest symbol writer changes.   
10194
10195 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
10196
10197         * object.c: always create an object if null is passed
10198         to Invoke() where a valuetype is expected.
10199
10200 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
10201
10202         * marshal.c (mono_marshal_init): make managed
10203         signatures match native ones better for 64bits.
10204
10205 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10206
10207         * appdomain.c: hack to build correctly the private bin path on windows.
10208         Fixes bug #61991.
10209
10210 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
10211
10212         * assembly.c: Load mscorlib from the correct framework directory
10213           (mono/<version>/mscorlib.dll).
10214         * appdomain.h: Added prototypes for new functions.
10215         * internals.h: Added some prototypes.
10216         * domain.c: When initializing the runtime, get from the executable and
10217           the configuration files the runtime version that the app supports.
10218           Added support methods for reading app.exe.config. Added list of versions
10219           supported by the JIT. Added two new methods: mono_init_from_assembly,
10220           which initializes the runtime and determines the required version from
10221           the provided exe file, and mono_init_version, which initializes
10222           the runtime using the provided version.
10223         * icall.c: Get machine.config from version-specific directory.
10224         * reflection.c: When generating an image, embed the version number
10225           of the current runtime.
10226
10227 2004-07-28  Dick Porter  <dick@ximian.com>
10228
10229         * socket-io.c
10230         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
10231         returned sockaddr size before creating the remote address object.
10232         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
10233         61608.
10234
10235 2004-07-28  Dick Porter  <dick@ximian.com>
10236
10237         * locales.c (string_invariant_compare_char): Fix invariant char
10238         compares between upper and lower cases.  Fixes bug 61458.
10239
10240 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
10241         
10242         * marshal.c: actually cache stelem.ref wrappers.
10243         
10244 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
10245
10246         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
10247         sections and remove the mono_cli_rva_map () function.
10248
10249 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10250
10251         * debug-mono-symfile.c: fix one more endianess issue, from a patch
10252         by Geoff Norton (<gnorton@customerdna.com>).
10253
10254 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10255
10256         * class.c: fix class loads for pointer types (typeof(int) !=
10257         typeof(int*)).
10258
10259 2004-07-27  Martin Baulig  <martin@ximian.com>
10260
10261         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
10262         reading the debugging information from an external ".mdb" file.
10263
10264 2004-07-24  Martin Baulig  <martin@ximian.com>
10265
10266         * reflection.c (mono_image_get_type_info): Only write a class
10267         layout entry if we actually have a size or a packing size.
10268
10269 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
10270
10271         * reflection.c (type_get_fully_qualified_name): 
10272         insert cast to get type checking of ?: with non-gcc compilers
10273
10274 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
10275
10276         * rand.c: use g_getenv for both lookups of
10277         MONO_EGD_SOCKET
10278
10279 2004-07-17  Martin Baulig  <martin@ximian.com>
10280
10281         * reflection.c (mono_reflection_bind_generic_method_parameters):
10282         Set `gmethod->reflection_info'.
10283
10284 2004-07-17  Martin Baulig  <martin@ximian.com>
10285
10286         * class.c (mono_class_create_from_typedef): Insert the newly
10287         created class into the hash table before computing the interfaces
10288         since we could be called recursively.
10289
10290 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
10291
10292         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
10293         function to implement stelem.ref in managed code
10294         * class-internals.h, debug-helpers.c: a new wrapper type
10295         for the above.
10296
10297 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
10298
10299         * gc.c: allow GC handles to work even when no GC is compiled in.
10300         Fix part of bug #61134 (GetAddrOfPinnedObject).
10301
10302 2004-07-13  Peter Williams  <peter@newton.cx>
10303  
10304         * process.c (complete_path): Make sure we don't attempt to execute
10305         directories.
10306  
10307 2004-07-12  Geoff Norton <gnorton@customerdna.com>
10308
10309         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
10310           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
10311           and will add/subtract the hour if needed
10312
10313 2004-07-12  Martin Baulig  <martin@ximian.com>
10314
10315         * reflection.c (mono_field_get_object): If we have
10316         `field->generic_info', take the attributes from
10317         `field->generic_info->generic_type'.    
10318
10319 2004-07-12  Martin Baulig  <martin@ximian.com>
10320
10321         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
10322         This function must be called before initializing the runtime.
10323         (mono_debug_init_1): New function; call this after initializing
10324         the runtime, but before loading the assembly.  It tells the
10325         debugger to load corlib and the builtin types.
10326
10327         * mono-debug-debugger.c: Did some larger changes in the debugging
10328         code; support recursive class declarations, make sure we actually
10329         add all classes.
10330
10331 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10332
10333         * debug-helpers.c: undo my previous patch and fixed the real issue in
10334         ../mini/exceptions-x86.c
10335
10336 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10337
10338         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
10339         when no HOME env. variable was set and a NullRef was thrown in a .cctor
10340         called from other .cctors.
10341
10342 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
10343
10344         * loader.c: Removed the mono_loader_wine_init hack now that we are
10345         doing a managed version of Windows.Forms.
10346
10347 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
10348
10349         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
10350         threadpool.c, threads.c: remove static data from rootset.
10351
10352 2004-07-09  Dick Porter  <dick@ximian.com>
10353
10354         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
10355         Don't do any more processing if the matched length was 0.  It was
10356         increasing the size of the string before.  Fixes bug 61167.
10357
10358 2004-07-09  Dick Porter  <dick@ximian.com>
10359
10360         * socket-io.h:
10361         * socket-io.c
10362         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
10363         Add support for SO_PEERCRED if its available.
10364
10365 2004-07-09  Peter Bartok <pbartok@novell.com>
10366         * loader.c: winelib.exe.so error message is now only displayed if
10367         MONO_DEBUG is set. To help us avoid questions when people are trying
10368         out the new Managed.Windows.Forms.
10369
10370 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
10371
10372         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
10373         for isinst and castclass wrappers.
10374
10375         * class-internals.h icall.c: Move registration and lookup of JIT icalls
10376         to libmetadata from the JIT, so they could be used by the marshalling
10377         code and the interpreter.
10378
10379         * marshal.c: Register marshalling related JIT icalls here instead of
10380         in mini.c. Use CEE_MONO_ICALL instead of the family of 
10381         CEE_MONO_PROC<x> opcodes to call marshalling functions.
10382
10383         * metadata.h: Remove unneeded marshalling conversions.
10384
10385         * opcodes.c: Update for new opcodes.
10386         
10387 2004-07-08  Martin Baulig  <martin@ximian.com>
10388
10389         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
10390         (mono_debug_get_domain_data): Make this function static.
10391
10392 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
10393
10394         * gc.c, object.h: add nice GC handle API for embedders.
10395
10396 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
10397
10398         * reflection.c: more changes for the new api
10399
10400         * object.c: When we reflect on a field w/ a constant value, it
10401         will not have a memory location, so we must access metadata. Also,
10402         allow easier reading of strings so that we can read them from
10403         the constant data.
10404
10405         * class.c (mono_class_layout_fields): no need for literal fields here.
10406
10407         * class-internals.h: api changes for const fields
10408
10409         * icall.c (ves_icall_get_enum_info): use new apis for const fields
10410
10411 2004-07-06  Martin Baulig  <martin@ximian.com>
10412
10413         * mono-debug.h: Increment version number to 44.
10414
10415         * mono-debug.c (mono_debug_add_wrapper): The second argument is
10416         now a gpointer, rewrote this whole method.
10417
10418         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
10419         function.  Add information about the wrapper in a new "misc table".
10420
10421         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
10422         for the new misc table.
10423
10424 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
10425
10426         * metadata-internals.h image.c: Add a cache for helper signatures.
10427
10428         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
10429
10430 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
10431
10432         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
10433         delegates from a delegate. Fixes #61033.
10434         
10435         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
10436         marshalling of stringbuilder arrays. Fixes #59900.
10437
10438 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
10439
10440         * icall.c: Add EnumBuilder:setup_enum_type icall.
10441
10442 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
10443
10444         * icall.c: Added a new icall for the property version of
10445         OffsetOfStringData.
10446
10447 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
10448
10449         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
10450         it has a constant size across platforms.
10451
10452         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
10453         stack trace.
10454
10455 2004-06-29  Martin Baulig  <martin@ximian.com>
10456
10457         * mono-debug.c (mono_debug_add_method): Protect the whole function
10458         in mono_debugger_lock(), not just parts of it.
10459
10460 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10461
10462         * reflection.c: make sure padding bytes in heaps are zeroed.
10463
10464 2004-06-24  David Waite  <mass@akuma.org>
10465
10466         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
10467         image.c, loader.c, locales.c, marshal.c, metadata.c,
10468         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
10469         string-icalls.c, threads.c: change to C90-style comments from C99 /
10470         C++ -style
10471
10472 2004-06-24  Dick Porter  <dick@ximian.com>
10473
10474         * threads.c
10475         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
10476         return createdNew.  Fixes bug 60412.
10477
10478         * threads-types.h: 
10479         * icall.c: Add createdNew parameter to CreateMutex icall
10480
10481 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10482
10483         * reflection.c, object-internals.h: save default value in params.
10484
10485 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10486
10487         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
10488         no need to build a new path combining that with the application base.
10489         Fixes bug #60442.
10490
10491 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
10492
10493         * reflection.c: fixed minor standard compliance issues.
10494
10495 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
10496
10497         * reflection.c: fixed issue with encoding some custom attributes
10498         (arrays in properties and fields, bug #60411).
10499
10500 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10501
10502         * reflection.c: fix start address when copying the public key token.
10503
10504 2004-06-23  Martin Baulig  <martin@ximian.com>
10505
10506         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
10507         the `exc' object in a static object to put it into the GC's root set.
10508
10509 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
10510
10511         * reflection.c: make mono_reflection_setup_internal_class ()
10512         callable a second time to setup a new parent class.
10513
10514 2004-06-23  Dick Porter  <dick@ximian.com>
10515
10516         * threads.c: Check for WAIT_IO_COMPLETION return values.
10517
10518 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
10519
10520         * appdomain.c: Removed the g_free on the public key token. Now copy 
10521         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
10522         * assembly.c: Added public key token string value when loading 
10523         assemblies. Fix bug #60439.
10524         * icall.c: Added missing informations (like public key) in 
10525         GetReferencedAssemblies. Fix #60519.
10526         * image.h: Changed definition for public key token from const char*
10527         public_tok_value to guchar public_key_token [17];
10528         * reflection.c: Updated for changes to public key token.
10529
10530 2004-06-22  Lluis Sanchez Gual
10531
10532         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
10533         for the field in base classes.
10534
10535 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10536
10537         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
10538         mark headers as not supported, they are installed only for use by the
10539         debugger.
10540
10541 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
10542
10543         * *.c, *.h: avoid namespace pollution in public headers.
10544
10545 2004-06-21  Martin Baulig  <martin@ximian.com>
10546
10547         * exception.c (mono_get_exception_security): It's in
10548         "System.Security", not in "System".
10549
10550         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
10551         the exception classes.
10552
10553 2004-06-21  Martin Baulig  <martin@ximian.com>
10554
10555         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
10556         Protect the exception object from being finalized.
10557
10558 2004-06-21  Martin Baulig  <martin@ximian.com>
10559
10560         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
10561         public function.
10562
10563 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
10564
10565         * reflection.c: Load the assembly in mono_reflection_type_from_name,
10566         if it was not loaded before. Fix parts of #60439.
10567
10568 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
10569
10570         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
10571         code that was broken since Ben's change: wrappers are now
10572         dependent on the method signature only again.
10573
10574 2004-06-21  Martin Baulig  <martin@ximian.com>
10575
10576         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
10577         added interface support.
10578
10579 2004-06-21  Martin Baulig  <martin@ximian.com>
10580
10581         * class.c (mono_vtable_get_static_field_data): New public method.
10582
10583 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
10584
10585         * filewatcher.c : Windows build fix to be compliant with API changes.
10586
10587 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10588
10589         * class.h, class.c: more accessors.
10590         * metadata.h, metadata.c: prepare for hiding MonoType and
10591         MonoMethodSignature: people should use the accessors from now on
10592         outside of the tree.
10593
10594 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10595
10596         * *.c, *.h: more API cleanups.
10597
10598 2004-06-18  Jackson Harper  <jackson@ximian.com>
10599
10600         * assembly.c: Trace loading assemblies.
10601         * loader.c: Trace loading native libraries.
10602         * mono-config.c: Trace loading config files.
10603         
10604 2004-06-18  Dick Porter  <dick@ximian.com>
10605
10606         * locales.c: Tell ICU the lengths of strings, it can cope with
10607         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
10608
10609 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
10610
10611         * image.c: swapped name/filename;
10612
10613 2004-06-18  Martin Baulig  <martin@ximian.com>
10614
10615         * mono-debug-debugger.c (write_class): Write the parent class at
10616         the end of the header.
10617
10618 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10619
10620         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
10621
10622 2004-06-17  Raja R Harinath  <rharinath@novell.com>
10623
10624         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
10625         (bundle_obj): New conditional define.
10626         (BUILT_SOURCES): Remove.
10627         ($(bundle_srcs)): Make parallel-make safe.
10628         (libmonoruntime_la_LIBADD): Make unconditional.
10629         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
10630         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
10631
10632 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
10633
10634         * culture-info-tables.h: It was inconsistent with the latest
10635           supp info files.
10636
10637 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
10638
10639         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
10640         be loaded.
10641
10642         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
10643         with gcc 2.95.
10644
10645 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10646
10647         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
10648         cleaned up public header threads.h.
10649
10650 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10651
10652         * Makefile.am, *.c, *.h: more API cleanups.
10653
10654 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
10655
10656         * Makefile.am: removed monosn from compilation.
10657         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
10658         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
10659         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
10660         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
10661         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
10662         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
10663
10664 2004-06-15  Jackson Harper  <jackson@ximian.com>
10665
10666         * assembly.c: Make locales lower case when searching the GAC for
10667         assemblies. gacutil will always make locales lowercase when
10668         installing so this effectively makes them case insensitive.
10669         
10670 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
10671
10672         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
10673         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
10674           parameter which allows to choose whether the wait can be interrupted or 
10675           not. Also added the method mono_monitor_enter(), which locks the monitor
10676           using an infinite wait and without allowing interruption.
10677           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
10678           interrupted.
10679         * object.h: Added new fields in MonoThread. suspend_event holds the event
10680           used to susped/resume the thread. synch_lock is the lock object to use for
10681           modifying the thread state.
10682         * threads.c: Use the new synch_lock object for locking, instead of "this",
10683           which can generate deadlocks.
10684           Moved thread state change in Thread.Sleep and Thread.Join from managed
10685           to unmanaged code. This avoids a deadlock when the thread was suspended
10686           just after acquiring the thread lock.
10687           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
10688           Implemented Thread.Suspend using an event instead of ThreadSuspend,
10689           which is not fully implemented in the io-layer.
10690         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
10691
10692 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
10693
10694         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
10695         threads-types.h: more API cleanups.
10696
10697 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10698
10699         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
10700         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
10701         threadpool.c, threads.c: first pass at the exported API cleanup.
10702
10703 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
10704
10705         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
10706
10707 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10708
10709         * icall.c: added internalGetHome.
10710
10711 2004-06-14  Dick Porter  <dick@ximian.com>
10712
10713         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
10714         possible to return successfully when '.' or '..' were the only
10715         entries in a directory, but were skipped.  The MonoIOStat was not
10716         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
10717         Fixes bug 59574.
10718
10719 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10720
10721         * reflection.c: make binaries run on .Net 1.1 by default.
10722
10723 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10724
10725         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
10726
10727 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
10728
10729         * marshal.c: keep track of struct size with explicit layout
10730         (bug #59979).
10731
10732 2004-06-12  Martin Baulig  <martin@ximian.com>
10733
10734         * mono-debug-debugger.c: Comment out a debugging g_message().
10735
10736 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10737
10738         * reflection.c, reflection.h: do not free custom attrs that are cached.
10739         * icall.c: use braces to make code clearer.
10740
10741 2004-06-11  Martin Baulig  <martin@ximian.com>
10742
10743         * class.h (MonoInflatedField): New type.
10744         (MonoClassField): Replaced `MonoType *generic_type' with
10745         `MonoInflatedField *generic_info'.
10746
10747         * icall.c
10748         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
10749
10750 2004-06-11  Martin Baulig  <martin@ximian.com>
10751
10752         * reflection.c (mono_image_create_method_token): Correctly encode
10753         varargs methods.
10754
10755 2004-06-11  Martin Baulig  <martin@ximian.com>
10756
10757         * metadata.c (mono_metadata_parse_method_signature): When parsing
10758         a MethodDef which has VarArgs, also set sentinelpos if we don't
10759         have any parameters.
10760
10761 2004-06-11  Martin Baulig  <martin@ximian.com>
10762
10763         * verify.c (mono_method_verify): In CEE_CALL, use
10764         mono_method_get_signature() to get the method's signature, unless
10765         we're a PInvoke method.
10766
10767 2004-06-10  Jackson Harper  <jackson@ximian.com>
10768
10769         * assembly.c: Use <path>/lib/mono/gac for the extra paths
10770         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
10771         logical name as the supplied path is just a prefix to the gac not
10772         the direct path to it.
10773         
10774 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
10775
10776         * reflection.c: make the token for a created method match
10777         the token of the MethodBuilder it was created from
10778         (IKVM requires this behaviour now).
10779
10780 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
10781
10782         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
10783         reflection.c, socket-io.c: leak fixes.
10784
10785 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
10786
10787         * icall.c: handle sentinel pos in vararg methods in position different
10788         from 0.
10789
10790 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10791
10792         * culture-info-tables.h: freshly generated.
10793
10794 2004-06-09  Martin Baulig  <martin@ximian.com>
10795
10796         * loader.c (mono_get_method_constrained): Call `mono_class_init
10797         (constrained_class)'.   
10798
10799 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10800
10801         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10802         any methods. Fixes #59629.
10803
10804 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10805
10806         * culture-info-tables.h: reflecting locale-builder updates.
10807
10808 2004-06-08  Dick Porter  <dick@ximian.com>
10809
10810         * object.h:
10811         * locales.c: Fixed compile warnings, including a real bug in
10812         CompareInfo_internal_compare.
10813         
10814 2004-06-08  Dick Porter  <dick@ximian.com>
10815
10816         * locales.c
10817         (ves_icall_System_Globalization_CompareInfo_internal_index):
10818         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10819         Double-check the resuls of usearches, because ICU currently
10820         ignores most of the collator settings here.  Fixes bug 59720.
10821         
10822 2004-06-08  Dick Porter  <dick@ximian.com>
10823
10824         * locales.c
10825         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10826         Fix memory leak and segfault-causing typo.  No idea how this one
10827         lasted so long without being noticed.
10828
10829 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10830
10831         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10832         any methods. Fixes #59629.
10833
10834 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10835
10836         * assembly.c:
10837         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10838         own the critical section before). Removed dead code (that's done
10839         in the preload hook).
10840
10841         (mono_assembly_load_with_partial_name): call the preload hook.
10842
10843 2004-06-08  Martin Baulig  <martin@ximian.com>
10844
10845         * metadata.c (mono_metadata_signature_alloc): Default
10846         `sentinelpos' to -1.
10847
10848         * reflection.c (mono_image_get_array_token): Likewise.
10849
10850 2004-06-08  Martin Baulig  <martin@ximian.com>
10851
10852         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10853
10854         * metadata.c (mono_metadata_parse_method_signature): When parsing
10855         a MethodDef which has VarArgs, set sentinelpos.
10856
10857         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10858         `gint16' since we're using -1 for non-varargs methods.
10859
10860         * reflection.c
10861         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10862         (method_encode_signature): Added varargs support.
10863         (method_builder_encode_signature): Likewise.
10864         (mono_image_get_varargs_method_token): New static method.
10865         (mono_image_create_method_token): New public method; this is
10866         called via an icall instead of mono_image_create_token() when
10867         calling a varargs method.       
10868
10869 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10870
10871         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10872
10873 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10874
10875         * culture-info-tables.h : Reflecting the latest locale-builder that
10876           fixed empty array representation ({} to {0}).
10877
10878 2004-06-07  Jackson Harper  <jackson@ximian.com>
10879
10880         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10881         looking up extra gac paths. This allows MONO_GAC_PATH to act
10882         exactly like a prefix.
10883         
10884 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10885
10886         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10887         type name before modifying it. Fixes #59405.
10888
10889 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10890
10891         * culture-info.h: added fields for "all datetime patterns".
10892         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10893           _construct_datetime_format ()): fill xxx_patterns fields.
10894         * object.h: added fields for "all datetime patterns" to
10895           MonoDateTimeFormatInfo.
10896         * culture-info-tables.h: reflecting locale-builder updates.
10897
10898 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10899
10900         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10901         the event has no add and remove methods. Fixes #59629.
10902
10903 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10904
10905         * object.c: Fixed possible integer overflow when allocating large
10906         strings.
10907
10908 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10909
10910         * culture-info-tables.h: reflecting locale-builder updates.
10911
10912 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10913
10914         * culture-info-tables.h: reflecting locale-builder updates.
10915
10916 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10917
10918         * culture-info-tables.h: reflecting locale-builder updates.
10919
10920 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10921
10922         * threads.c: Made Thread.Sleep abortable.
10923
10924 2004-06-02  Martin Baulig  <martin@ximian.com>
10925
10926         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10927
10928         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10929
10930 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10931
10932         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10933
10934 2004-05-30  Jackson Harper  <jackson@ximian.com>
10935
10936         * reflection.c: Do not hardcode assembly versions or public key
10937         tokens anymore. All of this except the corlib section was dead
10938         code anyways.
10939         
10940 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10941
10942         * object.c (mono_runtime_invoke_array): Automatically create boxed
10943         objects for byref valuetypes if needed. Fixes #59300.
10944         
10945         * object.c (mono_method_return_message_restore): Handle 
10946         MONO_TYPE_OBJECT as well.
10947
10948 2004-05-28  Jackson Harper  <jackson@ximian.com>
10949
10950         * reflection.c: The modified type encoding was causing build
10951         problems. Reverted for now.
10952         
10953 2004-05-28  Jackson Harper  <jackson@ximian.com>
10954
10955         * reflection.c/h: Take an assembly ref so that we dont create
10956         fully qualified names when encoding types in the same assembly as
10957         the custom attribute being emitted.
10958         * appdomain.c: Increment version number.
10959         
10960 2004-05-26  Duncan Mak  <duncan@ximian.com>
10961
10962         * icall.c
10963         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10964         Set the full version number (major, minor, build, revision).
10965
10966 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
10967
10968         * marshal.c (emit_struct_conv): increment src/dst after blit
10969         (mono_marshal_get_managed_wrapper,
10970         mono_marshal_get_native_wrapper): make sure we have marshalling
10971         info before marshalling params (info computation affects
10972         blittable)
10973
10974         * class.c (class_compute_field_layout): correctly deal with
10975         blittable
10976         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
10977         value types (as per what windows dows by default)
10978         (mono_class_setup_mono_type): System.ValueType is blittable
10979         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
10980         blittable
10981
10982         * marshal.c (mono_marshal_load_type_info): flag types  as
10983         non-blittable if the native layout doesn't match the managed
10984         layout
10985
10986 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10987
10988         * appdomain.c: don't add stuff in the private search path that is
10989         above the application base. If application base is not set, there's
10990         no private search path.
10991
10992 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
10993
10994         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
10995         byref struct arguments in native->managed marshalling.
10996
10997 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
10998
10999         * marshal.c (mono_marshal_get_runtime_invoke): correctly
11000         cache methods using signature (special case for methods
11001         that are value type or string class)
11002         
11003         * image.c (mono_image_close): clean up allocated GSList's
11004         in runtime_invoke_cache.
11005
11006 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11007
11008         * mono-config.c: set the correct path for mono_cfg_dir on windows when
11009         there's no MONO_CFG_DIR environment variable defined.
11010
11011 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11012
11013         * threads.c: windows version must be >= 0x0500 to include OpenThread.
11014
11015 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
11016
11017         * threadpool.c: Really wait for 500ms after the async call, even if the wait
11018           is interrumped.
11019         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
11020           before waiting for it, and call CloseHandle after the wait to unref it.
11021           This will make sure that handles are not disposed too early.
11022
11023 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11024
11025         * appdomain.c:
11026         * appdomain.h:
11027         * icall.c: removed
11028         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
11029         needed now.
11030
11031         * object.c: se the application_base only for the domain that runs
11032         Main. Fixes bug #59216,
11033
11034 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11035
11036         * appdomain.c:
11037         * object.c: only the domain in which Main is run have
11038         SetupInformation.ConfigurationFile set, so moved a few lines from
11039         appdomain.c to object.c.
11040
11041 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11042
11043         * appdomain.c: we tried to load [name].(dll|exe), but according
11044         to bug #57710, we must also try [culture]/[name].(dll|exe) and
11045         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
11046         There's a test case attached to bug #58922.
11047
11048 2004-05-27  Dick Porter  <dick@ximian.com>
11049
11050         * icall.c:
11051         * file-io.c: Implemented icalls for locking and unlocking regions
11052         in a file.
11053         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
11054         FALSE on error (fixes both compiler warning and real bug.)
11055
11056 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
11057
11058         * culture-info-tables.h: reflecting locale-builder updates.
11059
11060           (Added missing ChangeLog entry for 05/26)
11061
11062 2004-05-27  Jackson Harper  <jackson@ximian.com>
11063
11064         * locales.c: Fix some cut and paste errors.
11065         
11066 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11067
11068         * mono-config.c: set the correct path for config. directory on windows.
11069
11070 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11071
11072         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
11073           on win32.
11074
11075 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
11076
11077         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
11078         from pinvoke functions.
11079         
11080         * marshal.c (mono_ftnptr_to_delegate): Implement this.
11081
11082 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11083
11084         * culture-info-tables.h: reflecting locale-builder updates.
11085
11086 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
11087
11088         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
11089         #59086.
11090
11091 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
11092
11093         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
11094         * icall.c: Modified icalls for RNG.
11095         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
11096         Windows (CryptoAPI).
11097
11098 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
11099
11100         * locales.c: Fix build.
11101
11102 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11103
11104         * culture-info-tables.h: reflecting locale-builder updates.
11105
11106 2004-05-25  Jackson Harper  <jackson@ximian.com>
11107
11108         * locales.c: When creating the current culture use the $LANGs
11109         specific culture. So DateTimeFormat and NumberFormat entries are created.
11110         
11111 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
11112
11113         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
11114         a char array as parameter.
11115
11116 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
11117
11118         * image.c: In mono_image_open(), always use an absolute path name to
11119           look for already loaded images.
11120
11121 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
11122
11123         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
11124         missing in the windows build (like older cygwin include files).
11125
11126 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
11127
11128         * icall.c: Fixed check for possible integer overflow in Buffer_
11129         BlockCopy icall. Replaced comments style // by /* */.
11130
11131 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
11132
11133         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
11134         
11135         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
11136         check after MONO_VTADDR. Fixes pinvoke2.exe.
11137
11138         * marshal.h marshal.c metadata.h: Add beginnings of support for
11139         ftnptr -> delegate marshalling.
11140
11141 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
11142
11143         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
11144         * threads.c: Fix warnings.
11145
11146 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
11147
11148         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
11149         * icall.c: Registered icalls for Suspend and Resume.
11150         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
11151           Thread.Abort.
11152         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
11153         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
11154         * process.c: Use WaitForSingleObjectEx.
11155         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
11156           checkpoints.
11157         * threads.c, threads.h: Make use of new Ex wait methods. Improved
11158           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
11159           for Suspend and Resume. Added new mono_thread_stop, used for stoping
11160           background threads. Added basic support for Abort in Windows.
11161           Start new threads using a managed delegate invoke wrapper. This wrapper
11162           has an interruption checkpoint that is needed since an interruption
11163           can be requested before the thread leaves the unmanaged code that starts 
11164           the thread.
11165         * marshal.c: Added interruption checkpoint after every native call, and
11166           also before managed calls for wrappers called from unmanaged code to
11167           go into managed code.
11168         * object.h: Added new field in MonoThread to keep track of interruption
11169           requests.
11170
11171 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
11172
11173         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
11174         calls.
11175
11176 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11177
11178         * appdomain.c:
11179         * assembly.c:
11180         * gc.c:
11181         * locales.c:
11182         * mono-config.c:
11183         * rand.c: getenv -> g_getenv (windows!)
11184
11185         * process.c: complete_path is also used on non-windows platforms.
11186
11187 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11188
11189         * icall.c: new signature for Process_Start.
11190
11191         * process.[ch]: new signature for Process_Start. If we're on windows
11192         and UseShellExecute is false, we have to search for the program by
11193         ourselves if we don't get a full path.
11194
11195 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
11196
11197         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
11198         marshalling and call CleanUpNativeData if needed. Fixes #58646.
11199
11200 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11201
11202         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
11203         Fixes bug #58373.
11204
11205 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11206
11207         * process.c: use double quotes to quote program name and arguments on
11208         windows. Fixes bug #58575.
11209
11210 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11211
11212         * file-io.c: don't return "." and ".." when using windows Find*File.
11213
11214 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
11215
11216         * marshal.c: Don't pass wrappers to message init because method 
11217         addressed used to lookup metadata. part of remoting[2|3] fix.
11218
11219 2004-05-15  Jackson Harper  <jackson@ximian.com>
11220
11221         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
11222         path is essentially the same as MONO_PATH except that it points to
11223         GACs instead of lib directories.
11224         * loader.h: The user gac is gone so we dont need function to
11225         enable/disable it.
11226         * mono-config.c: user gac option is now gone.
11227         
11228 2004-05-15  Jackson Harper  <jackson@ximian.com>
11229
11230         * culture-info.h: Make defines more consistent, add calendar data
11231         to the culture info table.
11232         * culture-info-tables.h: Add basic calendar data. Basically
11233         everyone gets default gregorian until all the data is
11234         updated.
11235         * locales.c: Use the new consistent defines. Set calendar data for
11236         culture info objects.
11237         * object.h: add a field for calendar data to CultureInfo
11238         
11239 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
11240
11241         * image.c: image->runtime_invoke_cache is keyed on signatures now.
11242         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
11243         a signature.
11244         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
11245         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
11246         an extra param that is the pointer of the method to invoke. The IL for
11247         the invoke method is no longer specific to the method, but to the
11248         signature of the method. Thus, we can share the same code for multiple
11249         methods. This reduces the number of methods that have to be compiled.
11250
11251 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
11252
11253         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
11254
11255         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11256
11257         * icall.c: Optimize Buffer.BlockCopy.
11258
11259 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11260
11261         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
11262         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
11263         quote). Changed them to "MMMM yyyy".
11264
11265 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
11266
11267         * rand.c
11268         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
11269
11270 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
11271
11272         * reflection.h: Updated after changes to managed structures.
11273
11274         * appdomain.c: Bump corlib version.
11275
11276 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11277
11278         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
11279         windows.
11280
11281 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11282
11283         * Makefile.am: link to ../os/libmonoos.la on windows.
11284
11285         * assembly.c:
11286                 -If MONO_DEBUG, warn about non-existing directories in
11287                 MONO_PATH.
11288                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
11289                 compile time variable.
11290                 -Removed init_default_path and call mono_set_rootdir from
11291                 libmonoos.a instead (windows only).
11292
11293         * assembly.h: declare mono_assembly_getrootdir().
11294
11295         * domain.c:
11296         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
11297
11298         * loader.c: s/getenv/g_getenv/
11299
11300 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
11301
11302         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
11303
11304         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
11305
11306         * metadata.h: Add new marshalling conversions.
11307
11308         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
11309         function.
11310
11311         * reflection.c (mono_reflection_get_type): Lookup the type in all
11312         modules of a multi-module assembly. Fixes #58291.
11313
11314 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
11315
11316         * threads.c: Before aborting a background, set the StopRequested
11317         state.  This avoids throwing the Abort exception.
11318         In mono_thread_manage, don't continue with the shutdown until all
11319         aborted threads have actually stopped.
11320
11321 2004-05-10  Jackson Harper  <jackson@ximian.com>
11322
11323         * locales.c: Remove the modifier from culture names.
11324         
11325 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11326
11327         * Makefile.am: monosn is not installed any more. It has been deprecated
11328         in favor of sn.
11329
11330 2004-05-07  Jackson Harper  <jackson@ximian.com>
11331
11332         * locales.c
11333         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
11334         Fix array construction, add bailout if the length is 0.
11335
11336 2004-05-07  Dick Porter  <dick@ximian.com>
11337
11338         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
11339         machine doesn't have a DNS entry.  Patch by Urs Muff
11340         (umuff@quark.com), fixes bug 57928.
11341
11342 2004-05-06  Jackson Harper  <jackson@ximian.com>
11343
11344         * reflection.c: Handle null PublicTokens properly. alloc mem for
11345         assembly names culture so we dont crash when freeing it.
11346         
11347 2004-05-06  Jackson Harper  <jackson@ximian.com>
11348
11349         * assembly.c: Check the usergac when loading with partial names.
11350         
11351 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
11352
11353         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
11354         does nothing for now (not required for Linux/Windows) but the class
11355         library can call it (and a newer or modified runtime could need it).
11356         * icall.c: Registred icall.
11357
11358 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11359
11360         * loader.c: prints a message on module loading error we set MONO_DEBUG
11361         environment variable.
11362
11363 2004-05-05  Jackson Harper  <jackson@ximian.com>
11364
11365         * appdomain.c: Handle PublicKeyToken=null properly.
11366         
11367 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
11368
11369         * environment.c|h: Added icall ves_icall_System_Environment_
11370         GetOSVersionString to get the current OS version as a string.
11371         * icall.c: Registred icall.
11372
11373 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
11374
11375         * object.c: in mono_object_get_virtual_method(), take into account that
11376         non-virtual methods don't have a slot in the vtable. Check needed when
11377         the object is a proxy.
11378
11379 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
11380
11381         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
11382         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
11383
11384         * object.c (mono_class_compute_gc_descriptor): Fix warning.
11385
11386         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
11387         passed when a valuetype is expected.
11388
11389         * object.c (mono_unhandled_exception): Only set the exit code if the
11390         exception happens in the main thread. Fixes thread5.exe.
11391
11392         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
11393         invalid names. Fixes #58047.
11394
11395 2004-05-03  Jackson Harper  <jackson@ximian.com>
11396
11397         * assembly.c: This line was committed accidently and is unneeded.
11398         
11399 2004-05-03  Jackson Harper  <jackson@ximian.com>
11400
11401         * icall.c: Add new icall for Assembly::LoadWithPartialName
11402         * assembly.c/.h: new function that probes the GAC to load partial
11403         assembly names by Paolo Molaro.
11404         
11405 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11406
11407         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
11408         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
11409         (type_get_fully_qualified_name): Added PublicKeyToken when building a
11410         full type name.
11411
11412 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11413
11414         * appdomain.c: fixed check for 'neutral' culture and removed warning.
11415         * reflection.c: fix bug when parsing a full type name and Version is not
11416         the last thing in the string.
11417
11418 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
11419
11420         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
11421         crashes when it is freed.
11422
11423 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11424
11425         * assembly.c: print the compat warning to stderr.
11426
11427 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
11428
11429         * assembly.c (mono_assembly_load_references): Add a compatibility
11430         hack to run old applications that might be still referencing the
11431         3300-based assemblies, only do this for System.xxx.
11432
11433 2004-05-01  Jackson Harper  <jackson@ximian.com>
11434
11435         * appdomain.c: If the culture is neutral we set it to "".
11436         
11437 2004-04-29  Jackson Harper  <jackson@ximian.com>
11438
11439         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
11440
11441 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
11442  
11443         * string-icalls.c: added low overhead function for copying chars
11444         * icall.c: added needed icall for the above function
11445  
11446 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11447
11448         * icall.c: fix return value of get_global_assembly_cache.  Implemented
11449         Environment.GetLogicalDrives.
11450
11451 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
11452
11453         * rand.c: try and talk to egd or prngd
11454         for random bytes if opening devices fail.
11455
11456 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
11457
11458         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
11459         alignment for the type using the native alignment of its members 
11460         instead of using klass->min_align.
11461
11462         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
11463
11464 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11465
11466         * file-io.c:
11467         * socket-io.c: added check for sys/aio.h.
11468
11469 2004-04-28  Dick Porter  <dick@ximian.com>
11470
11471         * threads.c: Don't abort a thread thats already aborting, when
11472         terminating everything.
11473
11474 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11475
11476         * icall.c: added 2 new async calls for Socket.
11477
11478         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
11479         IO on *nix systems.
11480
11481         * threadpool.c: removed unused variable.
11482
11483 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
11484
11485         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
11486
11487 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11488
11489         * locales.c: put back string_invariant_tolower () and
11490         string_invariant_toupper ().
11491
11492 2004-04-26 David Waite <mass@akuma.org>
11493
11494         * file-io.h:
11495         * socket-io.h:
11496         * threads.h:
11497         * unicode.h: remove comma from end of enumeration declarations
11498
11499 2004-04-26 David Waite <mass@akuma.org>
11500
11501         * debug-mono-symfile.h:
11502         * decimal.c:
11503         * mono_debug.h:
11504         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
11505
11506
11507 2004-04-26  Jackson Harper  <jackson@ximian.com>
11508
11509         * appdomain.c: Increment version number.
11510         
11511 2004-04-26  Jackson Harper  <jackson@ximian.com>
11512
11513         * appdomain.c: Set assembly references public token value when
11514         PublicKeyToken is specified, not the hash_value. Free public token
11515         values when free assembly name data. Previously the public key
11516         token was hex decoded, however we are using hex encoded public key
11517         tokens, so this is not neccasary.
11518         * assembly.c: Lookup assemblies in the gac if their public token
11519         value is set. Add function to allow enabling user gac
11520         lookups. Specify whether or not the assembly was loaded from the
11521         GAC. Compare full assembly names when checking the cache for
11522         assemblies (Temporarily disabled see comment in code). Remove
11523         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
11524         specifies trace-loader they get extra info to stdout on the
11525         loading of assemblies.
11526         * image.h: Add a field for an assembly references public token
11527         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
11528         whether an assembly has been loaded from the GAC.
11529         * image.c: Remove a corlib -> mscorlib name mapping.
11530         * loader.h: Add function to enable/disable the user gac.
11531         * mono-config.c: Check if the usergac is enabled in the config
11532         file.
11533         * icall.c: New icall to determine whether or not an assembly has
11534         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
11535         * tabldefs.h: Add constant for assemblyref flag that specifies a
11536         full public key is used instead of a public token.
11537         * reflection.c: Remove mscorlib -> corlib mappings. Set
11538         PublicTokenValue instead of hash value. This value is a hex
11539         string so it does not need to be expanded.
11540
11541 2004-04-26  Martin Baulig  <martin@ximian.com>
11542
11543         * mono-debug-debugger.c (mono_debugger_initialize): Set
11544         `mono_debugger_initialized' before calling mono_debug_lock().
11545
11546 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
11547
11548         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
11549           InternalToUpper/InternalToLower.
11550         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
11551           removed invariant culture shortcut.  This is now done in managed code.
11552         * locales.c: (string_invariant_toupper/tolower) removed.
11553
11554 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11555
11556         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
11557         Added Poll internal call.
11558
11559         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
11560         call for Poll. Select was too heavy for polling a single socket.
11561
11562         * threadpool.[ch]: added mono_threadpool_cleanup.
11563         * threads.c: use it. Don't use Thread_Abort on windows.
11564
11565 2004-04-23  Martin Baulig  <martin@ximian.com>
11566
11567         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
11568
11569 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
11570
11571         * icall.c: Registred new icalls for key pair protection and added an
11572         icall for Environment.GetFolderPath on Windows.
11573         * security.c|h: Added new icalls for key pair protection.
11574
11575 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11576
11577         * socket-io.c: don't display the non-supported family warning for known
11578         families. Now this is not displayed on windows when checking support
11579         for IPv4/IPv6.
11580
11581 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11582
11583         * class.c: don't display the layout warning for static fields.
11584
11585 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
11586
11587         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
11588         * locales.c, locales.h: Added new icalls for culture-specific
11589         Char.ToLower and Char.ToUpper.
11590
11591 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11592
11593         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
11594         by David Waite.
11595
11596 2004-04-20  Martin Baulig  <martin@ximian.com>
11597
11598         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
11599         of the type name before passing it to mono_reflection_type_from_name().
11600
11601 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
11602
11603         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
11604         encodings here. Fixes #56965.
11605
11606 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
11607
11608         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11609         fix test on strstr result not that I can see anything that
11610         relies on the result.
11611
11612 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
11613
11614         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
11615         Fixes #57081.
11616
11617         * marshal.c (mono_marshal_get_string_encoding): New helper function.
11618
11619         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
11620         function to determine which marshalling to use for strings. Fixes
11621         #56965.
11622
11623         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
11624
11625         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
11626
11627 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
11628
11629         * icall.c: #include mono-config.h
11630
11631 2004-04-15  Jackson Harper  <jackson@ximian.com>
11632
11633         * culture-info-tables.h: Fix date formats for en-US culture.
11634         
11635 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
11636
11637         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
11638         ThreadPool.SetMinThreads.
11639         * threadpool.c: Implemented ThreadPool.GetMinThreads and
11640         ThreadPool.SetMinThreads.
11641
11642 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11643
11644         * mono-config.c: also load the .config file in the directory
11645         where the assembly was found.
11646
11647 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
11648
11649         * assembly.c: load per-assembly config files.
11650         * icall.c: decrapified code to get the config dir and moved to
11651         mono-config.c.
11652         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
11653         per-assembly config files. When doing a dll map lookup give precedence
11654         to the per-assembly data.
11655
11656 2004-04-14  Martin Baulig  <martin@ximian.com>
11657
11658         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
11659         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
11660         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
11661
11662         * mono-debugger-debugger.c: While the debugger is locked, remember
11663         whether the symbol tables have changes and send one single
11664         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
11665
11666 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
11667
11668         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
11669
11670         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
11671         function.
11672
11673         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
11674         account when marshalling string arrays. Fixes #56965.
11675
11676 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
11677
11678         * icall.c: Add new icalls mapping for security.
11679         * security.c|h: Add internal calls for WindowsIdentity,
11680         WindowsImpersonationContext and WindowsPrincipal.
11681
11682 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
11683
11684         * class.c: Added comment to ensure the System.MonoDummy class
11685         is removed when no longer necessary
11686
11687 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
11688
11689         * appdomain.c: Pass arguments to the bootstraping exceptions to
11690         minimize JITed methods at boot
11691
11692         * metadata.c (mono_exception_from_name_two_strings): Allow for the
11693         second string to be null.
11694
11695         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11696         Change the protocol to minimize the JIT methods at startup.  Now
11697         it Returns the internal codepage, if the value of "int_code_page"
11698         is 1 at entry, and we can not compute a suitable code page
11699         number, returns the code page as a string.
11700
11701 2004-04-13  Jackson Harper  <jackson@ximian.com>
11702
11703         * culture-info-tables.h: Fix number of decimal digits for all
11704         english locales.
11705
11706 2004-04-13  Jackson Harper  <jackson@ximian.com>
11707
11708         * icall.c: Clairfy out of sync error message. It is not always
11709         your corlib that is out of sync.
11710
11711 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
11712
11713         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
11714         properties when only the set accessor is overriden. Fixes #55874.
11715
11716 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
11717
11718         * assembly.c (mono_assembly_load_references): Make this thread safe.
11719         Fixes #56327.
11720
11721 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
11722
11723         * monosn.c: Add missing initialization calls.
11724
11725 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
11726
11727         * locales.c:
11728         ves_icall_System_Globalization_CultureInfo_construct_number_format
11729         Fix g_assert so it compiles on fussier compilers re int/ptr
11730         mismatch
11731
11732 2004-04-08  Dick Porter  <dick@ximian.com>
11733
11734         * socket-io.h:
11735         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
11736         53992.  Also rearrange the code so that the internal calls return
11737         an error value and exceptions are thrown from managed code.
11738
11739         * icall.c: Add type info to the socket icalls.
11740
11741 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11742
11743         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
11744         owes me a beer.
11745
11746 2004-04-07  Martin Baulig  <martin@ximian.com>
11747
11748         * class.c (mono_class_from_generic_parameter): Don't default
11749         `klass->parent' to `mono_defaults.object_type'.
11750
11751 2004-04-07  Martin Baulig  <martin@ximian.com>
11752
11753         * reflection.c (mono_reflection_initialize_generic_parameter): Set
11754         `param->pklass->reflection_info'.       
11755
11756 2004-04-07  Jackson Harper  <jackson@ximian.com>
11757
11758         * culture-info-tables.h: Fix date separator symbol.
11759         
11760 2004-04-07  Martin Baulig  <martin@ximian.com>
11761
11762         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
11763         from System.Type to System.MonoType.
11764
11765 2004-04-07  Martin Baulig  <martin@ximian.com>
11766
11767         * reflection.h
11768         (MonoReflectionGenericParam): Added `has_reference_type' and
11769         `has_value_type' fields.
11770
11771         * reflection.c (mono_image_get_generic_param_info): Encode the
11772         correct flags if we have the `class' or `struct' constraint.
11773
11774 2004-04-07  Martin Baulig  <martin@ximian.com>
11775
11776         * reflection.h
11777         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
11778
11779 2004-04-07  Jackson Harper  <jackson@ximian.com>
11780
11781         * appdomain.c: Revert extra patches, just wanted to bump the
11782         version number.
11783         
11784 2004-04-07  Jackson Harper  <jackson@ximian.com>
11785
11786         * Makefile.am: Add culture-info private headers.
11787         * icall.c: Add new icalls for contructing locales.
11788         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11789         * locales.h: Declare new culture info construction methods.
11790         * object.h: Add new fields used to avoid the CultureMap to
11791         MonoCultureInfo.
11792         * culture-info.h: Definition of structs used in the culture info
11793         tables.
11794         * culture-info-tables.h: Autogenerated tables that contain culture
11795         info data. This file was generated with the locale-builder tool.
11796         * appdomain.c: Incement corlib version number.
11797         
11798 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11799
11800         * appdomain.c: (mono_runtime_init) move mono_thread_init
11801         to before mono_object_new calls so critical sections
11802         are initialized before use.
11803
11804 2004-04-07  Martin Baulig  <martin@ximian.com>
11805
11806         * icall.c
11807         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11808         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11809         (ves_icall_MonoGenericParam_initialize): Removed.
11810         (monogenericparam_icalls): Removed.
11811         (generictypeparambuilder_icalls): Added new table for
11812         System.Reflection.Emit.GenericTypeParameterBuilder.
11813
11814         * reflection.c
11815         (mono_reflection_define_generic_parameter): Removed.
11816         (mono_reflection_initialize_generic_parameter): This is now called
11817         from GenericTypeParameterBuilder's .ctor.
11818
11819 2004-04-06  Martin Baulig  <martin@ximian.com>
11820
11821         * class.c (mono_class_init): Don't inflate nested classes in a
11822         generic instance.
11823         (mono_type_get_name_recurse): Include the generic arguments for
11824         generic instances and generic type declarations.
11825         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11826         (_mono_class_get_instantiation_name): Removed.
11827         (mono_class_create_generic): Always use `gklass->name' as our name.
11828
11829         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11830
11831         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11832         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11833         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11834         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11835         closed generic methods here.
11836
11837         * reflection.c
11838         (mono_reflection_generic_inst_get_nested_types): Removed.
11839         (inflate_mono_method): Copy the generic parameters from the
11840         MonoMethodHeader into out MonoGenericMethod.
11841
11842 2004-04-06  Martin Baulig  <martin@ximian.com>
11843
11844         * row-indexes.h
11845         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11846
11847         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11848
11849         * reflection.c (build_compressed_metadata): If we have any entries
11850         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11851         set the header version to 1.1.
11852
11853 2004-04-06  Martin Baulig  <martin@ximian.com>
11854
11855         * class.c (mono_class_init): If we're a generic instance,
11856         initialize our nested classes, too.
11857         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11858         suffix. 
11859
11860 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11861
11862         * process.c: quote the argument passed to the shell on windows.
11863
11864 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11865
11866         * threads.c (mono_alloc_special_static_data): Allow this to be
11867         called during startup.
11868
11869 2004-04-02  Martin Baulig  <martin@ximian.com>
11870
11871         * icall.c
11872         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11873
11874 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11875
11876         * icall.c: Fix build.
11877
11878 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11879
11880         * Makefile.am: Added security.c|h.
11881         * icall.c: Added icall for get_UserName;
11882         * security.c: New file for security related icalls. Added function
11883         get_UserName for System.Environment (fix #56144).
11884         * security.h: New. Header file for security.c
11885
11886 2004-04-02  Dick Porter  <dick@ximian.com>
11887
11888         * icall.c: Deleted the icalls that were obsoleted some time ago
11889         by the ICU string code, and which were mixed into the icall
11890         rearranging.  Fixes bug 55969.
11891
11892         * string-icalls.h: 
11893         * string-icalls.c: Deleted the code that those icalls reference.
11894
11895 2004-04-01  Martin Baulig  <martin@ximian.com>
11896
11897         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11898
11899         * class.c (mono_class_from_generic_parameter): Don't set 
11900         TYPE_ATTRIBUTE_INTERFACE.
11901         (my_mono_class_from_generic_parameter): Likewise.
11902
11903 2004-04-01  Martin Baulig  <martin@ximian.com>
11904
11905         * loader.c (find_method): Added an optional `MonoClass *ic'
11906         argument to search in a specific interface.
11907         (mono_get_method_constrained): New public function.
11908
11909 2004-04-01  Martin Baulig  <martin@ximian.com>
11910
11911         * reflection.c (mono_image_get_generic_field_token): Use the
11912         `handleref' cache here.
11913
11914 2004-04-01  Martin Baulig  <martin@ximian.com>
11915
11916         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11917
11918         * reflection.c (create_generic_typespec): Use the `typespec' hash
11919         here, not the `typeref' one.    
11920
11921 2004-04-01  Martin Baulig  <martin@ximian.com>
11922
11923         * class.c (mono_class_inflate_generic_type): Moved the
11924         functionality into a new static inflate_generic_type() which
11925         returns NULL if it didn't do anything.  Only increment the
11926         `mono_stats.inflated_type_count' if we actually inflated
11927         something.
11928         (mono_class_get_full): Check the classes type to see whether we
11929         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11930
11931 2004-04-01  Jackson Harper  <jackson@ximian.com>
11932
11933         * reflection.c: Set culture for assembly references.
11934         
11935 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11936
11937         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11938
11939 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11940
11941         * assembly.c:
11942         (do_mono_assembly_open): the critical section also covers
11943         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11944
11945 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11946
11947         * threads.c:
11948         (mono_manage_threads): abort the background threads when finishing.
11949         Fixes bug #47232.
11950
11951 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11952
11953         * gc.c: only close the done_event handle if there was no timeout.
11954         C-ified comments.
11955
11956 2004-03-30  Martin Baulig  <martin@ximian.com>
11957
11958         * icall.c (icall_entries): It's called "System.Activator", not
11959         "System.Activation".    
11960
11961 2004-03-30  Martin Baulig  <martin@ximian.com>
11962
11963         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
11964         (mono_class_create_from_typespec): Likewise.
11965
11966 2004-03-30  Martin Baulig  <martin@ximian.com>
11967
11968         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
11969         `has_ctor_constraint' and `initialized'.
11970
11971 2004-03-30  Martin Baulig  <martin@ximian.com>
11972
11973         * reflection.c (encode_new_constraint): New static function to add
11974         the constructor constraint attribute to a type parameter.
11975         (encode_constraints): Call encode_new_constraint() if necessary.
11976
11977         * reflection.h
11978         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
11979
11980         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
11981         
11982 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
11983
11984         * reflection.c, icall.c: add support for pinning variables. 
11985
11986 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
11987
11988         * marshal.c (mono_marshal_get_managed_wrapper):
11989         init bool local with zero rather than null.
11990
11991 2004-03-29  Martin Baulig  <martin@ximian.com>
11992
11993         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
11994         the "official" behavior here.
11995         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
11996
11997 2004-03-29  Martin Baulig  <martin@ximian.com>
11998
11999         * icall.c: Reflect latest API changes.
12000
12001 2004-03-29  Martin Baulig  <martin@ximian.com>
12002
12003         * loader.c (mono_get_method_from_token): Also call
12004         mono_metadata_load_generic_params () for abstract and interface
12005         methods; replace the type arguments in the method signature with
12006         the ones which are loaded from the metadata.
12007
12008 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
12009
12010         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
12011         of the lock is not the current thread. MS.NET don't do it, in spite of
12012         what the documentation says. See bug #56157.
12013
12014 2004-03-28  Martin Baulig  <martin@ximian.com>
12015
12016         * class.c (mono_class_init): Don't call init_properties() and
12017         init_events() for generic instances; set `prop->parent' when
12018         inflating properties.
12019
12020         * reflection.c (mono_generic_inst_get_object): Call
12021         `mono_class_init (ginst->klass)'.
12022         (mono_type_get_object): Only create a MonoGenericInst if your
12023         generic type is a TypeBuilder.
12024         (do_mono_reflection_bind_generic_parameters): Only set
12025         `ginst->is_dynamic' if our generic type is a TypeBuilder.
12026
12027 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
12028
12029         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
12030         Fixes #56091.
12031
12032 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12033
12034         * icall.c: added Kill_internal icall.
12035         * process.[ch]: added Kill_internal icall.
12036
12037 2004-03-25  Martin Baulig  <martin@ximian.com>
12038
12039         * class.h (MonoStats): Added `generic_instance_count',
12040         `inflated_method_count', `inflated_type_count' and
12041         `generics_metadata_size'.       
12042
12043 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12044
12045         * reflection.c: no warnings now.
12046
12047 2004-03-25  Martin Baulig  <martin@ximian.com>
12048
12049         * class.c (mono_class_get_full): New public function; does a
12050         mono_class_get(), but also takes a `MonoGenericContext *'.
12051
12052         * loader.c (mono_field_from_memberref): Renamed to
12053         `field_from_memberref', made static and added `MonoGenericContext *'
12054         argument.
12055         (mono_field_from_token): Added `MonoGenericInst *' argument.
12056         (method_from_memberef): Likewise.
12057         (mono_get_method_from_token): Likewise.
12058         (mono_get_method_full): New public function; does a
12059         mono_get_method(), but also takes a `MonoGenericContext *'.
12060
12061         * verify.c (mono_method_verify): Get the method's generic context
12062         and pass it to mono_field_from_token(), mono_get_method_full() and
12063         mono_class_get_full().
12064
12065 2004-03-25  Martin Baulig  <martin@ximian.com>
12066
12067         * class.c (mono_class_inflate_generic_type): Take a
12068         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
12069         `MonoGenericMethod *'.
12070
12071 2004-03-25  Martin Baulig  <martin@ximian.com>
12072
12073         * loader.h (MonoMethodInflated): Store the MonoGenericContext
12074         instead of the MonoGenericMethod here.
12075
12076 2004-03-25  Martin Baulig  <martin@ximian.com>
12077
12078         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
12079         each time we create a new MonoGenericInst, we also create a new
12080         context which points back to us.
12081
12082         * class.c (inflate_method): Use `ginst->context' instead of
12083         creating a new context.
12084
12085         * loader.c (method_from_memberref): Use
12086         `klass->generic_inst->context' instead of creating a new context.
12087
12088 2004-03-25  Martin Baulig  <martin@ximian.com>
12089
12090         * class.h (MonoGenericContext): New struct.
12091         (MonoGenericMethod): Removed `generic_inst'.
12092
12093         * class.c (mono_class_inflate_generic_method): Take a
12094         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
12095
12096 2004-03-25  Martin Baulig  <martin@ximian.com>
12097
12098         * loader.h (MonoMethodInflated): New typedef.
12099
12100         * metadata.h (MonoMethodSignature): Removed `gen_method', make
12101         `generic_param_count' consume just 30 bits, added `is_inflated'
12102         and `has_type_parameters' flags (one bit each).
12103
12104         * class.c (mono_class_inflate_generic_method): Create a
12105         MonoMethodInflated instead of a MonoMethodNormal and set
12106         `is_inflated' in the method signature.
12107
12108         * class.h (MonoGenericMethod): Removed `generic_method'.
12109
12110 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
12111
12112         * image.c: Make sure the name of a MonoImage is always an absolute path.
12113           This fixes bug #54415.
12114
12115 2004-03-24  Martin Baulig  <martin@ximian.com>
12116
12117         * class.c (mono_class_setup_vtable): If we're a generic instance,
12118         use our generic type's vtable size.
12119
12120 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
12121
12122         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
12123         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
12124         problems.
12125
12126 2004-03-23  Martin Baulig  <martin@ximian.com>
12127
12128         * class.h (MonoDynamicGenericInst): Added `int count_events' and
12129         `MonoEvent *events'.
12130
12131         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
12132         (typebuilder_icalls): Added "get_event_info"; calls
12133         mono_reflection_event_builder_get_event_info(). 
12134
12135         * reflection.c (mono_reflection_generic_inst_initialize): Added
12136         `MonoArray *events'.
12137         (mono_reflection_event_builder_get_event_info): New function.
12138
12139 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
12140
12141         * object.h: add mono_type_initialization_init
12142
12143         * object.c (mono_runtime_class_init): 
12144         implement class constructor synchronization rules
12145         to cope with threading issues.  
12146         add mono_type_initialization_init
12147
12148         * appdomain.c (mono_runtime_init): call 
12149         mono_type_initialization_init
12150
12151         * class.h: removing initializing field from MonoVTable
12152
12153 2004-03-23  Martin Baulig  <martin@ximian.com>
12154
12155         * class.c (my_mono_class_from_generic_parameter): Use
12156         `param->name' if it's not NULL. 
12157
12158 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
12159
12160         * class.c: do not insert non-virtual methods in the vtable.
12161         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
12162         that means the method is non-virtual. This never would have
12163         happened before.
12164
12165 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
12166
12167         * profiler.c: Added lock for accessing coverage_hash.
12168
12169 2004-03-22  Martin Baulig  <martin@ximian.com>
12170
12171         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
12172         `method->method->signature->generic_param_count != 0' to make it
12173         work for interface methods.
12174
12175 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12176
12177         * process.c: quote the string passed to the shell using g_shell_quote.
12178
12179 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12180
12181         * threads.c:
12182         (mono_threads_manage): don't remove the finalizer thread and self
12183         from the threads hash table so that mono_thread_manage can be called
12184         more than once.
12185
12186 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12187
12188         * process.c: quote the arguments when UseShellExecute is true. Fixes
12189         bug #55790.
12190
12191 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12192
12193         * threads.c: set mono_thread_detach as a cleanup routine for every
12194         thread. This way it's always executed upon thread termination, either
12195         aborted or finished normally. No more xsp hangs!
12196
12197 2004-03-17  Martin Baulig  <martin@ximian.com>
12198
12199         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
12200         `int count_nested' and a `MonoType **nested'.
12201
12202         * reflection.c (mono_reflection_bind_generic_parameters): Moved
12203         most of the functionality into a new static
12204         do_mono_reflection_bind_generic_parameters() and don't take a
12205         `MonoType *nested_in' argument any more.  Don't compute nested
12206         types here.
12207         (mono_reflection_generic_inst_get_nested_types): New public method
12208         to get nested types.
12209
12210         * class.c (mono_class_create_generic): Set `klass->nested_in' if
12211         we're a nested class.
12212
12213         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
12214         mono_reflection_generic_inst_get_nested_types() to compute the
12215         nested types.
12216
12217 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
12218
12219         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
12220         descriptive error message under windows.
12221         
12222 2004-03-17  Martin Baulig  <martin@ximian.com>
12223
12224         * class.c (dup_type): Added `const MonoType *original' argument;
12225         copy the attrs from the original type.
12226
12227 2004-03-17  Martin Baulig  <martin@ximian.com>
12228
12229         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
12230         `m->generic_inst_cache' here.
12231
12232 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
12233
12234         * exception.h exception.c: Add stack_overflow_exception.
12235
12236 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12237
12238         * threadpool.c:
12239         (overlapped_callback): call SetEvent *after* invoking the callback.
12240         No need to call CloseHandle.
12241
12242 2004-03-16  Martin Baulig  <martin@ximian.com>
12243
12244         * reflection.c (mono_image_get_fieldref_token): Take a
12245         `MonoReflectionField *' instead of a `MonoClassField *' and a
12246         `MonoClass *'; store the `MonoReflectionField *' in the hash.
12247
12248 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12249
12250         * appdomain.c: don't add the culture to the filename we're looking for
12251         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
12252
12253 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12254
12255         * locales.c: don't ignore symbols when doing case insensitive compares.
12256         Thanks Dick! Fixes bug #54046.
12257
12258         * threads.c: surround 'threads' usage with enter/leave in
12259         mono_thread_manage.
12260
12261 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
12262
12263         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
12264         implicitly marshalled as [Out]. Fixes #55450.
12265
12266         (mono_marshal_get_runtime_invoke): Zero out the result if there is
12267         an exception.
12268
12269 2004-03-16  Martin Baulig  <martin@ximian.com>
12270
12271         * class.c (mono_class_from_generic_parameter): Use the actual
12272         parameter name. 
12273
12274 2004-03-16  Martin Baulig  <martin@ximian.com>
12275
12276         * reflection.c (type_get_signature_size): New static function.
12277         Compues the size of the type in a method signature.
12278         (method_get_signature_size): New static function; calls
12279         type_get_signature_size() to compute the actual size of the
12280         method's signature.
12281         (method_encode_signature): Use method_get_signature_size() to get
12282         the signature's size rather than using `nparams * 10'.
12283
12284 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12285
12286         * file-io.h: define here WapiOverlapped on windows. I don't want the
12287         regular OVERLAPPED one.
12288
12289         * file-io.c:
12290         * threadpool.c: somehow, BindIoCompletionCallback is not found.
12291         Disabling AIO on windows.
12292
12293 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12294
12295         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
12296         bug #55385.
12297
12298 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12299
12300         * appdomain.c: upgraded corlib version.
12301
12302         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
12303         and BeginWrite. Allow opening files for asynchrnous operations.
12304
12305         * file-io.h: new struct that maps FileStreamAsyncResult.
12306         * icall.c: added new icalls.
12307         * process.[ch]: support setting child process environment variables
12308         and use the SHELL or COMSPEC when UseShellExecute is true.
12309
12310         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
12311         callback for async. IO is here and also BindHandle.
12312
12313         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
12314         from here.
12315
12316 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
12317
12318         * reflection.c (create_custom_attr): Allow len == 0.
12319
12320         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
12321         computation on big-endian machines.
12322
12323 2004-03-13  Martin Baulig  <martin@ximian.com>
12324
12325         * class.h (MonoGenericInst): Added `int count_ifaces'.
12326
12327         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
12328         `ginst->count_ifaces' instead `klass->interface_count' since we
12329         may get called before the vtable is created.
12330
12331         * loader.c (mono_method_get_param_names): If we're a generic
12332         instance, return and don't initialize the class.
12333
12334         * reflection.c (mono_reflection_setup_generic_class): Don't call
12335         ensure_runtime_vtable().
12336         (mono_reflection_bind_generic_parameters): Set
12337         `ginst->count_ifaces'.
12338
12339 2004-03-11  Jackson Harper <jackson@ximian.com>
12340
12341         * icall.c:
12342         * unicode.c:
12343         * unicode.h: Remove unused System.Char icalls.
12344         
12345 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
12346
12347         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
12348         code when we P/Invoke the first library in Windows.Forms, instead
12349         of when we first open the assembly.
12350
12351         * assembly.c: Drop the lookup from here.
12352
12353 2004-03-10  Martin Baulig  <martin@ximian.com>
12354
12355         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
12356         class for properties, fields and events.  Finally fixes #54945.
12357
12358 2004-03-10  Martin Baulig  <martin@ximian.com>
12359
12360         * metadata.c (mono_metadata_class_equal): New static function;
12361         checks whether two generic instances or two generic parameters are
12362         equal.
12363         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
12364         compare classes.        
12365
12366 2004-03-10  Martin Baulig  <martin@ximian.com>
12367
12368         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
12369
12370         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
12371         argument and write it into the `reflection_info' field.
12372
12373         * icall.c
12374         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
12375         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
12376
12377 2004-03-09  Jackson Harper  <jackson@ximian.com>
12378
12379         * char-conversions.h: use 8 bits for numeric data its all we need
12380         * icall.c: numeric data is only 8 bits now.
12381
12382 2004-03-09  Martin Baulig  <martin@ximian.com>
12383
12384         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
12385
12386         * class.c (init_properties, init_events): Initialize the new
12387         `parent' field.
12388
12389         * reflection.c (typebuilder_setup_properties): Likewise.
12390         (typebuilder_setup_events): Likewise.
12391
12392         * reflection.h (MonoEventInfo): Replaced `parent with
12393         `declaring_type' and `reflected_type'.
12394
12395         * icall.c (ves_icall_get_property_info): Distinguish between
12396         declaring and reflected type.
12397         (ves_icall_get_event_info): Likewise.
12398
12399 2004-03-09  Martin Baulig  <martin@ximian.com>
12400
12401         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
12402         (ves_icall_Type_GetField): Correctly set field->klass.
12403
12404 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
12405
12406         * loader.h: Fix warning.
12407
12408 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
12409
12410         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
12411         library routine if present.  Notice that it will still continue
12412         executing even if its missing, for those working on the Gtk#
12413         edition of Windows.Forms.
12414
12415         * assembly.c (do_mono_assembly_open): If loading the
12416         System.Windows.Forms call mono_loader_wini_init.
12417
12418 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
12419
12420         * class.h: Added MonoRemoteClass struct.
12421         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
12422         function for MonoStrings.
12423         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
12424         Added internal call for getting the proxy type.
12425         * marshal.c: Get the type of transparent proxies from its remote_class.
12426         Added methods that generate the IL for type checks and casts:
12427         mono_marshal_get_isinst, mono_marshal_get_castclass, 
12428         mono_marshal_get_proxy_cancast.
12429         * marshal.h: Declaration of the previous new methods.
12430         * object.c: Added new moethods for creating and updating MonoRemoteClass
12431         instances: mono_remote_class, mono_upgrade_remote_class, 
12432         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
12433         * verify.c: FIx transparent_proxy_fields layout.
12434         * appdomain.c: Bump corlib version.
12435
12436 2004-03-04  Jackson Harper  <jackson@ximian.com>
12437
12438         * icall.c: Add icall to access char conversion tables.
12439         * char-conversions.h: Character conversion tables.
12440         * Makefile.am: Add char-conversions.h private header file.
12441         
12442 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
12443
12444         * appdomain.c (unload_thread_main): Increase unloading timeout to
12445         10 sec as a temporary workaround for Nant problems.
12446
12447 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
12448
12449         * gc.c: Add checks for GC_enable and GC_disable.
12450
12451         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
12452         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
12453         (bug #54988).
12454         
12455 2004-02-27  Martin Baulig  <martin@ximian.com>
12456
12457         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12458         `MonoReflectionType *' instead of a `MonoType *'.
12459
12460 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
12461
12462         * gc.c (run_finalize): Avoid finalizing the object representing the
12463         finalizer thread.
12464         (finalizer_thread): Fix warning.
12465
12466 2004-02-25  Martin Baulig  <martin@ximian.com>
12467
12468         * class.c (_mono_class_get_instantiation_name): Added `int offset'
12469         argument for nested types.
12470         (mono_class_create_generic): Added support for nested generictypes.
12471
12472         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
12473         `GList *nested'.
12474
12475         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
12476
12477         * reflection.c (method_encode_signature): Increase the minimum
12478         value of `size' from 10 to 11.
12479         (mono_reflection_bind_generic_parameters): Take `int type_argc'
12480         and `MonoType **types' arguments instead of the `MonoArray
12481         *types'; added `MonoType *nested_in'.  Recursively instantiate
12482         nested classes. 
12483
12484 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
12485
12486         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
12487         stack_overflow_ex members which are used by exception handling.
12488
12489         * appdomain.c (mono_runtime_init): Initialize the new members.
12490
12491         * gc.c (mono_gc_enable): New helper function.
12492         * gc.c (mono_gc_disable): New helper function.
12493
12494 2004-02-23  Martin Baulig  <martin@ximian.com>
12495
12496         * icall.c: I must have been really stupid - make it actually work
12497         this time ;-)
12498
12499 2004-02-23  Martin Baulig  <martin@ximian.com>
12500
12501         * loader.c (method_from_memberref): Only inflate the method if
12502         it's in another klass.
12503
12504 2004-02-23  Martin Baulig  <martin@ximian.com>
12505
12506         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
12507         (mono_class_init): If we're a generic instance and an interface,
12508         compute `class->interface_id'; also create `class->interfaces'
12509         here and inflate them.
12510
12511         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
12512         `ginst->is_open'.
12513         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
12514
12515         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
12516
12517 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
12518
12519         * reflection.c (method_encode_code): Improved the error message
12520         generated by the exception.
12521
12522 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12523
12524         * icall.c: Martin did not do what he said in the ChangeLog for
12525         2004-02-18, but put back the changes for properties and events.
12526         Commenting those changes out again and adding comment to bug #54518.
12527         
12528         * process.c: removed warning.
12529
12530 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
12531
12532         * marshal.c (emit_struct_conv): Print an error message instead of
12533         asserting when a type does not have the StructLayout attribute.
12534
12535 2004-02-20  Martin Baulig  <martin@ximian.com>
12536
12537         * reflection.c (mono_type_get_object): Also use the cache for
12538         generic instances.
12539         (mono_reflection_bind_generic_parameters): Always compute
12540         `ginst->ifaces'.        
12541
12542 2004-02-20  Martin Baulig  <martin@ximian.com>
12543
12544         * class.h (MonoGenericMethod): Removed `klass'.
12545
12546         * class.c (mono_class_inflate_generic_method): Added `MonoClass
12547         *klass' argument.
12548
12549 2004-02-20  Martin Baulig  <martin@ximian.com>
12550
12551         * reflection.c (method_encode_methodspec): Actually use the
12552         uninflated signature for the memberref.
12553
12554 2004-02-20  Martin Baulig  <martin@ximian.com>
12555
12556         * class.h (MonoGenericMethod): Removed `declaring'.
12557
12558         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
12559         is NULL, compute it here.
12560
12561 2004-02-20  Martin Baulig  <martin@ximian.com>
12562
12563         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
12564
12565         * metadata.c (mono_metadata_generic_inst_hash): New method.
12566         (mono_metadata_generic_inst_equal): New method.
12567
12568         * reflection.c (mono_reflection_bind_generic_parameters): Use the
12569         `klass->image->generic_inst_cache' cache to avoid creating
12570         duplicate MonoGenericInst's.
12571
12572         * class.c (mono_class_inflate_generic_type): Use the cache.
12573
12574 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12575
12576         * object.c: fixed gc descriptor calculation for embedded valuetypes.
12577
12578 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12579
12580         * icall.c: added Socket.WSAIoctl icall.
12581
12582         * socket-io.[ch]: implemented
12583         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
12584
12585 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
12586
12587         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
12588
12589 2004-02-18  Urs C Muff  <umuff@quark.com>
12590
12591         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
12592         this work on PPC and other big-endian architectures.
12593
12594         * debug-mono-symfile.h: Prepended the names of all the `guint32'
12595         fields with an underscore to make sure they're only accessed by
12596         the read32() macro.
12597
12598 2004-02-18  Martin Baulig  <martin@ximian.com>
12599
12600         * icall.c: Put the klass->refclass changes back for methods and
12601         fields, but not for properties and events.  We're currently not
12602         distinguishing between DeclaringType and ReflectedType for
12603         properties and events, that's what caused the regressions.
12604
12605 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12606
12607         * object.c:
12608         (mono_async_result_new): the handle can be NULL.
12609
12610         * threadpool.c: Use an event instead of a semaphore, don't initialize
12611         it until needed. This saves quite a few semaphores from being created
12612         when using the threadpool.
12613
12614 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
12615
12616         * object.c (mono_string_is_interned_lookup): Fix interning of long
12617         strings. Fixes #54473.
12618
12619         * domain.c (ldstr_equal): Optimize if the two strings are equal.
12620
12621         * icall.c: Revert the klass->refclass changes since they introduce
12622         regressions (bug #54518).
12623
12624 2004-02-18  Martin Baulig  <martin@ximian.com>
12625
12626         * class.c (mono_class_init): If we're a generic instance and don't
12627         come from a TypeBuilder, inflate our members here.
12628         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
12629         (mono_class_create_generic): New public method.
12630         (mono_class_initialize_generic): Removed.
12631         (get_instantiation_name): Renamed to
12632         _mono_class_get_instantiation_name() and made it public.
12633
12634 2004-02-18  Martin Baulig  <martin@ximian.com>
12635
12636         * class.c (mono_class_inflate_generic_type): Clear the new
12637         instance's `nginst->klass' when inflating a generic instance.
12638         (mono_class_is_subclass_of): Added (basic) support for generic
12639         instances.
12640
12641 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
12642
12643         * appdomain.h, domain.c: use a MonoCodeManager instead of a
12644         MonoMempool to hold compiled native code.
12645
12646 2004-02-17  Martin Baulig  <martin@ximian.com>
12647
12648         * class.h (MonoDynamicGenericInst): Added `count_properties' and
12649         `properties'.
12650
12651         * reflection.c (mono_reflection_generic_inst_initialize): Added
12652         `MonoArray *properties' argument.
12653
12654         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
12655
12656 2004-02-17  Martin Baulig  <martin@ximian.com>
12657
12658         * icall.c (ves_icall_Type_GetFields): Renamed to
12659         ves_icall_Type_GetFields_internal() and added a
12660         `MonoReflectionType *rtype' argument; pass it to
12661         mono_field_get_object() to set the field's "reflected" type.
12662         (ves_icall_Type_GetConstructors): Likewise.
12663         (ves_icall_Type_GetEvents): Likewise.
12664         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
12665         argument; pass it to mono_method_get_object() to set the method's
12666         "reflected" type.       
12667
12668 2004-02-17  Martin Baulig  <martin@ximian.com>
12669
12670         * class.h (MonoDynamicGenericInst): New type.
12671         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
12672
12673         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
12674         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
12675         (ves_icall_MonoGenericInst_GetFields): New interncall.
12676
12677         * class.c (mono_class_from_generic): Don't call
12678         mono_class_initialize_generic() if this is a dynamic instance;
12679         ie. it's being created from a TypeBuilder.
12680         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
12681         `class->byval_arg.type'.
12682
12683         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
12684         to `inflate_method' and made static.
12685         (mono_reflection_inflate_field): Removed.
12686         (mono_reflection_generic_inst_initialize): New public method.
12687
12688         * reflection.h (MonoReflectionGenericInst): Removed `methods',
12689         `ctors' and `fields'; added `initialized'.
12690
12691 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
12692
12693         * debug-helpers.c (mono_method_full_name): Fix output for empty
12694         namespaces.
12695
12696 2004-02-12  Martin Baulig  <martin@ximian.com>
12697
12698         * class.h (MonoClassField): Added `MonoType *generic_type'.
12699
12700         * reflection.c (mono_image_get_fieldref_token): Added support for
12701         instantiated generic types.
12702         (field_encode_inflated_field): Removed.
12703         (mono_image_get_inflated_field_token): Removed.
12704         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
12705
12706         * reflection.h (MonoReflectionInflatedField): Removed.
12707
12708 2004-02-12  Martin Baulig  <martin@ximian.com>
12709
12710         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
12711         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
12712
12713         * reflection.c (mono_image_get_methodspec_token): Take a
12714         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
12715         (mono_image_create_token): Check whether we have a
12716         `method->signature->gen_method' and call
12717         mono_image_get_methodspec_token() if appropriate.
12718         (inflated_method_get_object): Removed.
12719         (mono_reflection_bind_generic_method_parameters): Return a
12720         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
12721         (mono_reflection_inflate_method_or_ctor): Likewise.
12722
12723         * reflection.h (MonoReflectionInflatedMethod): Removed.
12724
12725 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
12726
12727         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
12728         for custom valuetype marshalling.
12729
12730         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
12731
12732 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12733
12734         * icall.c: fixed WSAGetLastError_internal name.
12735
12736 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
12737
12738         * threads.c (mono_thread_attach): Allow this to be called multiple
12739         times for a thread.
12740         
12741         * threads.c (build_wait_tids): Do not wait for ourselves.
12742
12743         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
12744         appdomain list is empty.
12745
12746         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
12747         memory returned by mono_string_builder_to_utf16, since it points into
12748         managed memory. Thanks to Bernie Solomon for noticing this.
12749
12750         * icall.c: Add AppDomainSetup icalls.
12751
12752         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
12753
12754         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
12755         types.
12756
12757         * reflection.c (reflection_methodbuilder_to_mono_method): Save
12758         custom attributes to the method_aux struct. Also fix array indexes etc.
12759
12760         * loader.c (mono_method_get_param_names): Make dynamic case work again.
12761         
12762 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
12763
12764         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
12765         (both static and runtime) and reduce startup time.
12766
12767 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
12768
12769         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
12770         AsAny marshalling conversion instead of crashing.
12771
12772         * marshal.c: Fix warnings.
12773
12774 2004-02-09  Martin Baulig  <martin@ximian.com>
12775
12776         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
12777
12778         * reflection.h (MonoReflectionInflatedMethod): Removed the
12779         `declaring' field, it's now in the unmanaged MonoGenericMethod.
12780
12781         * reflection.c (method_encode_methodspec): Removed the `method'
12782         argument; we get it from `gmethod->declaring'.
12783         (inflated_method_get_object): Removed the `declaring' argument.
12784
12785 2004-02-09  Martin Baulig  <martin@ximian.com>
12786
12787         * class.h (MonoGenericMethod): New type.
12788         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12789         `generic_method'.
12790
12791         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12792         a `MonoGenericMethod *gen_method' one.
12793
12794         * class.c (mono_class_inflate_generic_type): Take an additional
12795         `MonoGenericMethod * argument.  This is only non-NULL if we're
12796         inflating types for a generic method.   
12797         (mono_class_inflate_generic_signature): Renamed to
12798         inflate_generic_signature() and made static; take a
12799         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12800         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12801         instead of a `MonoGenericInst *' one.
12802         (mono_class_inflate_generic_method): Likewise.
12803
12804         * reflection.c (encode_generic_method_sig): Take a
12805         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12806         (method_encode_methodspec): Likewise.
12807         (inflated_method_get_object): Likewise. 
12808
12809         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12810         field with a `MonoGenericMethod *gmethod' one.  
12811
12812 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12813
12814         * class.h (mono_class_has_parent): add parens to expansion
12815         so you can ! this.
12816
12817 2004-02-08  Martin Baulig  <martin@ximian.com>
12818
12819         * image.h (MonoImage): Removed `generics_cache'.
12820
12821         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12822         instead of a `MonoType *' argument; removed the `inflate_methods'
12823         argument.  Don't inflate methods here.
12824
12825         * loader.c (find_method): If it's a generic instance, call
12826         mono_class_init() on the `sclass->generic_inst->generic_type'.
12827
12828         * metadata.c (mono_type_size): Make this work on uninitialized
12829         generic instances; call it on the `ginst->generic_type's class.
12830
12831         * reflection.c (mono_reflection_bind_generic_parameters): Call
12832         mono_class_from_generic() to create the `ginst->klass'.
12833
12834 2004-02-08  Martin Baulig  <martin@ximian.com>
12835
12836         * class.h (MonoClass): Changed type of `generic_inst' from
12837         `MonoType *' to `MonoGenericInst *'.
12838
12839 2004-02-08  Martin Baulig  <martin@ximian.com>
12840
12841         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12842         mono_type_get_object(), this is now creating a `MonoGenericInst'
12843         for MONO_TYPE_GENERICINST.
12844         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12845         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12846
12847         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12848         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12849         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12850         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12851         and reflected type.
12852
12853         * reflection.h (MonoReflectionInflatedMethod): Removed
12854         `declaring_type' and `reflected_type'.
12855
12856 2004-02-08  Martin Baulig  <martin@ximian.com>
12857
12858         * class.h (MonoGenericInst): Added `MonoType *parent' and
12859         `MonoType **ifaces'.
12860
12861         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12862         `parent' and `interfaces'.
12863
12864         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12865         `MonoType *' argument and return a `MonoType *'.
12866
12867         * icall.c
12868         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12869         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12870
12871 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12872
12873         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12874         valuetype marshalling.
12875
12876 2004-02-06  Martin Baulig  <martin@ximian.com>
12877
12878         * class.c
12879         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12880         (my_mono_class_from_generic_parameter): Likewise.
12881
12882 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12883
12884         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12885         contents of the symbol files lazily.
12886
12887         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12888
12889         * threads.h threads.c icall.c: New icalls for getting and setting the
12890         threads name.
12891
12892 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12893
12894         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12895         Raise an exception when the domain is not found.
12896
12897 2004-02-03  Martin Baulig  <martin@ximian.com>
12898
12899         * reflection.c (mono_image_get_methodspec_token): Use the
12900         uninflated signature; fixes gen-33.
12901
12902 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12903
12904         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12905         the finalizer code can use thread functionality.
12906
12907         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12908         the finalizer thread.
12909
12910         * threads.c: Make some functions more robust.
12911
12912         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12913
12914         * metadata.h: Add new marshalling conventions.
12915
12916         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12917         stringbuilder marshalling. Fixes #53700.
12918
12919         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12920
12921         * reflection.c (mono_image_get_type_info): Save declarative security
12922         info.
12923
12924         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12925         unmanaged fields as well.
12926
12927         * appdomain.c: Bump corlib version.
12928
12929 2004-02-01  Martin Baulig  <martin@ximian.com>
12930
12931         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12932         method type arguments.  
12933
12934 2004-01-30  Duncan Mak  <duncan@ximian.com>
12935
12936         * marshal.h: Add prototype for
12937         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12938         and
12939         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12940         fix the build.
12941
12942 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12943
12944         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12945         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12946
12947 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12948
12949         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12950         custom marshalling of valuetypes.
12951
12952         * marshal.c: Fix some warnings.
12953
12954 2004-01-29  Martin Baulig  <martin@ximian.com>
12955
12956         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
12957         for generic method parameters.
12958
12959         * reflection.c (method_encode_methodspec): Write the uninflated
12960         signature into the methodspec table.
12961         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
12962         is always the uninflated method.
12963         (reflection_methodbuilder_to_mono_method): Copy the generic
12964         parameters from the MethodBuilder into `header->gen_params'.
12965
12966 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12967
12968         * class.c (mono_class_from_generic_parameter): Fix warning.
12969
12970 2004-01-27  Martin Baulig  <martin@ximian.com>
12971
12972         * class.c (mono_class_from_generic_parameter): Don't create
12973         `klass->methods' here.  
12974
12975 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
12976
12977         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
12978         extension since it does not work with libraries named lib<FOO>.dll.so.
12979
12980 2004-01-25  Martin Baulig  <martin@ximian.com>
12981
12982         * class.c (mono_class_inflate_generic_type): Added support for
12983         MONO_TYPE_GENERICINST.
12984
12985         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
12986         inflate methods on open constructed types.      
12987
12988 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12989
12990         * object.c: fire ProcessExit event in the root AppDomain after running
12991         Main. Fixes bug #53299.
12992
12993 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
12994
12995         * socket-io.c: include the new socket-wrappers.h header.
12996         Use the wrappers instead of the unix socket functions to make the code
12997         more clear.
12998
12999 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
13000
13001         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
13002
13003         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
13004         Fixes #22532.
13005
13006 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
13007
13008         * reflection.c (mono_image_create_pefile): Handle the case when the
13009         entry point is not a MethodBuilder.
13010
13011         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
13012         field to ReflectionMethod since it is not allways a builder.
13013
13014         * reflection.c (type_get_fully_qualified_name): New helper function to
13015         return the fully qualified name of a type.
13016
13017         * reflection.c (encode_marshal_blob): Always emit the fully qualified
13018         type name for custom marshallers.
13019
13020         * reflection.c (mono_marshal_spec_from_builder): Ditto.
13021
13022         * class.c (mono_class_setup_vtable): If a parent class already 
13023         implements an interface, use the implementing methods from that class.
13024         Fixes #53148.
13025
13026 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13027
13028         * threadpool.c: just return instead of ExitThread to allow for thread
13029         clean up earlier.
13030
13031 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
13032
13033         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
13034         when closing resource modules.
13035
13036         * reflection.c (mono_image_create_pefile): Handle the case when the
13037         entry point is not a MethodBuilder.
13038
13039         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
13040         field to ReflectionMethod since it is not allways a builder.
13041
13042 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
13043
13044         * marshal.c (mono_marshal_get_managed_wrapper): 
13045         mono_marshal_alloc takes native int so CONV_I
13046         the arg for 64bits.
13047
13048 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
13049
13050         * reflection.c (fixup_cattrs): New function to fixup the methoddef
13051         tokens in the cattr table. Fixes #53108.
13052
13053 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13054
13055         * loader.c: don't trim ".dll" before looking up in the config file.
13056         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
13057
13058 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
13059
13060         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
13061         Return the module which contains the resource as well.
13062         (ves_icall_System_Reflection_Module_Close): New icall.
13063
13064         * appdomain.c: Bump corlib version number.
13065
13066         * image.c (mono_image_addref): New public function.
13067
13068         * assembly.c: Call mono_image_addref.
13069
13070         * reflection.c (mono_module_get_object): Increase reference count of 
13071         the image.
13072
13073         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
13074         Fixes #22532.
13075
13076         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
13077         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
13078         proper exceptions on DllImport problems.
13079
13080 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
13081
13082         * class.c, metadata.c: eliminate CSIZE macro.
13083
13084 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
13085
13086         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
13087         * object.h: Added async_callback field in MonoAsyncResult.
13088         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
13089         * verify.c: Added async_callback in MonoAsyncResult layout.
13090
13091 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
13092
13093         * reflection.c (mono_reflection_get_custom_attrs): Add support
13094         for Modules.
13095
13096 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
13097
13098         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
13099         marshalling.
13100         (mono_marshal_method_from_wrapper): Add null pointer check.
13101
13102 2004-01-16  Martin Baulig  <martin@ximian.com>
13103
13104         * debug-mono-symfile.h: Set version number to 36 and reflect
13105         latest symbol writer changes.
13106
13107 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
13108
13109         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
13110         multi-dimensional arrays.
13111         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
13112         (mono_class_from_mono_type): Use bounded_array_class_get.
13113         
13114         * class.c (mono_bounded_array_class_get): New function which takes
13115         a 'bounded' bool argument to distinguish vectors from one dimensional
13116         arrays.
13117
13118         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
13119         bounded_array_class_get if the array has bounds.
13120
13121         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13122         Search modules loaded using AssemblyBuilder:AddModule as well.
13123
13124 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13125
13126         * appdomain.c: increased corlib version.
13127         * filewatcher.c: removed g_print.
13128         * icall.c:
13129         (get_property_info): only allocate what is actually requested.
13130         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
13131
13132 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13133
13134         * Makefile.am: added filewatcher.[ch]
13135         * filewatcher.[ch]: FileSystemWatcher runtime support.
13136         * icall.c: added new FSW icalls.
13137
13138 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
13139
13140         * string-icalls.c: fix stringbuilder regression as suggested by
13141         Iain McCoy <iain@mccoy.id.au>.
13142
13143 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
13144
13145         * process.c (process_read_stringtable_block): Recognize '007f' as
13146         a language neutral stringtable block.
13147
13148 2004-01-12  Patrik Torstensson
13149
13150         * object.h (MonoStringBuilder) : Changed layout to support our
13151         new stringbuilder class.
13152         * marshal.c: Change marshalling to support the new layout of 
13153         string builder.
13154         * appdomain.c: increased version number because new layout of
13155         string builder.
13156
13157 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
13158
13159         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
13160         assembly name as an string instead of an AssemblyName, since it is
13161         easier to extract info from it.
13162
13163         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
13164         the culture subdirectories too. Fixes #52231.
13165
13166 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13167
13168         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
13169         It takes 2 new parameters with an optional name for the method to look
13170         for and case ignoring info.
13171
13172         * threadpool.c: removed unused variable.
13173
13174 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13175
13176         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
13177         It takes 2 new parameters with an optional name for the property to look
13178         for and case ignoring info.
13179         Fixes bug #52753.
13180
13181 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
13182
13183         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
13184         Fix #52451.
13185
13186 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13187
13188         * appdomain.c:
13189         * assembly.c: escape the uri before passing it to g_filename_from_uri.
13190         Fixes bug #52630.
13191
13192 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
13193
13194         * reflection.c: Add support for more than one unmanaged resource.
13195
13196         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
13197         in field->def_value, as done in all other cases.
13198
13199         * reflection.c (mono_reflection_get_custom_attrs): Add support for
13200         TypeBuilders.
13201
13202         * reflection.c (mono_reflection_create_runtime_class): Remove 
13203         errorneous assignment to klass->element_class, since it is already
13204         done in mono_reflection_setup_internal_class.
13205
13206 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13207
13208         * gc.c: added missing LeaveCriticalSection.
13209         * icall.c: indented a couple of lines.
13210         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
13211         if we call EndInvoke inside a callback. Fixes bug #52601.
13212
13213 2004-01-07  Martin Baulig  <martin@ximian.com>
13214
13215         * mono-debug-debugger.h
13216         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
13217
13218 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
13219
13220         * appdomain.c: Use messages in NotImplementedException.
13221
13222         * exception.c (mono_get_exception_not_implemented): Now this takes
13223         a message argument.
13224
13225         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
13226         exception instead of g_asserting an aborting when something is not
13227         implemented.
13228
13229         Add some inline docs.
13230
13231 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
13232
13233         * reflection.h: Update after changes to object layout.
13234
13235         * reflection.c: Implement saving of unmanaged aka win32 resources.
13236
13237         * appdomain.c: Bump version number.
13238
13239         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
13240         Handle missing domains gracefully.
13241
13242 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
13243
13244         * file-io.c : On Windows, there are much more invalid_path_chars.
13245
13246 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
13247
13248         * class.h, object.c: prepare for GetType () speedup.
13249
13250 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
13251
13252         * profiler.c: workaround for --profile null reference exception on
13253           cygwin. Patch by Patrik Torstensson.
13254
13255 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
13256
13257         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
13258         make work for unaligned access.
13259
13260 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
13261
13262         * class.c: small cleanup (class->fields [i] -> field).
13263         * image.c: check address of metadata is valid.
13264
13265 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
13266
13267         * assembly.h assembly.c (mono_assembly_loaded): New public function to
13268         search the list of loaded assemblies.
13269
13270         * reflection.c (mono_reflection_type_from_name): Use 
13271         mono_assembly_loaded instead of mono_image_loaded.
13272
13273         * reflection.c: Fix warnings.
13274
13275 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
13276
13277         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
13278         is dynamic. This is needed since an assembly can contain both dynamic and
13279         non-dynamic images.
13280
13281         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
13282         assembly->dynamic.
13283
13284         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
13285
13286         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
13287         to store modules loaded using AddModule.
13288
13289         * reflection.c (mono_image_fill_file_table): Generalize this so it works
13290         on Modules.
13291
13292         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
13293
13294         * reflection.c (mono_image_fill_export_table_from_module): New function to
13295         fill out the EXPORTEDTYPES table from a module.
13296
13297         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
13298         into a separate function. Also handle loaded non-dynamic modules.
13299
13300         * reflection.c (mono_image_basic_init): Fix memory allocation.
13301
13302         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13303
13304         * assembly.c (mono_assembly_load_references): Make this public.
13305
13306 2003-12-19  Martin Baulig  <martin@ximian.com>
13307
13308         * class.c (mono_class_initialize_generic): Made this static, take
13309         a `MonoGenericInst *' instead of a `MonoClass *'.
13310         (mono_class_from_generic): Call mono_class_initialize_generic()
13311         unless we're already initialized or being called from
13312         do_mono_metadata_parse_generic_inst().
13313
13314         * class.h (MonoGenericInst): Added `initialized' and
13315         `init_pending' flags.
13316
13317         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
13318         `mono_class_init (gklass)' or mono_class_initialize_generic()
13319         here; set `generic_inst->init_pending' while parsing the
13320         `type_argv'.
13321
13322 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
13323
13324         * locales.c: include string.h for memxxx prototypes
13325
13326 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
13327
13328         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
13329         constructor when accessing literal fields.
13330
13331 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
13332
13333         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13334
13335         * reflection.c (assembly_add_resource_manifest): New function to fill
13336         the MANIFESTRESOURCE table.
13337
13338         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
13339
13340         * reflection.h: Update to changes in class layout.
13341
13342         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
13343         Reenable call to mono_runtime_is_shutting_down ().
13344
13345         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
13346         determine if the runtime is shutting down.
13347
13348 2003-12-16  Jackson Harper <jackson@ximian.com>
13349
13350         * icall.c: comment out call to mono_runtime_is_shutting_down to
13351         fix build.
13352         
13353 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
13354
13355         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
13356         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
13357
13358 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
13359
13360         * reflection.c: move definition of swap_with_size
13361         to before its first call
13362
13363 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
13364
13365         * appdomain.c (mono_runtime_is_shutting_down): New public function.
13366
13367         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
13368         icall.
13369
13370         * object.c: Fix warnings.
13371
13372         * icall.c (ves_icall_Type_Get...): Only consider inherited static
13373         members if FlattenHierarchy is set.
13374
13375         * reflection.c (mono_image_add_decl_security): New function to emit
13376         declarative security.
13377
13378         * reflection.h reflection.c: Add support for declarative security.
13379
13380         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
13381         
13382 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
13383
13384         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
13385         
13386         * appdomain.c verify.c: Moved corlib version checking into its own
13387         function in appdomain.c since it needs to create vtables etc.
13388
13389 2003-12-13  Patrik Torstensson <p@rxc.se>
13390
13391         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
13392         instead of unwrapped server.
13393
13394 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
13395
13396         * verify.c (check_corlib): Fix field index.
13397
13398 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
13399
13400         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
13401         GetGacPath icall.
13402
13403 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
13404
13405         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
13406         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
13407         cope with sizeof(size_t) != sizeof(guint32).
13408
13409 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13410
13411         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
13412         in case of failure.
13413
13414 2003-12-10  Mark Crichton <crichton@gimp.org>
13415
13416         * icall.c: removed the GetNonZeroBytes.  We now handle this case
13417         in managed code.
13418
13419         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
13420
13421 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
13422
13423         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
13424         marked as deleted.
13425
13426 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
13427
13428         * verify.c (check_corlib): Handle the case when the version field is 
13429         initialized by a static constructor.
13430
13431 2003-12-08  Patrik Torstensson  <p@rxc.se>
13432
13433     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
13434
13435 2003-12-08  Martin Baulig  <martin@ximian.com>
13436
13437         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
13438         a MonoReflectionGenericParameter, also take the parameter index
13439         and name as arguments.
13440         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
13441         (ves_icall_MonoGenericParam_initialize): New interncall.
13442         (ves_icall_Type_make_byref_type): New interncall.
13443
13444         * reflection.h (MonoReflectionGenericParam): Derive from
13445         MonoReflectionType, not just from MonoObject.  Added `refobj' and
13446         `index' fields.
13447
13448         * reflection.c (mono_reflection_define_generic_parameter): Create
13449         and return a new MonoReflectionGenericParam; don't initialize the
13450         constraints here.
13451         (mono_reflection_initialize_generic_parameter): New public method;
13452         initializes the constraints and creates the `param->pklass'.
13453
13454 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
13455
13456         * reflection.h reflection.c: Use the new fields 'num_types', 
13457         'num_fields' and 'num_methods' to track the number of types etc.
13458
13459         * verify.c (check_corlib): Check corlib version number.
13460
13461 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
13462
13463         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
13464         function works on all methods.
13465
13466 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
13467
13468         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
13469         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
13470         the custom_type_info flag of the transparent proxy.
13471         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
13472         objects that supports IRemotingTypeInfo.
13473         * object.h: Added custom_type_info field in transparent proxy.
13474
13475 2003-12-06  Martin Baulig  <martin@ximian.com>
13476
13477         * class.c (mono_class_create_from_generic): Removed.
13478         (mono_class_from_generic): Check `ginst->klass' before doing
13479         anything else.  This is important to fully support "recursive"
13480         generic types.
13481
13482         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
13483         empty `generic_inst->klass' before doing anything else.
13484
13485 2003-12-06  Dick Porter  <dick@ximian.com>
13486
13487         * verify.c: 
13488         * object.h:
13489         * icall.c:
13490         * locales.c: Use C structs to access class fields.  Don't do a
13491         conversion between MonoString and UChar because both are
13492         platform-endian UTF-16.  Compare now takes startindex and count
13493         parameters.  Add a char overload for IndexOf.  Speed up the
13494         invariant string IndexOf.
13495
13496 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
13497
13498         * Makefile.am (monosn_LDADD): Fix parallel build.
13499
13500 2003-12-04  Martin Baulig  <martin@ximian.com>
13501
13502         * icall.c
13503         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13504         (ves_icall_Type_make_array_type): New interncall.       
13505
13506 2003-12-04  Martin Baulig  <martin@ximian.com>
13507
13508         * locales.c: also change it in the !HAVE_ICU case.
13509
13510 2003-12-04  Dick Porter  <dick@ximian.com>
13511
13512         * icall.c:
13513         * locales.c: construct_compareinfo is now in CompareInfo, not
13514         CultureInfo.
13515
13516 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
13517
13518         * image.c (mono_image_load_file_for_image): Cache loaded images in the
13519         image->files array.
13520
13521         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
13522         table as well.
13523
13524         * assembly.c (mono_assembly_load_references): Only load references
13525         once.
13526
13527         * class.c (mono_class_from_name): Avoid linear search of the 
13528         EXPORTEDTYPE table.
13529
13530         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
13531
13532 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
13533
13534         * image.h (MonoImage): Add 'field_cache' field.
13535
13536         * loader.c (mono_field_from_token): Cache field lookups.
13537         
13538         * reflection.c (mono_module_get_object): Fix name property.
13539
13540         * icall.c (ves_icall_get_enum_info): Update after changes to 
13541         mono_metadata_get_constant_index ().
13542
13543         * icall.c: Get rid of get_type_info icall, use a separate icall for
13544         each type property to avoid needless memory allocations. Fixes #51514.
13545
13546         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
13547         to avoid needless binary searches.
13548
13549         * class.c (class_compute_field_layout): Move the initialization of
13550         field->def_value to mono_class_vtable ().
13551
13552         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
13553         non-corlib types.
13554
13555         * object.c (mono_object_allocate): Make it inline.
13556
13557         * object.c (mono_object_allocate_spec): Make it inline.
13558         
13559 2003-12-02  Dick Porter  <dick@ximian.com>
13560
13561         * locales.c (create_NumberFormat): NumberFormatInfo construction.
13562         Patch by Mohammad DAMT (mdamt@cdl2000.com).
13563
13564 2003-12-01  Dick Porter  <dick@ximian.com>
13565
13566         * threads.c: Fix signature and call in CreateMutex and
13567         CreateEvent.
13568
13569 2003-12-01  Dick Porter  <dick@ximian.com>
13570
13571         * icall.c: 
13572         * locales.c: Implement string compares and searching
13573
13574         * object.h: Add extra Thread field
13575
13576 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
13577
13578         * reflection.c (fixup_method): Add support for MonoCMethod.
13579
13580 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
13581
13582         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
13583
13584         * reflection.c (assembly_name_to_aname): Allow extra characters in
13585         assembly names. Fixes #51468.
13586
13587 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
13588
13589         * exception.c (mono_exception_from_name_domain): New helper function.
13590
13591         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
13592         exception object in the correct domain.
13593
13594         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
13595         formatting + make a copy a the input data.
13596
13597         * loader.c (mono_get_method_from_token): Methods which contain
13598         native code do not have entries in the ImplMap.
13599
13600         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
13601         Thanks to Gonzalo for spotting this.
13602         
13603         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
13604         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
13605
13606         * assembly.h (mono_assembly_load_from): Split the second part of 
13607         assembly loading into a new public function.
13608
13609         * exception.h (mono_get_exception_bad_image_format): New function.
13610
13611 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
13612
13613         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13614         Enumerate all modules inside a dynamic assembly. Fixes #51293.
13615         
13616         * icall.c: Add new icall for creating dynamic methods.
13617
13618         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
13619
13620         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
13621
13622         * reflection.c (mono_reflection_create_dynamic_method): New icall to
13623         create a dynamic method.
13624
13625         * reflection.c (resolve_object): New helper function.
13626
13627         * reflection.c: Generalize ReflectionMethodBuilder and the functions
13628         which manipulate it so they can also work on dynamic methods.
13629
13630         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
13631         creating the MonoReflectionMethodAux structure if it is not needed.
13632         
13633         * reflection.h verify.c: Update after changes to object layout.
13634
13635         * reflection.c (method_builder_encode_signature): Fix compilation on
13636         gcc 2.95.x.
13637
13638 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
13639
13640         * appdomain.h: Added support for context static fields. Added static_data
13641           field to MonoAppContext and renamed thread_static_fields to a more
13642           generic special_static_fields in MonoAppDomain, since it can now contain
13643           context static fields.
13644         * domain.c: Updated hashtable name.
13645         * object.c: Replaced field_is_thread_static() for a more generic
13646           field_is_special_static() which also checks for context static attribute.
13647           In mono_class_vtable(), added support for static context fields.
13648         * threads.c: Changed methods that manage thread static fields to more
13649           generic methods so they can be reused both for thread and context static
13650           data.
13651         * threads.h: Declared some new methods.
13652
13653 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
13654
13655         * reflection.h: Update after changes to the managed types.
13656
13657         * reflection.c (encode_custom_modifiers): New helper function.
13658
13659         * reflection.c (method_encode_signature): Emit custom modifiers.
13660
13661         * reflection.c (field_encode_signature): Emit custom modifiers.
13662
13663 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
13664
13665         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
13666
13667         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
13668         implementation.
13669
13670         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
13671         icall.
13672
13673         * object.c (mono_field_get_value_object): New function.
13674
13675         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
13676         specific.
13677
13678 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
13679
13680         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
13681         return a preallocated out-of-memory exception instance.
13682
13683         * object.c (out_of_memory): Use the new function.
13684
13685         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
13686         flag is before the custom modifiers. Fixes #49802.
13687
13688 2003-11-16  Martin Baulig  <martin@ximian.com>
13689
13690         * class.c (mono_class_is_open_constructed_type): Implemented the
13691         MONO_TYPE_GENERICINST case.
13692
13693 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
13694
13695         * assembly.c (mono_assembly_fill_assembly_name): New function to
13696         fill out the MonoAssemblyName structure.
13697         (mono_assembly_open): Use the new function.
13698
13699         * icall.c (fill_reflection_assembly_name): New helper function.
13700
13701         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
13702         new function.
13703
13704         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
13705
13706 2003-11-15  Martin Baulig  <martin@ximian.com>
13707
13708         * class.c (mono_class_is_open_constructed_type): New public
13709         function; checks whether a type is an open constructed type,
13710         ie. whether it still contains type parameters.
13711         (mono_class_inflate_generic_type): If we're a type parameter and
13712         the inflated type is also a MONO_TYPE_(M)VAR, return the original
13713         type.
13714
13715         * class.h (MonoGenericInst): Added `guint32 is_open'.
13716
13717         * loader.c (method_from_methodspec): Check whether we're an open
13718         or closed constructed type and set `ginst->is_open'.
13719
13720         * reflection.c (mono_reflection_bind_generic_parameters): Check
13721         whether we're an open or closed constructed type and set
13722         `ginst->is_open'.
13723         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
13724         from open constructed types.
13725
13726 2003-11-15  Martin Baulig  <martin@ximian.com>
13727
13728         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13729         a generic instance (instead of a generic type declaration) with
13730         unbound generic parameters, bind them to our actual types.
13731
13732 2003-11-14  Martin Baulig  <martin@ximian.com>
13733
13734         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
13735
13736         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13737         an interface type, populate `res->interfaces' with instantiated
13738         versions of all the interfaces we inherit.
13739
13740 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
13741
13742         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
13743         when MONO_PATH is set but doesn't contain the install dir.
13744
13745 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13746
13747         * icall.c:
13748         (ves_icall_Type_GetInterfaces): don't return an interface twice when
13749         it's also implemented in base classes. Fixes bug #50927.
13750
13751 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
13752
13753         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
13754         if this method is called from a finalizer. Fixes #50913.
13755
13756 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
13757
13758         * threads.c: Implement VolatileRead/VolatileWrite
13759
13760         * icall.c: Add new icalls for VolatileRead/VolatileWrite
13761
13762 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13763
13764         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
13765         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
13766         2.95.3.
13767
13768         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
13769         from Peter Ross (pro@missioncriticalit.com).
13770         
13771 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
13772
13773         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
13774
13775 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13776
13777         * assembly.c (mono_assembly_load_references): Disable check because it
13778         triggers on older corlibs which lots of people have.
13779
13780 2003-11-12  Jackson Harper  <jackson@ximian.com>
13781
13782         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
13783         load corlib.dll if mscorlib.dll is not found.
13784         * assembly.h: Remove corlib name define.
13785         * class.c:
13786         * domain.c:
13787         * image.c: Change corlib name to mscorlib.
13788         
13789 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13790
13791         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13792
13793 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13794
13795         * appdomain.h: Added loader_optimization here to sync with the C#
13796         code, and add disallow_binding_redirects field.
13797
13798 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13799
13800         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13801
13802         * reflection.c (mono_image_build_metadata): Fix crash on modules
13803         with no types.
13804
13805         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13806
13807         * icall.c (ves_icall_get_method_info): Return callingConvention as
13808         well.
13809
13810         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13811         namespaces from the EXPORTEDTYPE table as well.
13812
13813         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13814         from all modules inside the assembly.
13815         
13816 2003-11-11  Martin Baulig  <martin@ximian.com>
13817
13818         * reflection.c (mono_reflection_bind_generic_parameters): Make
13819         this work for interfaces.
13820
13821 2003-11-11  Martin Baulig  <martin@ximian.com>
13822
13823         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13824
13825 2003-11-11  Martin Baulig  <martin@ximian.com>
13826
13827         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13828         "MonoInflatedMethod" and "MonoInflatedCtor".
13829
13830 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13831
13832         * reflection.c (resolution_scope_from_image): Use the assembly table
13833         from the manifest module, since other modules don't have it.
13834
13835         * debug-helpers.c (mono_type_full_name): New helper function.
13836
13837         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13838
13839         * image.c (mono_image_load_file_for_image): New public function which
13840         is a replacement for the load_file_for_image in class.c.
13841
13842         * assembly.c (mono_assembly_load_module): A wrapper for the function
13843         above which does assembly association and reference loading too.
13844
13845         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13846
13847 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13848
13849         * appdomain.c: not all of the attributes for the full assembly name
13850         are required and the order doesn't matter. Fixes bug #50787.
13851
13852 2003-11-10  Dick Porter  <dick@ximian.com>
13853
13854         * locales.c: Use platform-endian UTF16
13855
13856 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13857
13858         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13859         
13860 2003-11-10  Martin Baulig  <martin@ximian.com>
13861
13862         * metadata.c
13863         (mono_metadata_load_generic_params): Make this actually work.
13864
13865         * reflection.c (mono_reflection_bind_generic_parameters): If our
13866         parent is a generic instance, pass all the `types' to it, no
13867         matter whether it has the same number of type parameters or not.
13868
13869 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13870
13871         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13872
13873         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13874         assignment code to this function so it gets called recursively for all
13875         modules.
13876
13877         * image.c (load_modules): Remove the assembly assignment since it is
13878         now done by mono_assembly_load_references.
13879         
13880         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13881         Add 'module' argument.
13882         (mono_module_get_types): New helper function.
13883         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13884
13885 2003-11-08  Martin Baulig  <martin@ximian.com>
13886
13887         * class.c (mono_class_inflate_generic_method): Interface method
13888         don't have a header.
13889
13890         * reflection.c (mono_image_get_methodspec_token): Take an
13891         additional `MonoGenericInst *' argument instead of reading it from
13892         the header; this is necessary to support interfaces.
13893         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13894         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13895         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13896         argument.
13897
13898         * reflection.h (MonoReflectionInflatedMethod): Added
13899         `MonoGenericInst *ginst'.
13900
13901 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13902
13903         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13904
13905 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13906
13907         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13908
13909 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13910
13911         * reflection.c 
13912         (reflection_methodbuilder_from_method_builder):
13913         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13914         initialize a ReflectionMethodBuilder structure.
13915         (mono_image_get_methodbuilder_token):
13916         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13917         tokens which point to types in another module inside the same assembly.
13918
13919         * reflection.c: Use the new helper functions.
13920         
13921         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13922
13923         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13924         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13925
13926         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13927         neccesary.
13928
13929         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13930         current module. Emit the manifest only for the main module.
13931
13932         * reflection.c (mono_image_create_token): Add assertion when a 
13933         memberref needs to be created.
13934
13935         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13936
13937         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13938         larger buffer for the custom attribute blob. Fixes #50637.
13939         
13940 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13941
13942         * threadpool.c: notify listener on async processing handles after
13943         invoking the async callback. Thanks to Zoltan.
13944
13945 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13946
13947         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13948         avoid code duplication.
13949
13950         * reflection.h (MonoDynamicImage): New type which is currently unused,
13951         but will be used through the ref.emit code in place of 
13952         MonoDynamicAssembly.
13953
13954         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13955         object layout.
13956
13957         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
13958         a MonoDynamicImage instead of just a MonoImage.
13959         
13960         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
13961         icalls to ModuleBuilder but keep their semantics, so they will work
13962         with moduleb->assemblyb. This will change later.
13963         
13964 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13965
13966         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13967         object layout.
13968
13969         * reflection.c (mono_image_build_metadata): Avoid creation of a default
13970         main module, since it is now done by the managed code.
13971
13972 2003-11-03  Martin Baulig  <martin@ximian.com>
13973
13974         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
13975         `ginst->klass' here.
13976         (method_encode_methodspec): Don't use the `ginst->generic_method's
13977         klass if it's a generic instance, use `ginst->klass' in this case.
13978
13979 2003-11-03  Martin Baulig  <martin@ximian.com>
13980
13981         * reflection.c (mono_image_get_generic_method_param_info):
13982         Removed, use mono_image_get_generic_param_info() instead.
13983         (mono_image_get_type_info): Write the GenericParam table before
13984         the Method table.  This is neccessary because in the GenericParam
13985         table, type parameters of the class (ie. '!0' etc.) must come
13986         before the ones from its generic methods (ie. '!!0' etc).
13987
13988 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13989
13990         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
13991
13992 2003-11-02  Martin Baulig  <martin@ximian.com>
13993
13994         * reflection.c (create_generic_typespec): Take a
13995         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
13996         the generic parameters from it.
13997
13998 2003-11-02  Martin Baulig  <martin@ximian.com>
13999
14000         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
14001         instead of a `MonoClassField *' since we just need the type.
14002         (create_generic_typespec): New static function.  Creates a
14003         TypeSpec token for a generic type declaration.
14004         (mono_image_get_generic_field_token): New static function.
14005         (mono_image_create_token): If we're a FieldBuilder in a generic
14006         type declaration, call mono_image_get_generic_field_token() to get
14007         the token.
14008
14009 2003-11-02  Martin Baulig  <martin@ximian.com>
14010
14011         * reflection.h
14012         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
14013         `MonoReflectionGenericInst *declaring_type' and
14014         `MonoReflectionGenericInst *reflected_type' fields.
14015
14016         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
14017         `MonoReflectionGenericInst *declaring_type' and a
14018         `MonoReflectionGenericInst *reflected_type' argument instead of a
14019         single `MonoReflectionGenericInst *type' one.  Set
14020         `res->declaring_type' and `res->reflected_type' from them.
14021         (mono_reflection_inflate_field): Likewise.      
14022
14023 2003-11-02  Martin Baulig  <martin@ximian.com>
14024
14025         * class.c (mono_class_setup_vtable): Don't store generic methods
14026         in the vtable.  
14027
14028 2003-11-02  Martin Baulig  <martin@ximian.com>
14029
14030         * reflection.h (MonoReflectionGenericInst): Added
14031         `MonoReflectionType *declaring_type'.
14032
14033         * reflection.c (mono_reflection_bind_generic_parameters): Use
14034         `if (tb->parent)' instead of `klass->parent'.
14035
14036 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
14037
14038         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
14039         with an empty ASSEMBLY table.
14040
14041         * reflection.c (mono_image_build_metadata): Avoid using the same loop
14042         variable in the inner and outer loops.
14043
14044 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
14045
14046         * metadata.h (mono_metadata_make_token): Put parentheses around macro
14047         argument.
14048
14049         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
14050         
14051         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
14052         icalls. Instead, do everything in managed code. This is needed since
14053         it is hard to restore the original domain etc. in unmanaged code in the
14054         presence of undeniable exceptions.
14055
14056         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
14057         New icalls to push and pop appdomain refs.
14058
14059 2003-10-31  Martin Baulig  <martin@ximian.com>
14060
14061         * class.c (inflate_generic_type): Renamed to
14062         mono_class_inflate_generic_type() and made it public.
14063
14064         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
14065         New interncall.
14066
14067         * loader.c (mono_field_from_memberref): Also set the retklass for
14068         typespecs.
14069
14070         * fielder.c (mono_image_get_inflated_field_token): New static
14071         method; creates a metadata token for an inflated field.
14072         (mono_image_create_token, fixup_method): Added support for
14073         "MonoInflatedField".
14074         (fieldbuilder_to_mono_class_field): New static function.
14075         (mono_reflection_inflate_field): New public function.
14076
14077         * reflection.h
14078         (MonoReflectionGenericInst): Added `MonoArray *fields'.
14079         (MonoReflectionInflatedField): New typedef.     
14080
14081 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
14082
14083         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
14084         for Solaris and other platforms without s6_addr16
14085
14086 2003-10-30  Martin Baulig  <martin@ximian.com>
14087
14088         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
14089         argument instead of two.
14090         (mono_class_inflate_generic_signature): Likewise.
14091         (inflate_generic_header): Likewise.
14092         (mono_class_inflate_generic_method): Likewise.  In addition, if
14093         `ginst->klass' is set, it becomes the new `method->klass'.
14094
14095         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
14096         field.
14097
14098         * reflection.c (encode_generic_method_sig): Write a 0xa as the
14099         first byte. [FIXME]
14100         (method_encode_methodspec): If we have generic parameters, create
14101         a MethodSpec instead of a MethodRef.
14102         (fixup_method): Added support for "MonoInflatedMethod" and
14103         "MonoInflatedCtor".
14104         (mono_image_create_token): Added support for "MonoInflatedMethod"
14105         and "MonoInflatedCtor".
14106         (inflated_method_get_object): New static function; returns a
14107         managed "System.Reflection.MonoInflatedMethod" object.
14108         (mono_reflection_bind_generic_method_parameters): Return a
14109         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
14110         (mono_reflection_inflate_method_or_ctor): Likewise.
14111         (mono_image_get_generic_method_param_info): Initialize unused
14112         fields to zero.
14113         (mono_image_get_generic_param_info): Likewise.
14114
14115         * reflection.h (MonoReflectionInflatedMethod): New public
14116         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
14117         "S.R.MonoInflatedCtor" classes.
14118
14119         * loader.c (method_from_memberref): If we're a TypeSpec and it
14120         resolves to a generic instance, inflate the method.
14121
14122 2003-10-28  Dick Porter  <dick@ximian.com>
14123
14124         * object.c (mono_runtime_run_main): Convert command-line arguments
14125         into utf8, falling back to the user's locale encoding to do so.
14126
14127 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
14128
14129         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
14130         at this time.
14131
14132         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
14133
14134         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
14135         up icalls at method definition time. Partially fixes #33569.
14136
14137 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
14138
14139         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
14140         marshalling of arrays. Fixes #50116.
14141
14142         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
14143
14144         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
14145         points to a vtable in the dying appdomain.
14146
14147         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
14148         listeners into unmanaged code inside the lock.
14149
14150         * object.c (mono_class_vtable): Turn off typed allocation in non-root
14151         domains and add some comments.
14152
14153 2003-10-25  Martin Baulig  <martin@ximian.com>
14154
14155         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
14156
14157         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
14158
14159         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
14160         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
14161         currently parsing.  Create the generic class and store it in
14162         `generic_inst->klass' before parsing the type arguments.  This is
14163         required to support "recursive" definitions; see mcs/tests/gen-23.cs
14164         for an example.
14165         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
14166         to support recursive typespec entries.
14167
14168         * class.c (mono_class_setup_parent): If our parent is a generic
14169         instance, we may get called before it has its name set.
14170         (mono_class_from_generic): Splitted into
14171         mono_class_create_from_generic() and mono_class_initialize_generic().
14172
14173 2003-10-25  Martin Baulig  <martin@ximian.com>
14174
14175         * icall.c (ves_icall_Type_BindGenericParameters): Return a
14176         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
14177         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
14178         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
14179
14180         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
14181         (create_typespec): Likewise.
14182         (mono_reflection_bind_generic_parameters): Return a
14183         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
14184         (mono_reflection_inflate_method_or_ctor): New public function.
14185
14186         * reflection.h (MonoReflectionGenericInst): New typedef.        
14187
14188 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
14189
14190         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
14191         inside the domain lock. Fixes #49993.
14192         
14193         * object.c (mono_class_vtable): When typed allocation is used, 
14194         allocate vtables in the GC heap instead of in the mempool, since the
14195         vtables contain GC descriptors which are used by the collector even
14196         after the domain owning the mempool is unloaded.
14197
14198         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
14199
14200         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
14201         reflect what it does. Also invalidate mempools instead of freeing
14202         them if a define is set.
14203
14204         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
14205         of the appdomain.
14206         
14207         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
14208         hold the finalizable objects in this domain.
14209
14210         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
14211         appdomain.
14212
14213         * appdomain.c (mono_domain_set): New function to set the current
14214         appdomain, but only if it is not being unloaded.
14215
14216         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
14217         appdomain which is being unloaded.
14218         
14219         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
14220         unloading of the root appdomain.
14221
14222         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
14223         icall to execute a method in another appdomain. Intended as a 
14224         replacement for InternalSetDomain, which can confuse the code 
14225         generation in the JIT.
14226
14227         * appdomain.c (mono_domain_is_unloading): New function to determine
14228         whenever an appdomain is unloading.
14229
14230         * appdomain.c (mono_domain_unload): New function to correctly unload
14231         an appdomain.
14232
14233         * assembly.c (mono_assembly_load_references): Check that an assembly
14234         does not references itself.
14235
14236         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
14237         domain manually, it asks the finalizer thread to do it, then waits for
14238         the result. Also added a timeout.
14239
14240         * icall.c: Register the new icalls.
14241
14242         * threads.h threads.c: Export the mono_gc_stop_world and 
14243         mono_gc_start_world functions.
14244         
14245         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
14246         function to fill out the mempool with 0x2a.
14247
14248 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
14249
14250         * reflection.h (MonoReflectionMethodAux): New structure to store
14251         information which is rarely used, thus is not in the MonoMethod
14252         structure.
14253
14254         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
14255         store the aux info.
14256
14257         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
14258         and marshalling info into the aux structure.
14259
14260         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
14261         from the aux structure.
14262
14263         * loader.c (mono_method_get_param_names): Retrieve the param names from
14264         the aux structure.
14265         
14266 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
14267
14268         * exception.h exception.c: Add AppDomainUnloadedException && fix 
14269         warning.
14270
14271 2003-10-21  Dick Porter  <dick@ximian.com>
14272
14273         * socket-io.c
14274         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
14275         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
14276
14277 2003-10-21  Martin Baulig  <martin@ximian.com>
14278
14279         * reflection.c (mono_reflection_bind_generic_parameters):
14280         `klass->parent' is NULL for interfaces.
14281
14282 2003-10-21  Martin Baulig  <martin@ximian.com>
14283
14284         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14285
14286 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
14287
14288         * exception.c (mono_exception_from_name_msg): New helper function for
14289         creating exceptions and initializing their message field.
14290
14291         * exception.c: Simplify functions using the new helper.
14292
14293         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
14294         New function.
14295
14296         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
14297         mono_raise_exception, since otherwise gcc doesn't generate the function
14298         epilog for raise_exception, confusing the stack unwinding in the JIT.
14299         Fixes #45043.
14300
14301         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
14302         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
14303         Fixes #49499.
14304
14305 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14306
14307         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
14308         utf8.
14309
14310 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
14311
14312         * icall.c: Removed GetUninitializedObject method because
14313           AllocateUninitializedClassInstance does the same.
14314
14315 2003-10-18  Martin Baulig  <martin@ximian.com>
14316
14317         * class.c (inflate_generic_signature): Renamed to
14318         mono_class_inflate_generic_signature() and made it public.
14319         (my_mono_class_from_generic_parameter): New static function; if we
14320         don't already have the generic parameter's MonoClass, create a
14321         very simple one which is just used internally in the runtime and
14322         not passed back to managed code.
14323
14324         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
14325
14326         * metadata.h (MonoMethodSignature): Moved the
14327         `MonoGenericParam *gen_params' to the MonoMethodHeader.
14328         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
14329
14330         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
14331         ves_icall_MonoMethod_GetGenericArguments(); this is now an
14332         interncall on the MonoMethod class, not on MethodInfo.
14333         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
14334         calling mono_reflection_bind_generic_method_parameters() directly.
14335
14336         * loader.c (mono_method_get_signature): If this is a MethodSpec;
14337         return the already computed `method->signature'.
14338         (method_from_methodspec): New static function to load a method
14339         from a MethodSpec entry.
14340         (mono_get_method_from_token): Call the new method_from_methodspec()
14341         for MethodSpec tokens.  
14342         (mono_get_method_from_token): If we're a generic method, load the
14343         type parameters.
14344
14345         * reflection.c (mono_image_get_memberref_token): Allow
14346         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
14347         table.
14348         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
14349         (mono_image_create_token): First check whether it's a generic
14350         method (so we'd need to create a MethodSpec), then do the other
14351         two alternatives.
14352         (mono_reflection_bind_generic_method_parameters): Return a
14353         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
14354         called directly from the interncall.
14355
14356 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
14357
14358         * reflection.c (load_public_key): Move loading of the public key
14359         into managed code.
14360
14361         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
14362
14363         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
14364         fields.
14365
14366         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
14367         culture, hash_alg and public_key. Fixes #49555.
14368
14369 2003-10-17  Martin Baulig  <martin@ximian.com>
14370
14371         * class.h (MonoGenericInst): Moved this declaration here and added
14372         `MonoMethod *generic_method'.
14373
14374         * icall.c
14375         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
14376         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
14377
14378         * metadata.c (mono_metadata_type_equal): Two types of
14379         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
14380         index; ie. don't compare the address of the `MonoGenericParam'
14381         structure.
14382         (mono_metadata_load_generic_params): Removed the `MonoMethod
14383         *method' argument.
14384
14385         * metadata.h (MonoGenericInst): Moved declaration to class.h.
14386         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
14387
14388         * reflection.c (method_encode_signature): Encode the number of
14389         generic parameters.
14390         (encode_generic_method_sig): New static function.
14391         (method_encode_methodspec): New static function; creates an entry
14392         in the MethodSpec table for a generic method.
14393         (mono_image_get_methodspec_token): New static function.
14394         (mono_image_create_token): Call mono_image_get_methodspec_token()
14395         for generic methods.
14396         (mono_reflection_bind_generic_method_parameters): New public
14397         function.  Instantiates a generic method.
14398
14399 2003-10-16  Martin Baulig  <martin@ximian.com>
14400
14401         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
14402         *gen_params' here from MonoMethodHeader.
14403
14404         * metadata.c (mono_metadata_parse_method_signature): If we have
14405         generic parameters, initialize `method->gen_params' and then set
14406         the correct `type->data.generic_param' in all the parameters.
14407
14408 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
14409
14410         * threads.c (mono_threads_get_default_stacksize): New function to 
14411         return the default stacksize.
14412
14413         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
14414         termination of the finalizer thread, since the previous method had
14415         race conditions. Fixes #49628.
14416
14417         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
14418         as for the other managed threads.
14419
14420 2003-10-16  Martin Baulig  <martin@ximian.com>
14421
14422         * class.c (inflate_generic_signature): Copy `generic_param_count'
14423         and `gen_params'.
14424
14425         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
14426         New interncall.
14427
14428         * metadata.c (mono_metadata_parse_method_signature): Actually set
14429         the `method->generic_param_count' here.
14430         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
14431
14432 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
14433
14434         * object.h: Add a new field to TypedRef to simplify the implementation
14435         of the REFANY opcodes in the JIT.
14436
14437         * icall.c: Make use of the new field.
14438
14439         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
14440         dynamically.
14441
14442 2003-10-15  Martin Baulig  <martin@ximian.com>
14443
14444         * class.c (mono_class_from_gen_param): Renamed to
14445         mono_class_from_generic_parameter() and moved most of the
14446         functionality from mono_reflection_define_generic_parameter()
14447         here; ie. we create a "real" class here.
14448         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
14449         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
14450         previously been called.
14451
14452         * class.h (MonoGenericParam): Moved the declaration of this struct
14453         here from metadata.h and added `MonoMethod *method'.
14454
14455         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
14456         interncall.
14457
14458         * loader.c (mono_get_method_from_token): If we have any generic
14459         parameters, call mono_metadata_load_generic_params() to read them
14460         from the MONO_TABLE_GENERICPAR.
14461
14462         * metadata.c (mono_metadata_load_generic_params): Added
14463         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
14464
14465         * metadata.h (MonoMethodSignature): Replaced
14466         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
14467         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
14468
14469         * reflection.c (mono_reflection_define_generic_parameter): Moved
14470         most of the functionality into the new
14471         mono_class_from_generic_parameter(); set the `method' field if
14472         we're a method parameter.       
14473
14474 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
14475
14476         * marshal.c (emit_struct_conv): if native size is 0
14477         emit no code.
14478
14479 2003-10-14  Martin Baulig  <martin@ximian.com>
14480
14481         * icall.c: The generics API has changed in the spec since it was
14482         added to System.Type; these modifications make it match the spec
14483         again.
14484         (ves_icall_Type_GetGenericParameters): Renamed to
14485         `ves_icall_Type_GetGenericArguments'.
14486         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
14487         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
14488         `ves_icall_MonoType_get_HasGenericArguments'.
14489         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
14490         `ves_icall_MonoType_get_IsGenericParameter'.
14491         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
14492         this is no interncall anymore.
14493         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
14494         `ves_icall_TypeBuilder_get_IsGenericParameter'.
14495
14496 2003-10-14  Martin Baulig  <martin@ximian.com>
14497
14498         * reflection.c (mono_reflection_bind_generic_parameters): Also
14499         inflate generic methods if we're reading the class from IL.
14500
14501 2003-10-13  Martin Baulig  <martin@ximian.com>
14502
14503         * reflection.c (mono_reflection_define_generic_parameter): This
14504         method isn't called directly from the icall anymore; take a
14505         `MonoReflectionAssemblyBuilder *' so we can use this for type and
14506         method generic parameters.
14507         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
14508         (method_builder_encode_signature): Encode generic parameters.
14509         (mono_image_get_method_info): Write generic params to the
14510         MONO_TABLE_GENERICPARAM table.
14511
14512         * reflection.h (MonoReflectionMethodBuilder): Added
14513         `MonoArray *generic_params'.
14514
14515         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
14516
14517         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
14518         wrapper for mono_reflection_define_generic_parameter().
14519         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
14520
14521 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
14522
14523         * marshal.h: Add missing function to fix build.
14524
14525         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
14526         the SetLastError pinvoke attribute.
14527
14528         * marshal.c (mono_marshal_set_last_error): New helper function called
14529         by the generated code.
14530         
14531         * marshal.c (mono_mb_emit_branch): New helper function.
14532
14533         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
14534
14535         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14536         classes as parameters and return values of delegates. Fixes #29256. 
14537
14538 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
14539
14540         * locales.c: use gint32 in non HAVE_ICU case
14541
14542 2003-10-11  Martin Baulig  <martin@ximian.com>
14543
14544         * mono-debug.c (mono_debug_add_method): Added a workaround for
14545         bug #48591.
14546
14547 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
14548
14549         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
14550         delegates passed to native code must use the STDCALL calling 
14551         convention. Fixes #35987.
14552
14553 2003-10-10  Martin Baulig  <martin@ximian.com>
14554
14555         * class.c (inflate_generic_type): If we're inflating for a generic
14556         type instance (and not for a generic method), return
14557         MONO_TYPE_MVAR unchanged.
14558
14559 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14560
14561         * string-icalls.c: Join ignores null strings in the source array.
14562         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
14563         * threads.c: GetAvailableTheads is slightly more accurate.
14564
14565 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
14566
14567         * threads.h threads.c : add mono_threads_set_default_stacksize
14568         and pass default to CreateThread calls.
14569
14570 2003-10-09  Dick Porter  <dick@ximian.com>
14571
14572         * icall.c:
14573         * locales.h:
14574         * locales.c: Internal calls for constructing CultureInfo and
14575         related objects from libicu (if its available.)
14576
14577 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
14578
14579         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
14580
14581 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14582
14583         * threadpool.c: added an argument to async_invoke_thread that is the
14584         item to process, pass the MonoAsyncResult to the thread start function
14585         when creating a new thread. This way we don't need to acquire any lock
14586         when we're creating a new thread. Readded a semaphore for faster
14587         response times (instead of that Sleep i added).
14588
14589 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
14590
14591         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14592         get daylight change dates better on Windows, fix handling
14593         of platforms without tm_gmtoff.
14594
14595 2003-10-06  Martin Baulig  <martin@ximian.com>
14596
14597         * class.c (inflate_generic_method): Renamed to
14598         mono_class_inflate_generic_method() and made public.
14599         (mono_class_init): Don't inflate the generic methods here.
14600         (mono_class_from_generic): Added `gboolean inflate_methods'
14601         argument.  Inflate the methods here.
14602
14603         * loader.c (mono_method_get_param_names): Ignore instances of
14604         generic types for the moment.
14605
14606         * reflection.c (fixup_method): Added support for inflated methods.
14607         (mono_image_create_token): Use mono_image_get_methodref_token()
14608         for inflated methods.
14609         (mono_custom_attrs_from_param): Ignore instances of generic types
14610         for the moment.
14611         (mono_reflection_bind_generic_parameters): New public function.
14612         Moved all the functionality from
14613         ves_icall_Type_BindGenericParameters() here and added support for
14614         dynamic types.
14615         (mono_reflection_define_generic_parameter): Initialize
14616         `klass->methods' here.
14617
14618         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
14619         functionality into mono_reflection_define_generic_parameter().
14620         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
14621         TypeBuilder, return that TypeBuilder.
14622
14623 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14624
14625         * appdomain.c: removed mono_delegate_semaphore.
14626
14627         * threadpool.c:
14628         (mono_thread_pool_add): moved hash table creation inside and the thread 
14629         creation outside of the critical region.
14630         (mono_thread_pool_finish): removed obsolete code.
14631         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
14632         continue or exit the thread depending on the queue.
14633
14634 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
14635
14636         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
14637         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
14638         handle more bool marshalling options
14639
14640 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
14641
14642         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
14643         arrays of structs. Also add a more descriptive error message when
14644         a structure member is marshalled as LPArray.
14645
14646 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
14647
14648         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14649         marshalling arrays of complex types. Fixes #29098. Also remove an
14650         usused and incomplete function.
14651
14652 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14653
14654         * gc.c: report heap_size - free_bytes as total memory allocated
14655         (bug#49362).
14656
14657 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
14658
14659         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
14660         fix timezone handling problems on Windows.
14661         
14662         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
14663         asserts when the year is outside the range handled by ms the functions.
14664
14665         * class.c (setup_interface_offsets): If the class is an interface,
14666         fill out its interface_offsets slot.
14667
14668 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14669
14670         * threadpool.c: mark threadpool threads as background.
14671
14672 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
14673
14674         * decimal.c - define DECINLINE to nothing if not using GCC
14675
14676 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
14677
14678         * assembly.c: More refcount fixes.
14679
14680 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14681
14682         * string-icalls.c: if we're not trimming, return the same string.
14683         When not splitting, don't create a new string.
14684
14685 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14686
14687         * image.c:
14688         (mono_image_open): increment the ref_count inside the critical section.
14689
14690 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
14691
14692         * image.c (mono_image_open): Fix reference counting bug.
14693
14694 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
14695
14696         * marshal.c (mono_marshal_type_size) struct alignment changed for 
14697         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
14698         64bits. Avoid leak in mono_marshal_get_native_wrapper when
14699         mono_lookup_pinvoke_call throws.        
14700
14701 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
14702
14703         * reflection.c (mono_reflection_parse_type): Fix #49114.
14704
14705         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
14706         temporary workaround for cygwin header problem.
14707
14708         * object.c (mono_object_isinst): Synchronize this with the code
14709         generated by the JIT for casts.
14710
14711 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
14712
14713         * reflection.c (encode_type): Fix #38332.
14714
14715 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
14716
14717         * marshal.c (mono_marshal_method_from_wrapper): New function to return
14718         the original method from the wrapper method.
14719
14720 2003-09-25  Martin Baulig  <martin@ximian.com>
14721
14722         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
14723         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
14724         (ves_icall_Type_get_IsGenericInstance): New interncall.
14725
14726 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
14727
14728         * object.c: fix cast warning in big endian code.
14729
14730 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
14731
14732         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
14733         
14734 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14735
14736         * assembly.c: don't call check_env from mono_assembly_load. It's
14737         already done once in mono_assemblies_init and may cause headaches when
14738         multiple threads are loading assemblies.
14739
14740 2003-09-19  Martin Baulig  <martin@ximian.com>
14741
14742         * reflection.c (mono_reflection_define_generic_parameter): Don't
14743         allocate `klass->methods', set `klass->flags' to
14744         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
14745
14746 2003-09-18  Martin Baulig  <martin@ximian.com>
14747
14748         * class.c (mono_class_init): Don't create `class->methods' if it's
14749         already initialized.
14750
14751         * metadata.c (mono_metadata_load_generic_params): Make this
14752         actually work.
14753
14754         * reflection.c (mono_reflection_define_generic_parameter): Set
14755         parent class and interfaces from the constraints.
14756
14757         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
14758         to keep this struct in sync with the declaration in TypeBuilder.cs.
14759
14760 2003-09-17  Martin Baulig  <martin@ximian.com>
14761
14762         * metadata.h (MonoType): Replaced the data's `int type_param'
14763         field with `MonoGenericParam *generic_param'.
14764         (MonoGenericParam): Added `MonoClass *klass'.
14765
14766         * class.c (mono_class_from_gen_param): Removed the
14767         `MonoImage *image' and `int type_num' arguments.
14768
14769         * metadata.c (mono_metadata_parse_generic_param): New static
14770         method; creates a MonoGenericParam which just contains the index.
14771         (do_mono_metadata_parse_type): Call
14772         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
14773         MONO_TYPE_MVAR.
14774
14775         * reflection.c (mono_image_typedef_or_ref): Generic type
14776         parameters may be in the same assembly, but never use a typedef
14777         for them.
14778         (mono_reflection_define_generic_parameter): We're now creating a
14779         "real" class for the type parameter; it's now safe to call
14780         mono_class_from_mono_type() on the class'es type, it'll do the
14781         right thing.
14782
14783 2003-09-16  Martin Baulig  <martin@ximian.com>
14784
14785         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
14786         `symfile->range_entry_size' and `symfile->class_entry_size' here;
14787         the `symfile' data structure must be fully initialized before it
14788         gets added to the table.
14789
14790 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
14791
14792         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14793
14794         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14795         class init trampolines.
14796
14797 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14798
14799         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14800         to the built-in profiler to turn off time and allocation profiling
14801         respectively.
14802
14803 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14804
14805         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14806         g_direct_equal.
14807
14808         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14809         in human readable form.
14810
14811 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14812
14813         * reflection.c icall.c: Fixed warnings.
14814
14815         * image.c (load_class_names): Use a temporary hash table to hold the
14816         namespaces in order to avoid doing many string comparisons.
14817
14818         * image.h: Fix typo.
14819
14820         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14821         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14822         since the NULL case is short-circuited inside g_hash_table_lookup, 
14823         leading to better performance.  
14824
14825         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14826         obtain the first custom attribute for a given index. Depends on the
14827         CustomAttribute table being sorted by the parent field.
14828
14829         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14830         for better performance.
14831
14832 2003-09-07  Martin Baulig  <martin@ximian.com>
14833
14834         * class.c (mono_class_init): If we're a generic instance, inflate
14835         all our methods instead of loading them from the image.
14836         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14837
14838 2003-09-07  Martin Baulig  <martin@ximian.com>
14839
14840         * mono-debug-debugger.c: Added support for constructors.
14841
14842 2003-09-06  Martin Baulig  <martin@ximian.com>
14843
14844         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14845         New interncall.
14846
14847         * reflection.c (mono_reflection_setup_generic_class): Call
14848         ensure_runtime_vtable() to create the vtable.
14849
14850 2003-09-05  Martin Baulig  <martin@ximian.com>
14851
14852         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14853         MONO_TYPE_MVAR.
14854
14855 2003-09-04  Martin Baulig  <martin@ximian.com>
14856
14857         * reflection.c (mono_reflection_define_generic_parameter): Generic
14858         parameters start with zero.
14859
14860 2003-09-04  Martin Baulig  <martin@ximian.com>
14861
14862         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14863
14864         * reflection.h (MonoReflectionGenericParam): New typedef.
14865         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14866         the generic parameters from the managed TypeBuilder.
14867
14868         * reflection.c (mono_reflection_define_generic_parameter): New function.
14869         (mono_reflection_create_runtime_class): Encode generic parameters.
14870         (mono_reflection_setup_generic_class): New function; this is
14871         called after adding adding all generic params to the TypeBuilder.
14872         (encode_type): Added MONO_TYPE_VAR.
14873
14874 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14875
14876         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14877         here from the JIT.
14878
14879         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14880         load hook.
14881
14882 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14883
14884         * reflection.h reflection.c class.h class.c: Delete duplicate 
14885         definition of mono_type_get_name () from reflection.c and export the
14886         one in class.c.
14887
14888         * class.c: Class loading fixes from Bernie Solomon 
14889         (bernard@ugsolutions.com).
14890
14891         * reflection.c: Endianness fixes from Bernie Solomon 
14892         (bernard@ugsolutions.com).
14893         
14894 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14895
14896         * assembly.h assembly.c: Define a file format version for AOT
14897         libraries.
14898         
14899         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14900
14901         * appdomain.h (MonoJitInfo): New field to determine whenever the
14902         code is domain neutral.
14903         
14904 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14905
14906         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14907
14908 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14909
14910         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14911         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14912         Avoid caching the result since strings must be domain specific. Fixes
14913         #48050.
14914
14915 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14916
14917         * marshal.c (mono_marshal_init): Make this callable multiple times
14918         since it is hard to find a correct place to call it.
14919
14920         * object.c (mono_runtime_class_init): Execute static constructors in
14921         the correct appdomain.
14922
14923         * image.c (build_guid_table): Handle the case when multiple images have
14924         the same GUID.
14925
14926 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14927
14928         * icall.c: added a couple of icalls for System.Web.
14929
14930 2003-08-28  Martin Baulig  <martin@ximian.com>
14931
14932         * icall.c (ves_icall_Type_BindGenericParameters): Use
14933         `klass->generic_inst' instead of `&klass->byval_arg' in the
14934         mono_type_get_object() call.  The returned type must be
14935         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14936
14937 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14938
14939         * NOTES: New file.
14940
14941         * object.c (mono_class_proxy_vtable): Make it thread safe.
14942
14943         * pedump.c: Fix warning.
14944
14945         * object.c appdomain.h: Get rid of metadata_section. 
14946         It is no longer needed and it was causing deadlocks with domain->lock.
14947
14948         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14949
14950 2003-08-26  Martin Baulig  <martin@ximian.com>
14951
14952         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14953
14954 2003-08-26  Martin Baulig  <martin@ximian.com>
14955
14956         * pedump.c (main): Call mono_metadata_init(),
14957         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
14958         and mono_loader_init().
14959
14960 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
14961
14962         * loader.h: Add missing include to fix build.
14963
14964         * image.h: mono_image_load_references is no more.
14965
14966         * assembly.c: Reworked assembly loading to make it really thread safe.
14967         After these changes, the assembly returned by mono_assembly_open is
14968         fully initialized, i.e. all its references assemblies are loaded.
14969
14970         * assembly.c (mono_image_load_references): Renamed to 
14971         mono_assembly_load_references, and made private, since clients no
14972         longer need to call it.
14973
14974         * class.c: Removed calls to mono_assembly_load_references, since it was
14975         a source of deadlocks.
14976
14977         * loader.h loader.c class.h class.c: Protect data structures using a 
14978         new lock, the loader lock.
14979
14980         * class.c (mono_class_setup_vtable): Create temporary hash tables and
14981         GPtrArrays only when needed.
14982
14983         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
14984         into empty structures by mcs. Fixes pinvoke7.cs.
14985         
14986         * domain.c (mono_init): Call a new initialization function.
14987
14988         * appdomain.c (mono_runtime_init): Call the new initializer function
14989         of the marshal module.
14990
14991         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
14992         inserted into empty structures by mcs. Fixes pinvoke7.cs.
14993
14994         * marshal.h marshal.c: Added locks around the wrapper caches to make
14995         this module thread safe.
14996
14997         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
14998         this argument. Fixes pinvoke1.exe.
14999
15000 2003-08-25  Lluis Sanchez <lluis@ximian.com>
15001
15002         * object.h: Added call_type field to MonoMethodMessage and the corresponding
15003         enumeration of values. Removed fields to store remote call output values in
15004         MonoAsyncResult. Not needed any more.
15005         * object.c: Initialize call_type and async_result fields in mono_message_init.
15006         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
15007         dispatching the message.
15008         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
15009         async call to finish. To do it use a message with EndInvoke call type.
15010
15011 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
15012
15013         * loader.h loader.c (mono_method_hash_marhal_info): New function which
15014         determines whenever a method has marshalling info.
15015
15016 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15017
15018         * assembly.c: fix the build on windows.
15019
15020 2003-08-22 Lluis Sanchez <lluis@ximian.com>
15021
15022         * object.cs: Fixed bug #47785.
15023
15024 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
15025
15026         * string-icalls.c (StringReplace): If their are no occurances of
15027         the old string found return a reference to the supplied
15028         string. This saves some memory and matches MS behavoir.
15029         
15030 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15031
15032         * socket-io.c: fixed compilation for systems that define AF_INET6
15033         and don't define SOL_IP/SOL_IPV6.
15034
15035 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
15036
15037         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
15038         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
15039
15040         * rawbuffer.c rawbuffer.h: Make this module thread safe.
15041
15042         * domain.c: Make this module thread safe.
15043
15044         * domain.c (mono_init): Call new initialization function.
15045
15046         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
15047         reference types too. Fixes #38812.
15048
15049         * image.c (mono_image_init): Fixed warnings.
15050
15051         * class.c (mono_class_from_typeref): Handle assembly load failure
15052         correctly.
15053
15054         * appdomain.c (add_assemblies_to_domain): Handle the case when
15055         the references of an assembly are not yet loaded.
15056
15057         * metadata.c image.c assembly.c: Moved initialization of global
15058         variables to a separate function called at startup since lazy 
15059         initialization of these variables is not thread safe.
15060         
15061         * image.c assembly.c: Made this module thread safe by adding locks in 
15062         the appropriate places.
15063
15064         * domain.c (mono_init): Call the new initialization functions of the
15065         three modules.
15066
15067 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
15068
15069         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
15070           make a direct call. It is proxy's work to make the call asynchronous.
15071           mono_delegate_end_invoke(): If the targe is a proxy, just collect
15072           the return values.
15073         * object.cs: mono_method_call_message_new(): read AsyncResult and
15074           state object from parameters list, if this info is requested.
15075         * object.h: Added fields to store remote call output values in
15076           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
15077
15078 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15079
15080         * object.h: add needed fields to MonoThread.
15081         * threads.c, threads.h: allow registering a function to cleanup data
15082         allocated per thread by the JIT.
15083
15084 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15085
15086         * loader.h: portability fix by Bernie Solomon
15087         * <bernard@ugsolutions.com>.
15088
15089 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
15090
15091         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
15092         return a MonoArray. This simplifies the code and also ensures that
15093         the cache allways contains an object reference as a value.
15094
15095         * icall.c (ves_icall_get_parameter_info): Simplified using the new
15096         function.
15097
15098 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15099
15100         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
15101         fixes a problem with byte ordering when getting the address family for
15102         a socket.
15103
15104 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
15105
15106         * .cvsignore: Added monosn.
15107
15108         * reflection.h reflection.c loader.c: Added support for parameter
15109         marshalling to dynamically created types. Fixes #47295.
15110
15111 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
15112
15113         * rand.c: remove useless warnings.
15114
15115 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
15116
15117         * class.c: implemented ldtoken for methods and fieldrefs.
15118
15119 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15120
15121         * threadpool.c: when mono_async_invoke was called, no one took care of
15122         monitoring the queue. So if the method invoked took some time and we
15123         got new async invoke requests after 500 ms (the thread created waited
15124         that long in WaitForSingleObject), the new async invoke was not called
15125         until the previous one finished.
15126
15127         This is fixed now. Thanks to Totte for helping with it.
15128
15129 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15130
15131         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
15132
15133 2003-08-11  Martin Baulig  <martin@ximian.com>
15134
15135         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
15136
15137 2003-08-06  Martin Baulig  <martin@ximian.com>
15138
15139         * mono-debug-debugger.c: Added support for static fields,
15140         properties and methods.
15141
15142 2003-08-06  Martin Baulig  <martin@ximian.com>
15143
15144         * mono-debug-debugger.c: Don't store the MonoString's vtable to
15145         make this work for applications with multiple application domains.
15146
15147 2003-08-04  Martin Baulig  <martin@ximian.com>
15148
15149         * mono-debug-debugger.c: Completely reworked the type support; the
15150         most important thing is that we're now just using one single
15151         `MonoType' instance per type.
15152
15153 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
15154
15155         * mono-endian.h, mono-endian.c, icall.c: Added icall
15156         ves_icall_System_Double_AssertEndianity to assert double word endianity
15157         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
15158
15159 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15160
15161         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
15162         support, icalls and fixes.
15163
15164 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
15165
15166         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
15167         classes that are a punctuation character in .NET is not the same a
15168         g_unichar_ispunct.
15169
15170 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15171
15172         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
15173
15174 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
15175
15176         * icall.c: Add new MemCopy internalcall.
15177         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
15178         Simplified code; It is not necessary to handle all the cases here,
15179         as the C# code takes care of it.  Only handle the case of the name
15180         resource embedded into the assembly.
15181
15182         Changed signature to return the data pointer and the size of the
15183         data. 
15184
15185 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
15186
15187         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
15188         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
15189
15190 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
15191
15192         * socket-io.c: ignore EINTR error in select.
15193
15194 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15195
15196         * class.h, class.c: removed unused subclasses field in MonoClass.
15197
15198 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
15199
15200         * icall.c: improve fix of get_base_definition(). If the parent class
15201           doesn't have the mehod, look at the parent of the parent.
15202         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
15203           to check if a parameter is an in or out parameter
15204           (PARAM_ATTRIBUTE_IN is not set by default).
15205           mono_method_return_message_restore(): Use mono_class_value_size to
15206           get the size of a value type. mono_type_stack_size (parameterType)
15207           does not return the correct value if parameterType is byRef.
15208           mono_load_remote_field(), mono_load_remote_field_new(),
15209           mono_store_remote_field(), mono_store_remote_field_new():
15210           raise exception if the remote call returns an exception.
15211
15212 2003-07-28  Martin Baulig  <martin@ximian.com>
15213
15214         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
15215         method.  This is a wrapper around mono_runtime_invoke() which
15216         boxes the instance object if neccessary.
15217
15218 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15219
15220         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
15221         metadata.h, row-indexes.h, verify.c: first cut of generics support.
15222
15223 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15224
15225         * icall.c: disable mcs bug workaround.
15226
15227 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
15228
15229         * object.c (mono_runtime_class_init): Take the metadata_section
15230         mutex before obtaining the domain mutex.
15231
15232         * appdomain.h: Added definition of metadata_section mutex here. 
15233
15234         * object.c: define metadata_mutex here.
15235
15236 2003-07-24  Ravi Pratap  <ravi@ximian.com>
15237
15238         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
15239         fixed.
15240
15241 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
15242
15243         * reflection.c: Fix bug #46669
15244
15245 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15246
15247         * exception.c:
15248         * exception.h:
15249         * icall.c:
15250         * object.h: fill in the type name for TypeLoadException.
15251
15252 2003-07-23  Ravi Pratap  <ravi@ximian.com>
15253
15254         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
15255         relationship between TypeBuilders while compiling corlib) and bug
15256         45993 (Array types returned from the runtime while compiling
15257         corlib were from the loaded corlib).
15258
15259 2003-07-22  Martin Baulig  <martin@ximian.com>
15260
15261         * mono-debug-debugger.c: Reworked the type support a bit more;
15262         distinguish between types and classes.
15263
15264 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
15265
15266         * icall.c: add IsArrayImpl icall.
15267
15268 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
15269
15270         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
15271         initializing real_size only once. Also fix bug #46602.
15272
15273 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
15274
15275         * object.c: Renamed mono_metadata_section to metadata_section.
15276
15277 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
15278
15279         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
15280           empty array if the type is an array. Fixed.
15281           ves_icall_MonoMethod_get_base_definition: if the base method
15282           is abstract, get the MethodInfo from the list of methods of
15283           the class.
15284         * reflection.c: ParameterInfo.PositionImpl should be zero-based
15285           and it was 1-based. Fixed in mono_param_get_objects.
15286
15287 2003-07-20  Martin Baulig  <martin@ximian.com>
15288
15289         * mono-debug.h: Set version number to 31.
15290         (mono_debug_init): Added `MonoDomain *' argument.
15291
15292         * mono-debug-debugger.c: Reworked the type support; explicitly
15293         tell the debugger about builtin types; pass the `klass' address to
15294         the debugger.
15295
15296 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
15297
15298         * image.c: Allow new metadata tables to be loaded without a
15299         warning. Also update the warning message to give the new constant value.
15300                 
15301 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
15302
15303         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
15304         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
15305         array type representation changes.
15306
15307 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
15308
15309         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
15310         on Environment.Exit () call.
15311
15312 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
15313
15314         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
15315         requires a matching corlib.
15316
15317 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
15318
15319         * Changelog: My editor decided to add a CR to each line. Sorry about that.
15320           Committed again without the CRs.
15321         
15322 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
15323
15324         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
15325           getting it from the "this" socket instance. Did not work
15326           if the socket is a subclass of Socket.
15327           Also fixed bug #35371.
15328
15329 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
15330
15331         * metadata.c: fixed size for TypedByRef.
15332         * loader.c: when searching for a method, consider the vararg amrker.
15333         * unicode.c, decimal.c: constify some arrays.
15334
15335 2003-07-15  Dick Porter  <dick@ximian.com>
15336
15337         * socket-io.c: Fixed compilation for gcc < 3.2.
15338
15339         Fixed compilation for machines that don't have AF_INET6 (thanks to
15340         Bernie Solomon <bernard@ugsolutions.com> for that part.)
15341
15342         Fixed compile warnings.
15343         
15344         Fixed formatting and line endings.
15345
15346 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
15347
15348         * socket-io.h:
15349         * socket-io.c: Added IPv6 support.
15350
15351 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
15352
15353         * class.c (mono_class_is_assignable_from): New function to implement
15354         the is_assignable_from logic. Used by mono_object_isinst, 
15355         Type::IsAssignableFrom () and the interpreter.
15356
15357         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
15358         Object, even interfaces.
15359         
15360         * object.c (mono_object_isinst): Implement in terms of 
15361         is_assignable_from.
15362
15363         * icall.c (ves_icall_type_is_assignable_from): New icall.
15364
15365 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
15366
15367         * domain.c (foreach_domain): fix compiler warning.
15368
15369 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
15370
15371         * image.c (load_metadata_ptrs): use g_strndup because strndup is
15372         not available on all plattforms
15373
15374 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
15375
15376         * image.h image.c: Store the metadata version string in MonoImage.
15377         * icall.c: New icall to retrieve the image version.
15378         * reflection.c (create_dynamic_image): Fill in the image version field
15379         * reflection.c (build_compressed_metadata): Use the image version
15380         from the image structure.
15381
15382 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15383
15384         * appdomain.c: modified comment.
15385         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
15386         That will be its last iteration when mono_gc_cleanup is called from
15387         mono_runtime_cleanup and before the domain is unloaded.
15388
15389         Fixes bug #45962.
15390
15391 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
15392
15393         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
15394         attributes.
15395
15396 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15397
15398         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
15399         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
15400         Bernie Solomon <bernard@ugsolutions.com>.
15401
15402 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15403
15404         * object.c, object.h: provide mono_object_new_fast() for faster
15405         allocation in some special cases.
15406
15407 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
15408
15409         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
15410         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
15411
15412 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
15413
15414         * threadpool.c: fix leaks.
15415
15416 2003-07-01  Dick Porter  <dick@ximian.com>
15417
15418         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
15419         using MonoGHashTables.  Fixes threadpool bug posted to list.
15420
15421 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15422
15423         * image.h, image.c: added support to load an assembly from a byte array.
15424         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
15425         assembly bundle support.
15426
15427 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
15428
15429         * threadpool.c (mono_thread_pool_add): keep a reference to the
15430         AsyncResult to prevent GC
15431
15432 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15433
15434         * class.c: leak fix.
15435
15436 2003-06-25  Dick Porter  <dick@ximian.com>
15437
15438         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
15439         for the async object, the WaitHandle object will close the handle.
15440         Fixes bug 45321.
15441
15442 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15443
15444         * class.c: in mono_array_class_get (), lookup from the hash with the
15445         same type we insert: this works around a bug in
15446         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
15447         lluis. The real fix will have to wait for after the release.
15448
15449 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15450
15451         * icall.c: fix memory leak when getting type members.
15452
15453 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15454
15455         * reflection.c: added more pubtoken special cases.
15456
15457 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
15458
15459         * class.c: handle field offset correctly when class size
15460         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
15461
15462 2003-06-20  Martin Baulig  <martin@ximian.com>
15463
15464         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
15465         *image' field.
15466
15467 2003-06-20  Martin Baulig  <martin@ximian.com>
15468
15469         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
15470
15471 2003-06-20  Martin Baulig  <martin@ximian.com>
15472
15473         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
15474         just distinguish between variables in registers and variables at
15475         an offset relative to a register.
15476
15477 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15478
15479         * icall.c: #ifdef out latest changes until mcs is fixed.
15480
15481 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15482
15483         * icall.c: return members in metadata order.
15484
15485 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
15486
15487         * icall.c: avoid infinite loop in GetTimeZoneData.
15488
15489 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
15490
15491         * icall.c: added Marshal.Prelink/All icalls.
15492
15493 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15494
15495         * object.c, object.h: fix warnings and do some overflow checking
15496         when creating arrays.
15497
15498 2003-06-17  Dick Porter  <dick@ximian.com>
15499
15500         * file-io.h:
15501         * file-io.c: File attributes need to be tweaked slightly when
15502         passed from the managed to the w32 world.
15503
15504 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15505         * profiler.h profiler-private.h profiler.c: Rework last patch
15506         based on suggestion by Paolo.
15507         
15508 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15509
15510         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
15511         instruction level coverage data collection.
15512         * profiler.h profiler.c (: Added new callback function which can be
15513         used by the profiler to limit which functions should have coverage
15514         instrumentation.
15515         * profiler.c (mono_profiler_load): Call g_module_build_path to
15516         generate the file name of the profiler library.
15517
15518 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15519
15520         * profiler.c, profiler.h, profiler-private.h: added basic block 
15521         coverage profiling API.
15522
15523 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
15524
15525         * reflection.c (mono_reflection_create_runtime_class): Add support
15526         for events in dynamically generated code.
15527
15528         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
15529         not allocated.
15530
15531 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
15532
15533         * icall.c: when getting timezone info, return reasonable values if we
15534         can't get the actual data.
15535
15536 2003-06-14  Dick Porter  <dick@ximian.com>
15537
15538         * threads.c (start_wrapper): Remove the reference to the thread
15539         object in the TLS data, so the thread object can be finalized.
15540         This won't be reached if the thread threw an uncaught exception,
15541         so those thread handles will stay referenced :-( (This is due to
15542         missing support for scanning thread-specific data in the Boehm GC
15543         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
15544
15545 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
15546
15547         * reflection.c: ensure streams and tables are first allocated with
15548         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
15549
15550 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15551
15552         * icall.c: fixed GetElementType for byrefs (bug# 44792).
15553
15554 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
15555
15556         * reflection.c (mono_reflection_create_runtime_class): Add support for
15557         properties to dynamically created classes.
15558         * reflection.c: Fix a few places where non-MonoObjects were inserted
15559         into the tokens hashtable.
15560
15561 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15562
15563         * object.c: some support to handle out of memory exceptions.
15564
15565 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
15566
15567         * marshal.c (mono_marshal_get_native_wrapper): support reference
15568         return types
15569
15570 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15571
15572         * object.h, object.c: more portability stuff from Bernie Solomon.
15573         Unexport mono_object_allocate(). Added mono_object_unbox ().
15574         Set exitcode when an unhandled exception is thrown.
15575
15576 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
15577
15578         * marshal.c (mono_marshal_get_native_wrapper): use custom
15579         marshaler for return types.
15580
15581 2003-06-10  Dick Porter  <dick@ximian.com>
15582
15583         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
15584         ip_mreq is available
15585
15586 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
15587
15588         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
15589         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
15590         by Bernie Solomon <bernard@ugsolutions.com>.
15591
15592 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
15593
15594         * gc.c (mono_gc_init): Avoid error message on shutdown when
15595         GC_DONT_GC=1 is used.
15596
15597         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
15598         New icall to return the GUID of a module.
15599
15600 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15601
15602         * class.c: ensure instance size always includes the parent's size
15603         even whem class size is set explicitly (fixes bug#44294).
15604
15605 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15606
15607         * profiler.h, profiler.c: made the simple profiler thread-safe,
15608         get more accurate timing info. Allow the loading of an
15609         externally-developed profiler module.
15610
15611 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
15612
15613         * marshal.c (mono_marshal_get_native_wrapper): improved
15614         class/byref arguments.
15615         (mono_marshal_get_native_wrapper): better string marshaling support.
15616
15617 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
15618
15619         * class.c: ensure .pack and .size are handled correctly and
15620         simplified layout of static fields.
15621
15622 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
15623
15624         * appdomain.c
15625         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
15626
15627         * loader.c (mono_lookup_pinvoke_call): look for modules in the
15628         current directory (fix bug 44008)
15629
15630 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
15631
15632         * marshal.c (mono_marshal_get_native_wrapper): started support for
15633         custom marshalers.
15634         (mono_delegate_to_ftnptr): consider marshalling specifications
15635
15636 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
15637
15638         * reflection.c, reflection.h: emit custom marshal info.
15639
15640 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15641
15642         * object.c: free the GError.
15643         * icall.c: added CloseEvent_internal.
15644         * threads.[ch]:
15645         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
15646         call.
15647
15648 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
15649
15650         * loader.c (mono_method_get_signature): Add support for dynamic
15651         assemblies.
15652
15653 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
15654
15655         * reflection.c: fixed bug #43905.
15656
15657 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15658
15659         * class.c, domain.c, icall.c, metadata.h, object.h: support for
15660         handling TypedReference and ArgIterator.
15661         * loader.c, loader.h: added function to get signature at call site.
15662
15663 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15664
15665         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
15666         data readonly. Buglets and warning fixes. Some MethodSpec support.
15667
15668 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15669
15670         * class.h, class.c, object.c: remove relative numbering support.
15671
15672 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
15673
15674         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
15675         free the string, until we get a chance to fix Gtk#
15676
15677 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15678
15679         * marshal.c: revert last patch.
15680
15681 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
15682
15683         * icall.c: updates for new mono_class_vtable() not calling
15684         the type constructor anymore.
15685
15686 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15687
15688         * object.h, object.c: separate vtable creation from type
15689         initialization. Make running the .cctor thread safe.
15690
15691 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
15692
15693         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
15694
15695 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
15696
15697         * loader.c (mono_get_method): consider calling convention
15698
15699 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
15700
15701         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
15702         to return the invisible global type for a module.
15703
15704         * reflection.c (mono_image_build_metadata): Emit global fields too.
15705
15706 2003-05-20  Peter Williams  <peterw@ximian.com>
15707
15708         * loader.c (mono_lookup_internal_call): Add a few newlines.
15709
15710 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
15711
15712         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
15713         literal strings.
15714
15715         * appdomain.c (set_domain_search_path): Recalculate search path when
15716         AppDomainSetup.PrivateBinPath changes.
15717
15718         * object.c (mono_class_compute_gc_descriptor): It turns out some
15719         parts of the class libs (like System.Thread) holds pointers to
15720         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
15721         to treat native int a pointer type here.
15722         
15723 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
15724
15725         * appdomain.h, domain.c: add hashtable for jump target resolution.
15726
15727 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
15728
15729         * reflection.h reflection.c icall.c: Added new icalls 
15730         GetManifestResourceInfoInternal, GetModulesInternal and support
15731         infrastructure.
15732
15733 2003-05-16  Dick Porter  <dick@ximian.com>
15734
15735         * icall.c:
15736         * file-io.h:
15737         * file-io.c: Implement System.IO.MonoIO::GetTempPath
15738
15739 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
15740
15741         * object.c: mono_store_remote_field: little fix to previous patch.
15742
15743 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15744
15745         * class.c: add constructors to array classes.
15746         * icall.c: special case array construction for InternalInvoke (),
15747
15748 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
15749
15750         * class.h class.c reflection.c object.c: Added support for field
15751         defaults in dynamically generated classes.
15752
15753 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
15754
15755         * reflection.c: properly encode charset for ddlimport.
15756
15757 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
15758
15759         * threads.c: allow compiling without GC.
15760
15761 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15762
15763         * appdomain.h, object.c, object.h, threads.c, threads.h: added
15764         handling of thread static data.
15765
15766 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15767
15768         * reflection.h, reflection.c: added mono_custom_attrs_free ().
15769
15770 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
15771
15772         * class.c (mono_array_class_get): always set the serializable flags
15773         (mono_array_class_get): always set the SEALED attribute for array types
15774
15775 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
15776
15777         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
15778         attributes (fix for bug 42021).
15779
15780 2003-05-12  Dick Porter  <dick@ximian.com>
15781
15782         * gc.c: Don't run finalizers when the finalizer thread is
15783         finishing up, because the default domain has already been
15784         destroyed.
15785
15786 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
15787
15788         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15789         value is null, we should throw an exception.   This is slightly
15790         different than the other conventions used for the constructor.
15791
15792 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15793
15794         * socket-io.c: fixed windows build.
15795
15796 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15797
15798         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15799
15800 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15801
15802         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15803         compilers.
15804
15805 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15806
15807         * class.c (mono_class_layout_fields): Add experimental GC aware
15808         auto layout facility. Requires class library changes to work correctly.
15809
15810         (mono_class_setup_vtable): Avoid overriding explicit interface
15811         method implementations. Fixes iface3.exe test.
15812
15813         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15814         object reference.
15815         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15816         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15817
15818         * metadata.h: Add new type classification macro which determines
15819         whenever the type holds an object reference.
15820
15821 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15822
15823         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15824
15825 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15826
15827         * gc.c (finalizer_thread): Work around a GC bug.
15828
15829 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15830
15831         * marshal.c (emit_struct_conv): allow unions
15832
15833         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15834
15835 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15836
15837         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15838
15839 2003-05-06  Martin Baulig  <martin@ximian.com>
15840
15841         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15842
15843 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15844
15845         * socket-io.c:
15846         (Select_internal): allow NULLs, don't create arrays if not needed.
15847         Coupled with Socket.cs changes.
15848
15849         * threadpool.c:
15850         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15851         register a finalizer for it that will close the semaphore handle. This
15852         fixes the leak and make Lupus' test run with > 4080 loops.
15853
15854 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15855
15856         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15857         Jerome Laban (bug #42287)
15858
15859 2003-05-02  Martin Baulig  <martin@ximian.com>
15860
15861         * debug-mono-symfile.h
15862         (MonoSymbolFile): Moved declaration into mono-debug.h.
15863         (MonoDebugMethodJitInfo): Likewise.
15864         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15865         argument.
15866         (_mono_debug_address_from_il_offset): Take a
15867         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15868
15869         * mono-debug.h
15870         (MonoDebugDomainData): New struct.
15871         (mono_debug_get_domain_data): New function.
15872         (mono_debug_add_method): Take an additional `MonoDomain *'
15873         argument.
15874         (mono_debug_source_location_from_address): Likewise.
15875         (mono_debug_il_offset_from_address): Likewise.
15876         (mono_debug_address_from_il_offset): Likewise.
15877
15878 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15879
15880         * reflection.c: one more check for null type in custom attrs.
15881
15882 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15883
15884         * reflection.c: avoid warning (comparison is always false due to limited
15885         range of data type).
15886
15887 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15888
15889         * icall.c: throw an exception in Type.GetField if the argument 'name'
15890         is NULL.
15891
15892 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15893
15894         * reflection.c: fixed handling of enums in named arguments to custom
15895         attributes (bug #42123).
15896
15897 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15898
15899         * reflection.c: use the right array element type and handle
15900         a null for a Type argument, too.
15901
15902 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15903
15904         * reflection.c: handle arrays as arguments to custom attributes.
15905
15906 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15907
15908         * reflection.c: handle a string value in a custom attr
15909         ctor that takes an object.
15910
15911 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15912
15913         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15914         (fix bug #42063)
15915
15916 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15917
15918         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15919
15920 2003-04-27  Martin Baulig  <martin@ximian.com>
15921
15922         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15923         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15924         MONO_DEBUGGER_EVENT_BREAKPOINT.
15925         (mono_breakpoint_trampoline_code): Removed.
15926         (mono_debugger_event_handler): The last argument is now a
15927         `guint32'.
15928         (mono_debugger_insert_breakpoint_full): Removed the
15929         `use_trampoline' argument.
15930         (mono_debugger_method_has_breakpoint): Likewise.
15931         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15932         mono_debugger_breakpoint_callback(); take the method and
15933         breakpoint number as arguments.
15934
15935 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15936
15937         * metadata.c: fix off by one when loading parameters attributes.
15938
15939 2003-04-24  Martin Baulig  <martin@ximian.com>
15940
15941         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15942
15943 2003-04-24  Martin Baulig  <martin@ximian.com>
15944
15945         * mono-debug-debugger.c: Moved all code which interacts with the
15946         Mono Debugger here.
15947
15948         * debug-mono-symfile.c: This code now just deals with the symbol
15949         file itself, the debugger code is now in mono-debug-debugger.c.
15950
15951 2003-04-23  Martin Baulig  <martin@ximian.com>
15952
15953         * mono-debug.c (mono_debug_source_location_from_il_offset):
15954         New method; like mono_debug_source_location_from_address(), but
15955         takes an IL offset instead of a machine address.
15956
15957 2003-04-23  Martin Baulig  <martin@ximian.com>
15958
15959         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
15960         `line' field; this is now computed by the debugger.
15961
15962 2003-04-23  Martin Baulig  <martin@ximian.com>
15963
15964         * mono-debug.[ch]: New files.  This is the new debugging interface.
15965
15966         * mono-debug-debugger.[ch]: New files.  Moved all code which
15967         interacts with the Mono Debugger here.
15968
15969 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
15970
15971         * domain.c (mono_init): initialize mono_defaults.monitor_class
15972
15973 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
15974
15975         * reflection.c (method_encode_code): Add a spicy exception to help
15976         future compiler authors.
15977
15978 2003-04-21  Martin Baulig  <martin@ximian.com>
15979
15980         * icall.c
15981         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15982         Make this work with relative pathnames; g_filename_to_uri() needs
15983         an absolute filename.
15984
15985 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
15986
15987         * icall.c: Track name changes in Object and ValueType.
15988
15989 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
15990
15991         * metadata.c (mono_type_stack_size): size should be a multiple of
15992         sizeof (gpointer)
15993
15994 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15995
15996         * gc.c:
15997         (internal_domain_finalize): moved into mono_domain_finalize. No need
15998         to create another thread because the finalizers will be run in the
15999         finalizer thread.
16000         
16001         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
16002         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
16003         to be run (MS does this too).
16004
16005 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
16006
16007         * object.c (mono_class_compute_gc_descriptor): Update comment.
16008
16009         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
16010
16011         * image.h: Add synchronized wrapper cache.
16012
16013         * image.c (do_mono_image_open): Initialize cache.
16014
16015         * reflection.c (create_dynamic_mono_image): Initialize cache.
16016
16017 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16018
16019         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
16020         ves_icall_System_Buffer_ByteLengthInternal.
16021
16022 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16023
16024         * reflection.c: setup klass->nested_in earlier. Allow
16025         a dash in the assembly name.
16026
16027 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
16028
16029         * metadata.c (mono_type_to_unmanaged): dont access
16030         type->data.klass for MONO_TYPE_OBJECT
16031         (mono_type_to_unmanaged): consider System.Delegate class
16032
16033 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
16034
16035         * class.c: just setup supertypes in the proper place instead of
16036         initializing the full element class for arrays.
16037
16038 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16039
16040         * class.c: ensure the element class of arrays is initialized.
16041         Setup the supertype info for array classes, too.
16042
16043 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
16044
16045         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
16046
16047 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16048
16049         * Makefile.am: re-added -m option when running cygpath. This way,
16050         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
16051         separator.
16052         * mono-config.c: same codepath for locating mono config file for WIN32
16053         and the rest.
16054         * assembly.c: if mono_assembly_setrootdir is called, don't override
16055         the value set.
16056
16057 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16058
16059         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
16060         MONO_ASSEMBLIES variable.
16061
16062 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
16063
16064         * icall.c: added Assembly::GetNamespaces() icall.
16065
16066 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16067
16068         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
16069
16070 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
16071
16072         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
16073         * object.c: fixed bug in the construction of vtable for proxies
16074
16075 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
16076
16077         * object.c (mono_array_new): Mark mono_array_new as an icall.
16078
16079 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16080
16081         * class.c: fixed test for public method when overriding interfaces.
16082         Closes bug #40970.
16083
16084 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16085
16086         * appdomain.h, domain.c: added mono_domain_foreach() to
16087         be able to access the currently loaded appdomains.
16088         * object.c: make string interning work across sppdomains.
16089         Mark some functions for use as icalls.
16090
16091 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
16092
16093         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
16094
16095         * reflection.h reflection.c: Allocate long living data using 
16096         GC_MALLOC_ATOMIC so the collector does not need to scan it.
16097
16098         * reflection.c: Double the allocation size in streams instead of
16099         increasing it, to prevent unneccesary copying on large assemblies.
16100         
16101         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
16102         creation if the assembly does not have the Run flag set.
16103
16104 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
16105
16106         * class.h: avoid the C++ keywords in header files (Jerome Laban
16107         spotted and fixed this).
16108
16109 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16110
16111         * object.c:
16112         (mono_unhandled_exception): fill in the arguments for the
16113         UnhandledException event. Only trigger that event for the default
16114         domain (as MS does).
16115
16116 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
16117
16118         * object.c: Improve typed allocation stuff based on suggestions from
16119         Paolo. Also turn it on if the GC library supports it.
16120
16121 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
16122
16123         * object.c object.h class.h: Added experimental typed allocation
16124         facility using the interfaces in gc_gcj.h.
16125
16126         * os/gc_wrapper.h: Added new include files.
16127         
16128 2003-04-03  Martin Baulig  <martin@ximian.com>
16129
16130         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
16131         which is not yet enabled by default.
16132
16133         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
16134         functions.
16135         (mono_gc_lock, mono_gc_unlock): New static functions.
16136
16137         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
16138         functions; stop/start the world for the garbage collector.  This
16139         is using the windows API; we need to complete the SuspendThread()/
16140         ResumeThread() implementation in the io-layer to make this work on Unix.
16141         (mono_gc_push_all_stacks): New public function; tells the garbage
16142         collector about the stack pointers from all managed threads.
16143
16144 2003-04-03  Martin Baulig  <martin@ximian.com>
16145
16146         * object.h (MonoThread): Added `gpointer stack_ptr'.
16147
16148         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
16149
16150 2003-04-03  Martin Baulig  <martin@ximian.com>
16151
16152         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
16153
16154 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
16155
16156         * reflection.c (typebuilder_setup_fields): Initialize field.first and
16157         field.last.
16158
16159 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
16160
16161         * loader.c (mono_lookup_internal_call): Report the corlib that is
16162         out of sync.
16163
16164 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
16165
16166         * icall.c (ves_icall_type_GetTypeCode): fixed check for
16167         System.DBNull (it's class not valuetype).
16168
16169 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16170
16171         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
16172         if the array method was already assigned a token (fixes bug#40646).
16173
16174 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
16175
16176         * reflection.c (mono_reflection_get_type): Attempt type resolve even
16177         if no assembly is given.
16178
16179 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
16180
16181         * metadata.h: Added the new tables.
16182
16183         * row-indexes.h: Added definitions for new tables.
16184
16185         * metadata.c: Add schemas for new tables, and add support for
16186         computing the sizes of them.
16187
16188         * class.c: Update for handling the new type cases.
16189
16190 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
16191
16192         * metadata.h (MONO_TYPE_IS_VOID): new macro
16193
16194 2003-03-31  Martin Baulig  <martin@ximian.com>
16195
16196         * threads.h (MonoThreadCallbacks): Added `thread_created'.
16197
16198         * threads.c (mono_thread_new_init): Call `thread_created' in the
16199         mono_thread_callbacks.
16200
16201 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
16202
16203         * loader.h: added marshalbyrefobject_class to mono_defaults
16204         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
16205         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
16206           generation of output parameters.
16207           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
16208         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
16209           contextbound and the target object belongs to the context of the caller.
16210         * object.h: added context and unwrapped_server variables in MonoRealProxy.
16211         * object.c: Implemented support for interfaces and abstract classes
16212           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
16213           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
16214
16215 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
16216
16217         * class.h class.c (mono_class_is_subclass_of): New function.
16218         
16219         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
16220         routines for most common case (calls from ArrayList::ToArray).
16221
16222         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
16223         routine so programs which call Environment::Exit() can be profiled.
16224
16225         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
16226         Added MONO_ARCH_SAVE_REGS.
16227
16228         * icall.c (ves_icall_type_is_subtype_of): Use new function.
16229
16230 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
16231
16232         * blob.h: Add a couple of new MonoType types definitions.
16233
16234         * tabledefs.h: Add a couple of new call convs.
16235
16236 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
16237
16238         * reflection.h (MonoReflectionDynamicAssembly): track changes in
16239         the layout of the class.
16240
16241         * reflection.c (alloc_table): double the size on overflow to avoid
16242         unnecessary copying.
16243
16244         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
16245         avoid filling out metadata tables and blobs. Also set mb->ilgen to
16246         null so it can be garbage collected.
16247         
16248 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
16249
16250         * reflection.c (mono_reflection_get_type): Return the resolved type
16251         only if it is in the assembly we searched.
16252
16253         * reflection.c (ensure_runtime_vtable): Initialize method slots.
16254
16255         * class.c (mono_class_setup_vtable): Set the slot of the overriding
16256         method.
16257
16258 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16259
16260         * appdomain.c:
16261         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
16262         the right one is 'file:///blah', but MS allows it.
16263         * assembly.c:
16264         (mono_assembly_open): allow 'file://blah'
16265
16266         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
16267
16268 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
16269
16270         * socket-io.c: fixes bug #40310.
16271
16272 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
16273
16274         * reflection.c (mono_reflection_parse_type): handle deeply nested
16275         types correctly.
16276
16277         * reflection.c (mono_image_create_token): Use unique token values
16278         since they will be put into a hash table.
16279
16280         * class.c (mono_class_setup_vtable): If a method occurs in more than
16281         one place in the vtable, and it gets overriden, then change the
16282         other occurances too.
16283
16284         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16285         object as return type.
16286
16287 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16288
16289         * icall.c: Deleted "ToString" implementation for double and float
16290         because they are full implemented in managed code.
16291
16292 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16293
16294         * reflection.c, reflection.h: implemented and exported functions
16295         to retrieve info about custom attributes.
16296
16297 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16298
16299         * appdomain.c: moved Uri handling to assembly.c
16300         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
16301         work when using a file Uri in *nix and windows.
16302
16303         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
16304         GetReferencedAssemblies.
16305
16306 2003-03-18  Dick Porter  <dick@ximian.com>
16307
16308         * icall.c: Rename a couple of internal calls
16309
16310         * threads.c: Set the thread state to Stopped when a thread exits.
16311         Fixes bug 39377.
16312
16313 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
16314
16315         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
16316         New icall.
16317
16318         * object.c (mono_class_vtable): fix warning.
16319
16320 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
16321
16322         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
16323
16324         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
16325         memory.
16326         (method_encode_clauses): Create exception info structures in the right
16327         order.
16328         (mono_reflection_setup_internal_class): Initialize supertypes field.
16329
16330         * class.c object.c: Handle interfaces which implement other interfaces 
16331         correctly.
16332
16333         * class.h class.c: Move the supertypes array initialization code into 
16334         a separate function so it can be used for dynamic types too. Also call
16335         it earlier, in mono_class_init(), since it can be used before the
16336         type is initialized.
16337
16338 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16339
16340         * Makefile.am:
16341         * assembly.c:
16342         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
16343
16344         * appdomain.c:
16345         * appdomain.h:
16346         * marshal.c:
16347         * object.c: remove warnings.
16348
16349 2003-03-13  Martin Baulig  <martin@ximian.com>
16350
16351         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
16352         (MonoDebugLexicalBlockEntry): New types.
16353
16354         * debug-mono-symfile.c
16355         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
16356
16357 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16358
16359         * process.c: ret can be any non-zero value accroding to MS doc.
16360
16361 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
16362
16363         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
16364         fixing a warning for a miss-used prototype, would have cause
16365         random memory corruption.
16366
16367 2003-03-07  Martin Baulig  <martin@ximian.com>
16368
16369         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
16370         getting really annoying ....
16371
16372 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
16373
16374         * reflection.c (fixup_method): added support for array methods.
16375
16376 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
16377
16378         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
16379         (pointed out by Michael Adams).
16380
16381 2003-03-04  Dick Porter  <dick@ximian.com>
16382
16383         * icall.c: Temporarily reverted the Double and Single ToString()
16384         change, because it broke nunit.
16385
16386 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
16387
16388         * object.h, threads.h: make include files compatible with C++
16389         (patch by Jerome Laban <jlaban@wanadoo.fr>).
16390
16391 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16392
16393         * icall.c: Erased ToString helper functions for Double and Single.
16394         Now, that implementations ar all in managed code (Double and Single
16395         Formatters).
16396
16397 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
16398
16399         * appdomain.c: Added method for initializing the default context of
16400         a domain. Added internal call for getting the default context.
16401         * appdomain.h: Added context variable in MonoDomain struct.
16402         * domain.c: mono_domain_set also sets the default context of the domain
16403         * icall.c: Mapped internal method InternalGetDefaultContext.
16404         * object.c: mono_object_get_virtual_method returns always a remoting
16405         wrapper if the object is a transparent proxy.
16406         mono_runtime_invoke_array: when creating an object by calling the
16407         constructor, if the created object is a proxy, then the constructor should
16408         be called using the a remoting wrapper.
16409
16410 2003-03-03  Dick Porter  <dick@ximian.com>
16411
16412         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
16413         variable so it compiles on solaris.  Problem spotted by
16414         Christopher Taylor <ct@cs.clemson.edu>
16415
16416 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16417
16418         * appdomain.c:
16419         (get_info_from_assembly_name): don't leak value.
16420
16421         * icall.c:
16422         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
16423         result.
16424
16425 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
16426
16427         * assembly.c: export mono_image_load_references ().
16428         * class.c: handle function pointers. mono_class_from_name() now
16429         supports nested type names directly.
16430
16431 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
16432
16433         * reflection.h reflection.c: Encode already created dynamic methods 
16434         and fields correctly as a DEF instead of a REF.
16435
16436         * reflection.c: Get rid of the force_ref argument to 
16437         mono_image_typedef_or_ref since it was wrong in the first place.
16438
16439         * string-icalls.c: add error checking to string constructors according
16440         to the MSDN docs.
16441
16442         * reflection.c: Emit types in the order their TypeBuilders were 
16443         created. Previously, a new table index was assigned to each type before
16444         the tables were emitted. This was wrong because the signature blob
16445         might already refer to a type by its original table index.
16446
16447 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
16448
16449         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
16450         change.
16451         
16452 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16453
16454         * Makefile.am: make assemblies dir have \ instead of / on windows.
16455
16456 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
16457
16458         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
16459         iterate over the NESTEDCLASS table using a linear search since the
16460         table is not guaranteed to be sorted by the secondary key.
16461
16462         * class.c (mono_class_create_from_typedef): fixed up call to
16463         mono_metadata_nesting_typedef.
16464         
16465 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
16466
16467         * marshal.c (mono_string_to_byvalstr): clear the memory as
16468         suggested by Jerome Laban <jlaban@wanadoo.fr>
16469
16470 2003-02-26  Dick Porter  <dick@ximian.com>
16471
16472         * process.c: Cope with padding in .rsrc blocks
16473
16474 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
16475
16476         * metadata.h: reverted the filter_len change, it breaks reflection
16477         
16478 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
16479
16480         * metadata.h: added a new field to store the filter_len
16481         
16482
16483 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
16484
16485         * reflection.c: handle custom attributes for types and members
16486         created with Reflection.Emit (bug#38422).
16487
16488 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
16489
16490         * reflection.c: define RTSpecialName automatically for constructors for
16491         compatibility with MS.NET.
16492
16493         * reflection.c (mono_reflection_create_runtime_class): initialize
16494         nested_in field of dynamically created classes.
16495
16496 2003-02-22  Martin Baulig  <martin@ximian.com>
16497
16498         * debug-mono-symfile.h: Incremented version number.
16499
16500 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16501
16502         * object.h icall.c process.c: fix warnings.
16503
16504 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16505
16506         * appdomain.h appdomain.c:
16507         (mono_domain_try_type_resolve): split the 
16508         name_or_tb argument into a name and a tb argument.
16509         (mono_domain_has_type_resolve): new function to check whenever the
16510         application has registered a TypeResolve event handler.
16511         
16512         * icall.c reflection.h reflection.c: move the type resolve logic into
16513         mono_reflection_get_type () so it will be invoked when 
16514         Assembly::GetType () is called.
16515
16516         * reflection.c:
16517         (mono_reflection_get_type): renamed to get_type_internal.
16518         (mono_reflection_get_type): fixed type name generation so it works 
16519         for nested types too.
16520         (mono_reflection_get_type): call has_type_resolve () to avoid the 
16521         costly type name generation if there is no resolve event handler.
16522
16523 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16524
16525         * class.c, image.c: load exported types from file references.
16526
16527 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
16528
16529         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
16530           used to cache the managed methods used to create proxies and make 
16531           remote invocation of methods.
16532         * class.h: Added in MonoVTable a flag to indicate that a class needs 
16533           to be remotely created.
16534         * object.c: Modified the method mono_class_vtable(). It now initializes 
16535           the remote flag of the vtable. Modified mono_object_new_specific(), 
16536           so now it checks the remote flag.
16537         * icall.c: Added a couple of internal methods, one for enabling instance 
16538           creation interception for a type, and one for creating objects bypassing
16539           the remote check.
16540
16541 2003-02-18  Martin Baulig  <martin@ximian.com>
16542
16543         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
16544         New interncall to get a method's metadata token.
16545
16546         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
16547         New interncall for the debugger.
16548
16549 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
16550
16551         * class.c (mono_class_setup_vtable): allocate supertype array
16552
16553 2003-02-18  Martin Baulig  <martin@ximian.com>
16554
16555         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
16556
16557 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16558
16559         * reflection.c:
16560         (assembly_name_to_aname): jump over unknown properties (i've found
16561         something like: 'type, assembly, version=xxx, custom=null, public...',
16562         so now will ignore custom=null and still get the rest of the values).
16563
16564 2003-02-17  Dick Porter  <dick@ximian.com>
16565
16566         * threads.c: Have Thread.Start() wait for a semaphore to signal
16567         that the thread has set up all its local data.  This fixes bug
16568         34323, where Abort() raced the new thread's TLS data.
16569
16570         Also removes the handle_store() call from start_wrapper, because
16571         threads are now always created suspended and there is no longer a
16572         race between the parent and child threads to store the info.
16573
16574 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
16575
16576         * image.c: explain the #- heap issue in a message, hopefully
16577         avoiding FAQs on mono-list.
16578
16579 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16580
16581         * icall.c:
16582         (GetEntryAssembly): if the domain has not invoked
16583         AppDomain.ExecuteAssembly yet, return the assembly of the default
16584         AppDomain.
16585
16586 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
16587
16588         * class.c (mono_ldtoken): make it work in dynamic assemblies.
16589
16590 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
16591
16592         * metadata.c, reflection.c: simple speedup to type hash
16593         and equals code.
16594
16595 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
16596
16597         * image.c, image.h, class.c, assembly.c: move module loading
16598         to MonoImage. When loading metadata, consider alignemnet from
16599         the start of metadata, not from the metadata address in memory.
16600
16601 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
16602
16603         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
16604         AssemblyBuilder objects. Factored out custom attribute creation into
16605         a separate function.
16606         (create_custom_attr): new function to create custom attributes.
16607
16608 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
16609
16610         * Makefile.am: Got tired of typing the full pathname to pedump.
16611         Until there is another option, am installing this.
16612
16613 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
16614
16615         * class.c (class_compute_field_layout): always set field->parent 
16616         (mono_ldtoken): use mono_defaults.fieldhandle_class;
16617
16618 2003-02-11  Dick Porter  <dick@ximian.com>
16619
16620         * threads-types.h:
16621         * monitor.c: Rewrote Monitor, making lock much faster and
16622         Pulse/Wait work as specified.  Also uses much fewer handles, and only
16623         creates them as needed.
16624
16625         * exception.c: Added SynchronizationLockException
16626
16627         * threads.c: Deleted old Monitor implementation.  The new one is
16628         in a new file.
16629
16630 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
16631
16632         * class.c: handled TypedReference type code. Set the correct size for
16633         class data. Setup interface_offsets for interface classes, too.
16634
16635 2003-02-09  Martin Baulig  <martin@ximian.com>
16636
16637         * debug-mono-symfile.h: Reflect latest symbol writer changes.
16638
16639 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
16640
16641         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
16642         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
16643         * object.c: fixed mono_object_get_virtual_method () for interfaces.
16644         * verify.c: check for code that runs after the end of the method.
16645
16646 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16647
16648         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
16649         "System.Math::Round2".
16650         * sysmath.h: Added Floor, Round and Round2 definitions.
16651         * sysmath.c: Modified certain functions that were not 100% compliant
16652         with MS.NET (math precision) and added the implementation of Floor,
16653         Round and Round2.
16654
16655 2003-02-07  Martin Baulig  <martin@ximian.com>
16656
16657         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
16658
16659 2003-02-07  Martin Baulig  <martin@ximian.com>
16660
16661         * debug-mono-symfile.c: Reflected latest symwriter changes.
16662         (mono_debug_create_mono_symbol_file): Removed.
16663         (mono_debug_open_mono_symbol_file): Take an argument which
16664         specifies whether to create a dynamic symbol file.
16665
16666 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
16667
16668         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
16669
16670 2003-02-05  Martin Baulig  <martin@ximian.com>
16671
16672         * reflection.c (mono_image_build_metadata): Make this public,
16673         protect it against being called multiple times, don't create
16674         resources and don't build the compressed metadata here.
16675         (mono_image_create_pefile): Do this here.
16676
16677         * icall.c
16678         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
16679
16680 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16681
16682         * socket-io.c: fixed bug #36322.
16683
16684 2003-02-06  Piers Haken <piersh@friskit.com>
16685
16686         * appdomain.[ch]:
16687         * class.h:
16688         * debug-mono-symfile.c:
16689         * icall.c:
16690         * loader.c:
16691         * mono-config.c:
16692         * monosn.c:
16693         * reflection.c:
16694         * socket-io.c: warning cleanups
16695
16696 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
16697
16698         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
16699         function. works like remoting invoke, but does a check for the Proxy first.
16700
16701 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
16702
16703         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
16704
16705 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
16706
16707         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
16708         array of pointers.
16709         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
16710         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
16711
16712         * object.c (mono_store_remote_field_new): used by the new jit
16713         instead of mono_store_remote_field
16714         (mono_load_remote_field_new): used by the new jit
16715         instead of mono_load_remote_field
16716
16717 2003-02-05  Patrik Torstensson
16718
16719         * appdomain.c: changed unload to take the domain id instead
16720         of domain
16721         
16722         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
16723
16724
16725 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16726
16727         * appdomain.c: don't look for assemblies in ApplicationBase if
16728         PrivateBinPathProbe is set.
16729
16730 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16731
16732         * object.c: make the first argument in main_args contain the absolute
16733         path to the assembly. Fixes bug #37511.
16734
16735 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16736
16737         * icall.c: get correct UTC offset for countries not using daylight
16738         time saving. Fixes bug #30030.
16739
16740 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16741
16742         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
16743         and 1 are the family).
16744
16745 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
16746
16747         * icall.c (ves_icall_InternalExecute): removed wrong assertion
16748
16749         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
16750
16751 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
16752
16753         * reflection.c: added support for SignatureHelper tokens, which is
16754         needed by the Calli opcode.
16755
16756         * reflection.h: track changes to SignatureHelper class.
16757
16758         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
16759
16760 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16761
16762         * appdomain.c: fixed loading assemblies from PrivateBinPath.
16763
16764 2003-02-03  Patrik Torstensson
16765         * appdomain.[c|h], domain.c : 
16766          - Added support for getting a domain via domain id
16767          - Support for setting and getting domain from System.AppDomain 
16768            (used in cross appdomain channel)
16769          - Added support for get/set for a MonoAppContext on a thread 
16770            (Context class in System.Runtime.Remoting.Contexts),
16771          - Removed hack in Get/SetData and ExecuteAssembly.
16772         
16773         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
16774         the managed world to get control when a proxy is created.
16775
16776         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
16777         
16778 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
16779
16780         * icall.c
16781         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16782         Populate the codebase field as well.
16783
16784 2003-02-02  Martin Baulig  <martin@ximian.com>
16785
16786         * debug-mono-symfile.c
16787         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
16788         (mono_debug_symfile_add_method): Allow interncalls.
16789
16790 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16791
16792         * icall.c: throw parse exception if strtod fails or the string is empty.
16793
16794 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16795
16796         * marshal.c: handle object type separately from defined
16797         class types.
16798
16799 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16800
16801         * marshal.c: handle NATIVE_LPSTR for strings when it's
16802         explicitly specified.
16803
16804 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16805
16806         * reflection.c, reflection.h, icall.c: setup the reflection
16807         handle cache for ModuleBuilders and AssemblyBuilders.
16808
16809 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16810
16811         * reflection.c (reflection_methodbuilder_to_mono_method): set
16812         pinvoke flag
16813
16814 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16815
16816         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16817
16818 2003-01-29  Dick Porter  <dick@ximian.com>
16819
16820         * threads.c: No need for the fake_thread kludge now that Thread
16821         doesn't run a class constructor
16822         
16823 2003-01-29  Dick Porter  <dick@ximian.com>
16824
16825         * threads.c: Use g_direct_hash instead of the rather bogus
16826         g_int_hash
16827
16828 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16829
16830         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16831         (fix pinvoke12.exe)
16832         (mono_marshal_get_struct_to_ptr): generate valid IL code
16833         (mono_marshal_get_ptr_to_struct): generate valid IL code
16834         (*): correctly set sig->pinvoke, we need to memdup the signature
16835         to do that
16836
16837 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16838
16839         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16840         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16841
16842 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16843
16844         * profiler.c: provide more callers information.
16845
16846 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16847
16848         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16849
16850         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16851
16852         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16853
16854 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16855
16856         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16857         exception instead of going into an infinite loop on dates which it 
16858         can't yet handle.
16859
16860         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16861         out-of-range exception if needed.
16862
16863         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16864         an implementation for an interface method and to override an inherited
16865         method at the same time. 
16866         Imagine a scenario when a virtual method is used to override a
16867         virtual abstract method in a parent class, and this same method 
16868         provides an implementation for an method inherited from an interface. 
16869         In this case, the interface resolution code will set im->slot, which 
16870         means that the virtual method override pass will skip this method 
16871         which means a pointer to the abstract method inherited from the parent
16872         will remain in the vtable of this non-abstract class.
16873
16874         * class.c: (mono_class_setup_vtable): continue search for a real 
16875         method if only an abstract method is found.     
16876
16877 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16878
16879         * reflection.c: add size to encoding for ByValStr and ByValArray
16880         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16881
16882 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16883
16884         * class.c (mono_class_setup_vtable): pass the override info as an
16885         argument.
16886
16887         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16888         correctly.
16889         
16890         * reflection.c (ensure_runtime_vtable); add support for method 
16891         overrides.
16892         
16893 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16894
16895         * reflection.c (resolution_scope_from_image): Hack to work to work with
16896         dynamic assemblies.
16897
16898         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16899         added a 'force_ref' argument to force this function to allways return 
16900         a TypeRef. This is needed by mono_image_get_memberref_token ().
16901         
16902 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16903
16904         * reflection.c (mono_image_get_type_info): interfaces really don't have
16905         a parent.
16906
16907         * reflection.c (mono_image_basic_init): fill out missing fields of
16908         image structure.
16909
16910         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16911         dynamic assemblies. This is required so dynamic assemblies show up in
16912         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16913         Type::GetType() etc. This is consistent with MS behaviour.
16914
16915         * image.c image.h reflection.c: add newly created classes to the name 
16916         cache so mono_class_get () will find them.      
16917
16918 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16919
16920         First part of changes to get IKVM.NET running under mono.
16921         
16922         * appdomain.h, appdomain.c: added new function 
16923         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16924         This function will call AppDomain::DoTypeResolve to do the actual work.
16925
16926         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16927         moved existing code dealing with dynamic tokens to a new function 
16928         called mono_reflection_lookup_dynamic_token (). This function will 
16929         raise TypeResolve events when appropriate. Since reflection.c is not 
16930         part of libmetadata, a new hook function called 
16931         mono_lookup_dynamic_token() is added to class.c which will call this.
16932
16933         * assembly.h assembly.c: make the invoke_load_hook function public,
16934         so it can be called for dynamic assemblies.
16935
16936         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16937
16938         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16939         type isn't found.
16940
16941         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16942         MonoGHashTable, since it contains pointers to objects which the GC 
16943         needs to track.
16944
16945         * assembly.c (search_loaded): remove unused variable.
16946         
16947 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16948
16949         * object.c: fixed issue exposed by gcc-generated IL programs
16950         that use RVA data for pointers.
16951
16952 2003-01-25  Martin Baulig  <martin@ximian.com>
16953
16954         * threads.c (start_wrapper): Moved the initialization of
16955         `start_func' above the mono_new_thread_init() call to which we
16956         pass it as argument.
16957
16958 2003-01-24  Martin Baulig  <martin@ximian.com>
16959
16960         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
16961         the MonoThread pointer.
16962
16963 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
16964
16965         * icall.c: Rename `PowImpl' to Pow.
16966
16967 2003-01-23  Dick Porter  <dick@ximian.com>
16968
16969         * threads.c (start_wrapper): Create a Thread object if needed, so
16970         the Main() thread can do the class initialisation in a subthread
16971         that has been set up to allow managed code execution.
16972
16973         Pass the thread ID instead of the MonoThread pointer to the thread
16974         start and attach callbacks.  This change is required, because the
16975         jit thread start callback must be called _before_ the Thread
16976         object can be created.
16977         
16978         (mono_thread_init): Removed much object creation code that is no
16979         longer needed.  No managed code is called from here now.
16980
16981         * object.c (mono_runtime_exec_managed_code): Create a subthread
16982         for Main, and call back to the runtime to use it.
16983         Set the exit code when Main exits.
16984
16985         * gc.c: Make sure domain finalisation happens in a subthread.
16986         Re-enable threaded GC, fixing bug 31333 (again).
16987
16988         * environment.c: System.Environment internall calls (so far just
16989         ExitCode is here, the others are still in icall.c)
16990
16991         * appdomain.c (mono_runtime_cleanup): All threads running managed
16992         code should have finished before mono_runtime_cleanup() is
16993         reached, so no need to clean up threads.
16994
16995 2003-01-22  Martin Baulig  <martin@ximian.com>
16996
16997         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
16998         `gpointer func' arguments.      
16999         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
17000         but added `MonoThread *thread' argument.
17001         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
17002
17003         * threads.c (mono_new_thread_init): Added `gpointer func' argument
17004         and pass it to the mono_thread_start_cb callback.
17005         (mono_install_thread_callbacks): New public function to install a
17006         set of callbacks which are set by the debugger.
17007         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
17008
17009 2003-01-22  Martin Baulig  <martin@ximian.com>
17010
17011         * Makefile.am: Install debug-mono-symfile.h.
17012
17013 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
17014
17015         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
17016
17017 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
17018
17019         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
17020         * class.c (mono_ptr_class_get): correctly set access levels of pointers
17021         (mono_array_class_get): correctly set access levels of arrays
17022
17023 2003-01-20      Patrik Torstensson
17024         * image.h (MonoAssemblyName): changed major, minor, build, revision
17025         from signed to unsigned.
17026
17027 2003-01-20  sean kasun <skasun@azstarnet.com>
17028
17029         * reflection.c (load_cattr_value): Now this handles
17030         MONO_TYPE_SZARRAY.  Fixes bug #35629
17031
17032 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
17033
17034         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
17035         integer value
17036
17037 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17038
17039         * decimal.c: fixed bug #26056.
17040
17041 2003-01-17  Martin Baulig  <martin@ximian.com>
17042
17043         * gc.c: Raise an ExecutionEngineException instead of using g_error().
17044
17045 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17046
17047         * exception.[ch]:
17048         (mono_get_exception_type_initialization): new function.
17049
17050         * object.c: throw a TypeInitializationException when an exception is
17051         thrown invoking the class constructor.
17052
17053 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17054
17055         * reflection.c: fixed attribute reading.
17056
17057 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17058
17059         * icall.c:
17060         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
17061         provided, look for the type in the calling assembly and then in
17062         mscorlib; if the assembly name is provided, only try that one.
17063
17064 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
17065
17066         * object.c: register the vtable before there is a chance it's
17067         queried again recursively.
17068
17069 2003-01-13  Duncan Mak  <duncan@ximian.com>
17070
17071         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
17072         gc-internal.h. 
17073         
17074 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
17075
17076         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
17077
17078 2003-01-11  Martin Baulig  <martin@ximian.com>
17079
17080         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
17081         this to 20 for the release.
17082
17083 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
17084
17085         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
17086
17087         * loader.c (mono_method_get_marshal_info): bug fix
17088
17089         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
17090         structures with explicit layout
17091
17092 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
17093
17094         * profiler.c: made the output more readable (and sorted). 
17095         Added caller information for the allocation profiler.
17096
17097 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
17098
17099         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
17100
17101 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17102
17103         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
17104         to get value types.
17105         
17106 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
17107
17108         * object.c, profiler.h, profiler.c, profiler-private.h:
17109         Added object allocation profiler.
17110
17111 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
17112
17113         * reflection.h, reflection.c: handle global methods.
17114         Compress blob entries.
17115
17116 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
17117
17118         * marshal.c: fix compilation.
17119
17120 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
17121
17122         * loader.c (mono_method_get_marshal_info): impl.
17123
17124         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
17125
17126 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17127
17128         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
17129         for reference types.
17130
17131 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
17132
17133         * loader.c: fixed off by one error in loaded parameter names.
17134
17135 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
17136
17137         * marshal.c (mono_marshal_get_icall_wrapper): like
17138         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
17139         instead of a MonoMethod.
17140
17141 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17142
17143         * decimal.c: fixed bug #36537.
17144
17145 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
17146
17147         * marshal.c: throw a missing method exception if a
17148         P/Invoke method is not found.
17149
17150 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
17151
17152         * icall.c: allow a null this for constructors.
17153
17154 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
17155
17156         * icall.c: raise the proper exceptions if the arguments to the
17157         internal Invoke are incorrect.
17158
17159 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
17160
17161         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
17162
17163 2003-01-03  Martin Baulig  <martin@ximian.com>
17164
17165         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
17166
17167 2002-12-31  Martin Baulig  <martin@ximian.com>
17168
17169         * debug-mono-symfile.c: Completely rewrote the type section.
17170         Instead of using individual malloc()ed fields, we use one big
17171         continuous memory area and offsets into this area.
17172         See the comments in the source code for details.
17173
17174 2002-12-30  Martin Baulig  <martin@ximian.com>
17175
17176         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
17177
17178 2002-12-30  Martin Baulig  <martin@ximian.com>
17179
17180         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
17181         line number table in this data blob instead of using an external
17182         pointer.
17183
17184 2002-12-28  Martin Baulig  <martin@ximian.com>
17185
17186         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
17187
17188 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
17189
17190         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
17191         as a boxed return type.
17192
17193 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
17194
17195         * appdomain.c
17196         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
17197         g_build_filename to properly get separators on the filename created.
17198
17199         * object.h: Small change, introduce MonoMarshalByRefObject to
17200         track the layout of that structure in the C# universe as we make
17201         changes there.
17202
17203 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
17204
17205         * object.c: removed assert to allow static fields on interfaces.
17206         * loader.c: a TypeSpec may be used for any type, not just arrays.
17207
17208 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
17209
17210         * class.c, class.h: added mono_class_array_element_size ().
17211         Ignore static methods in interfaces.
17212
17213 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17214
17215         * threads.c: fixed the build under cygwin.
17216
17217 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
17218
17219         * reflection.c: handle nullref constants. Allocate keys for
17220         reflection handles with the GC.
17221
17222 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17223
17224         * threads.c, threads.h: added mono_thread_get_abort_signal()
17225         to get a suitable signal for thread abort.
17226
17227 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17228
17229         * metadata.c: fix handling of ExportedType table.
17230
17231 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17232
17233         * icall.c: added WriteWindowsDebugString internal call.
17234
17235 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17236
17237         * reflection.h: added fields to match C# implementation.
17238
17239 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17240
17241         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
17242
17243 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
17244
17245         * gc.h, gc-internal.h: Rename header for GC internal calls to
17246         gc-internal.h from gc.h as to not clash with Boehm GC having its
17247         header installed as <gc.h> in outside include paths.
17248         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
17249         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
17250
17251 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17252
17253         * icall.c: assign minor, build and revision in FillName.
17254
17255 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
17256
17257         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
17258         Added support for running code generated by Reflection.Emit.
17259
17260 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17261
17262         * appdomain.c: check for NULL argument in LoadFrom.
17263
17264 2002-12-10  Dick Porter  <dick@ximian.com>
17265
17266         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
17267
17268 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17269
17270         * appdomain.c: fix buglet when building exe file name.  Handle full
17271         assembly name (needed after latest changes to AssemblyName).
17272         * image.c:
17273         (mono_image_close): free some hashtables.
17274
17275 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
17276
17277         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
17278         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
17279         on some systems (redhat 7.3) 
17280
17281 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
17282
17283         * threads.c: delete the critical section of a sync block,
17284         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
17285
17286 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
17287
17288         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
17289
17290 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17291
17292         * appdomain.[ch]: handle the assembly preload event to try loading the
17293         assemblies using the paths we have in the current domain.
17294
17295         * assembly.[ch]: created an assembly preload hook that is called to try
17296         loading the assembly by other means that the ones provided here.
17297
17298         * domain.c: initialize the domain search path.
17299
17300         From now on, assemblies (TODO: except corlib and System) are loaded
17301         according to these rules when using mono_assembly_load ():
17302
17303                 1. It tries to load the assembly from the ApplicationBase
17304                 of the current domain appending .dll and .exe (TODO: have to
17305                 try loading from name/name.dll and name/name.exe).
17306
17307                 2. It tries the search path specified in PrivateBinPath for the
17308                 current domain (if any).
17309
17310                 3. Previous behavior.
17311
17312 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
17313
17314         * icall.c: implemented GetInterfaceMap() related icall.
17315         * domain.c, loader.h: load MethodInfo in mono_defaults.
17316
17317 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
17318
17319         * gc.c: disable the finalizer thread for now, untill all the issues
17320         with it are resolved.
17321
17322 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17323
17324         * string-icalls.c: handle embedded nulls in string ctor when the
17325         length is specified.
17326
17327 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
17328
17329         * class.c: look for explicit interface implementation in parent
17330         classes, too.
17331
17332 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
17333
17334         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
17335
17336 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
17337
17338         * gc.c: protect handles with a critical section.
17339
17340 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17341
17342         * icall.c:
17343         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
17344         parameters. If no assembly specified, try getting the type from all
17345         the assemblies in the current domain, else, load the assembly and get
17346         the type from it.
17347
17348 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17349
17350         * marshal.c: applied patch from Aleksey Demakov that fixes
17351         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
17352
17353 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17354
17355         * icall.c: fixed get_location.
17356
17357 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
17358
17359         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
17360         declarations to make it work with older gcc. 
17361
17362         * loader.c (mono_get_method): set signature->pinvoke for native calls
17363
17364 2002-11-20  Dick Porter  <dick@ximian.com>
17365
17366         * threads.c (mono_thread_init): Set the main thread's handle
17367
17368 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
17369
17370         * gc.c: allow compilation without GC support. Changed to match the
17371         mono coding style.
17372
17373 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
17374
17375         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
17376
17377 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
17378
17379         * reflection.c: set a public key token on the core assemblies.
17380
17381 2002-11-18  Dick Porter  <dick@ximian.com>
17382
17383         * threads.c: Split out some thread initialisation so that other
17384         files can set the start callback function.
17385
17386         * gc.c: Run finalisers in a separate thread, to avoid stack
17387         overflow.  Fixes bug 31333.
17388
17389         * appdomain.c: Set up GC finalisation thread.
17390
17391         * reflection.c: 
17392         * object.c: 
17393         * domain.c: Use gc.h macros for GC_malloc
17394         
17395 2002-11-15  Dick Porter  <dick@ximian.com>
17396
17397         * threadpool.c: 
17398         * threads.c:
17399         * appdomain.c: Removed mono_runtime_init_with_attach(),
17400         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
17401         merging the extra parameter with the existing function.  Removed
17402         unneeded code in mono_thread_attach().
17403
17404 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
17405
17406         * image.c (mono_image_loaded_by_guid): a method to get loaded
17407         images by guid. 
17408         (load_metadata_ptrs): we store the guid as string.
17409
17410 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
17411
17412         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
17413
17414         * metadata.c (mono_guid_to_string): imported method form Zoltan
17415         Varga (slightly modified)
17416
17417         * assembly.c (mono_assembly_open): load precompiled code
17418
17419         * loader.h (MonoMethod): we store the method token for use in the
17420         aot compiler. 
17421
17422 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17423
17424         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
17425         the hook function called when an assembly is loaded.
17426         
17427         * domain.c: Modified file.
17428         (mono_domain_assembly_load): removed hash table insertion of assemblies.
17429
17430         Fixes bug #33196.
17431
17432 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
17433
17434         * reflection.c: Map PEFileKind to the value expected by the WinNT
17435         image loader. 
17436
17437 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17438
17439         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
17440         Read until the buffer is filled completely.
17441
17442 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17443
17444         * icall.c: implemented MonoType.InternalGetEvent ().
17445
17446 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17447
17448         * appdomain.c: implemented InitAppDomainSetup. Delayed
17449         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
17450         the entry_assembly.
17451
17452         * assembly.c: base_dir is now an absolute path ending with
17453         G_DIR_SEPARATOR.
17454
17455         * icall.c: modified get_location according to the above changes.
17456
17457         * object.c: init AppDomain.SetupInformation for the default domain after
17458         we have the entry assembly.
17459
17460         * domain.c: when unloading a domain, setup = NULL.
17461
17462 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
17463
17464         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
17465
17466 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
17467
17468         * object.h, object.c: introduced mono_object_get_virtual_method ()
17469         to lookup the method invoked on an object when a callvirt is done on
17470         a method.
17471         * icall.c: make MethodInfo::Invoke() always do a virtual call.
17472
17473 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17474
17475         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
17476         current domain when loaded an assembly and failed to load it.
17477
17478         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
17479
17480 2002-10-31  Dick Porter  <dick@ximian.com>
17481
17482         * icall.c: 
17483         * file-io.h: 
17484         * file-io.c: Return the error status in a parameter, as the
17485         GetLastError() value has long since been blown away if we try and
17486         look it up in a subsequent internal call invocation.  Delete the
17487         GetLastError() internal call, because it's useless.
17488
17489 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
17490
17491         * class.[ch]: added cast_class to fix bug 29517
17492
17493 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
17494
17495         * marshal.c: create valid IL code in the filter clause:
17496         the new JIT is less forgiving:-)
17497
17498 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17499
17500         * icall.c: removed get_property internal call.
17501
17502 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
17503
17504         * appdomain.h domain.c: Added an ID to appdomains.
17505         
17506         * threads.c threads.h icall.c: Implement icall
17507         Thread:GetDomainID(), and remove unused icall 
17508         CurrentThreadDomain_internal.
17509
17510 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17511
17512         * icall.c: Don't recurse through the base types in GetConstructor.
17513         Fixes bug #32063. 
17514
17515 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
17516
17517         * mempool.h, mempool.c: added mono_mempool_empty() and
17518         mono_mempool_stats().
17519
17520 2002-10-23  Dick Porter  <dick@ximian.com>
17521
17522         * file-io.c: 
17523         * file-io.h: 
17524         * icall.c: Added MonoIO.GetFileType internal call
17525
17526 2002-10-17  Dick Porter  <dick@ximian.com>
17527
17528         * appdomain.c (mono_runtime_cleanup): Don't signal the async
17529         delegate semaphore before waiting for all threads to finish,
17530         because new threads can also call async delegates.  Fixes bug
17531         32004.
17532
17533         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
17534         of 3 seconds, in case another async job is queued.  (This part is
17535         needed because the bug fix reintroduced the 3s exit lag.)  This
17536         makes the mono_runtime_shutdown flag superfluous.
17537
17538 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17539
17540         * reflection.c: include ehader size in method section headers.
17541         Really check for suplicated modules entries.
17542
17543 2002-10-17  Martin Baulig  <martin@gnome.org>
17544
17545         * debug-mono-symfile.c: Added back support for locals.
17546
17547 2002-10-14  Martin Baulig  <martin@gnome.org>
17548
17549         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
17550         MONO_TYPE_VOID.
17551
17552 2002-10-14  Martin Baulig  <martin@gnome.org>
17553
17554         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
17555         mono_class_get() instead of looking in the class cache. 
17556
17557 2002-10-13  Martin Baulig  <martin@gnome.org>
17558
17559         * debug-mono-symfile.c: Set version number to 28, include the
17560         signature in method names.
17561
17562 2002-10-13  Martin Baulig  <martin@gnome.org>
17563
17564         * debug-mono-symfile.h: Set version number to 27.
17565
17566 2002-10-11  Martin Baulig  <martin@gnome.org>
17567
17568         * gc.c: Don't register/unregister NULL pointers as disappearing links.
17569
17570 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17571
17572         * metadata.c, metadata.h: added helper function to allocate signatures.
17573
17574 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17575
17576         * icall.c: added internal call to get the location of machine.config.
17577
17578 2002-10-08  Martin Baulig  <martin@gnome.org>
17579
17580         * debug-mono-symfile.c: Ignore classes with a pending init for the
17581         moment.
17582
17583 2002-10-03  Dick Porter  <dick@ximian.com>
17584
17585         * threads.c: Freebsd pthread_t is a pointer
17586
17587 2002-10-03  Dick Porter  <dick@ximian.com>
17588
17589         * socket-io.c: Implemented GetHostName_internal
17590
17591 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17592
17593         * mono-config.c:
17594         (mono_config_parse_file): don't leak the text.
17595
17596 2002-10-02  Martin Baulig  <martin@gnome.org>
17597
17598         * debug-mono-symfile.c: Added support for methods.
17599
17600 2002-10-01  Martin Baulig  <martin@gnome.org>
17601
17602         * debug-mono-symfile.c: Don't emit methods and line numbers for
17603         the dynamic symbol file, just write the type table.  We can easily
17604         have an external helper program which creates a symbol file for an
17605         IL file.        
17606
17607 2002-10-01  Dick Porter  <dick@ximian.com>
17608
17609         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
17610         Only add the handle to the cleanup array when we're about to
17611         launch the thread.  Bug 31425 deadlocked when the test was run on
17612         mono under w32.
17613
17614 2002-10-01  Martin Baulig  <martin@gnome.org>
17615
17616         * debug-mono-symfile.c: Added support for properties.
17617
17618 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17619
17620         * reflection.c: unaligned store fix from Mark Crichton
17621         <crichton@gimp.org>.
17622
17623 2002-09-27  Martin Baulig  <martin@gnome.org>
17624
17625         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
17626         New interncall.
17627
17628 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17629
17630         * assembly.h, assembly.c: use a sane API to hook into the assembly
17631         loading process instead of a useless special-purpouse hack
17632         (ngen needs a hook, too, for example).
17633
17634 2002-09-27  Dick Porter  <dick@ximian.com>
17635
17636         * threads.c (mono_thread_init): Call GetCurrentProcess() so
17637         io-layer can set up some process handle info.  Not needed on w32,
17638         but doesn't hurt either.
17639
17640         * process.c: Pass the program name in the second parameter to
17641         CreateProcess, so the path is searched.  Include the working
17642         directory. Implemented process name, process enumeration, and some
17643         process detail internal calls.
17644         
17645         * icall.c: Added internal calls for process lookup, and some
17646         process details
17647
17648 2002-09-26  Martin Baulig  <martin@gnome.org>
17649
17650         * assembly.c (mono_install_open_assembly_hook): New global
17651         function to install a function to be invoked each time a new
17652         assembly is loaded.
17653         (mono_assembly_open): Run this callback function if set.
17654
17655         * debug-mono-symfile.c: Put back line numbers for the dynamic
17656         symbol file and also record the .il file as source file.  This
17657         allows us to install the temporary symbol file as `file.dbg' just
17658         like a compiler-generated one.
17659
17660 2002-09-26  Nick Zigarovich <nick@chemlab.org>
17661
17662         * Corrected typo in gc.c (BOHEM vs BOEHM).
17663
17664 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17665
17666         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
17667         GetProperties. Also avoid calling g_slist_length in GetProperties and
17668         GetMethods.
17669
17670 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17671
17672         * reflection.c: avoid unaligned stores (bug spotted by
17673         Mark Crichton  <crichton@gimp.org>).
17674
17675 2002-09-25  Martin Baulig  <martin@gnome.org>
17676
17677         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
17678         instead of guint64 for addresses and added prologue/epilogue info.
17679
17680 2002-09-25  Martin Baulig  <martin@gnome.org>
17681
17682         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
17683         store line number info.  For the dynamic symbol file, we only need
17684         to provide the JIT generated dynamic line number info for the dynamic
17685         symbol file.
17686
17687 2002-09-25  Martin Baulig  <martin@gnome.org>
17688
17689         * debug-mono-symfile.h: Incremented version number.
17690
17691 2002-09-24  Martin Baulig  <martin@gnome.org>
17692
17693         * class.c (mono_debugger_class_init_func): New global function
17694         pointer variable.
17695         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
17696         call it.
17697
17698         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
17699         function.  This is called via the mono_debugger_class_init_func
17700         hook to add all types to the dynamic type table.
17701         (ves_icall_MonoDebugger_GetType): New interncall to get a class
17702         from its metadata token.
17703
17704         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
17705         New interncall for the debugger.
17706
17707 2002-09-24  Nick Drochak <ndrochak@gol.com>
17708
17709         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
17710         before using it in case it is null.
17711         
17712 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17713
17714         * metadata.c: allow custom modifiers in local var signatures
17715         (bug spotted by Zoltan Varga).
17716
17717 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17718
17719         * class.c: deal with the <Module> class that may have a NULL vtable.
17720         Eliminate warnings.
17721
17722 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17723
17724         * image.c, image.h: more strong name helpers.
17725         * monosn.c: more work: convert pem keys to cryptoapi format.
17726
17727 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17728
17729         * string-icalls.c: speedup IndexOf.
17730
17731 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17732
17733         * icall.c: updates from Zoltan.2.Varga@nokia.com.
17734
17735 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17736
17737         * icall.c: cleanup: use mono_object_domain ().
17738
17739 2002-09-23  Martin Baulig  <martin@gnome.org>
17740
17741         * debug-mono-symfile.c: Improved type support.
17742
17743 2002-09-22  Martin Baulig  <martin@gnome.org>
17744
17745         * debug-mono-symfile.c: Added support for reference types and strings.
17746
17747 2002-09-22  Martin Baulig  <martin@gnome.org>
17748
17749         * debug-mono-symfile.c: Started to work on the type table.
17750
17751 2002-09-21  Martin Baulig  <martin@gnome.org>
17752
17753         * debug-mono-symfile.c: Largely reworked the symbol table format.
17754         The symbol table is now incrementally updated each time a new
17755         method is added.  We're now also using our own magic and version
17756         so that you don't need to recompile all your classes if the
17757         dynamic table changes.
17758         (mono_debug_update_mono_symbol_file): Removed.
17759         (mono_debug_symfile_add_method): New function to add a method.
17760
17761 2002-09-21  Martin Baulig  <martin@gnome.org>
17762
17763         * icall.c
17764         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
17765         New interncall.
17766
17767         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
17768         New interncall to get a method from its metadata token.
17769
17770 2002-09-21  Martin Baulig  <martin@gnome.org>
17771
17772         * debug-mono-symfile.c: Create type table.
17773
17774 2002-09-20  Martin Baulig  <martin@gnome.org>
17775
17776         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
17777
17778 2002-09-20  Martin Baulig  <martin@gnome.org>
17779
17780         * debug-mono-symfile.c: Provide information about params and locals.
17781
17782 2002-09-20  Martin Baulig  <martin@gnome.org>
17783
17784         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
17785         New interncall.
17786
17787         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
17788         interncall to get a method from its metadata token.
17789
17790 2002-09-20  Martin Baulig  <martin@gnome.org>
17791
17792         * debug-mono-symfile.c: Added a few checks for method->header
17793         being non-NULL.  This should never happen, but for the moment
17794         let's use a g_warning() rather than a g_assert().
17795
17796 2002-09-19  Mark Crichton  <crichton@gimp.org>
17797
17798         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17799         even if support for it isn't present.  Added an #ifdef to fix this.
17800
17801         * socket-io.c: Added checks back for Solaris support.
17802
17803 2002-09-19  Martin Baulig  <martin@gnome.org>
17804
17805         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17806         changes in the symbol file format.
17807
17808 2002-09-18  Martin Baulig  <martin@gnome.org>
17809
17810         * debug-mono-symfile.c: Set version number to 21.
17811
17812 2002-09-18  Dick Porter  <dick@ximian.com>
17813
17814         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17815         on netbsd.  Fixes bug 30051.
17816
17817 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17818
17819         * reflection.c:
17820         (set_version_from_string): little fix.
17821
17822 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17823
17824         * monosn.c, Makefile.am: added strong name utility.
17825         * reflection.h, reflection.c: implemented delayed signing,
17826         locale, version and hash id assembly attributes.
17827
17828 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17829
17830         * loader.c, metadata.c: load param attributes in signatures.
17831
17832 2002-09-16  Martin Baulig  <martin@gnome.org>
17833
17834         * debug-mono-symfile.c: Added string table with all method names.
17835
17836 2002-09-14  Martin Baulig  <martin@gnome.org>
17837
17838         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17839         fast method lookup.
17840
17841 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17842
17843         * reflection.c: record the public key token of referenced assemblies.
17844
17845 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17846
17847         * image.c, image.h: added functions to get the strong name and the
17848         public key of an assembly.
17849         * pedump.c: use them.
17850
17851 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17852
17853         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17854
17855 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17856
17857         * marshal.c (mono_marshal_get_managed_wrapper): Added
17858         MONO_TYPE_BOOLEAN 
17859
17860 2002-09-11  Martin Baulig  <martin@gnome.org>
17861
17862         * gc.c: Call GC_unregister_disappearing_link() on all links when
17863         finalizing them, this is necessary to aviod a crash in boehm's
17864         finalize handler.
17865
17866 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17867
17868         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17869         nick@chemlab.org.
17870
17871 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17872
17873         * icall.c: implemented MonoType::Module.
17874         * reflection.c, reflection.h: mono_module_get_object () from
17875         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17876
17877 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17878
17879         * icall.c: ignore overridden methods in GetMethods ().
17880         Fix for FieldInfo::SetValue().
17881         * object.c: handle float/double in runtime invoke.
17882
17883 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17884
17885         * object.c: allow a constructor to be called again on an object.
17886
17887 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17888
17889         * class.h, class.c: move field layout code to it's own function and
17890         export it. Get an interface id earlier. Move fields in MonoClass
17891         so they are more cache friendly and align the bitfields.
17892         * loader.c: temporary handle get_param_names() for a runtime method.
17893         * reflection.c, reflection.h: more code to handle runtime creation of
17894         types.
17895
17896 2002-09-09  Martin Baulig  <martin@gnome.org>
17897
17898         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17899         signature with the pinvoke field being set for the actual call.
17900
17901 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17902
17903         * icall.c: removed some unused icalls. Start of map of glib charsets
17904         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17905
17906 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17907
17908         * debug-helpers.c: break infinite loop (found and fixed by
17909         Holger Arnold <harnold@gmx.de>).
17910
17911 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17912
17913         * icall.c: target may be null in create_delegate.
17914
17915 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17916
17917         * marshal.c: handle a boolean return type.
17918
17919 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17920
17921         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17922
17923 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17924
17925         * gc.c: fix weakreferences.
17926
17927 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17928
17929         * icall.c: added icall to get default codepage.
17930
17931 2002-09-03  Dick Porter  <dick@ximian.com>
17932
17933         * threads.h: 
17934         * threads.c: Use MonoThread instead of MonoObject where
17935         apropriate.
17936
17937         Store running thread objects in a hash table, so that we have all
17938         the info to hand when waiting for them to finish
17939         (means we don't need OpenThread() any more, so mingw builds should
17940         be fully functional again.)
17941
17942         * verify.c:
17943         * object.h: Added thread ID to MonoThread
17944
17945 2002-09-03  Martin Baulig  <martin@gnome.org>
17946
17947         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17948
17949 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17950
17951         * icall.c: fixed leak in get_temp_path. Thanks lupus.
17952
17953 2002-09-03  Martin Baulig  <martin@gnome.org>
17954
17955         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17956         argument to store the end address of the disassembled instruction.
17957
17958         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
17959         here from debug-symfile.h.
17960         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
17961         JIT into this struct.
17962         (MonoSymbolFile): Added `char *image_file' field.
17963         (MonoDebugGetMethodFunc): Removed.
17964         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
17965         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
17966         (mono_debug_find_method): New method.
17967
17968         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
17969         create a full symbol file.
17970         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
17971         and static symbol files.
17972         (mono_debug_find_method): The symbol file keeps an internal method hash,
17973         call this to get a MonoDebugMethodInfo from a MonoMethod.
17974
17975         * debug-symfile.[ch]: Removed.
17976
17977 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
17978
17979         * image.c (do_mono_image_open): Remove linker version check.
17980
17981 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
17982
17983         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
17984         wrappers for instance methods.
17985         
17986 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17987
17988         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
17989
17990 2002-08-28  Dick Porter  <dick@ximian.com>
17991
17992         * Makefile.am: Export HOST_CC for w32 builds
17993
17994 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17995
17996         * file-io.c process.c: MonoString are null terminated, no
17997         need for mono_string_to_utf16() anymore.
17998
17999 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18000
18001         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
18002
18003 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
18004
18005         * icall.c, reflection.h: speedup System.MonoType.
18006
18007 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18008
18009         * reflection.c: allow null as the value of a string argument in
18010         custom attributes constructors.
18011
18012 2002-08-27  Martin Baulig  <martin@gnome.org>
18013
18014         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
18015         `trampoline_address' field.
18016
18017 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
18018
18019         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
18020         check (fixes bug #29486) 
18021
18022 2002-08-27  Martin Baulig  <martin@gnome.org>
18023
18024         * debug-mono-symfile.c: Changed the file format in a way that allows us
18025         open it read-only and to use a specially malloced area for all the
18026         dynamic data.  We can now also generate a symbol file on-the-fly if we're
18027         debugging IL code and there is no MCS generated symbol file for it.
18028
18029 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18030
18031         * object.c: added a define for a good string and array
18032         creation speedup (not enabled by default because we need to deal with
18033         the synch stuff).
18034
18035 2002-08-26  Martin Baulig  <martin@gnome.org>
18036
18037         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
18038         function to create a dynamic symbol file.  This is used by the
18039         debugger to create a symbol file for IL code on-the-fly.
18040
18041 2002-08-26  Martin Baulig  <martin@gnome.org>
18042
18043         * loader.c (mono_lookup_pinvoke_call): Include the error message
18044         from g_module_error() in the error message.
18045
18046 2002-08-24  Martin Baulig  <martin@gnome.org>
18047
18048         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
18049         function to update the symbol file.  The symbol file is mmap()ed
18050         writable, but private.  This allows us to install the symbol file
18051         together with the assembly.
18052
18053 2002-08-24  Martin Baulig  <martin@gnome.org>
18054
18055         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
18056         but they can read the new symbol file format which mcs is now creating.
18057
18058         * debug-symfile.c (mono_debug_find_source_location): Moved to
18059         debug-mono-symfile.c; this is now operating on the new symbol file.
18060
18061 2002-08-23  Martin Baulig  <martin@gnome.org>
18062
18063         * debug-helpers.c (mono_method_desc_from_method): New function to get
18064         a MonoMethodDesc from a MonoMethod.
18065
18066 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18067
18068         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
18069         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
18070
18071 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18072
18073         * string-icalls.[ch]: make helper methods static.
18074
18075 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18076
18077         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
18078         types to it and to SetValueInternal.
18079
18080         * object.c: Moved handle_enum label to its proper place. This was the
18081         f... bug! ;-)
18082
18083         This time i compiled mcs and gtk-sharp and they both work.
18084
18085 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18086
18087         * icall.c: reverted partially my previous patch until 
18088         object.c:set_value handles enums correcly.
18089
18090 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18091
18092         * icall.c:
18093         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
18094         (ves_icall_System_Environment_get_MachineName): removed warning when
18095         compiling under cygwin.
18096
18097 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18098
18099         * object.c: fixed field_get_value() for reference types.
18100
18101 2002-08-22  Dick Porter  <dick@ximian.com>
18102
18103         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
18104         Don't free a buffer while it's still needed.  Patch from Jonathan
18105         Liger <Jonathan.liger@wanadoo.fr>
18106
18107 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
18108
18109         * icall.c (ves_icall_System_Environment_get_Platform): Add new
18110         internal call.
18111
18112 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
18113
18114         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
18115         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
18116
18117         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
18118         we call unmanaged code which throws exceptions.
18119
18120 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18121
18122         * appdomain.h: added per-domain entry_assembly.
18123         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
18124         arguments.
18125         * icall.c: Assembly::GetEntryAssembly icall.
18126         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
18127         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
18128
18129 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18130
18131         * appdomain.h, gc.c: added mono_domain_finalize ().
18132
18133 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18134
18135         * object.c:
18136         (mono_print_unhandled_exception): changed g_warning by g_printerr
18137         because g_log has a 1024 characters limit (yeah, i got a big stack
18138         trace). Don't print exception name, that should be in ToString 
18139         returned string.
18140
18141 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18142
18143         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
18144         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
18145
18146 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18147
18148         * object.c:
18149         (mono_print_unhandled_exception): after previous commit, i realized
18150         that MS calls ToString on the exception. I changed this function to
18151         do that. This way we get stack_trace for free.
18152
18153 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18154
18155         * object.c:
18156         (mono_print_unhandled_exception): invoke Message property instead of
18157         getting 'message' field from Exception. Don't allocate memory for
18158         'trace' and 'message' if not needed.
18159
18160 2002-08-18  Dick Porter  <dick@ximian.com>
18161
18162         * unicode.c: Fix asserts to match Encoder.cs checks
18163
18164 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18165
18166         * marshal.c: fix unaligned store issue and a few wrong
18167         opcode argument types.
18168
18169 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18170
18171         * icall.c: added GetUninitializedObjectInternal internal call.
18172
18173 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
18174
18175         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
18176         to the right domain.
18177
18178 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
18179
18180         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
18181
18182         * class.c (class_compute_field_layout): set blittable to false for Strings
18183
18184         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
18185
18186 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18187
18188         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
18189         first chunk of code to create types at runtime. Code to
18190         handle ReflectedType/DeclaringType. Make reflection handles
18191         domain specific.
18192
18193 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18194
18195         * class.c: set correct name in arrays.
18196
18197 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
18198
18199         * appdomain.c (mono_domain_transfer_object): make it work with
18200         valuetypes. bug fixes.
18201
18202 2002-08-12  Dick Porter  <dick@ximian.com>
18203
18204         * object.h: Rename some parameters to avoid c++ keywords (Patch
18205         from Joseph Wenninger <kde@jowenn.at>)
18206
18207 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
18208
18209         * icall.c: added icall to implement Assembly.GetFile*.
18210
18211 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18212
18213         * reflection.h, reflection.c: code to embed managed resources.
18214
18215 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18216
18217         * class.c: move all the type size stuff into
18218         class_compute_field_layout().
18219
18220 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18221
18222         * class.c: ensure enums have always the correct instance size.
18223         * unicode.c: remove wrong assert.
18224
18225 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18226
18227         * assembly.c: fix mem corruption issue.
18228         * image.h, image.c: added mono_image_get_resource () to access
18229         managed resources.
18230         * icall.c: implemented Assembly.EntryPoint property and some
18231         Managed Resources related internalcalls.
18232
18233
18234 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18235
18236         * image.c, image.h: impemented mono_image_get_entry_point ().
18237         * appdomain.c: use mono_image_get_entry_point.
18238
18239 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18240
18241         * reflection.c: support the object type argument when loading
18242         custom attributes.
18243
18244 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
18245
18246         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
18247         String as return type.
18248
18249 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
18250
18251         * reflection.c: fix encoding of named args for custom attrs to match
18252         the ms implementation. Read them back when instantiating custom
18253         attributes.
18254
18255 2002-08-02  Radek Doulik  <rodo@ximian.com>
18256
18257         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
18258         by Dietmar as quick fix
18259         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
18260         16 as stack size, used on more places as quick fix before Dietmar
18261         will fix it properly
18262
18263 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18264
18265         * object.h, object.c: added accessors for fields and properties.
18266
18267 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18268
18269         * class.c, class.h: made mono_class_get_field_from_name ()
18270         loop on parent types.
18271         Added mono_class_get_property_from_name ().
18272
18273 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18274
18275         * class.c, class.h: move the code to setup the type vtable in its own
18276         function so that it can be reused also for types created at runtime.
18277         Eliminate the "class" identifier from the header file.
18278         * reflection.c: setup the vtable for enums so that we can create
18279         objects for use in SetConstant ().
18280
18281 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
18282
18283         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
18284         instead of the delegate itself as this pointer (bug #28383)
18285
18286 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
18287
18288         * marshal.c (mono_marshal_get_managed_wrapper): added return type
18289         conversions.
18290
18291 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18292
18293         * loader.c: don't set the pinvoke bit on icalls.
18294
18295 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
18296
18297         * debug-helpers.c (mono_method_full_name): only print a number to
18298         indicate wrapper type (so that the output is more readable in traces).
18299
18300 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
18301
18302         * class.c (mono_class_init): include method override patch from Paolo
18303
18304 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
18305
18306         * icall.c: fixed GetTypeCode().
18307
18308 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
18309
18310         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
18311         use real delegate invoke function to make it work with multicast
18312         delegates (fix bug# 28291).
18313
18314 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18315
18316         * object.c: load constant strings.
18317
18318 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18319
18320         * reflection.c: no magic numbers.
18321         * tabledefs.h: security action enum.
18322
18323 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18324
18325         * assembly.c: fix possible memory corruption.
18326
18327 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18328
18329         * reflection.h, reflection.c: added support for linking resources.
18330         * verify.c: check we have an updated corlib.
18331
18332 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
18333
18334         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
18335         string arrays.
18336         (mono_marshal_string_array): null terminate unmanaged string arrays.
18337         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
18338
18339 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18340
18341         * icall.c: Type.GetType () can now return also types from the
18342         calling assembly.
18343
18344 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
18345
18346         * loader.h, loader.c: stack walking support.
18347         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
18348         GetCallingAssembly.
18349
18350 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
18351
18352         * marshal.c: added optimisations for blittable types 
18353
18354         * class.c (mono_array_class_get): do not set blittable attribute on arrays
18355         (mono_class_setup_mono_type): set blittable attribute for single
18356         and double.
18357
18358         * marshal.c (mono_string_utf8_to_builder): impl.
18359         (mono_string_builder_to_utf8): impl.
18360         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
18361
18362 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
18363
18364         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
18365         (mono_marshal_get_managed_wrapper): impl. byref types
18366
18367 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18368
18369         * icall.c:
18370         (search_method): don't display debug message. 
18371
18372 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
18373
18374         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
18375
18376 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
18377
18378         * appdomain.c: set the missing filename when throwing exception.
18379
18380 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
18381
18382         * metadata.c (mono_type_size): code cleanup
18383         (mono_type_stack_size): removed some test code
18384
18385 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
18386
18387         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
18388         mono_get_exception_file_not_found now.
18389
18390         * exception.c (mono_exception_from_name_two_strings): New version
18391         that will call a constructor with two string arguments. 
18392         (mono_get_exception_file_not_found): New helper routine, used to
18393         report file-not-found errors.
18394
18395 2002-07-20  Dick Porter  <dick@ximian.com>
18396
18397         * process.h:
18398         * process.c: Pass file handles to CreateProcess
18399         
18400         * icall.c:
18401         * file-io.h:
18402         * file-io.c: Implemented CreatePipe
18403
18404 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
18405
18406         * metadata.c (mono_get_param_info): set alignment for value types
18407
18408 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18409
18410         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
18411         Constify mono_domain_assembly_open().
18412         * loader.c: handle null namespace in icalls.
18413
18414 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
18415
18416         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
18417         (emit_str_to_ptr_conv): marshal object as structs
18418
18419         * metadata.c (mono_type_to_unmanaged): marshal object as structs
18420
18421         * marshal.c (mono_marshal_get_runtime_invoke): support value types
18422
18423 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
18424
18425         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
18426         (mono_marshal_get_native_wrapper): we an now return value types
18427
18428 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18429
18430         * verify.c: more checks implemented.
18431
18432 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
18433
18434         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
18435         (fix bug #27695)
18436         (mono_marshal_get_native_wrapper): allow byref arguments
18437         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
18438         impl. PtrToStringXXX methods
18439         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
18440         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
18441         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
18442         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
18443         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
18444
18445 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18446
18447         * reflection.c: fix buglet in parsing an assembly name.
18448
18449 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
18450
18451         * marshal.c (emit_ptr_to_str_conv): first impl.
18452
18453 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18454
18455         * object.c, class.h: cache the vtable in the class as suggested by
18456         vargaz@freemail.hu (Zoltan Varga).
18457
18458 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18459
18460         * class.h, loader.c: added mono_field_from_token().
18461         * verify.c: first cut of type checking code.
18462
18463 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
18464
18465         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
18466
18467 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
18468
18469         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
18470         (fix bug #27782)
18471         (mono_marshal_get_remoting_invoke): impl.
18472         (mono_delegate_begin_invoke): impl.
18473         (mono_mb_emit_save_args): impl.
18474         (mono_delegate_end_invoke): impl.
18475         (mono_marshal_get_delegate_begin_invoke):
18476         (mono_marshal_get_delegate_end_invoke):
18477         (mono_marshal_get_delegate_invoke): generate a special name for
18478         those methods (including the signature) and associate them whith
18479         the delegate class. 
18480
18481 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
18482
18483         * reflection.[ch]: 
18484         (mono_reflection_type_from_name): now it has a MonoImage parameter
18485         which is used as the default image to search the type in. If the image
18486         is NULL or getting the type from it fails, it defaults to corlib.
18487
18488         * icall.c: changed 1 call to mono_reflection_type_from_name to match
18489         new parameter.
18490
18491 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18492
18493         * reflection.c: update the parameter table index.
18494
18495 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18496
18497         * domain.c: don't include the mark byte in the string hash.
18498
18499 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18500
18501         * icall.cs: icall for Type.GetTypeCode ().
18502         * verify: a couple of fixes and disabled local initialization checks.
18503
18504 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
18505
18506         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
18507
18508         * debug-helpers.c (mono_method_full_name): print the type of the
18509         runtime wrapper
18510
18511         * metadata.c (mono_signature_hash): a hash function for signatures
18512         (mono_signature_hash): better hash algorithm
18513
18514         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
18515
18516         * debug-helpers.c (mono_method_full_name): this can now generate
18517         method names with signatures
18518
18519         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
18520         method dont have this pointers.
18521
18522 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18523
18524         * reflection.c: fixup typebuilder tokens.
18525         * image.c: fix buglet.
18526         * marshal.h: remove whitespace.
18527         * metadata.h, metadata.c: reinstate code that was removed.
18528         * verify.c: handle catch directives and fix another couple of bugs.
18529
18530 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
18531
18532         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
18533         (mono_marshal_get_native_wrapper): make it comp. with the old code
18534         (mono_marshal_get_native_wrapper): support boolean
18535         (mono_marshal_get_managed_wrapper): support more types
18536
18537 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
18538
18539         * class.c (class_compute_field_layout): compute class->blittable attribute.
18540
18541 2002-07-09  Dick Porter  <dick@ximian.com>
18542
18543         * threads.c: Make the thread cleaning up cope with threads that
18544         call ExitThread()
18545
18546 2002-07-08  Radek Doulik  <rodo@ximian.com>
18547
18548         * reflection.c (method_encode_code): use non-translated values to
18549         compute finally_start, this fixes exception handling on ppc, yay!
18550
18551         * decimal.h (struct signscale): fix endianess
18552
18553 2002-07-07  Radek Doulik  <rodo@ximian.com>
18554
18555         * reflection.c: swap box_val and not val
18556
18557 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18558
18559         * reflection.c, reflection.h: handle full assembly info in type name.
18560         Handle Type arguments when loading custom attributes.
18561         * icall.c: updated to use new mono_reflection_type_from_name () method.
18562
18563 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18564
18565         * loader.c:
18566         (method_from_memberref): also print assembly name when method not found.
18567
18568 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18569
18570         * icall.c:
18571         (ves_icall_TypeGetProperties): fixed bug #27473. 
18572
18573 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18574
18575         * reflection.c: display image name and token when cannot find the
18576         .ctor for an attribute.
18577
18578 2002-07-05  Martin Baulig  <martin@gnome.org>
18579
18580         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18581
18582 2002-07-04  Dick Porter  <dick@ximian.com>
18583
18584         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
18585         compile on mingw.  This will cause mingw builds to not wait for
18586         subthreads to terminate after the main thread does.  I've lodged a
18587         bug with the mingw developers for them to wrap OpenThread().
18588
18589 2002-07-03  Dick Porter  <dick@ximian.com>
18590
18591         * threads.c: Store thread IDs instead of handles, because
18592         GetCurrentThread() returns a pseudohandle and therefore stores
18593         useless values.  mono_thread_cleanup() continues checking the
18594         array of threads until it is empty, to cope with subthreads
18595         spawning new threads after the main thread has finished.
18596
18597         * profiler.h:
18598         * profiler.c:
18599         * profiler-private.h: Pass the thread ID to thread profiler
18600         functions, instead of a handle
18601
18602 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18603
18604         * verify.c: fixes to make it more usable.
18605         * pedump.c: added --verify code to verify IL code in an assembly.
18606
18607 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18608
18609         * reflection.c: turn errors into warnings to allow compiling corlib.
18610
18611 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18612
18613         * reflection.c: add special cases to compile corlib.
18614
18615 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18616
18617         * reflection.c: handle properties with only a set method.
18618
18619 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18620
18621         * opcodes.h: add enum with opcodes in opval order.
18622
18623 2002-07-01  Dick Porter  <dick@ximian.com>
18624         
18625         * object.h:
18626         * object.c (mono_runtime_run_main): Removed unneeded argument
18627
18628 2002-06-28  Martin Baulig  <martin@gnome.org>
18629
18630         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18631
18632 2002-06-27  Dick Porter  <dick@ximian.com>
18633
18634         * threads.c: Store the handle in both the parent thread and in the
18635         subthread, to minimise the time between starting a new thread and
18636         storing its ID.
18637
18638 2002-06-26  Dick Porter  <dick@ximian.com>
18639
18640         * appdomain.c (mono_runtime_cleanup): Close the socket library
18641         after all the threads have finished, not before
18642
18643 2002-06-26  Martin Baulig  <martin@gnome.org>
18644
18645         * debug-symfile.c (mono_debug_find_source_location): Added
18646         `guint32 *line_number' argument.  If it's not NULL, store the line number
18647         there and return the file name without the line number.
18648
18649 2002-06-25  Dick Porter  <dick@ximian.com>
18650
18651         * icall.c:
18652         * process.h:
18653         * process.c: Process forking and other support functions
18654
18655 2002-06-25  Dick Porter  <dick@ximian.com>
18656
18657         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
18658         things dont happen when the image is closed.
18659         (mono_image_lookup_resource): Walk the resource section looking
18660         for a particular entry
18661
18662         * cil-coff.h: PE resource section decoding
18663
18664 2002-06-25  Dick Porter  <dick@ximian.com>
18665         
18666         * assembly.h:
18667         * assembly.c: 
18668         (mono_assembly_foreach): Accessor functions to walk the list of
18669         loaded assemblies
18670         (mono_assembly_set_main):
18671         (mono_assembly_get_main): Process methods need to know which
18672         assembly is the "main" one
18673
18674         * object.c (mono_runtime_run_main): Record the main assembly
18675
18676         * debug-helpers.c: Fix typo
18677
18678 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
18679
18680         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
18681         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
18682
18683 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18684
18685         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
18686
18687 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
18688
18689         * image.c (do_mono_image_open): Initialize reference count,
18690         otherwise we leak the MonoImage.
18691
18692 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18693
18694         * reflection.c: small tweak to handle self-hosting.
18695
18696 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18697
18698         * reflection.c: fix type name parse code.
18699
18700 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18701
18702         * reflection.c: break out of the loop.
18703         * image.c: special case corlib.
18704
18705 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18706
18707         * reflection.c: add all the custom attrs at the end to ensure the
18708         ctors have been properly initialized when the attributes are defined
18709         in the current assembly.
18710
18711 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18712
18713         * reflection.c: handle correctly multiple-nested types.
18714
18715 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18716
18717         * row-indexes.h: fix typos.
18718         * reflection.c: adjust for typos and fix method_def_or_ref
18719         encoding in MethodImpl table.
18720
18721 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18722
18723         * reflection.c: fix entry point patching (thanks Serge!).
18724
18725 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
18726
18727         * verify.c: add check for System.Exception
18728
18729 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18730
18731         * image.c, class.c: minifix for code just c&p'ed.
18732         * reflection.c: warning fix.
18733         * object.h, loader.h, domain.c: load also StringBuilder.
18734
18735 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18736
18737         * marshal.h, marshal.c: some support code to handle complex marshaling.
18738
18739 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18740
18741         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
18742         Better signatures with vtable error dump.
18743
18744 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
18745
18746         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
18747
18748 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
18749
18750         * icall.c (ves_icall_Type_GetField): impl.
18751
18752 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18753
18754         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
18755         to retrieve a marshal description blob for a field or param.
18756
18757 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18758
18759         * reflection.h, reflection.c: change order of nested type emission
18760         to avoid table corruption. The NestedTypes table is sorted.
18761         * icall.c: change order of GetConstructor results to workaround mcs bug.
18762
18763 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18764
18765         * reflection.h, reflection.c: handle field and param marshal
18766         information.
18767
18768 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18769
18770         * icall.c, marshal.c marshal.h: more Marshal class implementation.
18771
18772 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18773
18774         * reflection.c: fix call convention.
18775
18776 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18777
18778         * reflection.h, reflection.c: mono_image_get_memberref_token()
18779         takes a type instead of a class, now. Added
18780         mono_image_get_array_token() to create tokens for the special
18781         multi-dim array methods.
18782
18783 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18784
18785         * assembly.c: handle modules (no assembly table). Split
18786         loading references in its own function.
18787         * class.c: handle moduleref resolution scope.
18788         * image.c, image.h: cache module name in image.
18789
18790 2002-06-07  Martin Baulig  <martin@gnome.org>
18791
18792         * reflection.c (mono_image_get_type_info): Only add a class layout entry
18793         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18794
18795 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18796
18797         * icall.c: more signature fixes that used uint instead of int.
18798
18799 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18800
18801         * reflection.c: fixed signature of field refs.
18802
18803 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18804
18805         * class.c, reflection.c: handle typerefs of nested types
18806         (both on read and when writing files).
18807
18808 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18809
18810         * icall.c: fix method signatures that tried to workaround the previous
18811         typo, d'oh!
18812
18813 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18814
18815         * debug-helpers.c: fix typo.
18816
18817 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18818
18819         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18820         rewrote the PE/COFF writing code (our programs are understood by the
18821         ms runtime, now).
18822
18823 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18824
18825         * gc.c, gc.h, icall.c: weakreference support.
18826
18827 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18828
18829         * Makefile.am, mono-config.c: use $(sysconfdir).
18830
18831 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18832
18833         * icall.c: changed default precision of Double.ToString() to 15.
18834         Fixed memory leak. Unified with Single.ToString.
18835
18836 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18837
18838         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18839
18840 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18841
18842         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18843         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18844         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18845         and myself.
18846
18847 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18848
18849         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18850
18851 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18852
18853         * reflection.c, socket-io.c: more compilation fixes.
18854
18855 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18856
18857         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18858         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18859         unicode.c: warning and compiler compatibility fixes.
18860
18861 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18862
18863         * class.h, metadata.c: fixed warnings/compilation errors.
18864
18865 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18866
18867         * Makefile.am, mono-config.c, mono-config.h: configuration file
18868         support routines.
18869         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18870         config file. Export methods to insert and lookup mappings.
18871
18872 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18873
18874         * reflection.c: handle types and boxed objects in custom attr
18875         constructors.
18876
18877 2002-05-30  Martin Baulig  <martin@gnome.org>
18878
18879         * debug-symfile.c
18880         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18881
18882 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18883
18884         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18885         to lookup the implmap row for a P/Invoke method.
18886         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18887         P/Invoke method from the runtime on an as needed basis.
18888
18889 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18890
18891         * metadata.c (mono_metadata_parse_signature): impl.
18892
18893 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18894
18895         * class.c: handle .pack directive.
18896
18897 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18898
18899         * object.c: initialize static fields with RVA data.
18900
18901 2002-05-25  Martin Baulig  <martin@gnome.org>
18902
18903         * debug-symfile.c
18904         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18905
18906 2002-05-24  Martin Baulig  <martin@gnome.org>
18907
18908         * debug-symfile.c
18909         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18910         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18911         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18912
18913 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18914
18915         * object.c: special case string ctros in invoke.
18916         * gc.c: silly whitespace changes.
18917
18918 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18919
18920         * threadpool.[ch]: impl. a threadpool that can
18921         be used by mint and mono.
18922
18923 2002-05-22  Martin Baulig  <martin@gnome.org>
18924
18925         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18926         The first argument is now a `MonoReflectionModuleBuilder *', the return
18927         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18928         `methods' field to get the method builder.  The `token' argument is the
18929         unfixed token.
18930
18931         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18932         invalid characters instead of g_assert_not_reached()ing.  This seems
18933         to be the behaviour of mscorlib.
18934
18935 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18936
18937         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18938         Hestilow to fix bug #25104
18939
18940 2002-05-21  Martin Baulig  <martin@gnome.org>
18941
18942         * debug-symfile.c (mono_debug_find_source_location): New function.
18943         Looks up an IL offset in the line number table and returns the source
18944         location as a string.
18945
18946 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18947
18948         * icall.c:
18949         (mono_double_ToStringImpl): changed %f by %g until we have something
18950         better.
18951
18952 2002-05-21  Nick Drochak  <ndrochak@gol.com>
18953
18954         * icall.c : Use different name for Math.Pow's icall.  Needed to check
18955         parameters first in C#.
18956
18957 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18958
18959         * icall.c, reflection.h: added icall to get info about an event.
18960
18961 2002-05-20  Radek Doulik  <rodo@ximian.com>
18962
18963         * object.c (mono_value_box): don't use memcpy for boxing on BIG
18964         endian
18965         (mono_value_box): don't use memcpy for small sizes on
18966         architectures with unaligned access
18967
18968 2002-05-20  Martin Baulig  <martin@gnome.org>
18969
18970         * reflection.c (mono_reflection_setup_internal_class): Don't crash
18971         if `tb->parent == NULL'.
18972         (mono_reflection_create_internal_class): New function.  This is
18973         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
18974         for enum types.
18975
18976         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
18977         New interncall.
18978
18979 2002-05-19  Martin Baulig  <martin@gnome.org>
18980
18981         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
18982         argument to get the length, don't default to the array length.
18983
18984 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
18985
18986         * assembly.c (mono_assembly_setrootdir): New function used to
18987         override the MONO_ASSEMBLIES directory.
18988
18989 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18990
18991         * icall.c: ValueType_GetHashCode() initialize local var.
18992
18993 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18994
18995         * reflection.c: sort custom attributes table.
18996
18997 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18998
18999         * reflection.c: support named args in custom attributes (write support).
19000
19001 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19002
19003         * reflection.c: fix finally position calculation.
19004
19005 2002-05-15  Radek Doulik  <rodo@ximian.com>
19006
19007         * reflection.c: fixed endianess at many places
19008
19009         * icall.c (ves_icall_InitializeArray): comment out debug msg
19010
19011 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
19012
19013         * object.c (mono_unhandled_exception): new function to handle
19014         unhandled exceptions.
19015         (mono_unhandled_exception): call the UnhandledException event.
19016         (mono_runtime_delegate_invoke): impl.
19017
19018 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
19019
19020         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
19021         returns the RVA, not the direct pointer to the data. Handle the case
19022         when the class size is fixed.
19023
19024 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19025
19026         * reflection.c: fix some endianess issues.
19027
19028 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
19029
19030         * object.c (mono_runtime_invoke): is now able to catch exceptions.
19031
19032         * threads.c (mono_thread_init): added a callback which is invoked
19033         at thread start.
19034
19035 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
19036         
19037         * icall.c: make GetHashCode return non-negative values.
19038
19039 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
19040
19041         * object.c, icall.c, gc.c: revert to address-based hashcode.
19042
19043 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
19044
19045         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
19046
19047 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19048
19049         * icall.c, class.c: special case <Module>.
19050
19051 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
19052
19053         * icall.c: fix bug in GetNow().
19054
19055 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
19056
19057         * object.c (mono_runtime_class_init): make sure that we call all
19058         static class constructors.
19059
19060 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19061
19062         * reflection.c: sort methodsemantics table.
19063
19064 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19065
19066         * reflection.h, reflection.c: honour init locals setting.
19067
19068 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
19069
19070         * icall.c: copied Double ToStringImpl for Single ToStringImpl
19071
19072 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19073
19074         * reflection.c: support ContructorBuilders in attribute blob creation.
19075
19076 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19077
19078         * reflection.c: some changes to build a binary that can be run
19079         directly in windows.
19080
19081 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
19082
19083         * loader.c: print a big message when an icall can't be found.
19084
19085 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19086
19087         * string-icalls.c: fix bug 24248.
19088
19089 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19090
19091         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
19092         icall.c, reflection.h: separate assembly loading by pathname and by
19093         assembly name. Use the MONO_PATH env var to search for assemblies.
19094
19095 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19096
19097         * assembly.c, image.h: add some support for assemblies
19098         with multiple modules.
19099         * class.c, class.h: export mono_class_from_typeref().
19100         * loader.c: remove duplicated code and use mono_class_from_typeref(),
19101         instead.
19102
19103 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19104
19105         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
19106         documentation says (the ECMA one is correct).
19107
19108 2002-05-02  Dick Porter  <dick@ximian.com>
19109
19110         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
19111         Don't name the synchronisation mutex.
19112
19113 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
19114
19115         * rand.c
19116         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
19117         Make the prototypes match.
19118         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
19119         Same.
19120
19121         * icall.c
19122         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
19123         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
19124         all systems have tm.tm_zone, so use strftime() with %Z to print
19125         the timezone abreviation into a temp string.
19126
19127         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
19128         rather than mono_array_addr() on a MonoString on Big Endian
19129         machines.
19130
19131 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
19132
19133         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
19134         fix bug 24041
19135
19136 2002-04-30  Dick Porter  <dick@ximian.com>
19137
19138         * socket-io.c: Cope with SOCKET being an integer rather than a
19139         pointer now.
19140
19141         * threads.c: Added Thread_free_internal, to deal with thread
19142         handle cleanup.  Moved calls to handle_store() and handle_remove()
19143         to start_wrapper(), so each can only be called once.  Allocate
19144         synchronisation blocks with GC_malloc(), and use GC finalisation
19145         to close the handles.
19146
19147         * icall.c: added System.Threading.Thread::Thread_free_internal
19148
19149 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19150
19151         * icall.c: support Environment.Exit, CommandLineArgs().
19152
19153 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19154
19155         * object.c, object.h: added mono_runtime_run_main () and
19156         mono_runtime_get_main_args () for use in System.Environment.
19157
19158 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19159
19160         * gc.c: fix thinko, enable actual finalization since the jit is now
19161         fixed.
19162
19163 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19164
19165         * gc.c, object.c: take into account that an object may be offset wrt the address
19166         returned by GC_malloc().
19167
19168 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19169
19170         * image.c: handle files without entries in the assembly table (modules).
19171
19172 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
19173
19174         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
19175         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
19176         allowed to be null when it's System.Object class setup.
19177
19178 2002-04-27  Martin Baulig  <martin@gnome.org>
19179
19180         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
19181         if `tb->parent == NULL' rather than crashing.
19182
19183 2002-04-28  Nick Drochak  <ndrochak@gol.com>
19184
19185         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
19186         calling acos() where asin() should have been called.
19187
19188 2002-04-26  Martin Baulig  <martin@gnome.org>
19189
19190         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
19191         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
19192         there's a subdirectory called `System', but we don't want to read that
19193         subdirectory as an assembly.
19194
19195 2002-04-25  Martin Baulig  <martin@gnome.org>
19196
19197         * debug-symfile.c: Reflect latest MonoString changes.
19198
19199 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19200
19201         * rand.c, rand.h: instance method icalls need to have an explicit
19202         this pointer as first argument in the C implementation.
19203
19204 2002-04-25  Nick Drochak <ndrochak@gol.com>
19205
19206         * icall.c: Fix typo in map for GetNonZeroBytes
19207
19208 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19209
19210         * string-icalls.c : String does now passes unit tests without any 
19211         errors, the following changes has been made:
19212         
19213         Implemented replace methods.
19214         Renaming of methods to (try) follow the standard.
19215         Fixed compare ordinal
19216         Made all memory allocated directly to function instead of via icall function.
19217         Small performance fix in is_in_array function
19218                         
19219  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
19220
19221         c (mono_string_Internal_ctor_charp_int_int):
19222         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
19223         sindex < 0, throw ArgumentOutOfRangeException instead of
19224         ArgumentNullException.
19225
19226         Added new check for length == 0, however
19227         I need to make it return String.Empty from the C code.
19228         
19229         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
19230         that calculate the length for us here.
19231         
19232         (mono_string_Internal_ctor_sbytep_int_int): Replaced
19233         mono_string_new_utf16 with mono_string_new, since value is utf8.
19234
19235 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19236
19237         * object.c: register the object for finalization if needed.
19238         Allocate one more char in the string for the terminating 0 char.
19239
19240 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19241
19242         * class.c, class.h, image.c: check if a type implemenst a destructor.
19243         Use the proper key for array class lookups.
19244         * icall.c: register the icalls in the System.GC class.
19245         * gc.c, gc.h: GC-related functions and icalls.
19246
19247 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19248
19249         * icall.c:
19250         * socket-io.c:
19251         * unicode.c: free some strings gotten from mono_string_to_utf8 and
19252         changed a couple of free () by g_free ().
19253
19254         * decimal.c: one-liner in the comments for decimal2string ().
19255
19256 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19257
19258         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
19259
19260 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19261
19262         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
19263         * object.c (mono_runtime_invoke_array) : handle null in params
19264
19265 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19266
19267         * string-icalls.c: fixed bug in split (one off bug)
19268
19269 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19270
19271         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
19272         * icalls.c: added String::Equals as internal method
19273
19274 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19275
19276         * threads.c: fixed bug in the double interlocked functions
19277
19278 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
19279
19280         * threads.c: implemented all of the new interlocked icalls.
19281         * string-icalls.c: fix a bug in insert.
19282         * icalls.c: added the icalls for interlocked, removed old string functions.
19283         
19284 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19285
19286         * loader.c: fix off-by-one error when reading argument names.
19287
19288 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19289
19290         * profiler.c: win32 counter implementation (untested).
19291         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
19292         (the latter needs testing and more complete impl. from win32 folks).
19293
19294 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
19295
19296         * object.c: mono_array_new_full workaround mono_array_class_get
19297         problem.
19298
19299 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19300
19301         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
19302         * object.h (mono_string_chars): Changed casting type.
19303
19304 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19305
19306         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
19307                            method signatures to use gunichar2 instead of gint16.
19308
19309 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
19310
19311         * object.h, object.c: domain-specific versions of mono_object_new and
19312         mono_array_new.
19313
19314 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
19315
19316         * object.c: changed String layout
19317
19318         * string-icalls.c (mono_string_Internal_ctor_chara): added
19319         internal string constructors.
19320
19321 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
19322
19323         * threads.c: pass 'this' to the thread start routine.
19324
19325 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19326
19327         * string-icalls.c: fix IndexOf and LastIndexOf. Now
19328         InternalCompareStr don't call twice mono_string_cmp_char for the last
19329         character. Improved performance in mono_string_cmp_char.
19330
19331 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19332
19333         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
19334         code into its own library: libmonoruntime.
19335
19336 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
19337
19338         * object.h, object.c: changed array format so that szarrays do not
19339         require a bounds structure.
19340         * icall.c, appdomain.c: support for new szarray format.
19341
19342 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
19343
19344         * metadata.c: compare also the retuns type when comparing signatures:
19345         we didn't do this as an optimization since really overloaded methods
19346         must differ also in the arguments, but this doesn't work with
19347         low-level IL code (or when using explicit conversion operators: see
19348         bug#23498 for an example).
19349
19350 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19351
19352         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
19353
19354 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19355
19356         * icall.c: make MonoType::GetElementType its own icall.
19357
19358 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19359
19360         * icall.c: remove MonoMethod_get_Name().
19361         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
19362         object.
19363
19364 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19365
19366         * string-icalls.c: optimized a few methods.
19367
19368 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19369
19370         * icall.c: added all new string internal calls
19371         * string-icalls.c: added, new string internal call implementation.
19372         * object.c: added mono_string_new_size for allocating a string a size
19373
19374 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
19375
19376         * object.c (mono_object_isinst): use the same code as in the
19377         optimized x86 version.
19378
19379 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19380
19381         * profiler.c: TSC-based timer code (faster and more accurate).
19382         Not hooked up in configure, yet (set USE_X86TSC to 1).
19383
19384 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
19385
19386         * profiler.c, profiler.h: track time spent compiling methods.
19387         * threads.c: track thread creation/destruction.
19388
19389 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
19390
19391         * profiler.c, profiler.h, profiler-private.h: profiling interface
19392         and sample implementation. Moved here so that it can be used also by
19393         the jit.
19394
19395 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
19396
19397         * reflection.c, reflection.h: keep types and other handles separate in
19398         the hash tables for referred tokens. Add guid for modules.
19399
19400 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19401
19402         * assembly.c: fix bugs found with valgrind.
19403         * metadata.h, metadata.c: added mono_metadata_guid_heap().
19404
19405 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
19406
19407         * threads: added icall support for getting current domain for
19408                    the thread.
19409  
19410 2002-04-13  Martin Baulig  <martin@gnome.org>
19411
19412         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
19413         (MonoDebugVarInfo): Added `index' field for register based addresses.
19414         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
19415         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
19416         `MonoDebugVarInfo *params' and `guint32 this_offset' with
19417         `MonoDebugVarInfo *this_var'.
19418
19419         * debug-symfile.c (relocate_variable): New static function to write
19420         a location description for a local variable or method parameter.
19421
19422 2002-04-12  Martin Baulig  <martin@gnome.org>
19423
19424         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
19425         stack offset and begin/end scope address of a local variable.
19426         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
19427         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
19428         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
19429
19430         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
19431         Added new relocation types for start/end scope of a local variable.
19432
19433 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19434
19435         * object.h: add mono_object_domain() macro.
19436         * reflection.c: handle typespecs.
19437         * icall.c: MonoMethod::get_Name() implementation.
19438
19439 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19440
19441         * icall.c: String::GetHashCode() icall implementation.
19442
19443 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19444
19445         * icall.c: String::IndexOfAny icall.
19446         * object.c, object.h: make array->max_length more useful.
19447         Intrduced mono_object_class() and mono_string_length() macros.
19448
19449 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19450
19451         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
19452         instead of g_unichar_isdigit.
19453
19454 2002-04-11  Nick Drochak  <ndrochak@gol.com>
19455
19456         * icall.c: Implement a simple Double.ToString().
19457
19458 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19459
19460         * appdomain.h: only io-layer.h is supposed to be included.
19461         * icall.c: explicitly import environ. Fix warning.
19462
19463 2002-04-10  Nick Drochak  <ndrochak@gol.com>
19464
19465         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
19466                 return true even if it's not Daylight Savings time.
19467                 Only return false for the case where the function isn't
19468                 implemented for a plaform (read Windows).
19469
19470 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19471
19472         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
19473         data with a mutex.
19474
19475 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
19476
19477         * mempool.c (mono_mempool_alloc): only use g_malloc when
19478         absolutely necessary.
19479
19480 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
19481
19482         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
19483
19484         * class.c (mono_class_vtable): use domain mempool to allocate vtable
19485         (mono_class_proxy_vtable): use domain mempool
19486
19487 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19488
19489         * appdomain.h, appdomain.c: split initialization that requires the
19490         execution engine support into mono_runtime_init().
19491
19492 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
19493
19494         * class.c (mono_class_init): don't include vtable inside MonoClass
19495         to save some memory, gather some statistics.
19496         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
19497
19498 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19499
19500         * icall.c: internalcall implementation for ValueType.Equals().
19501
19502 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
19503
19504         * object.c (mono_message_init): moved 
19505         (mono_runtime_exec_main): new arch. independent impl.
19506         (mono_runtime_invoke_array): new method - like
19507         mono_runtime_invoke, but you can pass an array of objects.
19508         (mono_remoting_invoke): new arch. independent impl.
19509         (mono_message_invoke): new arch. independent impl.
19510         (mono_runtime_class_init): new arch. independent impl.
19511         (mono_runtime_object_init): new arch. independent impl.
19512
19513 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19514
19515         * metadata.c, object.c, reflection.c: documented the exported
19516         functions.
19517
19518 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19519
19520         * icall.c: simpler code to pass the assembly builder data to corlib.
19521         Implement GetNestedTypes() internalcall.
19522
19523 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19524
19525         * class.c: warn if a type can't be loaded.
19526
19527 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
19528
19529         * image.h: typedef MonoImageOpenStatus
19530         * types.h: removed unused file
19531         
19532 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
19533
19534         * icall.c: Enum_ToObject accepts enum value arguments.
19535
19536 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19537
19538         * class.c: move initialization of properties, events and nested
19539         classes, so that they happen for interfaces, too.
19540
19541 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19542
19543         * icall.c: cleanup some ugly casts in Array_SetValue*.
19544
19545 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19546
19547         * icall.c: the values array fro enums is of the correct type, now.
19548         Implement (correctly) getFullName instead of assQualifiedName for
19549         MonoType.
19550         * reflection.h, reflection.c: added mono_type_get_name ().
19551
19552 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19553
19554         * assembly.c, image.h: for each MonoImage, record from wich assembly
19555         it was loaded.
19556         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
19557         Make Type.Assembly work.
19558
19559 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
19560
19561         * debug-symfile.h: use char* instead of gpointer to avoid
19562         unnecessary casts.
19563
19564         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
19565
19566         * icall.c (ves_icall_InternalExecute): impl. FielSetter
19567         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
19568
19569 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
19570
19571         * icall.c (mono_message_init): impl. (code cleanup)
19572         (ves_icall_InternalExecute): impl. FieldGetter
19573
19574         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
19575         defined we call all (non-static)methods through the vtable. 
19576
19577 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
19578
19579         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
19580         finalizer even though the memory is still referenced (and the chunk of
19581         memory is not freed).
19582
19583 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19584
19585         * assembly.c: fix brokeness.
19586
19587 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
19588
19589         * class.c: kill some warnings. Check explicit interface method
19590         implementation also without considering the namespace.
19591         Load also literal strings in static class data.
19592
19593 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
19594
19595         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
19596         (default_assembly_name_resolver): Make the resolver take the
19597         "base" directory where the assembly was originally defined, so we
19598         can load DLLs that are in the same directory as the assembly that
19599         is being referenced.
19600
19601 2002-03-28  Dick Porter  <dick@ximian.com>
19602
19603         * file-io.h: 
19604         * file-io.c:
19605         * socket-io.c: 
19606         * unicode.h: 
19607         * unicode.c: Warning cleanups
19608
19609 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
19610
19611         * object.h, reflection.h: use the correct type instead of MonoObject.
19612
19613 2002-03-28  Martin Baulig  <martin@gnome.org>
19614
19615         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
19616         (mono_debug_update_symbol_file): Initialize classes if necessary.
19617
19618 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19619
19620         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
19621         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
19622
19623 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
19624
19625         * assembly.h: fix function prototype.
19626         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
19627         * mono-endian.h: use const cast.
19628
19629 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19630
19631         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
19632
19633 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19634
19635         * loader.c: don't assert when a typeref can't be loaded, give
19636         a chance to the runtime to trow an exception instead.
19637         * loader.h: fix warning.
19638
19639 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19640
19641         * class.c (mono_class_proxy_vtable): added proxy support
19642
19643 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
19644
19645         * icall.c: removed last of PAL calls, added System.Environment
19646         * file-io.h, file-io.c: MonoIO implementation
19647         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
19648
19649 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19650
19651         * appdomain.c: do not use the byte marker in ldstr table lookup.
19652         * debug-helpers.c: allow two ':' to separate class and method name.
19653         * object.c: allocate arrays bounds with the GC, too.
19654         * verify: add a few more checks.
19655
19656 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
19657
19658         * reflection.c: output also literal strings. Allocate parameter data
19659         with GC_malloc() (thanks, Martin, for catching this!).
19660
19661 2002-03-26  Martin Baulig  <martin@gnome.org>
19662
19663         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
19664         include the `this' offset in the `param_offsets'.
19665
19666 2002-03-25  Martin Baulig  <martin@gnome.org>
19667
19668         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
19669         mono_debug_get_class() function to get the classes. Added new
19670         relocation types for arrays and strings.
19671         (mono_debug_get_class): New static function to search in all
19672         referenced assemblies for a metadata token.
19673
19674         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
19675
19676 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19677
19678         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
19679         hold gc-allocated objects. Make the string heap a stream like the
19680         others. Removed duplicated code when writing stream info.
19681         Added asserts to catch possible buffer overflows. Set the sorted map
19682         for tables that need sorting. Added some documentation.
19683
19684 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
19685
19686         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
19687         for interned strings and vtables.
19688
19689 2002-03-24  Martin Baulig  <martin@gnome.org>
19690
19691         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
19692         it in the array since it was created with g_slist_prepend().
19693
19694 2002-03-24  Martin Baulig  <martin@gnome.org>
19695
19696         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
19697         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
19698         (mono_debug_method_from_token): Renamed to
19699         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
19700         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
19701
19702         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
19703         relocation types.
19704
19705         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
19706
19707 2002-03-24  Martin Baulig  <martin@gnome.org>
19708
19709         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
19710         (mono_debug_method_from_token): New func.
19711
19712         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
19713         New interncall, calls mono_debug_local_type_from_signature().
19714         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
19715         calls mono_debug_method_from_token().
19716
19717 2002-03-23  Martin Baulig  <martin@gnome.org>
19718
19719         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
19720         specifies the number of bytes to be converted, not the array size.
19721         Return the number of chars, not the number of bytes.
19722         (ves_icall_iconv_get_chars): The `byteCount' argument
19723         specifies the number of bytes to be converted, not the array size.
19724
19725 2002-03-23  Martin Baulig  <martin@gnome.org>
19726
19727         * reflection.h (MonoReflectionSigHelper): New type.
19728
19729         * reflection.c (mono_reflection_sighelper_get_signature_local),
19730         (mono_reflection_sighelper_get_signature_local): New functions.
19731
19732         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
19733         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
19734         interncalls.
19735
19736 2002-03-23  Martin Baulig  <martin@gnome.org>
19737
19738         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
19739         is_writeable is set.
19740         (mono_raw_buffer_update): New function to write the modified map
19741         back to disk.
19742
19743         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
19744
19745         * debug-symfile.c (mono_debug_update_symbol_file): Call
19746         mono_raw_buffer_update() when done writing.
19747
19748 2002-03-23  Martin Baulig  <martin@gnome.org>
19749
19750         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
19751
19752         * debug-symfile.c: Added support for arguments and local variables.
19753
19754 2002-03-23  Dick Porter  <dick@ximian.com>
19755
19756         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
19757         protected by ifdefs, hence breaking the w32 build.
19758
19759 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19760
19761         * object.c: implement is_interned() the right way.
19762
19763 2002-03-21  Martin Baulig  <martin@gnome.org>
19764
19765         * debug-symfile.[ch]: New files to handle debugging information
19766         files. There's also support to dynamically update these symbol
19767         files to include machine dependent information.
19768
19769 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
19770
19771         * threads.c (mono_thread_create): new function to create thread
19772         from C
19773
19774 2002-03-20  Martin Baulig  <martin@gnome.org>
19775
19776         * icall.c (ves_icall_InternalInvoke): Create a new object if the
19777         method is a constructor.
19778         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
19779         points to ves_icall_InternalInvoke().
19780
19781 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
19782
19783         * file-io.c: Flush shouldn't throw exceptions.
19784
19785 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
19786
19787         * file-io.c: FileStream flush support; FileSetLength now
19788         restores file pointer.
19789
19790 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19791
19792         * class.c: set image for pointer classes.
19793
19794 2002/03/19  Nick Drochak <ndrochak@gol.com>
19795
19796         * sysmath.c: Forgot one.
19797
19798 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19799
19800         * sysmath.c: Avoid redefining existing names.
19801
19802 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19803
19804         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19805         handled by runtime as icall rather than dllimport from libm.so
19806         * file-io.c, file-io.h: fixed handle argument type.
19807
19808 2002-03-18  Dick Porter  <dick@ximian.com>
19809
19810         * reflection.c (mono_image_get_type_info): rename interface to
19811         iface, because of "#define interface struct" on windows.
19812
19813 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19814
19815         * class.c, class.h: rename and export mono_ptr_class_get().
19816         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19817         * reflection.c, reflection.h, icall.c: better/saner type name
19818         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19819         method signatures.
19820
19821 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19822
19823         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19824
19825         * icall.c (ves_icall_InternalInvoke): impl.
19826
19827 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19828
19829         * reflection.c: output the interface map table, too.
19830
19831 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19832
19833         * class.c (class_compute_field_layout): separate computation of 
19834         static field layout
19835
19836 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19837
19838         * icall.c: added System.Buffer support.
19839         * file-io.c: moved file icalls from PAL to FileStream.
19840
19841 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19842
19843         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19844
19845 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19846
19847         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19848
19849 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19850
19851         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19852
19853 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19854
19855         * debug-helpers.{c,h}: moved here from monograph some useful functions
19856         to locate a method by name/signature in a class or image. Included
19857         also a small and flexible IL disassembler.
19858
19859 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19860
19861         * reflection.c: fixup tokens in methods with small header size, too.
19862
19863 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19864
19865         * object.c (mono_string_to_utf8): remove assert(!error), instead
19866         print a warning. 
19867
19868 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19869
19870         * icall.c: update to the new mono_Array_class_get interface.
19871
19872 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19873
19874         * appdomain.c, object.c: Boehm-GC enable.
19875         * icall.c: make get_data_chunk() support split data requests.
19876         Ensure a class is initialized in more cases. Return only the first
19877         property found in GetProperties() or the compiler gets confused. 
19878         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19879         * reflection.h, reflection.c: add fixup mechanism for field and method
19880         tokens. Initialize assembly->typeref in a single place. Output
19881         properties after events. Support custom attributes for events, too.
19882         Typo fix for paramter custom attrs.
19883
19884 2002-03-07  Martin Baulig  <martin@gnome.org>
19885
19886         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19887
19888 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19889
19890         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19891
19892 2002-03-06  Martin Baulig  <martin@gnome.org>
19893
19894         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19895         non-zero lower bounds. See testcases #F10-#F13.
19896
19897 2002-03-05  Martin Baulig  <martin@gnome.org>
19898
19899         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19900
19901         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19902         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19903         here.
19904         (ves_icall_System_Array_SetValue): Likewise.
19905         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19906         as argument and does the actual work. This function is used when copying a
19907         multi-dimensional array.
19908         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19909         now do all the widening conversions of value types.
19910         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19911
19912 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19913
19914         * class.c: remove some magic numbers and use the smbolic names,
19915         instead. Added init_events() to load event info at class init time.
19916         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19917         and mono_metadata_methods_from_event().
19918         * reflection.h, reflection.c: added support for writing out the evnets
19919         related information.
19920
19921 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19922
19923         * reflection.h, icall.c: use a different method (GetInterfaces)
19924         to gather interface info and add isbyref, isprimitive and
19925         ispointer to the ves_icall_get_type_info() return value.
19926
19927 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19928
19929         * class.h: stared adding support for events.
19930         * icall.c: split find_members implementation. Added debug icall to get
19931         the address of an object.
19932         * reflection.c: handle TypeBuilders in mono_type_get_object().
19933
19934 2002-03-01  Martin Baulig  <martin@gnome.org>
19935
19936         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19937         ArgumentOutOfRangeException(), not an ArgumentException().
19938         (ves_icall_System_Array_GetLowerBound): Likewise.
19939         (ves_icall_System_Array_GetValue): Improved argument checking.
19940         (ves_icall_System_Array_SetValue): Improved argument checking.
19941
19942 2002-03-01  Martin Baulig  <martin@gnome.org>
19943
19944         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19945         called with invalid arguments rather than just dying with g_assert().
19946         (ves_icall_System_Array_SetValue): Likewise.
19947         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19948         raise a NotImplementedException instead.
19949         (ves_icall_System_Array_GetLength): Added argument checking.
19950         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19951
19952 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
19953
19954         * object.h (mono_assert): new macros mono_assert and
19955         mono_assert_not_reached
19956
19957 2002-02-28  Martin Baulig  <martin@gnome.org>
19958
19959         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
19960         and "System::String::IsInterned" to "System::String::_IsInterned".
19961
19962 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
19963
19964         * icall.c: remove hacks for typebuilder. Added icall to create a
19965         modified type from a tybebuilder.
19966         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
19967         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
19968         to create a backing MonoClass for a TypeBuilder.
19969
19970 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19971
19972         * class.c, class.h: more refactoring of class init.
19973         Export mono_class_setup_mono_type() and mono_class_setup_parent().
19974
19975 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
19976
19977         * marshal.c, marshal.h: start of marshaling interface.
19978
19979 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19980
19981         * icall.c: fix order in assembly qualified name icall.
19982
19983 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19984
19985         * class.c: do not free str, since we store it in the hash table.
19986         * reflection.h: add label field to MonoILExceptionInfo.
19987         * reflection.c: handle references to more than one assembly. Handle
19988         case when there isn't a module created in the assembly.
19989
19990 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19991
19992         * class.c: Fix typo. Start refactoring of class init code.
19993
19994 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19995
19996         * appdomain.c: exit with 1 on error.
19997         * class.c: we already have the name in MonoClassField.
19998         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
19999         MonoStreamHeader instead of an offset of image->raw_metadata.
20000
20001 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
20002
20003         * appdomain.c (mono_init): Be even more descriptive about the error.
20004
20005 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
20006
20007         * appdomain.c: give the user an informative message when corlib can't
20008         be loaded.
20009
20010 2002-02-26  Martin Baulig  <martin@gnome.org>
20011
20012         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
20013         New icall to get the time zone data.
20014
20015 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20016
20017         * reflection.c: set virtual and raw size of section correctly.
20018         * threads.c: transfer domain information to newly created threads.
20019
20020 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
20021
20022         * class.c: when instancing a class in a domain, load the default
20023         vaules for static fields from the constant table. Fix System.Enum to
20024         not be an enum.
20025         * icall.c: implement Object::GetType() internalcall. Implemented
20026         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
20027         Fixed checking of binding flags in find_members().
20028         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
20029         * reflection.c: handle enumerations when writing to the constant
20030         table. Use a different object cache for types.
20031
20032
20033 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
20034
20035         * object.c (mono_object_isinst): fix for arrays
20036
20037         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
20038
20039 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
20040
20041         * object.c: don't use mprotect ()  and fix intern pool hash table
20042         lookup for big endian systems.
20043
20044 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20045
20046         * icall.c: change type_is_subtype_of () signature.
20047
20048 2002-02-21  Mark Crichton  <crichton@gimp.org>
20049
20050         * rand.c, rand.h: Added random number generator for
20051         System.Security.Cryptography classes.
20052
20053         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
20054
20055         * icall.c: Added System.Security.Cryptography calls.
20056
20057 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
20058
20059         * class.c, icall.c, metadata.c: better support for pointer types.
20060         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
20061         * reflection.c: Add support for getting custom attrs for properties
20062         and simplify some code.
20063
20064 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20065
20066         * icall.c: change getToken () and add custom attribute GetBlob()helper
20067         method.
20068         * reflection.h: add custom attrs array to the reflection builder structures.
20069         * reflection.c: encode and emit custom attributes for all the relevant
20070         reflection objects. Cache fieldref and methodref tokens. Change
20071         mono_image_create_token() interface to take a MonoDynamicAssembly.
20072         More complete custom attributes decoder. Load custom attributes for
20073         Assembly, Field, Method and Constructor objects, too. Make the
20074         returned array an Attribute[] one, not object[]. Added
20075         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
20076         custom attribute constructor.
20077
20078 2002-02-20  Dick Porter  <dick@ximian.com>
20079
20080         * icall.c:
20081         * rawbuffer.c:
20082         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
20083         problem code out for now).
20084
20085 2002-02-19  Radek Doulik  <rodo@ximian.com>
20086
20087         * object.c (mono_ldstr): use hash table to avoid multiple swapping
20088
20089 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
20090
20091         * icall.c: register the GetCustomAttributes method.
20092         * object.c, object.h: add mono_string_new_len ().
20093         * reflection.h, reflection.c: added mono_runtime_invoke(),
20094         mono_install_runtime_invoke(). Added
20095         mono_reflection_get_custom_attrs () to load custom attributes and
20096         create the attribute objects.
20097
20098 2002-02-19  Dick Porter  <dick@ximian.com>
20099         * threads-dummy-types.c:
20100         * threads-dummy-types.h:
20101         * threads-dummy.c:
20102         * threads-dummy.h:
20103         * threads-pthread-types.c:
20104         * threads-pthread-types.h:
20105         * threads-pthread.c:
20106         * threads-pthread.h:  Deleted obsolete files
20107
20108 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
20109
20110         * class.c (mono_class_vtable): runtime init the class when we
20111         allocate static class data.
20112
20113         * icall.c (ves_icall_System_Array_SetValue): check for null values.
20114
20115         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
20116         and String - but we will need generic marshalling support in the
20117         future. 
20118         (mono_init): set the domain name in a ms compatible way
20119
20120         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
20121         String[].
20122
20123 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
20124
20125         * object.c (mono_array_clone): use alloca() instead of g_malloc  
20126         for sizes
20127
20128         * appdomain.c (mono_domain_unload): impl.
20129
20130 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20131
20132         * appdomain.c, object.c: fix intern pool implementation.
20133         * class.c: fix alignment code.
20134
20135 2002-02-16  Radek Doulik  <rodo@ximian.com>
20136
20137         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
20138         and s2 > s1, just copy lower bytes to be compatible with little
20139         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
20140         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
20141
20142         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
20143         force big_endian to be 1 for big endian machines 
20144         (ves_icall_iconv_new_decoder): ditto
20145
20146 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
20147
20148         * socket-io.c (convert_sockopt_level_and_name): If the system
20149         doesn't define SOL_IP or SOL_TCP, get them by hand using
20150         getprotobyname() and caching the values (because this could be a
20151         slow operation).
20152         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
20153         Use the appropriate struct when the system does support it. Ie,
20154         not all systems have struct ip_mreqn so use struct ip_mreq when
20155         appropriate.
20156
20157 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
20158
20159         * reflection.c: handle finally clauses.
20160
20161 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
20162
20163         * socket-io.c: use g_snprintf() instead of snprintf.
20164
20165 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
20166
20167         * reflection.c (mono_param_get_objects): Cast second argument to
20168         mono_method_get_param_names to a const char** to silence the
20169         compiler warning.
20170
20171         * appdomain.c (mono_domain_assembly_open): Put parens around the
20172         truth statement in the for-loop.
20173
20174         * unicode.c (iconv_convert): Got rid of a compiler warning about
20175         int i being unused when the system has a new iconv.
20176         (iconv_get_length): Same.
20177
20178         * image.c (load_class_names): Cast the second argument to
20179         g_hash_table_insert() to char* to hush compiler warnings about the
20180         arg being a const.
20181         (mono_image_open): Same here.
20182
20183         * socket-io.c: Don't conditionally include sys/filio.h or
20184         sys/sockio.h here anymore since we now get them from
20185         io-layer/io-layer.h
20186         (inet_pton): If the system doesn't support inet_aton, implement
20187         using inet_addr and also #define INADDR_NONE if it isn't defined
20188         by the system.
20189
20190 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
20191
20192         * metadata.c, metadata.h: added function to get packing and size info
20193         of a typedef.
20194         * reflection.h, reflection.c: handle field RVA data. Save info about
20195         the table layout if needed. Assign typedef indexes to all the types
20196         before dumping the info about them to avoid forward reference problems.
20197
20198 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
20199
20200         * socket-io.c (convert_sockopt_level_and_name): ifdef
20201         SO_ACCEPTCONN because it is not defined on my system (old debian)
20202
20203 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20204
20205         * opcode.c: use stddef.h to get NULL.
20206
20207 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
20208
20209         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
20210         for FIONBIO, FIONREAD and SIOCATMARK.
20211         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
20212         define INADDR_NONE and besides, inet_addr() is deprecated and
20213         should not be used. Use inet_pton() instead - it also has the
20214         added bonus that it can easily handle IPv6 addresses as well.
20215         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
20216
20217 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
20218
20219         * decimal.c: remove _MSC_VER conditional.
20220
20221 2002-02-13  Dick Porter  <dick@ximian.com>
20222
20223         * socket-io.c: 
20224         * icall.c: Internal calls for Blocking, Select, Shutdown,
20225         GetSocketOption and SetSocketOption
20226
20227 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20228
20229         * assembly.cs: better resolver: use it instead of some kludgy
20230         code.
20231
20232 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
20233
20234         * reflection.c: the best way to speed-up the compiler is to avoid
20235         infinite loops.
20236
20237 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
20238
20239         * class.c (mono_class_vtable): changed the object layout
20240         (obj->vtable->class). 
20241         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
20242
20243 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20244
20245         * assembly.c: look for assemblies in the assembly dir, too.
20246
20247 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20248
20249         * class.c: fix thinko in mono_class_from_type().
20250
20251 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20252
20253         * exception.h, exception.c: added TypeLoadException.
20254         * object.h, object.c: added mono_array_clone ().
20255         * icall.c: handle throwOnError in AssemblyGetType().
20256         Added Array.Clone().
20257         * opcode.h, opcode.c: use a single value for the opcode val.
20258         Compile fix for non-gcc compilers.
20259
20260 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
20261
20262         * opcodes.c, opcodes.h: export interesting info about opcodes.
20263
20264 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
20265
20266         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
20267         icalls. 
20268
20269         * class.c (class_compute_field_layout): set element_class for enums
20270         (mono_class_create_from_typedef): set element_class for normal classes
20271
20272         * icall.c (ves_icall_System_Enum_get_value): impl.
20273
20274         * class.c (mono_class_create_from_typedef): do not set valuetype
20275         flag for System.ValueType and System.Enum
20276
20277 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
20278
20279         * unicode.c (iconv_convert): fix big endian problem.
20280
20281 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20282
20283         * class.c: add asserts if we are ever going to scribble over memory.
20284         * socket-io.c: not all systems have AF_IRDA defined.
20285
20286 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
20287
20288         * class.c (class_compute_field_layout): do not consider static
20289         fields to compute alignment
20290
20291 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
20292
20293         * appdomain.c (mono_appdomain_get): impl.
20294         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
20295
20296 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
20297
20298         * icall.c: ignore "file://" prefix when loading an assembly.
20299
20300 2002-01-23  Dick Porter  <dick@ximian.com>
20301
20302         * socket-io.c:
20303         * icall.c:
20304         * Makefile.am: Added socket support
20305
20306 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
20307
20308         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
20309         code back.  This should return the assemblies that are loaded by
20310         the runtime on behalf of an application domain. 
20311
20312         The current implementation is still broken, it just returns every
20313         assembly loaded, but until we get real applications domain this
20314         will do.
20315
20316 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
20317
20318         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
20319         AppDomain object.
20320
20321 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
20322
20323         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
20324         the mono_class_from_name lookup.
20325         (ves_icall_get_parameter_info): ditto.
20326         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
20327         method.
20328         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
20329
20330 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
20331
20332         * class.c: load also nested classes on class init.
20333         System.ValueType instance methods gets passed boxed
20334         values, unless methods in derived classed that get a pointer to the
20335         data.
20336         * icall.c: use better name parsing code in GetType().
20337         * image.c, image.h: add mono_image_loaded ().
20338         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
20339         * reflection.c, reflection.h: added mono_reflection_parse_type().
20340
20341 2002-01-22  Veronica De Santis <veron78@interfree.it>
20342
20343         * icall.c : Added mapping of internal calls for Manual and Auto reset events
20344         * threads.c : Added the implementation of internal calls for events
20345         * threads.h : Added prototypes of internal calls for events
20346         
20347 2002-01-21  Radek Doulik  <rodo@ximian.com>
20348
20349         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
20350
20351 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
20352
20353         * class.c (mono_class_init): set min_align to 1 (instead of 0)
20354         (mono_class_value_size): use min_align
20355
20356 2002-01-20  Dick Porter  <dick@ximian.com>
20357
20358         * threads.h:
20359         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
20360         so it compiles on w32.
20361
20362 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
20363
20364         * metadata.c (mono_type_stack_size): impl.
20365
20366         * class.c (mono_class_get_field): impl. memberref token
20367
20368 2002-01-16 Veronica De Santis <veron78@@interfree.it>
20369
20370         * icall.h : Added the internal calls mapping for CreateMutex_internal
20371                     and ReleaseMutex_internal.
20372         * threads.h : Added the prototype of mutexes internal calls.
20373         * threads.c : Added the implementations of mutexes internal calls.
20374
20375 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
20376
20377         * metaparse.h: removed unused file.
20378         * reflection.c, reflection.h: added stream_data_align () function 
20379         to align data in streams and keep stream aligned. Add support for
20380         exception support in method headers.
20381
20382 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
20383
20384         * unicode.c: make iconv_convert () return the number of bytess written
20385         in the output buffer.
20386
20387 2002-01-15  Dick Porter  <dick@ximian.com>
20388         * threads.c: Make the runtime's idea of infinite timeouts coincide
20389         with the class library's
20390
20391         Fix a particularly egregious bug in mono_thread_cleanup(). That
20392         code was so utterly bogus it must have been written on a Monday.
20393
20394 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
20395
20396         * reflection.h: add subtypes field to TypeBuilder.
20397         * reflection.c: encode constants for literal fields.
20398         Handle subtypes. Fix user string token (and add a zero byte)
20399         at the end.
20400         
20401 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
20402
20403         * class.c (mono_class_init): bug fix: assign slot numbers for
20404         abstract methods.
20405
20406 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20407
20408         * reflection.c: don't try to output a code RVA for abstract methods.
20409         Small fixes for method header format. Output parameter info to the
20410         ParamDef table. Save method overriding info to MethodImpl table.
20411         Fix property support. Allow typedef.extends to be a type in the
20412         building assembly.
20413         * verify.c: fix off-by-one error.
20414
20415 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
20416
20417         * class.c: fix mono_class_from_mono_type () for szarray types.
20418         Remove unused cache check in mono_class_from_type_spec().
20419         * icall.c: *type_from_name () functions handle simple arrays and byref.
20420         * reflection.c: handle byref and szarray types. Handle methods without
20421         body (gets P/Invoke compilation working). Handle types and fields in
20422         get_token ().
20423         * reflection.h: add rank to MonoTypeInfo.
20424
20425 2002-01-10  Dick Porter  <dick@ximian.com>
20426
20427         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
20428         internal calls
20429
20430 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
20431
20432         * icall.c: initialize class in type_from_handle ().
20433         Loop also in parent classes for get_method ().
20434         * reflection.c: properly encode class and valuetype types.
20435         Start on encoding TypeBuilder types. Handle fieldrefs.
20436         Use correct length when registering a user string.
20437         Handle ConstructorBuilder and MonoMethod in get_token ().
20438         Make mono_type_get_object () aware of cached types.
20439         * object.c: back out change to mono_string_new ().
20440
20441 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
20442         * object.c: mono_string_new should return a NULL when the string 
20443         passed in is NULL -- not try to deference it.
20444         
20445 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20446
20447         * icall.c: hack to make IsSubType work for TypeBuilders.
20448         * reflection.c: emit constructors before methods.
20449         Retrieve param names in mono_param_get_objects().
20450
20451 2002/01/05  Nick Drochak  <ndrochak@gol.com>
20452
20453         * Makefile.am: fix list of headers and sources so automake 1.5
20454         doesn't complain. Removed \# at end of list.
20455
20456 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
20457
20458         * reflection.c: get token for a method ref. Set return type of
20459         constructor to void.
20460         * loader.c: debug message.
20461         * class.c: typo fix.
20462
20463 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
20464
20465         * icall.c: fix array init with rank > 1. FindMembers
20466         loops in parent class as well.
20467         * image.c: do not insert nested types in name cache.
20468         * reflection.c: warning fix.
20469         * reflection.h: add override method (for interface impl).
20470
20471 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
20472
20473         * metadata.c: fix customattr decoding.
20474
20475 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
20476
20477         * rawbuffer.cs: Added native Win32 implementation, avoids using
20478         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
20479
20480 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
20481
20482         * class.c: make the low-level routines handle the cache.
20483
20484 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
20485
20486         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
20487
20488 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
20489
20490         * class.c: fix mono_array_element_size() for objects.
20491         * class.h, class.c: add properties to MonoClass and load them
20492         at init time.
20493         * icall.c: check with isinst() when assigning a value to an array
20494         instead of requiring the classes to match exactly.
20495         Implemented icall for System.Type::GetType().
20496         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
20497         enums. Handle bindingflags when looking for methods and fields.
20498         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
20499         and mono_metadata_methods_from_property().
20500         * reflection.h, reflection.c: added structures for propreties,
20501         parameters and enums. Implemented mono_property_get_object() and
20502         mono_param_get_objects().
20503
20504 2001-12-18  Dick Porter  <dick@ximian.com>
20505
20506         * file-io.c: Use mono_string_to_utf16() instead of
20507         mono_string_chars()
20508
20509         * object.c: Added mono_string_to_utf16(), which copies the non
20510         NULL-terminated MonoString into a new double-null-terminated
20511         buffer.
20512
20513 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
20514
20515         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
20516
20517 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
20518
20519         * file-io.c: raise exceptions if handle is invalid.
20520
20521 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
20522
20523         * assembly.c: yet another check for mscorlib.
20524         * class.c, class.h: load nesting info for classes.
20525         * icall.c: many new functions to support the Reflection classes.
20526         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
20527         * reflection.h, reflection.c: mono_image_create_token(),
20528         mono_assembly_get_object(), mono_type_get_object(),
20529         mono_method_get_object(), mono_field_get_object(): methods to return
20530         objects that parallel the C representation of assemblies, types,
20531         methods, fields.
20532
20533 2001-12-11  Dick Porter  <dick@ximian.com>
20534
20535         * icall.c:
20536         * file-io.c: Internal calls for file IO.
20537
20538 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
20539
20540         * tabledefs.h: missing FileAttributes.
20541         * verify.h, verify.c: use is_valid_string () to simplify and check for
20542         valid strings more correctly. Fix warnings and speeling.
20543         Check more tables: Filed, File, ModuleRef, StandAloneSig.
20544         Check code: branches, maxstack, method calls.
20545
20546 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
20547
20548         * object.c (mono_object_allocate): removed static, so that the jit
20549         can allocate value types.
20550
20551         * icall.c (ves_icall_System_DateTime_GetNow): impl.
20552
20553 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20554
20555         * class.c: init enum types right away and register the
20556         token->MonoClass map in mono_class_create_from_typedef ().
20557         * verify.h, verify.c: first cut of the verifier.
20558         * pedump.c: add --verify switch to verify metadata tables.
20559         * tabledefs.h: add some missing enums.
20560
20561 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
20562
20563         * class.c (mono_install_runtime_class_init): impl.
20564         (mono_class_init): renamed mono_class_metadata_init to
20565         mono_class_init, also removed the metadata_inited flag
20566
20567         * object.c (mono_object_isinst): use faster algorithm
20568
20569 2001-11-30  Radek Doulik  <rodo@ximian.com>
20570
20571         * mono-endian.h: reverted last change
20572         added function prototypes
20573
20574         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
20575         add mono-endian.c back
20576
20577         * mono-endian.c: returned back, as Paolo pointed out, it's needed
20578         for unaligned access, I've mistaked it with endianess. I am
20579         sorry.
20580         (mono_read16): fix reverted endianess
20581         (mono_read64): ditto
20582         (mono_read32): ditto
20583
20584 2001-11-30  Dick Porter  <dick@ximian.com>
20585
20586         * exception.c: Implement mono_exception_from_name()
20587
20588 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20589
20590         * metadata.h, metadata.c: remove params_size and locals_size and their
20591         calculation from the metadata code: they are only usefult to the
20592         interp.
20593
20594 2001-11-29  Radek Doulik  <rodo@ximian.com>
20595
20596         * object.c (mono_ldstr): swap bytes here, it's probably not the
20597         best place, but works for me now, I'll redo it once I know mono
20598         better, also note that I add PROT_WRITE and don't reset back, also
20599         note that it's only affects big endians, so x86 should be OK
20600
20601         * mono-endian.h (read16): use just glib macros for both endians
20602
20603         * mono-endian.c: removed as glib macros are used in in
20604         mono-endian.h so we don't need to care about endianess for read
20605         macros as glib does that for us already
20606
20607 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
20608
20609         * class.h, class.h: take minimum alignment into consideration so
20610         that the fields of a class remain aligned also when in an array.
20611
20612 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20613
20614         * loader.h, loader.c: add mono_method_get_param_names().
20615         * class.c: 0-init class fields.
20616
20617 2001-11-26  Dick Porter  <dick@ximian.com>
20618
20619         * icall.c:
20620         * threads-types.h:
20621         * threads.c: New file that handles System.Threading on all platforms
20622
20623         * object.c: 
20624         * object.h: Remove the synchronisation struct from MonoObject,
20625         replace it with a pointer that gets initialised on demand
20626
20627         * Makefile.am: Replace all the system-specific threading code with
20628         a single file that uses the new wrapper library
20629
20630 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
20631
20632         * class.c, class.h: add mono_install_trampoline() so that the runtime
20633         can register a function to create a trampoline: removes the ugly
20634         requirement that a runtime needed to export arch_create_jit_trampoline.
20635         * object.h, object.c: added mono_install_handler() so that the runtime
20636         can install an handler for exceptions generated in C code (with
20637         mono_raise_exception()). Added C struct for System.Delegate.
20638         * pedump.c: removed arch_create_jit_trampoline.
20639         * reflection.c: some cleanups to allow registering user strings and
20640         later getting a token for methodrefs and fieldrefs before the assembly
20641         is built.
20642         * row-indexes.h: updates and fixes from the new ECMA specs.
20643
20644 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
20645
20646         * class.h, class.c: add enum_basetype field to MonoClass.
20647         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20648         to get index in the constant table reated to a field, param or
20649         property.
20650         * reflection.h, reflection.c: handle constructors. Set public-key and
20651         version number of the built assembly to 0.
20652         * row-indexes.h: update from new ECMA spec.
20653
20654 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20655
20656         * class.h, class.c: add a max_interface_id to MonoClass.
20657         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
20658         since it's used to do that. Added mono_type_type_from_obj().
20659         Make GetType() return NULL instead of segfaulting if the type was not
20660         found. Handle simple arrays in assQualifiedName.
20661         * object.h: add a struct to represent an Exception.
20662         * reflection.c: output call convention in method signature.
20663         Add code to support P/Invoke methods and fixed offsets for fields.
20664
20665 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
20666
20667         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
20668         the value.
20669         * icall.c: use mono_array_addr instead of array->vector: fixes the
20670         reflection image writing.
20671         * reflection.c: init call convention byte to 0 in method signature.
20672         Encode the property signature. Don't output property-related methods
20673         twice. Really process the properties for a type (don't cast a field to
20674         a property, my mom always told me that).
20675         Fix 64 bit issues in pointer alignment in a different and more
20676         readable way.
20677
20678 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
20679
20680         * loader.h: Removed type class from MonoDefaults, added monotype
20681
20682         * loader.c: Loaded MonoType, removed loading of Type
20683
20684         * icall.c (my_mono_new_object): Now returns a System.MonoType,
20685         and fills in System.Type._impl with a RuntimeTypeHandle rather
20686         than the actual MonoClass *
20687
20688         (ves_icall_type_from_handle): change from type_class to
20689         monotype_class
20690
20691         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
20692         implemented
20693
20694         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
20695         implemented
20696
20697         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
20698
20699         (ves_icall_System_Reflection_Assembly_GetType): implemented
20700
20701         (ves_icall_System_MonoType_assQualifiedName): implemented
20702
20703         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
20704
20705 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
20706
20707         * assembly.c (mono_assembly_open): Implement a cache for the
20708         assemblies. 
20709
20710         (mono_assembly_close): only destroy the assembly when the last
20711         reference is gone.
20712         
20713 2001-11-09  Dick Porter  <dick@ximian.com>
20714
20715         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
20716
20717 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
20718
20719         * class.c (mono_class_metadata_init): bug fix: compute the right slot
20720
20721 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20722
20723         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
20724         from Martin Weindel.
20725         * object.h: add mono_string_chars ().
20726
20727 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
20728
20729         * reflection.c (build_compressed_metadata): Eliminates warnings
20730         and uses 64-bit clean code.
20731
20732         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
20733         (mono_type_equal): Change signature to eliminate warnings.
20734
20735 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20736
20737         * icall.c, loader.c: remove the internalcall array constructors.
20738         Changes to match the new MonoArray structure.
20739         * object.h, object.c: an array object doesn't allocate an extra
20740         vector. Add mono_array_new_full () to create jagged arrays easily.
20741
20742 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20743
20744         * metadata.h, metadata.c: add mono_metadata_field_info () to
20745         retreive all the info about a field from vairous tables.
20746         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
20747         * class.h, class.c: augment MonoClassField with more info.
20748         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
20749         policy and load a field's RVA if needed.
20750
20751 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
20752
20753         * class.c (mono_class_metadata_init): create a trampoline for all
20754         virtual functions instead of actually compiling them.
20755
20756 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
20757
20758         * class.h, class.c: include name in MonoClassField.
20759         * class.c: fix fundamental type of System.Object and System.String.
20760         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
20761         tokens in ldtoken.
20762         * icall.c: remove internalcalls for the Reflection stuff that is now
20763         done in C# code.
20764         * loader.c: mono_field_from_memberref () implementation.
20765         * mono-endian.c: thinko (s/struct/union/g).
20766         * object.c, object.h: make the mono_string_* prototypes actually use
20767         MonoString instead of MonoObject.
20768         * reflection.c, reflection.h: updates for changes in the reflection
20769         code in corlib: we use C structures that map to the actual C# classes.
20770         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
20771         fat method header if needed and use the info from the ILGenerator for
20772         methods. Handle fields in types. Misc fixes.
20773
20774 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
20775
20776         * class.c (mono_class_metadata_init): bug fix: always allocate
20777         space for static class data
20778
20779 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
20780
20781         * class.c (mono_compute_relative_numbering): use relative
20782         numbering to support fast runtime type checks.
20783
20784 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
20785
20786         * class.c (mono_class_create_from_typeref): added debugging output
20787         to print class name when MonoDummy is returned instead of real class
20788
20789 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
20790
20791         * class.c (mono_class_metadata_init): interface offset table now
20792         contains pointers into the vtable - this is more efficient for the jit
20793
20794 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20795
20796         * class.c (mono_class_metadata_init): use a temporary vtable (the
20797         old algorithm only worked for the interpreter, but not for the jit)
20798
20799 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20800
20801         * loader.c (method_from_memberref): use mono_class_get to get the
20802         class of an array instead of using System.Array directly.
20803         (mono_get_method): also add MEMBERREF methods to the method cache
20804         which usefull for arrays.
20805
20806 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20807
20808         * pedump.c (arch_compile_method): added to compute vtable entry
20809
20810         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20811         number of interfaces.
20812         
20813         * class.h: merged MonoArrayClass into MonoClass
20814
20815         * class.c (mono_class_create_from_typedef): compute the vtable size and
20816         allocate space to include the vtable inside MonoClass
20817         (mono_class_metadata_init): initialize the vtable
20818
20819 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20820
20821         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20822         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20823         * image.c: endian fixes by Laurent Rioux.
20824         * object.h, object.c: rename MonoStringObject to MonoString and
20825         MonoArrayObject to MonoArray. Change some function names to conform to
20826         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20827         guint16* as first argument, so don't use char*.
20828         Provide macros to do the interesting things on arrays in a portable way.
20829         * threads-pthread.c: updates for the API changes and #include <sched.h>
20830         (required for sched_yield()).
20831         * icall.c: updates for the API changes above.
20832         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20833         platforms that need them.
20834
20835 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20836
20837         * class.c: set the correct type for all the fundamental
20838         type when loading the class.
20839
20840 2001-10-05  Dick Porter  <dick@ximian.com>
20841
20842         * threads-pthread.c (pthread_mutex_timedlock): Simple
20843         compatibility version for C libraries that lack this call.
20844
20845 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20846
20847         * class.c: MonoTypes stored in MonoClass are stored as
20848         fundamental MonoTypes when the class represents a
20849         fundamental type (System.Int32, ...).
20850         The TypeHandle return by ldtoken is a MonoType*.
20851         * icall.c: ves_icall_get_data_chunk () write out all the
20852         PE/COFF stuff. Implement ves_icall_define_method (),
20853         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20854         * image.c: properly skip unknown streams.
20855         * loader.h, loader.c: add type_class to mono_defaults.
20856         * metadata.c, metadata.h: export compute_size () as
20857         mono_metadata_compute_size () with a better interface.
20858         Typo and C&P fixes.
20859         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20860         * reflection.c, reflection.h: many cleanups, fixes, output method
20861         signatures and headers, typedef and typeref info, compress the metadata
20862         tables, output all the heap streams, cli header etc.
20863         * row-indexes.h: typo fixes.
20864
20865 2001-10-04  Dick Porter  <dick@ximian.com>
20866
20867         * object.h: Add a synchronisation mutex struct to MonoObject
20868
20869         * object.c (mono_new_object): Initialise the object
20870         synchronisation mutexes
20871
20872         * icall.c: System.Threading.Monitor internal calls
20873         
20874         * threads-pthread.h:
20875         * threads-pthread.c: System.Threading.Monitor internal calls
20876
20877         * threads-types.h: New file, includes the system-specific thread
20878         structures
20879         
20880         * threads-pthread-types.h:
20881         * threads-pthread-types.c: New files, handle pthread-specific
20882         synchronisation types
20883
20884         * threads-dummy-types.h: 
20885         * threads-dummy-types.c: New files of dummy support for
20886         thread-specific types
20887
20888         * metadata.c:
20889         * image.c:
20890         * pedump.c: include mono-endian.h not endian.h
20891         
20892         * Makefile.am: More threads files.
20893         Name mono-endian.h not endian.h
20894
20895 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20896
20897         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20898         stuff and implement a few more bits.
20899         * icall.c: a field needs to be dereferenced twice. Do not use the same
20900         name for two variables in the same scope.
20901         * image.c, image.h: cleanups.
20902
20903 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20904
20905         * class.c (mono_class_metadata_init): bug fix: compute the right size
20906
20907 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20908
20909         * icall.c: implemented some of the Reflection internalcalls.
20910         * image.c, image.h: start writing out the PE/COFF image.
20911         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20912         that does the reverse than decode_blob_size ().
20913         * object.c: use mono_metadata_encode_value (). Move here
20914         temporary implementation of mono_string_to_utf8 ().
20915         * rawbuffer.c: make malloc_map static.
20916
20917 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20918
20919         * metadata.c: fix type comparison for arrays.
20920         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20921         Added a couple of new classes to monodefaults.
20922         * icall.c: added a couple of Reflection-related internalcalls.
20923         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20924         Added a byval_arg MonoType to MonoClass.
20925
20926 2001-09-28  Dick Porter  <dick@ximian.com>
20927
20928         * icall.c:
20929         * threads-pthread.h: 
20930         * threads-pthread.c: Implemented internal calls for
20931         LocalDataStoreSlot operations.  Applied mutexes around all shared
20932         data.  Reworked the thread creation and Start() operations to
20933         avoid a race condition.
20934         
20935         * threads-dummy.h:
20936         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20937
20938 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20939
20940         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20941
20942 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20943
20944         * class.c, loader.c: warn and return NULL instead of erroring out.
20945         * icall.c: added System.AppDomain::getCurDomain().
20946         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20947
20948 2001-09-25  Dick Porter  <dick@ximian.com>
20949
20950         * threads-pthread.h:
20951         * threads-pthread.c: Implemented timed thread joining and added
20952         System.Threading.Thread::Join_internal internal call
20953
20954         * icall.c: Added System.Threading.Thread::Join_internal internal call
20955
20956         * threads-dummy.h:
20957         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
20958
20959 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
20960
20961         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
20962         mono_string_intern () to implement the semantics of the ldstr opcode
20963         and the interning of System.Strings.
20964         * icall.c: provide hooks to make String::IsIntern and String::Intern
20965         internalcalls.
20966
20967 2001-09-23  Dick Porter  <dick@ximian.com>
20968
20969         * threads-dummy.c: 
20970         * threads-dummy.h: New files of dummy threading routines
20971
20972         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
20973         support code based on system specifics
20974
20975         Rename PTHREAD_LIBS to THREAD_LIBS
20976         
20977 2001-09-23  Dick Porter  <dick@ximian.com>
20978
20979         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
20980         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
20981         internal calls.
20982         (mono_thread_init): Set up a Thread object instance to return when
20983         the main thread calls Thread.CurrentThread
20984         (mono_thread_cleanup): Wait for all subthreads to exit
20985
20986         * icall.c: New internal calls for System.Threading.Thread::Sleep
20987         (including Schedule) and CurrentThread
20988
20989         * threads.h: New file, to insulate thread-specific stuff from the
20990         rest of the code
20991
20992 2001-09-21  Dick Porter  <dick@ximian.com>
20993
20994         * threads-pthread.h: 
20995         * threads-pthread.c: New file, for handling pthreads-style
20996         threading support.  Start() now starts a new thread and executes
20997         the ThreadStart delegate instance.
20998
20999         * icall.c: Added the internalcall for
21000         System.Threading.Thread::Start_internal
21001
21002         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
21003
21004 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
21005
21006         * loader.c: work around the different signatures for delegates
21007         constructors csc generates in compiled code vs the ones compiled in mscorlib.
21008
21009 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
21010
21011         * class.h, class.c: add mono_class_get_field_from_name ().
21012         * *: Fix C comments and other ANSI C issues.
21013
21014 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
21015
21016         * endian.h, assembly.c: fix some endianness issues.
21017
21018 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
21019
21020         * loader.h, load.c: add delegate_class to mono_defaults.
21021         Handle runtime provided methods in mono_get_method ().
21022
21023 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
21024
21025         * loader.c (mono_get_method): use pinvoke for internal call
21026
21027         * icall.c: use pinvoke for internal call
21028
21029         * loader.c (method_from_memberref): set the method name
21030
21031 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
21032
21033         * metadata.c: help the compiler generate better code for
21034         mono_class_from_mono_type ().
21035
21036 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
21037
21038         * class.c (mono_class_metadata_init): delayed computing of the
21039         class size to mono_class_metadata_init ()
21040
21041 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
21042
21043         * class.c, class.h: add an interfaces member to MonoClass.
21044         * image.c, image.h: add assembly_name field to MonoImage
21045         from the assembly table.
21046         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
21047
21048 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
21049
21050         * class.c: Handle Array in mono_class_from_mono_type ().
21051         * metadata.c, pedump.c: some endian fixes.
21052
21053 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
21054
21055         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
21056         * metadata.c: fix small problem introduced with the latest commit.
21057
21058 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
21059
21060         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
21061         We don't need a MonoMetadata pointer anymore to compare signatures in
21062         mono_metadata_signature_equal (), update callers.
21063         Reduced memory usage an number of allocations for MonoMethodHeader and
21064         MonoMethodSignature.
21065
21066 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
21067
21068         * metadata.c: added compare for szarray.
21069
21070 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
21071
21072         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
21073         and add a couple more types to it and mono_defaults. Give an hint on
21074         classes that need implementing in our corlib and are referenced
21075         in mscorlib.
21076
21077 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
21078
21079         * class.h, class.c: keep track if a class is also an Enum.
21080         * loader.c: Implement a couple more types for use in libffi
21081         marshalling. Gives better diagnostics when failing to dlopen
21082         a library. Set method->klass for P/Invoke methods, too.
21083
21084 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
21085
21086         * class.c, class.h: add a MonoType this_arg to MonoClass that
21087         represents a pointer to an object of the class' type that
21088         can be used by the interpreter and later the type cache.
21089         Add best guess alignment info for valuetype objects.
21090
21091 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
21092
21093         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
21094         into MonoType: one less level of indirection and allocation and
21095         simplifies quite a bit of code. Added cache for MonoTypes that are
21096         used frequently, so that we don't need to allocate them all the time.
21097
21098 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
21099
21100         * class.c (mono_class_create_from_typedef): System.Enum is also a
21101         value type, although it does not derive from System.ValueType
21102         (maybe a bug in the ms compiler?)
21103
21104         * metadata.c (mono_type_size): return the right size for value types
21105
21106         * loader.c (mono_get_method): only initialize method header if not abstract
21107
21108         * class.c (mono_class_from_mono_type): use mono_default values. 
21109
21110 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
21111
21112         * *: use MonoClass pointers instead of <type_tokens>
21113         
21114         * class.h: new flag: metadata_inited.
21115
21116         * class.c (mono_class_metadata_init): impl.
21117         (mono_class_instance_size): impl.
21118         (mono_class_data_size): impl.
21119
21120 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21121
21122         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
21123         MonoClass now has the name and name_space fields. 
21124         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
21125         mono_get_method () takes and optional MonoClass as argument.
21126         Removed mono_typedef_from_name() and added mono_class_token_from_name()
21127         instead that takes advantage of a map from class names to typedef
21128         tokens in MonoImage.
21129
21130 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
21131
21132         * metadata.c: zero is not a valid alignment boundary.
21133         Merge MONO_TYPE_VOID in default decoding code.
21134
21135 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
21136
21137         * image.h: merged MonoMetadata into MonoImage
21138
21139         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
21140         identify the type of elements.
21141
21142 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
21143
21144         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
21145         * cil-coff.h: split MonoMSDOSHeader and add size info.
21146         * image.c: add some consistency checks.
21147         * metadata.c: fix row size computation: one programmer
21148         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
21149         add explanation for the locator routine.
21150         Fix decoding of size in method header.
21151         
21152 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
21153
21154         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
21155         (g_concat_dir_and_file): Bring g_concat_dir_and_file
21156         function from gnome-libs.  This uses the right path separator
21157         based on the OS, and also works around a bug in some systems where
21158         a double slash is not allowed. 
21159         (default_assembly_name_resolver): Use g_concat_dir_and_file
21160         (mono_assembly_open): ditto.
21161
21162 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
21163
21164         * metadata.c (mono_metadata_signature_equal): impl.
21165
21166         * *: void is now a realy MonoType (instead of using NULL)
21167         
21168         * metadata.c (do_mono_metadata_parse_type): use
21169         mono_metadata_parse_type to parse void value.
21170
21171 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
21172
21173         * metadata.c, metadata.h: in the signature and method header store
21174         only the space required for holding the loca vars and incoming arguments.
21175
21176 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
21177
21178         * metadata.c (do_mono_metadata_parse_type): treat void like any
21179         other type (instead of assigning NULL);
21180
21181 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
21182
21183         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
21184
21185 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
21186
21187         * image.c (do_mono_image_open): added a cache for arrays.
21188
21189 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
21190
21191         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
21192         decode a single column from a row in a metadata table and changes
21193         to take advantage of it in the typedef locator (gives a nice speed up).
21194         Store offset info for function params.
21195
21196 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
21197
21198         * image.h (MONO_IMAGE_IS_CORLIB): removed 
21199
21200 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
21201
21202         * assembly.c: how could mono_assembly_close () had ever worked?
21203         * metadata.c, metadata.h: provide offset info for local vars.
21204         Implement mono_type_size () to take care of alignment as well
21205         as size (it was mono_field_type_size in cli/class.c before).
21206
21207 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
21208
21209         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
21210
21211         * assembly.h (CORLIB_NAME): set to corlib.dll
21212
21213         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
21214
21215 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
21216
21217         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
21218         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
21219         tokentype.h: massive namespace cleanup.
21220
21221 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
21222
21223         * metadata.h, metadata.c: decode exception clauses when parsing method header.
21224
21225 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
21226
21227         * metadata.c (mono_metadata_free_type): added check for type !=
21228         NULL (void) before calling mono_metadata_free_type()
21229
21230 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
21231
21232         * metadata.h, row_indexes.h: added header with enumerations to use
21233         to index in the columns from tables in metadata and to decode coded
21234         tokens: we should start using this instead of embedding magic numbers
21235         all over the code.
21236
21237 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
21238
21239         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
21240         Move metadata_t info from cli_image_info_t to MonoImage, where
21241         it's easily accessible. Changed all the uses accordingly.
21242         Added the method and class caches to MonoImage.
21243         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
21244         and mono_metadata_decode_value () signature to be more consistent
21245         with the other parse functions (and simplify code). Taken advantage
21246         of zero-length array allocation with GCC. Removed reduntant (and
21247         wrong) MonoFieldType struct and use MonoParam instead. Changed
21248         mono_metadata_parse_field_type () to use common code for parsing.
21249         Added mono_metadata_typedef_from_field () and
21250         mono_metadata_typedef_from_method () to lookup a typedef index from a
21251         field or method token.
21252         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
21253
21254 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
21255
21256         * metadata.c (mono_metadata_parse_field_type): Implement. 
21257         (do_mono_metadata_parse_type): Split engine from
21258         mono_metadata_parse_type, so that we can create smaller structures
21259         for things that just have one pointer to the MonoType (look at
21260         the MonoFieldType)
21261
21262 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
21263
21264         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
21265         as Jan Gray found out, it is incorrect. 
21266
21267 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
21268
21269         * assembly.c: Implement asssembly loading.  This loads an image
21270         and loads all the referenced assemblies.  Come to think of it, we
21271         could always do lazy loading of the assemblies. 
21272
21273         * image.c (mono_image_open): Keep loaded images in a hashtable.
21274
21275         * image.h (MonoImage): Add reference count.
21276
21277 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
21278
21279         * assembly.c (mono_assembly_open): Keep track of the file name in
21280         case the assembly has no ASSEMBLY table.
21281
21282         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
21283         from get.c here.
21284
21285 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
21286
21287         * metadata.c, metadata.h: decode local vars in method header
21288         parse function. Change callers accordingly.
21289
21290 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
21291
21292         * metadata.h, cil-coff.h: protect against multiple inclusion.
21293         Added some new structures to hold information decoded from metadata:
21294         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
21295         and relevant decoding/free functions.
21296         * metadata.c: implement decoding functions. Add warning for out of bounds
21297         index in mono_metadata_locate(). Implement mono_get_method () to retreive
21298         all the info about a method signature and invocation. Remove check on
21299         uninitialized local var in parse_mh() and fix memory leak.
21300
21301 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
21302
21303         * metadata.h: More macros.
21304
21305         * tokentype.h: New file.
21306
21307 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
21308
21309         * assembly.c: added a consistency check and initialize
21310         some structures with g_new0().
21311         * metadata.c: fixed a couple more bugs in table size computation
21312         and add other checks for out-of bound access to metadata.
21313
21314 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
21315
21316         * metatada.c: fix bugs computing table sizes. Spew a
21317         warning when index in string heap is out of bounds.
21318
21319 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
21320
21321         * metadata.h: Add a couple of macros to manipulate tokens. 
21322
21323 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
21324
21325         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
21326         cli_section_tables).
21327
21328 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
21329
21330         * metadata.c (mono_metadata_user_string): New function, provides
21331         access to the UserString heap. 
21332
21333 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
21334
21335         * metadata.c: Add inline documentation.
21336
21337 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
21338
21339         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
21340         files. 
21341
21342 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
21343
21344         * typeattr.h: New file, TypeAttribute flags. 
21345
21346 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
21347
21348         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
21349         mono_assembly_ensure_section): Section loading code.
21350         (load_section_tables): Load the sections.
21351
21352         * mono/metadata/metadata.c (mono_metadata_locate_token,
21353         mono_metadata_locate): Functions to locate the information
21354         definition given a token or a table and an index.
21355         (mono_metadata_compute_table_bases): New.
21356         (compute_size): New function to compute the sizes of the various
21357         tables.
21358
21359         * mono/metadata/metadata.h: Finish listing the different index
21360         types. 
21361
21362         * mono/metadata/pedump.c: Improve to dump new information.
21363
21364 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
21365
21366         * mono/metadata/metadata.c: Entered all the tables matching
21367         Beta2. 
21368
21369         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
21370
21371
21372