2007-06-06 Mark Probst <mark.probst@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-06-06  Mark Probst  <mark.probst@gmail.com>
2
3         * class.c, image.c, class-internals.h (MonoImage): class_cache is
4         a MonoInternalHashTable again (fixed bug in internal hash table
5         code).
6
7 2007-06-06  Mark Probst  <mark.probst@gmail.com>
8
9         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
10         MonoInternalHashTable again (fixed bug in internal hash table
11         code).
12
13 2007-06-06  Mark Probst  <mark.probst@gmail.com>
14
15         * class.c, image.c, class-internals.h, domain.c,
16         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
17         changes.  Have to figure out what makes them break the SWF
18         regression.
19
20 2007-06-04  Mark Probst  <mark.probst@gmail.com>
21
22         * class.c, image.c, class-internals.h (MonoImage): class_cache is
23         a MonoInternalHashTable now.
24
25 2007-06-04  Mark Probst  <mark.probst@gmail.com>
26
27         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
28         MonoInternalHashTable now.
29
30 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
31
32         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
33         invoke_impl code.
34
35         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
36
37         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
38         dependent trampoline.
39
40         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
41
42         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
43
44 2007-05-29  Robert Jordan  <robertj@gmx.net>
45
46         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
47
48 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
49
50         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
51
52 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
53
54        * marshal.c: Fix interface lookup loops for
55        cominterop_get_com_slot_for_method and 
56        cominterop_get_method_interface. Only need to lookup
57        if type is a class, else use interface type method is on.
58
59        Code is contributed under MIT/X11 license.
60
61 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
62
63         * reflection.c: HasSecurity can be present even if no specially 
64         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
65         SecurityAttribute). Fix CAS regression tests on buildbot.
66
67 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
68
69        * appdomain.c: Add configure checks for header files.
70        * image.c: Add configure checks for header files.
71        * file-io.c: Add configure checks for header files.
72        * debug-mono-symfile.c: Add configure checks for header files.
73        * threadpool.c: Add configure checks for header files.
74        * console-io.c: Add configure checks for header files.
75        * profiler.c: Add configure checks for header files.
76        * rawbuffer.c: Add configure checks for header files.
77        * icall.c: Add configure checks for header files.
78        * rand.c: Add configure checks for header files.
79        * socket-io.c: Add configure checks for header files.
80
81        Code is contributed under MIT/X11 license.
82
83 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
84
85         * reflection.c (mono_custom_attrs_from_builders): Remove the 
86         assertion as it breaks the build.
87         
88         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
89
90         * reflection.c (lookup_custom_attr): Make a copy here too.
91
92         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
93         dynamic images.
94
95         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
96         images.
97
98         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
99         info.
100
101 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
102
103         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
104         (load_cattr_value): Ditto.
105
106 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
107
108         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
109
110 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
111
112         * threads.c: In "start_wrapper", set apartment_state to MTA if
113         apartment_state is Unknown and we're running on 2.0 profile or
114         higher.
115         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
116         to main method, then set apartment_state to Unknown on 1.0 profile,
117         and MTA on 2.0 profile.
118
119 2007-05-16  Jb Evain  <jb@nurv.fr>
120
121         * class-internals.h (MonoDefaults): Add an attribute_class and
122           customattribute_data_class.
123         * domain.c (mono_init_internal): Populate them.
124         * reflection.c: Use them to remove duplicates. Make a vew
125         MonoClass variables `static'.
126
127 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
128
129         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
130         step in implementing IMT, so that all isinst checks now can go
131         through the bitmap.
132         This was needed because vtables for TransparentProxy need to look
133         like the vtable of the "target" class, so they need to point to
134         its interface bitmap directly.
135
136         * object.c: inside "mono_class_create_runtime_vtable" and
137         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
138
139 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
140
141         * object-internals.h
142           culture-info.h : added territory field in MonoCulture and
143           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
144         * locales.c : fill territory field above too.
145         * culture-info-table.h : regenerated.
146
147 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
148
149         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
150         Fixes #81599.
151
152 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
153
154         * object.c: Always initialize apartment, even if 
155         there is no custom attributes on entry point.
156         
157         Code is contributed under MIT/X11 license.
158
159 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
160
161         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
162         * metadata.c: If no encoding is set, check for unicode
163         on class.
164         
165         Code is contributed under MIT/X11 license.
166
167 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
168
169         * threads.c: Handle if mono_thread_current returns NULL 
170         
171         Code is contributed under MIT/X11 license.
172
173 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
174
175         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
176         in start_wrapper. Added mono_thread_init_apartment_state and
177         mono_thread_cleanup_apartment_state.
178         * object.c: Initialize thread apartment state on main thread
179         by checking for STAThreadAttribute on entry point.
180         * object-internals.h: Add apartment_state field to MonoThread.
181         * threads-types.h: Add unmanaged definition of 
182         System.Threading.ApartmentState, MonoThreadApartmentState.
183         
184         Code is contributed under MIT/X11 license.
185         
186 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
187
188         * class.c: Fix windows build.
189         * class-internals.h: Fix windows build.
190         
191         Code is contributed under MIT/X11 license.
192
193 2007-05-08  Robert Jordan  <robertj@gmx.net>
194
195         * process.c (CreateProcess_internal):
196         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
197         .CreateNoWindow was specified. Fixes #81496.
198
199 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
200
201         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
202         step in implementing IMT, replaced it with two compact arrays
203         (interfaces_packed and interface_offsets_packed) and a bitmap that
204         is used for isinst checks (interface_bitmap).
205
206         * class.c: (compare_interface_ids): compare function to pass to
207         bsearch when looking for an interface with a given id.
208         (mono_class_interface_offset): reimplemented using bsearch on
209         interfaces_packed, getting the offset from interface_offsets_packed.
210         (print_implemented_interfaces): utility debugging function.
211         (setup_interface_offsets): reworked to initialize interfaces_packed,
212         interface_offsets_packed and interface_bitmap.
213
214         * object.c: replaced all accesses to "MonoClass.interface_offsets"
215         with uses of interfaces_packed and interface_offsets_packed.
216
217 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
218
219         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
220         mono_class_interface_offset prototype to wrap all accesses to
221         "MonoClass.interface_offsets".
222
223         * class.c: Implemented mono_class_interface_offset, and wrapped all
224         accesses to "MonoClass.interface_offsets".
225
226         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
227         "MonoClass.interface_offsets".
228
229 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
230
231         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
232         GetMethodFromHandle overloads (bug #78637).
233
234 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
235
236         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
237         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
238
239 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
240
241         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
242         #81498.
243
244         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
245         gracefully.
246         (mono_custom_attrs_from_index): Ditto.
247
248         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
249         Fixes #81501.
250
251 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
252
253         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
254         is now allocated from a mempool.
255
256 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
257
258         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
259         caller holds threads_lock, leading to deadlocks. Fixes #81476.
260
261 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
262
263         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
264         mono_loader_clear_error () too late. Fixes #81463.
265
266 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
267
268         * culture-info-table.h : regenerated.
269
270 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
271
272         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
273         is missing.
274
275 2007-04-25  Dick Porter  <dick@ximian.com>
276
277         * Makefile.am: Put the mingw enforced-optimisation back into the
278         PLATFORM_WIN32 section.
279
280 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
281
282         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
283         patch.
284
285         * image.c (mono_image_load_module): New API function to load a module reference.
286
287         * image.c (load_modules): Load modules lazily. Fixes #80812.
288
289         * class.c (mono_class_from_typeref): Use mono_image_load_module.
290         
291         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
292
293         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
294         to mono_image_load_module_dynamic.
295
296 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
297
298         * marshal.c: Fix calling convention for CCW on non-windows
299         platforms. STDCALL on windows, CDECL everywhere else to work 
300         with XPCOM and MainWin COM.
301         
302         Code is contributed under MIT/X11 license.
303
304 2007-04-23  Martin Baulig  <martin@ximian.com>
305
306         Fix #80969.
307
308         * loader.c
309         (method_from_memberref): Added `gboolean *used_context' argument.
310         (mono_get_method_from_token): Likewise.
311         (mono_get_method_full): Don't insert the method in the cache when
312         `used_context' is true.
313
314 2007-04-23  Raja R Harinath  <rharinath@novell.com>
315
316         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
317
318         * reflection.c (mono_reflection_bind_generic_parameters): Don't
319         create new MonoTypes for returned types.
320         * class.c (mono_generic_class_get_class): Export mono-internal.
321         * class-internals.h: Update to changes.
322
323 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
324
325         * threadpool.c, threadpool.h, icall-def.h: patch from
326         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
327
328 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
329
330         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
331         
332         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
333
334         * threads.c (mono_thread_get_stack_bounds): New helper function.
335
336         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
337         Correctly compute stack bounds when attaching. Fixes #81394.
338
339 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
340
341         * reflection.c: fix handling of doubles in custom attributes
342         for the arm-fpa format (bug #81368).
343
344 2007-04-18  Raja R Harinath  <rharinath@novell.com>
345
346         * reflection.c (assembly_add_win32_resources): Mildly relax an
347         bounds check to let the end pointer point just past the end of the
348         allocated buffer.  (may fix #81384)
349
350 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
351
352         * culture-info-table.h : regenerated.
353
354 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
355
356         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
357         the thread is aborted early.
358
359 2007-04-05  Dick Porter  <dick@ximian.com>
360
361         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
362         FindFirstFile()/FindNextFile() to find entries.  This lets the
363         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
364         81038.
365
366         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
367         the parameters of
368         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
369
370 2007-04-04  Martin Baulig  <martin@ximian.com>
371
372         * debug-helpers.c
373         (mono_method_desc_full_match): Add support for nested classes.
374
375 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
376
377         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
378
379 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
380
381         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
382         waiting for too many threads.
383
384 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
385
386         * environment.c: Fix return value check on uname so we can get the 
387         executing version on Solaris operating systems.
388
389 2007-03-28  Jb Evain  <jbevain@gmail.com>
390
391         * class.c (mono_type_get_name_recurse): Complete the
392         fix for the creation of assembly qualified names for
393         pointer types. Fixes #81208.
394
395 2007-03-27  Dick Porter  <dick@ximian.com>
396
397         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
398         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
399         changed.
400
401         * threads.c
402         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
403         the value of ReleaseMutex().
404
405 2007-03-27  Dick Porter  <dick@ximian.com>
406
407         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
408         in little-endian order, not network endian, so must be converted
409         to host endian here.  Fixes bug 80593.
410
411 2007-03-22  Jb Evain  <jbevain@gmail.com>
412
413         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
414         qualified names for pointer types. Fixes #81208.
415
416 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
417
418         * marshal.c: Add support for PreserveSigAttribute. 
419         
420         Code is contributed under MIT/X11 license.
421
422 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
423
424         * process.c: Fix endianness issues. Fixes #81126.
425
426         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
427         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
428
429         * image.c (mono_image_lookup_resource): Make this work on big-endian
430         machines.Change API contract so the caller needs to free the return value.
431         
432         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
433         API change.
434         
435 2007-03-14  Martin Baulig  <martin@ximian.com>
436
437         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
438         mono_type_get_desc() as well.
439
440 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
441
442         * icall.c:  Fix environ access in VS.  
443         
444 2007-03-13  Alp Toker  <alp@atoker.com>
445
446         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
447         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
448         #63841.
449
450 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
451
452         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
453         circular references among dynamic methods. Fixes #81091.
454
455         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
456
457 2007-03-09  Martin Baulig  <martin@ximian.com>
458
459         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
460
461 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
462
463         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
464         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
465         
466         Code is contributed under MIT/X11 license.
467         
468 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
469
470         * loader.c: Reapply patch for bug #79424.
471
472 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
473
474         * metadata.c (mono_type_to_unmanaged): Only convert object to
475         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
476
477 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
478
479         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
480         (and incorrectly set) is_reference field from MonoGenericInst.
481
482 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
483
484         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
485         a little earlier.
486
487         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
488
489         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
490
491 2007-03-05  Miguel de Icaza  <miguel@novell.com>
492
493         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
494         FileOptions.1 value to mean "temporary", map that to
495         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
496
497         Fixes 80688
498
499 2007-03-03  Marek Habersack  <mhabersack@novell.com>
500
501         * appdomain.c: implement MS .Net style shadow copying. Copies of
502         the assemblies are made in a subdirectory of the dynamic base
503         directory, the assembly names are preserved.
504         Copy .mdb and .config files along with the assemblies being shadowed.
505
506 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
507
508         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
509         (emit_marshal_handleref): Ditto.
510
511         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
512         on Visual C++. Fixes #80671.
513
514 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
515
516         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
517         for clone operations.
518
519 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
520
521         * marshal.c: Fix warnings.
522
523 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
524
525         * loader.c: allow case-insensitive matching of the dll name
526         in dllmap handling when prefixed with "i:".
527
528 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
529
530         * threads.c: Fix #ifdef for dummy_apc function for VS.
531
532 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
533
534         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
535
536 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
537         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
538         giving precedence to the methods with a fully qualified name
539         (InterfaceName.MethodName) when building the interface sections
540         of the vtable.
541
542 2007-02-16  Dick Porter  <dick@ximian.com>
543
544         * threadpool.c (append_job): Fix fast-path array handling, so it's
545         less likely the array will grow exponentially when the load is
546         heavy.
547
548 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
549
550         * metadata-internals.h, loader.c: fix dllmap lookup order
551         for non-function maps, too, and prepare for fallback code.
552
553 2007-02-12  Robert Jordan  <robertj@gmx.net>
554
555         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
556         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
557         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
558         GlobalFree. Fixes a part of bug #77075.
559
560 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
561
562         * loader.c: implemented typedef parent in field memberref.
563
564 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
565
566         * marshal.c: Fix warnings and remember to call Release on
567         IUnknown of RCW.
568         
569         Code is contributed under MIT/X11 license.
570
571 2007-02-10  Miguel de Icaza  <miguel@novell.com>
572
573         * class-internals.h: Add MonoHandleRef definition, and
574         handleref_class to mono_defaults. 
575
576         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
577         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
578
579         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
580         (do nothing on this stage)
581         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
582         (emit_marshal_handleref): New method, used for argument handling
583         of HandleRefs. 
584
585 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
586
587         * class.c (mono_class_setup_parent): Lazily init com types.
588         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
589         init com types.
590         * object.c (mono_remote_class_vtable): Lazily init com types.
591         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
592         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
593         * domain-internals.h: Expose mono_init_com_types.
594         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
595         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
596         Add support for COM Callable Wrapper marshalling.
597         * marshal.h: Add icall definitions.
598         * gc.c: Handle freeing of CCWs in finalizer code.
599         
600         Code is contributed under MIT/X11 license.
601
602 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
603
604         * reflection.c: changed all the signature encoding code to use
605         a variable-sized buffer.
606
607 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
608
609         * marshal.c: locking fixes: never take the loader lock
610         or other runtime locks when holding the marshal lock
611         (fixes bug#80664).
612
613 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
614
615         * marshal.c: make the delegate function pointer mapping
616         work for the moving GC.
617
618 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
619
620         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
621         for bug #80618.
622
623 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
624
625         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
626         gmodule.
627
628 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
629
630         * threadpool.c: made the code moving-GC safe.
631
632 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
633
634         * assembly.c, boehm-gc.c, class-internals.h, class.c,
635         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
636         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
637         warning cleanup.
638         * reflection.c: warning cleanup, some threading and moving GC fixes.
639
640 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
641
642         * class.c, loader.c: create the needed Set/Get/Address array methods
643         as well as the .ctors in mono_class_init (), fixes bug #80567.
644
645 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
646
647         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
648         we doesn't decrease its alignment. Should fix the sparc build.
649
650 2007-01-24  Dick Porter  <dick@ximian.com>
651
652         * socket-io.c
653         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
654         Create the returned object if we need to ignore an unsupported
655         socket option.  Fixes a segfault reported by Atsushi.
656
657 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
658
659         * class.c, object.c: restrict GC-tracked fields to
660         UIntPtr fields used inside corlib, so we provide better
661         type info to the GC and also allow broken packing as in
662         bug #80580.
663
664 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
665
666         * sgen-gc.c: removed duplicated function.
667
668 2007-01-19  Miguel de Icaza  <miguel@novell.com>
669
670         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
671         value that means that the value is not supported, but that we
672         should not return a failure, but instead report this as a
673         successful operation.
674
675 2007-01-19  Raja R Harinath  <rharinath@novell.com>
676
677         Fix tests/bug79956.2.il
678         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
679         (mono_generic_class_get_class): If the generic definition in an
680         enum, copy over other fields related to it.
681
682 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
683
684         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
685         genericinst enums (bug #79215).
686
687 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
688         * class.c: Fix bug 80307.
689
690 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
691
692         * image.c: if the file table is not present, try to load
693         all the modules, since we don't have info about them
694         having or not metadata (bug #80517).
695         * assembly.c: allow mono_assembly_load_references () to
696         work for netmodules.
697
698 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
699
700         * image.c, metadata-internals.h, object.c: execute module
701         cctors when running on the 2 runtime if present (bug #80487).
702
703 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
704
705         * icall.c: optimized InitializeArray() on bigendian.
706
707 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
708
709         * icall.c: fix for the broken ARM FPA double format.
710
711 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
712
713         * icall.c: handle endian issues for r4 and r8 types, too, in
714         the InitializeArray() icall.
715
716 2007-01-15  Miguel de Icaza  <miguel@novell.com>
717
718         * loader.c (mono_loader_error_prepare_exception): Clear the error
719         once we have extracted the information from it, do this before we
720         call into the JIT's class loading mechanisms.
721
722         * object.c (mono_class_create_runtime_vtable): Do not clear the
723         loader error before calling mono_class_get_exception_for_failure
724         as the loader error is needed inside
725         mono_class_get_exception_for_failure to throw the error (thinko).
726
727         Fixes #80521
728         
729 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
730
731         * reflection.c: align fields rva data so it's faster to load at
732         runtime.
733
734 2007-01-12  Raja R Harinath  <rharinath@novell.com>
735
736         Prepare to simplify GenericMethod handling.
737         * class-internals.h (mono_method_get_context): New accessor function.
738         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
739         rather than directly accessing '->context' field.
740
741         * class-internals.h (_MonoGenericParam.method): Move ...
742         (_MonoGenericContainer): ... here.  Add into union with klass field.
743         * class.c, icall.c, loader.c, metadata.c, reflection.c:
744         Update to changes.
745
746 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
747
748         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
749         the wrapper type enum and reduce relocations.
750
751 2007-01-12  Raja R Harinath  <rharinath@novell.com>
752
753         * reflection.c (inflate_mono_method): Reuse method instantiation
754         from the generic method, if available.
755
756 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
757
758         * marshal.c (emit_marshal_variant): Fix conv_arg
759         type in last commit, based on whether parameter is byref.
760         
761 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
762
763         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
764         marshalling.
765         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
766         MONO_TYPE_OBJECT back for VARIANT support.
767
768 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
769
770         * marshal.c, marshal.h, icall-def.h: Implement 
771         Marshal.ReAllocCoTaskMem.
772
773 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
774
775         * marshal.c: memory retention fixes: use the proper
776         image cache for runtime_invoke method lookups.
777
778 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
779
780         * mempool.c: added code to help debug mempool allocations.
781
782 2007-01-11  Dick Porter  <dick@ximian.com>
783
784         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
785         support (experimenting with faking it with IP_MTU_DISCOVER for
786         systems that don't have IP_DONTFRAGMENT.)
787         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
788         icall.
789
790         * icall-def.h: new System.Net.Sockets.Disconnect icall.
791
792         * socket-io.h: Add new fields to MonoSocketAsyncResult
793         corresponding to the new ones in Socket.cs.
794
795 2007-01-11  Raja R Harinath  <rharinath@novell.com>
796
797         Fix IronPython regression mentioned in #80249
798         * metadata.c (do_mono_metadata_parse_generic_class): Clear
799         'cached_context' field, since it may have been initialized as a
800         side-effect of metadata parsing.
801
802         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
803         (_MonoGenericClass.cached_class): Move here and rename from lone
804         remaining field of ...
805         (_MonoInflatedGenericClass): ... this.  Remove.
806         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
807         to changes.
808
809         Fix mcs/tests/test-128.cs regression.
810         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
811         2007-01-10 change below.
812         [MONO_TYPE_OBJECT]: Recurse into array case.
813
814 2007-01-11  Raja R Harinath  <harinath@gmail.com>
815
816         * class-internals.h (mono_get_inflated_generic_class): Remove.
817         * class.c (mono_get_inflated_generic_class): Remove.
818         (mono_generic_class_get_class): Rename from
819         mono_class_create_generic.
820         (mono_class_from_mono_type) [GENERICINST]: Use it.
821         * reflection.c, metadata.c: Update to changes.  Use
822         'mono_class_from_mono_type'.
823
824 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
825
826         * reflection.c: use passed type when encoding an array element
827         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
828
829 2007-01-09  Robert Jordan  <robertj@gmx.net>
830
831         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
832         result arguments (someDelegate.EndInvoke (unrelatedAres)).
833         Fixes bug #80392.
834
835 2007-01-09  Raja R Harinath  <rharinath@novell.com>
836
837         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
838
839         * object.c (set_value): Avoid aliasing between type->data.klass
840         and type->data.generic_class.
841
842         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
843
844 2007-01-08  Raja R Harinath  <rharinath@novell.com>
845
846         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
847         between type->data.klass and type->data.generic_class.
848
849 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
850
851         * marshal.c: In MS.NET, StringBuilder objects are not copied by
852         value in out parameters.
853
854 2007-01-08  Raja R Harinath  <rharinath@novell.com>
855
856         Simplify invariant for MonoGenericClass::klass field.
857         * class.c (mono_class_create_generic): Verify 'klass' is null.
858         * metadata.c (do_mono_metadata_parse_generic_class): Don't
859         initialize 'klass' field.
860
861 2007-01-05  Raja R Harinath  <rharinath@novell.com>
862
863         Ongoing work to avoid redundant data and simplify invariants.
864         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
865         'generic_class', and change type to a GenericInst.
866         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
867         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
868
869 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
870
871         * class.c : skip io-layer under PLATFORM_WIN32.
872
873 2007-01-03  Tor Lillqvist  <tml@novell.com>
874
875         Fix #80305: In a bundled executable, look in the bundled exe
876         assembly to determine the runtime version. Add the possibility to
877         bundle also the machine.config file.
878         
879         * assembly.c (mono_assembly_open_from_bundle): Make
880         non-static. Allow being called even if we have no bundled
881         assemblies, and return NULL right away in that case.
882
883         * domain-internals.h: Declare mono_assembly_open_from_bundle()
884         here.
885
886         * domain.c (app_config_parse): Take an assembly exe file name as
887         parameter instead of a config file name. Check for a bundled
888         config file for that assembly by calling
889         mono_config_string_for_assembly_file() (see below) before looking
890         for one in the file system.
891         (get_runtimes_from_exe): Corrsponding change to call of
892         app_config_parse().
893         (get_runtimes_from_exe): Check for bundled assembly exe file first
894         by calling mono_assembly_open_from_bundle(). If no bundled
895         assembly exe file is found, call mono_image_open() as before to
896         look it up in the file system.
897
898         * mono-config.c: Add variable bundled_machinec_onfig.
899         (mono_config_string_for_assembly_file): New function.
900         (mono_config_for_assembly): Move code snippet that looks for a
901         bundled assembly .config file into the above new function. Call
902         it.
903         (mono_register_machine_config, mono_get_machine_config): New
904         functions to set and retrieve
905
906         * assembly.h: Declare mono_register_machine_config().
907
908         * mono-config.h: Declare mono_get_machine_config() and
909         mono_config_string_for_assembly_file().
910
911         * icall.c: No declaration of environ necessary on Win32. It is
912         declared (as a macro expanding to a function call) in stdlib.h.
913         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
914         New internal mono function. Returns the value of
915         mono_get_machine_config() as a Mono string.
916
917         * icall-def.h: Add get_bundled_machine_config().
918
919 2007-01-04  Raja R Harinath  <rharinath@novell.com>
920
921         Remove redundant field
922         * class-internals.h (_MonoGenericContext.container): Remove field.
923         * loader.c (mono_method_get_signature_full): Don't parse a
924         "container" for a signature parse when the signature is inflated
925         immediately.
926         (method_from_methodspec): Likewise, for a generic_inst.
927         * class.c, metadata.c, reflection.c: Update to changes.
928
929 2006-01-04  Raja R Harinath  <rharinath@novell.com>
930
931         * class-internals.h (_MonoGenericClass): Rename 'context' field to
932         'cached_context', and change semantics -- it starts off NULL, and
933         is initialized on demand.
934         * class.c (mono_generic_class_get_context): New accessor to
935         replace 'context' field accesses.
936         (mono_class_get_context): New helper.
937         (*): Update to changes.
938         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
939
940 2007-01-03  Miguel de Icaza  <miguel@novell.com>
941
942         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
943         before the memcpy.   Fixes Marshal2 regression.
944
945 2007-01-02  Jb Evain  <jbevain@gmail.com>
946
947         * blob.h: add a MONO_TYPE_ENUM definition
948         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
949         fix the encoding of arrays of enums in custom attributes.
950
951         Fixes #79666.
952
953 2007-01-01  Miguel de Icaza  <miguel@novell.com>
954
955         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
956         string is null terminated, but only cut the string short if it
957         overflows the buffer.   
958         
959         (mono_string_to_byvalstr): Also fix this routine.   The code here
960         was not properly terminating a string (it was only terminated
961         because of the previous catch-all memset). 
962
963         I left the memset, because I do not know if applications expect
964         the runtime to clear this region. 
965
966         Fixes #79944.
967
968         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
969         Clear the error before returning to unmanaged code to prevent the
970         runtime from being confused later on (fixes  80420).
971         (ves_icall_type_from_name): Always call mono_loader_clear_error
972         after parsing a type that could have failed.
973         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
974
975         * loader.c (mono_loader_clear_error): Fix indentation.
976
977 2006-12-28  Martin Baulig  <martin@ximian.com>
978
979         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
980
981 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
982
983         * reflection.c: patch from Rolf Bjarne Kvinge to fix
984         getting a token for an EnumBuilder.
985
986 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
987
988         * reflection.c: be more careful in case resource generation
989         fails to create the data array.
990
991 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
992
993         * sgen-gc.c: write barrier for clone and fix unregister handles.
994
995 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
996
997         * reflection.c: some fixes needed in the generics code for the moving GC.
998
999 2006-12-22  Robert Jordan  <robertj@gmx.net>
1000
1001         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
1002         account. Fixes bug #80299.
1003
1004 2006-12-21  Raja R Harinath  <rharinath@novell.com>
1005
1006         Fix WaitHandle usage in delegates.
1007         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
1008         * object.c (mono_wait_handle_new): Use the property set method to
1009         initialize the handle.
1010         (mono_wait_handle_get_handle): New.
1011         * threadpool.c (mono_async_invoke): Use it.
1012         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
1013         Likewise.
1014         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
1015
1016 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
1017
1018         * marshal.c (emit_marshal): Call emit_marshal_variant and
1019         emit_marshal_com_interface when applicable.
1020         (emit_marshal_variant, emit_marshal_com_interface): Add
1021         methods for this case and remove if's from emit_marshal_object.
1022         
1023 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
1024
1025         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
1026
1027 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
1028
1029         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
1030         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
1031         and GlobalFree on Windows. Remove FIXME.
1032
1033 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
1034
1035         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
1036         implementation for managed objects.
1037
1038 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
1039
1040         * object.c: implemented code to be used for checking
1041         that no reference field overlaps with non-references.
1042
1043 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1044
1045         * threadpool.c: fix queue code to be compatible with the
1046         moving GC.
1047
1048 2006-12-18  Miguel de Icaza  <miguel@novell.com>
1049
1050         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
1051         in structures by throwing ArgumentNullException.
1052
1053         (emit_marshal_safehandle): Also when they are null parameters.
1054
1055         (emit_marshal_safehandle): Add support for ref
1056         SafeHandles parameters
1057
1058 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1059
1060         * profiler.c: updated to use the mono-dl API instead of
1061         gmodule.
1062
1063 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1064
1065         * profiler.c: updated to use the mono-dl dynamic loading
1066         API instead of gmodule.
1067
1068 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
1069
1070         * profiler.c: use readlink, older versions of glib don't have
1071         g_file_read_link ().
1072
1073 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1074
1075         * profiler.c: try to detect the path to mono if libc fails to provide
1076         a useful name (bug #80286).
1077
1078 2006-12-16  Raja R Harinath  <rharinath@novell.com>
1079
1080         Fix #80242
1081         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
1082         instance, use the generic type definition instead.
1083         (ves_icall_Type_GetNestedTypes): Likewise.
1084         * class.c (mono_class_create_generic): Always set the
1085         nested_classes of a generic instance to NULL, even if the generic
1086         type definition has nested types.
1087
1088 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
1089
1090         * marshal.c (mono_string_from_bstr): Revert previous Windows change
1091         and fix on Linux.
1092         
1093 2006-12-15  Miguel de Icaza  <miguel@novell.com>
1094
1095         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
1096         my arguments were in the wrong order.   I also fixed the Windows
1097         version which seems to have had the same issue.
1098
1099         (mono_free_bstr): On Unix, this is g_free.
1100         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
1101         conversions (for the tests in corlib to pass).
1102
1103 2006-12-14  Miguel de Icaza  <miguel@novell.com>
1104
1105         * marshal.c (emit_ptr_to_object_conv): For now, ignore
1106         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
1107         exception if a ref SafeHandle in a struct has changed).
1108         
1109         (emit_struct_conv): Do not perform layout checks for classes
1110         derived from SafeHandle, as those are specially handled. 
1111
1112         (emit_object_to_ptr_conv): Add support for
1113         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
1114
1115         (emit_marshal_safehandle): Implement conversion of return values
1116         of safehandles (MARSHAL_ACTION_CONV_RESULT).
1117         
1118         * threads.c: WaitHandle now is compiled with two different handles
1119         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
1120         for 2.0.
1121         
1122         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
1123         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
1124         these routines to cope with both kinds of fields.
1125
1126 2006-12-12  Miguel de Icaza  <miguel@novell.com>
1127
1128         * metadata.c (mono_type_to_unmanaged): Handle the case where
1129         type->data.klass is a SafeHandle, and in that case, return the
1130         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
1131         MONO_MARSHAL_CONV_SAFEHANDLE. 
1132
1133 2006-12-11  Miguel de Icaza  <miguel@novell.com>
1134
1135         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
1136         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
1137         calling emit_marshal_object.
1138
1139         (emit_marshal_safehandle): Implement marshalling of
1140         SafeHandle parameters (no ref support yet).
1141
1142         (MarshalAction): Document the defines as I implement
1143         them for SafeHandle.
1144
1145         (emit_marshal_object): indentation police.
1146
1147         * class-internals.h: Define MonoSafeHandle.
1148         Add safehandle_class to MonoDefaults type.
1149
1150         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
1151         list of classes to check for fields. 
1152
1153         * domain.c (mono_init_internal): Add SafeHandle to the list of
1154         mono_defaults loaded.
1155
1156 2006-12-15  Raja R Harinath  <rharinath@novell.com>
1157
1158         Fix #80253
1159         * reflection.c (mono_reflection_bind_generic_parameters): If the
1160         generic type definition is a type builder, ensure that it is fully
1161         initialized before instantiating it.  Kill some dead code.
1162
1163 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
1164
1165         * object.c: clear the loader_error () before loading
1166         more metadata stuff (bug #80258).
1167
1168 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
1169
1170         * icall.c, icall-defs.h: type modifiers icalls for
1171         parameters and properties.
1172
1173 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
1174
1175         * object.c, icall.c: fixed warnings.
1176
1177 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
1178
1179         * marshal.c: fixed a couple of leaks and coding style in a few places.
1180
1181 2006-12-08  Dick Porter  <dick@ximian.com>
1182
1183         * process.c: Cope with NULL ProcessStartInfo arguments on windows
1184         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
1185         80173.
1186
1187 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
1188
1189         * process.c: ProcessStartInfo may have only filename set and
1190         arguments can be NULL.
1191
1192 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1193
1194         * icall.c: fix leak found by Robert Jordan.
1195
1196 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
1197
1198         * marshal.c, marshal.h: generate managed method to access an element
1199         of a multi-dimensional array.
1200
1201 2006-11-30  Paolo Molaro (lupus@ximian.com)
1202
1203         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
1204
1205 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1206
1207         * icall.c: back out GetFields () fix until the serialization code is
1208         fixed to not depend on the incorrect behaviour.
1209
1210 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
1211
1212         * profiler.c: provide defaults if none are set.
1213
1214 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
1215
1216         * Makefile.am, attrdefs.h: new public header file with
1217         constants for attributes for use by embedders.
1218
1219 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
1220
1221         * icall.c: GetFields () fix for bug #80064.
1222
1223 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
1224
1225         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
1226         removed long unused icalls.
1227
1228 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
1229   
1230         * marshal.c: 
1231                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
1232                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
1233                 can be generated without a delegate class.
1234                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
1235         
1236         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
1237
1238 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1239
1240         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
1241         #80069.
1242
1243 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1244
1245         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
1246         icall-def.h: added icalls needed by System.GC.
1247
1248 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
1249
1250         * loader.c: ensure the class in catch clauses is handled
1251         correctly for generics methods (fixes bug#79980).
1252
1253 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
1254
1255         * monitor.h, monitor.c: added mono_locks_dump () function
1256         to help debug deadlocks involving managed locks.
1257
1258 2006-11-13  Dick Porter  <dick@ximian.com>
1259
1260         * file-io.c (get_file_attributes): If the file is a symlink try
1261         and get the stat data for the target, but also add the
1262         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
1263         the specs for the windows symlink support, but will probably have
1264         to be reworked when I have test data from a vista machine.  Fixes
1265         bug 79887.
1266
1267 2006-11-13  Dick Porter  <dick@ximian.com>
1268
1269         * gc.c (mono_domain_finalize): 
1270         * marshal.c (mono_delegate_begin_invoke): 
1271         * threadpool.c (socket_io_init, mono_thread_pool_init)
1272         (mono_thread_pool_finish): 
1273         * monitor.c (mono_monitor_try_enter_internal): 
1274         * threads.c (mono_thread_resume, mono_thread_init)
1275         (mono_thread_suspend_all_other_threads)
1276         (mono_thread_execute_interruption): 
1277         * appdomain.c (mono_domain_unload): Check for NULL error returns
1278         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
1279         75733.
1280
1281 2006-11-11  Miguel de Icaza  <miguel@novell.com>
1282
1283         * process.c
1284         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
1285         Only close the handle if the value of the handle is not
1286         INVALID_HANDLE_VALUE.  This just makes the process a bit more
1287         robust.
1288
1289         Improvement for #75733, so that we do not run into this problem. 
1290
1291         
1292         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
1293         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
1294         internal variables.  Fixes #79462 
1295         
1296
1297 2006-11-09  Dick Porter  <dick@ximian.com>
1298
1299         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
1300         Use poll() not select().  Fixes bug 79397.
1301
1302 2006-11-09  Raja R Harinath  <rharinath@novell.com>
1303
1304         Fix #79872
1305         * assembly.c (mono_assembly_load_from_full): Check that the given
1306         image has an assembly manifest.
1307
1308 2006-11-09  Ankit Jain  <jankit@novell.com>
1309
1310         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
1311         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
1312         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
1313
1314 2006-11-07  Dick Porter  <dick@ximian.com>
1315
1316         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
1317         Put the old resolver behaviour back for pre-2.0 profiles.
1318
1319 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
1320
1321         * threadpool.c: precise GC and locking fixes.
1322
1323 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
1324
1325         * class.c: don't load types that have an explicit unaligned
1326         managed reference. Provide better info in the TypeLoad exception.
1327         Part of the fix for bug #79744.
1328         * object.c: use the correct check for class type load issues.
1329
1330 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
1331
1332         * class.c: enforce alignment of fields with managed references
1333         even when Pack=1 is forced by the user (bug #77788).
1334
1335 2006-11-03  Dick Porter  <dick@ximian.com>
1336
1337         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
1338         If the address reverse lookup fails, return it as the hostname
1339         anyway.  Fixes bug 79721.
1340
1341 2006-11-03  Dick Porter  <dick@ximian.com>
1342
1343         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
1344         Fix build on Windows.
1345
1346 2006-11-02  Dick Porter  <dick@ximian.com>
1347
1348         * icall-def.h: 
1349         * object-internals.h: 
1350         * exception.c (mono_get_exception_thread_interrupted): 
1351         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
1352         Fixes bug 74525.
1353
1354         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
1355         Check for pending Thread.Interrupt.
1356
1357 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
1358         * loader.c: Fixed bug 79684.
1359
1360 2006-10-27  Dick Porter  <dick@ximian.com>
1361
1362         * file-io.c (get_file_attributes): Force symlinks to directories
1363         to be returned as a regular file.  Fixes bug 79733.
1364 2006-10-26  Dick Porter  <dick@ximian.com>
1365
1366         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
1367         CreateFile to open a directory then we need to set the
1368         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
1369
1370 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
1371
1372         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
1373         friends.
1374
1375 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1376
1377         * sgengc.c: small cleanup of timer code.
1378
1379 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
1380
1381         * sgen-gc.c: fix some warnings and start adding support for
1382         complete object removal on domain unload.
1383
1384 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
1385
1386         * assembly.c: build_assembly_name should not consider a version
1387         number without build or revision number invalid. Fixes bug #79715.
1388
1389 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
1390
1391         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
1392         call kernel32 function OutputDebugString directly.
1393         
1394         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
1395         
1396 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
1397
1398         * reflection.c: small cleanup, using a function to insert a MonoString
1399         in the string heap.
1400
1401 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
1402
1403         * reflection.c: moving GC fixes.
1404
1405 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
1406
1407         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
1408         all the objects with finalizers belonging to an unloading appdomain.
1409
1410 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
1411
1412         * sgen-gc.c: added ability to allocate even when the nursery is fully
1413         pinned and fixed a couple of bugs.
1414
1415 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
1416
1417         * threads.h: Revert the last change for now.
1418
1419         * threads.h (mono_thread_get_pending_exception): Rename this to
1420         mono_thread_get_undeniable_exception ().
1421
1422 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
1423
1424         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
1425         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
1426         when fname does not refer to valid assembly. This result in a more
1427         meaningful error message.
1428         * exception.c: added mono_get_exception_bad_image_format2 which 
1429         constructs a BadImageFormatException using the ctor taking a custom
1430         message and the file name. Passing in a NULL msg results in a default
1431         message.
1432         * exception.h: define mono_get_exception_bad_image_format2 function.
1433         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
1434         when file name pointed to an invalid IL image. Use 
1435         mono_get_exception_file_not_found2 to construct FileNotFoundException,
1436         as this results in a more meaningful error message.
1437
1438 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
1439
1440         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
1441         #79465.
1442
1443 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
1444
1445         * metadata.c (mono_type_size): Change the align parameter to guint32 for
1446         consistency with the other _size functions.
1447         (mono_type_stack_size): Ditto.
1448
1449         * class.c object.c icall.c: Fix warnings caused by the above change.
1450
1451         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
1452
1453         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
1454
1455         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
1456
1457 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1458
1459         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
1460         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
1461         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
1462         threadpool.h, threads-types.h: mark more internal functions.
1463
1464 2006-10-11  Dick Porter  <dick@ximian.com>
1465
1466         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
1467         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
1468         reproduce the bug even before applying the fix.)
1469
1470 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
1471
1472         * reflection.c: allow retrieving attributes for arguments in generic
1473         methods (bug #79241).
1474
1475 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
1476
1477         * debug-mono-symfile.c: properly check fopen () result (found by
1478         coverity).
1479
1480 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
1481
1482         * reflection.c: make error message clearer and fixed two
1483         issuelets found by Coverity.
1484
1485 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
1486
1487         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
1488
1489 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
1490
1491         * object-internals.h, gc-internal.h, profiler-private.h:
1492         mark internal functions.
1493
1494 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
1495
1496         * reflection.c: put data in the text section.
1497         * icall.c: recognize more types in type_from_typename ().
1498         * process.c, marshal.c: added some GC FIXMEs.
1499
1500 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1501
1502         * loader.c: check for NULL before initializing.
1503
1504 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
1505
1506         * gc.c (finalizer_thread): Use a non-alertable wait here.
1507
1508         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
1509         until the correct solution is found.
1510
1511 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1512
1513         * reflection.c (mono_module_get_object): Avoid an assert when operating on
1514         modules with no metadata. Fixes #79596.
1515
1516         * image.c (load_metadata_ptrs): Put back the error message when
1517         the #- heap is encountered since the support is not complete yet.
1518
1519 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1520
1521         * gc.c: do not allow the user to SuppressFinalize () a
1522         delegate because it would leak the trampoline if present.
1523
1524 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1525
1526         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
1527         PropertyPtr table.
1528
1529 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
1530
1531         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
1532
1533         * metadata.c (mono_metadata_get_param_attrs): Ditto.
1534
1535         * row-indexes.h: Add definitions for *Ptr tables.
1536
1537         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
1538
1539         * metadata.c (mono_metadata_translate_token_index): New helper function to
1540         translate table indexes used in uncompressed metadata.
1541         (mono_metadata_decode_table_row): Ditto.
1542         (mono_metadata_decode_table_row_col): Ditto.
1543
1544         * metadata.c: Add table schema for *Ptr tables.
1545
1546         * class.c loader.c: Use the new helper function to access the affected metadata
1547         tables.
1548         
1549         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
1550         #38532.
1551         
1552 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
1553
1554         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
1555         sequences which can be unbounded in size. Fixes #79583.
1556
1557 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
1558
1559         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
1560         static initialization.
1561
1562         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
1563
1564         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
1565
1566         * domain.c (mono_domain_free): Free up type_init_exception_hash.
1567
1568         * object.c (mono_runtime_class_init): Implement correct semantics when a static
1569         ctor fails, i.e. throw the same exception on subsequent accesses.
1570         
1571 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
1572
1573         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
1574         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
1575         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
1576         Handle marshalling of interfaces and VARIANTs contained in structs.
1577         
1578         Code is contributed under MIT/X11 license.
1579         
1580 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
1581
1582         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
1583         
1584         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
1585         mempool.
1586
1587 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1588
1589         * console-io.c: ignore previous SIGINT handler.
1590
1591 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
1592
1593         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
1594         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
1595         #79460, #79461, #79485.
1596
1597         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
1598
1599         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
1600         #79217.
1601
1602 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1603
1604         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
1605         could be generated from it.
1606
1607 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
1608
1609         * rand.c: fix read loop to correctly handle EINTR.
1610
1611 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1612
1613         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
1614         internal calls are defined to keep methods closer to the declaring
1615         type and allow a significant reduction in runtime relocations and
1616         memory usage.
1617
1618 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
1619
1620         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
1621         exception message to have FileNotFoundException use the default
1622         assembly load error message. Fixes bug #79426.
1623         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
1624
1625 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1626
1627         * threadpool.c: (start_thread_or_queue) use the root domain when
1628         creating the thread instead of the async object one.
1629
1630 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
1631
1632         * class.c, object.c, class-internals.h, reflection.c:
1633         for arrays, store element_size inside MonoClass (speedup
1634         for array object creation).
1635
1636 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
1637
1638         * icall.c: fixed CodeBase to use the file name and not the module
1639         name (bug #79365).
1640
1641 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1642
1643         * mono-debug.c, mono-debug.h: export find_method as
1644         mono_debug_find_method ().
1645
1646 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1647
1648         * debug-helpers.c, class-internals.h: added a few functions useful
1649         when debugging under gdb.
1650
1651 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1652
1653         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
1654         characters that need special handling.
1655
1656 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
1657
1658         * mono-config.c: make the os/cpu specification more flexible,
1659         allowing lists and negation.
1660
1661 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
1662
1663         * marshal.c: COM Interop fixes. Handle case where method->klass.
1664         is interface. Handle BSTR/MonoString when null. Use CDECL as 
1665         calling convention on non-windows platforms. This is for
1666         compatibility with XPCOM and MainWin COM.
1667         
1668         Code is contributed under MIT/X11 license.
1669         
1670
1671 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
1672
1673         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
1674         correctly. Fixes #79217.
1675
1676         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
1677
1678 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
1679
1680         * mono-config.c: allow both an os and cpu attribute for dllmap
1681         and dllentry elemnets to enable a single config file to be used
1682         for multiple architectures.
1683
1684 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
1685
1686         * loader.c: MonoLoaderError was cleared too soon on load failure.
1687         Fixes bug #79424.
1688
1689 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
1690
1691         * icall.c: use the defining class vtable when accessing a
1692         static field, not a pobblibly derived class.
1693
1694 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
1695
1696         * icall.c string-icalls.c: Remove references to unicode.h.
1697
1698         * unicode.h unicode.c Makefile.am: Remove these unused source files.
1699
1700         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
1701
1702         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
1703         indicating the image where custom marshaller types should be looked up.
1704         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
1705         custom marshallers, instead of corlib. Fixes #79425.
1706
1707 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
1708
1709         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
1710
1711 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
1712
1713         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
1714         Implement Environment.ProcessorCount.
1715         
1716         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
1717         Implement Environment.ProcessorCount.
1718         
1719         * icall.c: 
1720         Add Environment.ProcessorCount icall.
1721         
1722         Patch by Jason McFall.
1723
1724 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1725
1726         * assembly.c: don't append .exe/.dll when the filename already contains
1727         one of those extensions.
1728
1729 2006-09-12  Martin Baulig  <martin@ximian.com>
1730
1731         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
1732         to array interfaces.
1733
1734 2006-09-11  Martin Baulig  <martin@ximian.com>
1735
1736         * reflection.c (mono_image_build_metadata): Create the
1737         MethodImpl's after emitting all types and methods, so we don't
1738         need another fixup pass for them.
1739
1740 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1741
1742         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1743         change.
1744
1745 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1746
1747         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1748         unload.
1749
1750 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1751
1752         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1753         args is not set. Fixes #78926.
1754
1755 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1756
1757         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1758
1759         * image.c (load_class_names): Move this to class.c, and rename it to 
1760         'mono_image_init_name_cache'.
1761         (load_modules): Fix a warning.
1762
1763         * class.c icall.c image.c: Initialize image->name_cache lazily.
1764
1765         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1766         on its name using information in the AOT file.
1767
1768         * class.c (mono_class_from_name): Use the new hook function.
1769
1770 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1771
1772         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1773         correctly.
1774
1775         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1776         Fixes #79289.
1777         
1778 2006-09-06  Martin Baulig  <martin@ximian.com>
1779
1780         * icall.c (mono_lookup_internal_call): Small fix.
1781
1782 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1783
1784         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1785         double g_free.
1786
1787 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1788
1789         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1790         when --debug is specified.
1791
1792 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1793
1794         * class.c (setup_generic_array_ifaces): Fix a warning.
1795
1796 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1797
1798         * Temporarily remove the patch to assemly.c that checks the
1799         assembly versions as it breaks our gacutil.
1800
1801 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1802
1803         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1804
1805         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1806         a net 1.0 runtime.
1807
1808         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1809         created using the default ctor. Fixes #79152.
1810         (mono_string_builder_to_utf16): Ditto.
1811
1812 2006-09-01  Martin Baulig  <martin@ximian.com>
1813
1814         Fix handling of the generic array interfaces.
1815
1816         * class-internals.h
1817         (MonoDefaults): Removed `generic_array_class' and added
1818         `generic_ilist' class.
1819
1820         * class.c
1821         (mono_bounded_array_class_get): Add the new generic array interfaces.
1822         (setup_generic_array_ifaces): New static method; create vtable
1823         entries for each method in the generic array interfaces.
1824
1825         * metadata.c
1826         (select_container): Allow "parent-less" generic methods.
1827
1828         * marshal.c
1829         (mono_marshal_get_generic_array_helper): New public method.
1830
1831         * icall.c
1832         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1833         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1834         moved the interncall into System.Array.
1835
1836 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1837
1838         A few more cases of avoiding work on types with ->byref set.
1839         Has the real fix for #79238
1840         * icall.c (is_generic_parameter): New helper.
1841         (ves_icall_Type_GetGenericParameterPosition): Use it.
1842         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1843         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1844         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1845         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1846         reference types.
1847         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1848         reference types.
1849         (ves_icall_Type_get_IsGenericInstance): Likewise.
1850         (ves_icall_Type_get_IsGenericType): Likewise.
1851
1852 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1853
1854         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1855         class if possible.
1856
1857         * mempool.h (mono_mempool_get_allocated): New helper function.
1858
1859         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1860         change.
1861
1862         * mempool.c: Fix warnings and the calculation of stats.
1863
1864         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1865
1866         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1867
1868         * loader.c (mono_get_method_from_token): Update method_count stat.
1869
1870         * class-internals.h (MonoStats): Add some stats.
1871
1872 2006-08-31 Robert Jordan  <robertj@gmx.net>
1873
1874         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1875         with managed variants.
1876         All code is contributed under the MIT/X11 license.
1877         
1878 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1879
1880         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1881         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1882
1883         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1884
1885         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1886         with cycles in classes.
1887
1888         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1889
1890         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1891         missing a [MarshalAs] directive. Fixes #79203.
1892
1893         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1894         klass->marshal_info. Fixes #79217.
1895
1896 2006-08-30  Martin Baulig  <martin@ximian.com>
1897
1898         Committing a patch from Joachim Ante <joe@otee.dk>:
1899         Add support for binary data symbol stores.
1900
1901         * debug-mono-symfile.c
1902         (mono_debug_open_mono_symbol_file): Renamed into
1903         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
1904         arguments.
1905
1906         * mono-debug.c
1907         (mono_debug_open_image): Added `raw_contents' and `size' args.
1908         (mono_debug_init_2_memory): New public function.
1909
1910 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
1911
1912         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
1913
1914 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1915
1916         * appdomain.c: implement support for ShadowCopyFiles.
1917
1918 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
1919
1920         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
1921         when value is NULL (and should remove CID #51).
1922
1923 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1924
1925         * image.c: moved 2 functions to ../utils.
1926
1927 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1928
1929         * gc.c: cope with the target object of a GC handle being NULL
1930         (bug #78877).
1931
1932 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1933
1934         * class.c: recursively check parent's explicit implementations
1935         of interface methods (fixes bug #79125).
1936
1937 2006-08-19  Miguel de Icaza  <miguel@novell.com>
1938
1939         * filewatcher.c: Avoid warnings when building, do not redefine
1940         constants that are defined.
1941
1942         Remove warnings.
1943
1944 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1945
1946         * image.c: don't fail when the link points to an absolute path.
1947
1948 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
1949
1950         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
1951         Fix CID #3.
1952
1953 2006-08-17  Miguel de Icaza  <miguel@novell.com>
1954
1955         * image.c (full_path): A new method used to obtain the actual path
1956         of an assembly even in the presence of symbolic links.  
1957
1958         This is necessary for the case where we are running a binary that
1959         has been GACed, but we are using the "published" path name
1960         ($prefix/mono/1.0/blah.exe) which happens to point to the real
1961         file in the GAC.
1962
1963         This was the source of the failure for the `xsp' command with the
1964         recent AppDomain changes, as far as the runtime was concerned,
1965         there were two different assemblies: $prefix/mono/1.0/blah.exe and
1966         $prefix/mono/gac/blah/version/blah.exe.
1967
1968         (do_mono_image_open): use full path
1969
1970 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1971
1972         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
1973
1974 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
1975
1976         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
1977         domain_id is supplied. Fix CID #241 and corlib's unit tests.
1978
1979 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1980
1981         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
1982         small structures. Fixes #78990.
1983
1984 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1985
1986         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
1987
1988         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
1989
1990 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1991
1992         * appdomain.c:
1993         * marshal.c: don't load all the assemblies from a domain into newly
1994         created ones. The new domains might have different rules and load
1995         assemblies from different locations. Fixes bug #76757.
1996
1997         Patch by Lluis. Conflicts resolved by Brian Crowell.
1998
1999 2006-08-16  Alp Toker  <alp@atoker.com>
2000
2001         * socket-io.c: First half of the fix for #79084.
2002         Set sa_size to the length of the content, not that of the struct.
2003         Don't add NULL suffix to the content, this should be done in
2004         managed code if needed.
2005
2006 2006-08-14  Raja R Harinath  <rharinath@novell.com>
2007
2008         Fix part of #79012
2009         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
2010         mono_metadata_parse_type returns NULL.
2011
2012 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
2013
2014         * normalization-tables.h : new file for string normalization data.
2015         * locales.c, locales.h, icall.c :
2016           added load_normalization_resource() for string normalization,
2017           and icall as well.
2018         * Makefile.am : added normalization-tables.h to the sources.
2019
2020 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
2021
2022         * marshal.c: Add more helper functions to reduce code duplication and use them
2023         everywhere.
2024
2025 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
2026
2027         * marshal.c: Fix non-x86 stdcall warnings.
2028         
2029         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
2030         them everywhere.
2031
2032 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
2033
2034         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
2035         type check on multi-dimensional arrays. Fixes #79000.
2036
2037 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
2038
2039         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
2040         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
2041         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
2042         * class-internals.h: add is_com_object to class structure.
2043         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
2044         null checks to COM object marshalling. Fix .ctor call on RCW.
2045         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
2046         
2047         All code is contributed under the MIT/X11 license.
2048
2049 2006-08-09  Dick Porter  <dick@ximian.com>
2050
2051         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
2052         racing mono_monitor_allocator_lock() somewhere, so don't delete
2053         the critical section for now.  Found by running and exiting
2054         monodevelop.
2055
2056 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
2057
2058         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
2059         (ves_icall_System_ComObject_FindInterface): Ditto.
2060         (ves_icall_System_ComObject_CacheInterface): Ditto.
2061
2062         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
2063         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
2064
2065 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2066
2067         * threadpool.c: treat pipes from process asynchronous reads as sockets
2068         when reading from them, so we get select/poll or epoll to wait for
2069         data.
2070
2071 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
2072
2073         * loader.c: Fix a typo (CID #233) in the null check.
2074
2075 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
2076
2077         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
2078         Hopefully fixes #78949.
2079         
2080         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
2081         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
2082         bytes. Fixes #78972.
2083
2084 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2085
2086         * filewatcher.c: we need to set errno here.
2087
2088 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2089
2090         * filewatcher.c: let Win32Exception get the error value.
2091
2092 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2093
2094         * filewatcher.c: translate errno into win32 errors for Win32Exception
2095         to know what happened.
2096
2097 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
2098
2099         * threadpool.c: Fix more warnings.
2100
2101         * assembly.c (search_loaded): Fix warnings.
2102
2103         * threadpool.c (mono_thread_pool_finish): Fix warnings.
2104         (mono_async_invoke): Ditto.
2105
2106 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
2107
2108         * object.c (mono_remote_class_vtable): Need to create proxy vtable
2109         entries for __ComObject type in addition to ComImport types.
2110         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
2111         about hash table.
2112         
2113         All code is contributed under the MIT/X11 license.
2114
2115 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2116
2117         * image.c: avoid tentative loading of modulerefs that contain
2118         no metadata (P/Invoke library names).
2119
2120 2006-07-28  Dick Porter  <dick@ximian.com>
2121
2122         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
2123         mono_loader_lock() somewhere, so don't delete the critical section
2124         for now.  Found by running and exiting monodevelop.
2125
2126 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2127
2128         * filewatcher.c: define the inotify syscalls when we're building on
2129         linux and have sys/syscall.h. The build system might not have support
2130         for inotify but the target system might have it.
2131
2132 2006-07-26  Miguel de Icaza  <miguel@novell.com>
2133
2134         * domain.c: Documentation updates.
2135
2136         * loader.c (mono_free_method): Do not release the method
2137         information if we are being profiled, as profilers will use this
2138         information at shut down to present some data to the user.
2139
2140         This is needed so that the profiler does not crash, as the
2141         profiler tends to keep MonoMethods around, and they might become
2142         invalid if we free these.
2143
2144         (mono_get_method_constrained): Return the original CIL stream
2145         method as well, so verification can be performed against it.
2146
2147 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2148
2149         * filewatcher.[ch]: support for inotify file system watcher.
2150         * icall.c: add new internal calls for the inotify file system watcher.
2151
2152 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2153
2154         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
2155         #78888.
2156
2157 2006-07-20  Dick Porter  <dick@ximian.com>
2158
2159         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
2160         warning.
2161
2162 2006-07-20  Dick Porter  <dick@ximian.com>
2163
2164         * threads.c (start_wrapper): Do the thread cleanup while we still
2165         hold a reference to its object.  Fixes bug 78123.
2166
2167 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
2168
2169         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
2170         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
2171           "managed-to-managed".
2172         * icall.c: Redirect string constructors that take sbyte* to
2173           ves_icall_System_String_ctor_RedirectToCreateString.
2174         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
2175           to CreateString () methods with matching signature.
2176         * reflection.c: Use original security informations for
2177           MONO_WRAPPER_MANAGED_TO_MANAGED.
2178         * security-manager.c: Use original security informations for
2179           MONO_WRAPPER_MANAGED_TO_MANAGED.
2180         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
2181           that is a placeholder and only its address should be used.
2182         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
2183           that is a placeholder and only its address should be used.
2184
2185 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
2186
2187         Begin implementing COM Interop.
2188         * appdomain.c: Increment corlib version.
2189         * class.c: Set ComImport classes' parent to __ComObject.
2190         * loader.c: Mark cominterop methods as such.
2191         * domain.c: Add __ComObject class to MonoDefaults structure.
2192         * image.c: Add 2 hashtables to the image for COM Interop related methods
2193         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
2194         using the mempool allocator
2195         
2196         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
2197         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
2198         declaration for mono_metadata_type_dup_mp.
2199         
2200         * debug-helpers.c: Added strings for two additional wrapper types
2201         * object.c: Create proxy objects for ComImport classes
2202         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
2203         and added __ComObject class to MonoDefaults structure.
2204         
2205         * object-internals.h: Finish MonoRealProxy definition, and add definition of
2206         MonoComInteropProxy and MonoComObject.
2207         
2208         * marshal.c: Added support for COM Interop
2209         (signature_cominterop): Converts managed signature to corresponding
2210         unmanaged COM signature.
2211         (cominterop_get_function_pointer): gets unmanaged function pointer via
2212         COM object vtable
2213         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
2214         (cominterop_get_method_interface): returns interface type that method is defined on
2215         (mono_mb_emit_cominterop_call): emits native call to function pointer
2216         gotten from vtable
2217         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
2218         that matches signature of unmanaged function.
2219         (cominterop_get_native_wrapper): wrapper around adjusted method call.
2220         (cominterop_get_invoke): forwards call from proxy to __ComObject
2221         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
2222         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
2223         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
2224         
2225         * marshal.h: Added Marshal icall declarations.
2226         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
2227         so we can access them in finalizer
2228         
2229 2006-07-14  Dick Porter  <dick@ximian.com>
2230
2231         * object.c (mono_type_initialization_cleanup): Fix a race
2232         condition by temporarily commenting out the critical section
2233         deletion.
2234
2235 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
2236
2237         * reflection.c (create_custom_attr): Fix some warnings.
2238         (create_custom_attr_data): Ditto.
2239         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
2240         types. Fixes #78855.
2241
2242 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
2243
2244         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
2245
2246         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
2247
2248 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
2249
2250         * reflection.c (resolve_object): Add support for DynamicMethod.
2251
2252         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
2253         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
2254
2255 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
2256
2257         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
2258         don't leak GPtrArray's pdata has we have no use (nor free) for it.
2259
2260 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
2261
2262         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
2263         Fixes #77888.
2264
2265 2006-06-30  Raja R Harinath  <rharinath@novell.com>
2266
2267         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
2268         slightly: remove a shadow local variable.
2269
2270 2006-06-29  Raja R Harinath  <rharinath@novell.com>
2271
2272         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
2273         definition that introduces the virtual function slot.
2274         Also fix Coverity #105.
2275
2276 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
2277
2278         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
2279         for dynamic assemblies. Fixes #78724.
2280
2281 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
2282
2283         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
2284         Fixes #78722.
2285
2286 2006-06-21  Martin Baulig  <martin@ximian.com>
2287
2288         * reflection.c
2289         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
2290         fixes #76484.
2291
2292 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
2293
2294         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
2295
2296 2006-06-20  Raja R Harinath  <rharinath@novell.com>
2297
2298         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
2299         nor TYPEREFs.
2300         * class.c (mono_class_create_from_typespec): Add 'context' argument.
2301         Inflate result if necessary.
2302         (mono_class_get_full): Remove old version.  Rename from
2303         'mono_class_get' and add 'context' argument.  Pass it to
2304         ..._create_from_typespec.
2305         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
2306         (mono_ldtoken): Revert change below.
2307
2308 2006-06-20  Martin Baulig  <martin@ximian.com>
2309
2310         * class.c (mono_ldtoken): Don't pass the generic context to
2311         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
2312
2313 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
2314
2315         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
2316         and later freeing it. Fixes #78638.
2317
2318 2006-06-15  Miguel de Icaza  <miguel@novell.com>
2319
2320         * icall.c (mono_class_get_throw): Revert over-zealous error
2321         throwing, the caller for mono_class_get_throw will cope with
2322         errors when classes are not properly initialized already.
2323
2324         The code still copes with loader exceptions though.
2325
2326         Fixes the regression in reftype1 and reftype3 from the CAS tests.
2327         
2328 2006-06-14  Miguel de Icaza  <miguel@novell.com>
2329
2330         Fixes the `make run1' version of RuntimeAbort (to be commited,
2331         source is in Bugzilla).
2332         
2333         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
2334         FALSE on class loading failure instead of returning true.
2335
2336         * class.c (mono_class_create_from_typedef): It is possible for
2337         mono_metadata_interfaces_from_typedef_full to fail if a class is
2338         not found, cope with this.
2339         
2340
2341 2006-06-14  Dick Porter  <dick@ximian.com>
2342
2343         * socket-io.c: 
2344         * process.c: Fix a bunch of signed/unsigned warnings from gcc
2345         4.1.1
2346
2347 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
2348
2349         * culture-info-table.h : oops, forgot to make it nsync with r61548.
2350
2351 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
2352
2353         * icall.c: Another fix for building mono in Visual Studio.
2354
2355 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
2356
2357         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
2358         
2359 2006-06-09  Martin Baulig  <martin@ximian.com>
2360
2361         * debug-mono-symfile.c: Put this back and really fix it this
2362         time. Sorry for all the trouble.
2363
2364 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
2365
2366         * icall.c (mono_class_get_throw): Fix a warning.
2367         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
2368         ReflectionTypeLoadException if needed. Fixes #78606.
2369
2370         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
2371         (mono_class_init): Ditto.
2372
2373         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
2374         ref_only exceptions.
2375         (mono_loader_clear_error): Make this work even if there is no error.
2376
2377 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
2378
2379         * object-internals.h marshal.c marshal.h icall.c: Implement method 
2380         Marshal.GetComSlotForMethodInfo using internal call.
2381
2382 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
2383
2384         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
2385         a function for signalling it.
2386
2387         * class.c (mono_class_from_typeref): Use the new kind of loader error when
2388         a referenced assembly is not found.
2389
2390         * loader.c (mono_loader_error_prepare_exception): Add support for 
2391         LOADER_ERROR_ASSEMBLY. Fix formatting.
2392
2393 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
2394
2395         * domain.c appdomain.c class-internals.h marshal.c: Add support 
2396         for VARIANT marshalling on windows and increment corlib version
2397         since Variant struct was added.
2398
2399 2006-06-03  Miguel de Icaza  <miguel@novell.com>
2400
2401         * debug-mono-symfile.c: Revert Martin's previous patch which broke
2402         stack trace line information:
2403
2404         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
2405         (Martin) when looking up B which is between A and C, return A not C.
2406
2407         Bug is #78573.
2408
2409         Thanks to Alexander Olk for tracking this down.
2410
2411 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
2412
2413         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
2414         
2415         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
2416         avoid clobbering its value.
2417         (mono_string_to_lpstr): Fix a warning on windows.
2418
2419 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
2420
2421         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
2422
2423         * reflection.c loader.c: Removed references to 'dummy' flag.
2424
2425         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
2426
2427         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
2428         it gets GC tracking.
2429
2430         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
2431         GC tracking.
2432         
2433         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
2434
2435         * marshal.c threadpool.c: Update callers of mono_async_result_new.
2436
2437         * appdomain.c: Bump corlib version.
2438
2439 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2440
2441         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2442         CEE_STIND_REF when working with object references.
2443
2444 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
2445
2446         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
2447         Fixes #78539.
2448
2449 2006-05-30  Miguel de Icaza  <miguel@novell.com>
2450
2451         * loader.c (method_from_memberref): Fix argument value for
2452         mono_loader_set_error_method_load (I was passing the MonoClass
2453         instead of the class name char *).
2454
2455 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2456
2457         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2458         CEE_STIND_REF when working with object references.
2459
2460 2006-05-30  Martin Baulig  <martin@ximian.com>
2461
2462         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
2463         mono_method_full_name() change and replace the ':' with a '.'
2464         here.
2465
2466 2006-05-30  Martin Baulig  <martin@ximian.com>
2467
2468         * debug-mono-symfile.c
2469         (mono_debug_symfile_lookup_location): Fix the algorithm:
2470         when looking up B which is between A and C, return A not C.
2471
2472 2006-05-29  Martin Baulig  <martin@ximian.com>
2473
2474         * mono-debug.h
2475         (MonoDebugMethodInfo): Make the typedef public.
2476         (MonoDebugSourceLocation): New public struct.
2477
2478         * mono-debug.c
2479         (mono_debug_source_location_from_address): Removed.
2480         (mono_debug_source_location_from_il_offset): Removed.
2481         (mono_debug_il_offset_from_address): Removed.
2482         (mono_debug_address_from_il_offset): Removed.
2483         (mono_debug_lookup_method): New public function.
2484         (mono_debug_lookup_source_location): New public function; replaces
2485         the old mono_debug_source_location_from_*() functions; see the
2486         inline documentation.
2487         (mono_debug_free_source_location): New public function.
2488         (mono_debug_print_stack_frame): New public function; see the
2489         inline documentation.
2490
2491         * debug-mono-symfile.c
2492         (mono_debug_find_source_location): Renamed into
2493         mono_debug_symfile_lookup_location(); only take a
2494         `MonoDebugMethodInfo *' and an `offset' argument; added inline
2495         documentation.
2496         (mono_debug_find_method): Renamed into
2497         mono_debug_symfile_lookup_method().
2498
2499 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
2500
2501         * assembly.c (mono_assembly_open_full): Dont overwrite the status
2502         returned by mono_image_open_full ().
2503
2504         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
2505         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
2506         #78517.
2507
2508         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
2509         #78518.
2510
2511 2006-05-27  Miguel de Icaza  <miguel@novell.com>
2512
2513         * class.c (mono_class_from_typeref): handle missing images
2514         earlier, deals with bug #78418.   Refactor code; 
2515
2516         Fix a warning introduced in my previous commit (some stale code
2517         from before I revisited my patch).
2518
2519         * class.c (mono_class_create_from_typedef): On failure, remove the
2520         class from the MonoImage->class_cache as the class is not
2521         initialized;   Fixes the leak pointed out by Paolo.
2522
2523 2006-05-25  Dick Porter  <dick@ximian.com>
2524
2525         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
2526         DeleteCriticalSections until I figure out which one may still be
2527         sometimes locked when mono_thread_cleanup is called.
2528
2529 2006-05-24  Dick Porter  <dick@ximian.com>
2530
2531         * threads.c (mono_thread_cleanup): Move the threading cleanup out
2532         of mono_thread_manage and back into its own function, so it can be
2533         called after the finalizer thread has finished.
2534
2535         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
2536
2537 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
2538
2539         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
2540         Fixes #78495.
2541
2542         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
2543         with non-blittable elements.
2544         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
2545
2546 2006-05-24  Martin Baulig  <martin@ximian.com>
2547
2548         * mono-debug-debugger.h (MonoDebuggerEvent): Added
2549         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
2550
2551         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
2552         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
2553         `mono_debugger_event_handler' to NULL.
2554
2555 2006-05-24  Martin Baulig  <martin@ximian.com>
2556
2557         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
2558
2559 2006-05-24  Martin Baulig  <martin@ximian.com>
2560
2561         * mono-debug-debugger.h
2562         (mono_debugger_create_notification_function): Added
2563         `MonoCodeManager *' argument.
2564
2565 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
2566
2567         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
2568
2569 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
2570
2571         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
2572         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
2573         implementation.
2574
2575 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
2576
2577         * icall.c: precise GC support: objects can't be stored in unmanaged
2578         memory anymore, even if they are kept alive by other references: since
2579         they can move the GC needs to be able to always find them.
2580
2581 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2582
2583         * object.c: precise GC support for static fields. Support
2584         for moving GCs: write barriers and pinned allocation for interned
2585         strings.
2586
2587 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2588
2589         * domain.c, domain-internals.h: precise GC support for the MonoDomain
2590         structure.
2591
2592 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2593
2594         * class.c, gc.c: sgen and precise GC updates.
2595
2596 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
2597
2598         * marshal.h, marshal.c: added write barrier wrapper and precise type
2599         fixes.
2600
2601 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
2602
2603         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
2604         support.
2605
2606 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2607
2608         * reflection.c: precise and sgen GC updates.
2609
2610 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
2611
2612         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
2613
2614 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
2615
2616         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
2617
2618 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
2619
2620         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
2621         MONO_TYPE_OBJECT. Fixes #78462.
2622
2623 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
2624
2625         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
2626         and blittable types.
2627
2628 2006-05-17  Miguel de Icaza  <miguel@novell.com>
2629
2630         * class.c (mono_class_get_exception_for_failure): Implement parts
2631         of a TODO: if the loader error is set (instead of the class
2632         error), we return a Loader exception that can be properly thrown
2633         elsewhere.
2634
2635         This was exposed by some Winforms 2.0 code that I tried to run
2636         (Atsushi pointed me to it).
2637
2638 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
2639
2640         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
2641         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
2642         
2643         * marshal.c (emit_marshal_vtype): Add limited support for 
2644         UnmanagedType.LPStruct. Fixes #78427.
2645
2646         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
2647         Applied a patch from kangaroo to fix #77523.
2648
2649 2006-05-17  Martin Baulig  <martin@ximian.com>
2650
2651         * threads.c
2652         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
2653         (debugger_thread_created): Removed.
2654         (debugger_thread_exited): Removed.
2655
2656 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
2657
2658         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2659
2660         * object-internals.h (MonoReflectionResource): Sync with managed version.
2661
2662 2006-05-12  Wade Berrier <wberrier@novell.com>
2663
2664         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
2665
2666 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
2667
2668         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
2669         functions try to allocate from the image mempool.
2670
2671 2006-05-12  Dick Porter  <dick@ximian.com>
2672
2673         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
2674
2675 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
2676
2677         * object.c: The FieldGetter and FieldSetter methods require the full
2678         name of the class, not only the name. Fixes bug #78277.
2679
2680 2006-05-11  Miguel de Icaza  <miguel@novell.com>
2681
2682         * loader.c (method_from_memberref): Do not pass the NULL klass to
2683         mono_loader_set_error_() methods.  Pass the non-NULL value
2684         (class). 
2685
2686 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
2687
2688         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
2689         (mono_assembly_close): Null out assembly->image->references after freeing it.
2690
2691         * image.c (mono_image_close): Free image->references.
2692         
2693         * reflection.c (mono_image_basic_init): Fix a small memory leak.
2694
2695 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2696
2697         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
2698         before checking if it's NULL (g_assert).
2699
2700 2006-05-10  Martin Baulig  <martin@ximian.com>
2701
2702         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
2703         I thought I already killed that two months ago, but now it somehow reappeared.
2704
2705 2006-05-10  Martin Baulig  <martin@ximian.com>
2706
2707         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
2708
2709 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
2710
2711         * reflection.c: Allocate memory for dynamically created methods in the image
2712         mempools.
2713
2714 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2715
2716         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
2717         don't use the ad pointer before checking if it's NULL (g_assert).
2718
2719 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
2720
2721         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
2722         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
2723
2724         * marshal.c: Allocate all signatures from mempools.
2725
2726         * marshal.c: Allocate some more signatures from mempools.
2727
2728 2006-05-09  Miguel de Icaza  <miguel@novell.com>
2729
2730         * object.c (mono_load_remote_field): The code used to provide a
2731         temporary variable for returning results if the user did not
2732         provide a result pointer.  But our temporary variable was allocted
2733         on the satck.
2734
2735         Fix calling code to always pass a result area.   Coverity ID 103.
2736
2737 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2738
2739         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2740         value, not the old. Fixes #78312.
2741         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2742
2743         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2744         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2745         per-image cache.
2746
2747         * assembly.c (mono_assembly_close): Free image->references.
2748
2749         * assembly.c (mono_assembly_names_equal): Fix a warning.
2750         (mono_assemblies_cleanup): Cleanup more global data.
2751
2752         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2753
2754         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2755         ptr_cache and image->modules.
2756
2757         * image.c (mono_image_init): Allocate array_cache lazily.
2758         
2759 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2760
2761         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2762         behavior was changed recently and has bad side effects.
2763
2764 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2765
2766         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2767         
2768         * assembly.c (mono_assembly_close): Remove a debug printf.
2769
2770         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2771
2772         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2773         to also allow for temporary references between mono_image_open ()/close ().
2774
2775         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2776
2777 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2778
2779         * marshal.c: Fix support for dynamic methods.
2780
2781         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2782
2783         * marshal.c (mono_marshal_cleanup): New cleanup function.
2784
2785         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2786         image mempools.
2787
2788         * class.c (mono_class_init): Fix leaking class->nested_classes.
2789
2790         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2791
2792         * image.c (mono_image_init): Initialize the new cashes.
2793
2794         * image.c (mono_image_close): Destroy the new cashes.
2795
2796         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2797
2798         * mempool.c (mono_mempool_strdup): New helper function.
2799
2800         * class-internals.h: Add prototype for mono_loader_unlock ().
2801
2802         * domain.c (mono_jit_info_table_find): Fix a warning.
2803         (mono_debugger_check_runtime_version): Ditto.
2804
2805         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2806         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2807         functions to these modules.
2808
2809         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2810         metadata modules.
2811         
2812         * marshal.c (mono_free_bstr): Fix a warning.
2813
2814         * assembly.c (mono_assembly_open_full): Fix another small leak.
2815
2816         * object.c: Fix some unload leaks in the remoting code.
2817
2818         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2819         function.
2820
2821         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2822
2823         * reflection.c: Fix some unload leaks in dynamic assemblies.
2824
2825 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2826
2827         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2828         * marshal.h: Add BSTR support on Win32
2829         * icall.c: Add BSTR icalls
2830         * metadata.h: Add BSTR enums
2831
2832 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2833
2834         Work to catch the crash from #76795 and turn it into an
2835         exception.   As I stubbed out pieces of the VisualBasic support,
2836         I found a number of places where the code was failing and I added
2837         checks to those places. 
2838         
2839         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2840         function return a status code.  If we fail to parse the signature
2841         from mono_metadata_parse_generic_inst, return FALSE.
2842
2843         * loader.c (mono_get_method_from_token): If we fail to load the
2844         method (mono_class_get) return NULL.   
2845
2846         * (method_from_memberref): Return NULL if we are unable to parse
2847         the method signature
2848
2849         (mono_loader_error_prepare_exception): Since we now use the
2850         loader_error flag internally to stop processing, and obtaining
2851         exceptions that might be thrown will walk this code path the
2852         proper way of going from a MonoLoaderError into a
2853         MonoException was convoluted.   This new routine encapsulates the
2854         process of turning the error into an exception and *clearing* the
2855         error afterwards.
2856         
2857 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2858
2859         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2860         with missing assemblies), and to cope with:
2861
2862                 * Missing fieldref from a non-existing assembly.
2863                 * Missing methodref from a non-existing assembly.
2864
2865         The first batch of work to address *some* of the issues from 76661.
2866         
2867         * object.c (mono_class_create_runtime_vtable): If we fail to
2868         initialize the class raise the exception here. 
2869
2870         * metadata.c (mono_class_get_overrides_full): If any methods fail
2871         to load return the failure to the caller.
2872
2873         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2874         flagging assemblies that failed to load.   
2875
2876         Do not crash if we are unable to load the assembly.
2877
2878         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2879         assemblies. 
2880
2881         * loader.c (mono_loader_set_error_type_load): Change the
2882         convention to always pass unallocated strings, so we make our own
2883         copies (I know our own code had duplicated strings before, but
2884         this keeps the normal conventions).
2885         (method_from_memberref): Call mono_loader_set_error_method_load
2886         for all possible failures of loading the class. 
2887         Remove assert, turn into a loader error.
2888
2889         (mono_loader_error_to_exception): Move this routine from mini
2890         (mini_loader_error_to_exception) there was no need to have that in
2891         mini. 
2892
2893         * class.c (mono_class_from_typeref): If we were not able to load
2894         the assembly with mono_assembly_load_reference, call the
2895         mono_loader_set_error_type_load to register the problem.
2896
2897         (mono_class_setup_fields): If we fail to load the type from
2898         mono_metadata_parse_type_full, call mono_class_set_failure and
2899         break from the loop.
2900
2901         If class->exception_type is set, we do not layout the fields as
2902         that might crash the runtime, and instead return (from breaking
2903         from the previous loop).
2904
2905         (mono_class_setup_vtable): This now returns a boolean indicating
2906         whether the table was properly setup.   The decision is driven by
2907         mono_class_get_overrides_full which might run into non-existing
2908         methods. 
2909         
2910         (mono_class_init): Returns TRUE on success or FALSE if there was a
2911         problem in loading the type (incorrect assemblies, missing
2912         assemblies, methods, etc).
2913
2914         When we call mono_class_setup_fields we also check for a potential
2915         error inside this call (either a class exception or a general
2916         loader exception).
2917
2918         (mono_class_create_from_typedef): If the parent fails to load
2919         (calling mono_class_get_full) return NULL.
2920         
2921         ** Important **
2922
2923         calls to mono_metadata_parse_type_full should be checked
2924         everywhere and set the mono_class_set_failure
2925         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
2926
2927         The current patch checks the places where my manually constructed
2928         tests show the errors are showing up, but we should do it
2929         everywhere. 
2930
2931         ** Important2 **
2932
2933         mono_class_init return values should be tested everywhere, like
2934         the previous case this is something that we should audit
2935         everywhere and not only on the cases exposed by the tests I
2936         created. 
2937
2938 2006-04-26  Miguel de Icaza  <miguel@novell.com>
2939
2940         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
2941         boolean parameter and instead pass the information on `options'
2942         parameter (FileOptions).
2943
2944         * icall.c: Register the new signature for MonoIO.Open.
2945
2946         * debug-helpers.c (dis_one): Trying to understand how coverity
2947         works.  Fix Run 5, item 78.
2948
2949 2006-04-26  Dick Porter  <dick@ximian.com>
2950
2951         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
2952         dereference.
2953
2954 2006-04-25  Martin Baulig  <martin@ximian.com>
2955
2956         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
2957
2958         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
2959         debugger_thread_created().
2960         (debugger_gc_push_all_stacks): Don't handle the main thread in any
2961         special way.
2962         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
2963         (mono_debugger_finalize_threads): New function; undo the effects
2964         of mono_debugger_init_threads().
2965         (mono_debugger_create_all_threads): Removed.
2966
2967 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
2968
2969         * image.c (mono_image_close): Tidy up trace messages.
2970
2971         * assembly.c (mono_assembly_close): Ditto.
2972
2973         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
2974         no longer references an already freed assembly. Fixes #78168.
2975
2976 2006-04-21  Dick Porter  <dick@ximian.com>
2977
2978         * threads.c (mono_thread_detach): Fix reference counting when
2979         detaching threads.
2980
2981 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
2982
2983         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
2984         #78155.
2985
2986 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
2987
2988         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
2989         (mono_type_to_stind): Ditto.
2990
2991         * marshal.c: Use the new helper functions to simplify code.
2992
2993         * image.c (mono_image_close): Add some code for help debug assembly unloading
2994         problems.
2995
2996         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
2997         image mempool.
2998
2999         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
3000         assembly was already loaded in another appdomain. Fixes #78083.
3001
3002 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
3003
3004         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
3005         referenced assemblies.
3006         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
3007
3008         * domain.c (mono_domain_free): Add a trace message.
3009
3010         * appdomain.c (add_assemblies_to_domain): Ditto.        
3011
3012         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
3013         field.  
3014
3015 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
3016
3017         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
3018
3019 2006-04-12  Martin Baulig  <martin@ximian.com>
3020
3021         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
3022         `USE_INCLUDED_LIBGC'.   
3023
3024 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
3025
3026         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
3027         the patch contains ../ and a small directory name later. Hopefully fixes
3028         #78035.
3029
3030 2006-04-10  Martin Baulig  <martin@ximian.com>
3031
3032         Clean up the debugger's thread-handling code.
3033
3034         The debugger's thread-handling code has been moved from
3035         ../mini/debug-debugger.c to threads.c.  We now iterate directly
3036         over the `threads' hash, keep track of exiting threads and also
3037         use proper locking.
3038
3039         We can now debug XSP and XSP based applications with the debugger.
3040
3041         * object-internals.h (MonoThread): Added `gpointer end_stack'.
3042
3043         * threads.h
3044         (MonoThreadCallbacks): Removed; this was only used by the debugger.
3045         (mono_install_thread_callbacks): Likewise.      
3046
3047         * threads.c (mono_thread_callbacks): Removed.
3048         (debugger_thread_created, debugger_thread_exited): New static functions.
3049         (start_wrapper): Call debugger_thread_created().
3050         (thread_cleanup): Call debugger_thread_exited().
3051         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
3052         (mono_debugger_init_threads): New public function.
3053         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
3054         iterate directly over the `threads' hash and also use proper locking.
3055
3056         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
3057
3058         * mono-debug-debugger.h
3059         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
3060
3061 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
3062
3063         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
3064         argument type=array. Fixes #78057.
3065
3066 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
3067
3068         * culture-info-table.h : regenerated. Fixed bug #69652.
3069
3070 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
3071
3072         * loader.c metadata.c: Reapply a variant r59116.
3073         
3074         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
3075
3076         * class.c (mono_class_setup_interface_offsets): New internal function.
3077
3078         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
3079         interfaces too. Fixes #77398.
3080
3081         * reflection.c (encode_cattr_value): Add support for 
3082         parameter type=object, argument type=array.
3083         (load_cattr_value): Ditto. Fixes #77916.
3084
3085         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
3086         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
3087
3088         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
3089         a byval char array and CharSet is Ansi.
3090
3091         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
3092
3093 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
3094
3095         * metadata.c: Add some locking comments.
3096         
3097         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
3098         mempool.
3099         (mono_metadata_free_method_signature): Don't free the signature itself.
3100
3101         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
3102
3103         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
3104         reference the same MonoImage.
3105         (mono_assembly_load_from_full): Add an assert.
3106
3107 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
3108
3109         * image.c (mono_image_close): Don't put the image we are about to free into the
3110         loaded_images_guid_hash.
3111
3112         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
3113         to reduce code duplication.
3114
3115         * marshal.c: Register the native functions called by this module as icalls, to
3116         somewhat centralize the creation of MonoMethodSignature's.
3117
3118         * loader.c (mono_method_signature): Add a cache for method signatures.
3119
3120         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
3121         the parameter attributes of a method.
3122         (mono_metadata_parse_method_signature_full): Refactored the computation of
3123         parameter attributes into a separate function. Also avoid one allocation in
3124         most cases.
3125
3126         * assembly.c (mono_assembly_close): Ditto.
3127
3128         * image.c (mono_image_close): Log trace messages with INFO level.
3129
3130         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
3131
3132         * image.c reflection.c: Correct reference counting of image modules.
3133         
3134         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
3135         of this function from the image mempool.
3136         
3137         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
3138         to allow more cached types to be used.
3139
3140         * mono-debug.c (mono_debug_add_method): Appled patch from
3141         David S. Miller  <davem@sunset.davemloft.net>: Access 
3142         minfo->lexical_blocks[] entry elements using read32().
3143
3144 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
3145
3146         * loader.c (mono_free_method): No longer free the method header for non-dynamic
3147         methods as it is allocated from the mempool.
3148
3149         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
3150         image mempool.
3151
3152         * metadata-internals.h: Add comments describing the reference counting scheme
3153         used for MonoImage and MonoAssembly.
3154
3155         * image.c assembly.c reflection.c: Rework reference counting of images and 
3156         assemblies so they are freed when the runtime is shut down. Free some 
3157         additional memory structures when an image is unloaded.
3158         
3159 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
3160
3161         * class.c loader.c reflection.c: Allocate more data structures in
3162         the image mempool.
3163
3164 2006-03-31  Miguel de Icaza  <miguel@novell.com>
3165
3166         * icall.c
3167         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
3168         build on pre glib 2.4 systems.
3169
3170 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
3171
3172         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
3173
3174         * icall.c: Fix some warnings.
3175
3176 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
3177
3178         * culture-info-table.h : regenerated.
3179
3180 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
3181
3182         * threads.c, object-internals.h, verify.c: changed the culture caching
3183         code to use a normal MonoArray for storage so the GC can keep track of
3184         them easily. Fixed bits of the cache logic, too and simplified the
3185         code.
3186
3187 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
3188
3189         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
3190         thread for non-Boehm GCs.
3191
3192 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3193
3194         * domain.c, object.c, domain-internals.h: reduce the amount of memory
3195         needed to keep track of the data for static fields.
3196
3197 2006-03-29  Raja R Harinath  <rharinath@novell.com>
3198
3199         Fix #75172
3200         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
3201         for interface classes.  Use 'num_methods' instead.
3202         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
3203         before using '->vtable_size' field.
3204
3205 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
3206
3207         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
3208         doesn't contain managed pointers, so use a normal hashtable.
3209
3210 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
3211
3212         * reflection.c, class-internals.h, domain.c: fixed handling of types
3213         used as values for objects in custom attributes (bug #77915):
3214
3215 2006-03-24  Martin Baulig  <martin@ximian.com>
3216
3217         * class.c (mono_class_setup_fields): Added support for generic
3218         instances; fixes #77580.
3219
3220 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3221
3222         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
3223
3224 2006-03-24  Dick Porter  <dick@ximian.com>
3225
3226         * file-io.c (get_file_attributes): More stat macro breakage.
3227         Fixes bug 77759.
3228
3229 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
3230
3231         * profiler.c: added the file=filename option in the default profiler
3232         to output the profile data to filename.
3233
3234 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3235
3236         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
3237         bug #77877.
3238
3239 2006-03-22  Martin Baulig  <martin@ximian.com>
3240
3241         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
3242         allocated `MonoClassField *' in `fb->handle'.
3243
3244 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3245
3246         * class.c, image.c, metadata-internals.h: implemented new mechanism to
3247         allocate interface ID to save memory and allow better ID reuse on
3248         appdomain unload. setup_generic_vtable () removal from Martin.
3249
3250 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
3251
3252         * object.h, appdomain.c, domain.c, exception.c, icall.c,
3253         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
3254         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
3255         write barriers for reference stores with managed objects accessed with
3256         C structures in the runtime and in embedding programs.
3257
3258 2006-03-20  Raja R Harinath  <rharinath@novell.com>
3259
3260         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
3261         'interface_id' and 'max_interface_id' fields of MonoClasses
3262         representing open generic types.
3263
3264 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
3265
3266         * object.h, object.c, icall.c: added functions to deal with
3267         storing valuetypes that contain references in managed objects.
3268         * reflection.c, string-icalls.c, threads.c, marshal.c: small
3269         fixes and comments around uses of mono_array_addr ().
3270
3271 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
3272
3273         * object.h, icall.c, monitor.c: object.GetHashCode ()
3274         implementation that supports the moving garbage collector.
3275
3276 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
3277
3278         * icall.c, threads-types.h, threads.c: implemented finalizer for
3279         LocalDataStoreSlot.
3280
3281 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
3282
3283         * metadata.c (mono_type_size): Add a fixme.
3284         (mono_type_stack_size): Ditto.
3285
3286         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
3287         'type_forwarders' field.
3288
3289         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
3290         attribute from net 2.0.
3291
3292         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
3293         from class.c.
3294
3295         * class.c (mono_class_setup_fields): Fix a warning.
3296         
3297         * class.c (mono_class_from_name): Add support for assemblyref entries
3298         in the EXPORTEDTYPE table.
3299
3300         * reflection.c: Add support for handling type forwarders under net 2.0.
3301
3302         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
3303         
3304 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
3305
3306         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
3307         overwriting entries in ModuleBuild->types, also clean up the code
3308         a little. Fixes #77774.
3309
3310 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
3311
3312         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
3313         load friend assembly info when present.
3314
3315 2006-03-14  Raja R Harinath  <rharinath@novell.com>
3316
3317         Fix crasher on gtest-158.cs.
3318         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
3319         the return value if the MonoClass we want is yet in an
3320         inconsistent state.
3321         * class.c (mono_class_create_from_typedef): Add an comment
3322         explaining an order dependency between mono_class_setup_parent and
3323         mono_class_setup_mono_type.
3324
3325 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
3326
3327         * class.c: documentation updates and events bug fix.
3328
3329 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
3330
3331         * class.c: some cleanup, locking fixes.
3332
3333 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
3334
3335         * class.c: fix the generics code to setup nested
3336         type info to the instantiated type (bug #77770).
3337
3338 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
3339
3340         * marshal.c: fixed a few type correctness issues.
3341
3342 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3343
3344         * loader.c: the Set/Get/Addrtess array methods should be public.
3345
3346 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
3347
3348         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
3349         
3350         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
3351         info->wrapper.
3352
3353 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
3354
3355         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
3356
3357         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
3358
3359         * mempool.c (mono_mempool_alloc): Speed this up a bit.
3360         (mono_mempool_alloc0): Ditto.
3361
3362 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3363
3364         * socket-io.c:
3365         (create_object_from_sockaddr): it was allocating 4 extra bytes
3366         for the AF_UNIX data. Fixes bug #77747.
3367
3368 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
3369
3370         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
3371
3372 2006-03-09  Dick Porter  <dick@ximian.com>
3373
3374         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
3375         Fixes bug 76966 again.
3376
3377 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
3378
3379         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
3380         names from r57532
3381         * appdomain.c: Bumped corlib version to 48 (due to r57532)
3382
3383 2006-03-07  Martin Baulig  <martin@ximian.com>
3384
3385         * object.c
3386         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
3387
3388 2006-03-07  Martin Baulig  <martin@ximian.com>
3389
3390         * class.c
3391         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
3392         regression introduced in r56970; see gtest-252.cs.
3393
3394         * loader.c (mono_get_method_constrained): Correctly handle generic
3395         methods; see gtest-253.cs.
3396
3397 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
3398
3399         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
3400
3401 2006-03-04  Martin Baulig  <martin@ximian.com>
3402
3403         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
3404         compute the parent type at runtime, just like we're already doing
3405         it for interfaces.
3406
3407         * reflection.c
3408         (mono_reflection_bind_generic_parameters): Don't compute the
3409         parent type anymore.
3410
3411         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
3412
3413 2006-03-04  Martin Baulig  <martin@ximian.com>
3414
3415         * mono-debug-debugger.h
3416         (mono_debugger_create_notification_function): Allocate memory at
3417         runtime and return a pointer to it.
3418
3419 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
3420
3421         * assembly.c: Fix windows build.
3422         
3423         * assembly.c: Fix build.
3424
3425         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
3426
3427         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
3428         
3429 2006-03-03  Dick Porter  <dick@ximian.com>
3430
3431         * process.c
3432         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3433         Check parameters before dereferencing them.  Fixes Aaron's part of
3434         bug 77393.
3435
3436 2006-03-03  Raja R Harinath  <rharinath@novell.com>
3437
3438         Fix performance regression.
3439         * loader.c (find_method_in_class): Add 'from_class' argument.
3440         Rename 'klass' argument to 'in_class'.  The signature is compared
3441         against the method in 'in_class', and the corresponding method is
3442         returned from 'from_class'.
3443         (find_method): Walk both 'in_class' and 'from_class' in parallel.
3444         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
3445         type definition and generic instantiation in parallel.
3446         (mono_get_method_constrained): Update to changes.
3447
3448 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
3449
3450         * threads.c: make sure the domain is correct, too when doing
3451         mono_thread_attach ().
3452
3453 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
3454
3455         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
3456         windows. Fixes #77683.
3457
3458 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
3459
3460         * object.h, *: introduced specific way to set elements of an array
3461         of references to be used as write barrier. Still need to audit the
3462         uses of mono_array_addr.
3463
3464 2006-03-01  Miguel de Icaza  <miguel@novell.com>
3465
3466         * object-internals.h: New field to cache the assmebly name, patch
3467         from Tambet Ingo (tambet@ximian.com)
3468
3469 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
3470
3471         * decimal.h, class-internals.h, metadata-internals.h,
3472         file-io.h: mark a few function declarations as internal, to
3473         reduce the number of PLT entries.
3474
3475 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3476
3477         * file-io.c: fix typo in warning message.
3478
3479 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
3480
3481         * loader.c: on unix, lookup the "*A" version of a function
3482         if charset is auto as a second option before failing.
3483
3484 2006-02-28  Raja R Harinath  <rharinath@novell.com>
3485
3486         * class.h (mono_class_inflate_generic_method): Revert to two
3487         argument version.
3488         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
3489         (mono_class_inflate_generic_method_full): Add.
3490         * class.c (mono_class_inflate_generic_method_full): Rename from
3491         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
3492         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
3493         * loader.c, reflection.c: Update to changes.
3494
3495 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
3496
3497         * icall.c: const fixes and small improvements.
3498
3499 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3500
3501         * threadpool.c: for asynchronous connect(), enable the same workaround
3502         for BSD 6 as for the Mac. Fixes bug #77637.
3503
3504 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
3505
3506         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
3507         formatted classes. Fixes #77524.
3508
3509 2006-02-24  Raja R Harinath  <rharinath@novell.com>
3510
3511         * class.c (inflate_generic_type): Add a couple more
3512         micro-optimizations.
3513         (inflate_generic_context): Don't use the 'gmethod' from
3514         'inflate_with'.
3515         (mono_class_inflate_generic_method): If the method has generic
3516         parameters, but the passed-in context doesn't have a 'gmethod',
3517         create one.  Use the possibly simplified generic instantiation
3518         from the declaring class instead of the one passed in.
3519
3520 2006-02-24  Raja R Harinath  <harinath@gmail.com>
3521
3522         Make generic method signature and method header handling lazy.
3523         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
3524         (inflate_generic_header): Likewise.
3525         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
3526         parameter to avoid inflating types.
3527         (mono_get_inflated_method): Empty out.
3528         * class.h (mono_class_inflate_generic_method): Update to changes.
3529         * loader.c (mono_get_method_from_token): Don't parse signature for
3530         generic methods, nor methods of generic classes.
3531         (mono_method_signature): Rename from 'mono_method_signature'.
3532         Inflate signature on demand.
3533         (mono_method_get_header): Inflate method header on demand.
3534         * reflection.c: Update to changes.
3535
3536 2006-02-23  Raja R Harinath  <rharinath@novell.com>
3537
3538         * metadata.c (mono_metadata_inflate_generic_inst): If the
3539         instantiation is closed, don't bother expanding it in the new
3540         context.
3541         * class.c (inflate_generic_class): If the generic instantiation
3542         doesn't change after inflation, return the argument itself.
3543         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
3544         Add bounds checks.
3545         (inflate_generic_context): If neither the generic class nor the
3546         generic method instantiations change, return the original context.
3547         * reflection.c (mono_method_get_object): Do
3548         'mono_get_inflated_method' before accessing the ->klass field.
3549         (inflate_mono_method): Don't create a MonoGenericMethod unless
3550         necessary.
3551         (inflate_method): Don't pass a constructed type as the declaring
3552         type of a methodbuilder.
3553
3554 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
3555
3556         * object.c: fix memory overwrite.
3557
3558 2006-02-22  Dick Porter  <dick@ximian.com>
3559
3560         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
3561         it doesn't work any more.
3562         (mono_threads_request_thread_dump): Fix unused variable warnings.
3563
3564 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3565
3566         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
3567         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
3568         the public header file.
3569
3570 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
3571
3572         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
3573
3574 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
3575
3576         * class-internals.h, object.c: reduce the size of MonoVTable
3577         and store the interface_offsets array at negative offsets.
3578
3579 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
3580
3581         * metadata.c: tweak table descriptors data structures to reduce
3582         size and runtime relocations.
3583
3584 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3585
3586         * marshal.c: fix some types and opcodes to be type-safe
3587         in marshaling wrappers.
3588
3589 2006-02-21  Ankit Jain  <jankit@novell.com>
3590
3591         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
3592
3593 2006-02-21  Raja R Harinath  <rharinath@novell.com>
3594
3595         * metadata.c (get_constraints): Relax debugging checks for monodis.
3596
3597 2006-02-21  Ankit Jain  <jankit@novell.com>
3598
3599         * metadata.c (mono_metadata_load_generic_params): Move the code
3600         checking for ambiguous generic params from here to mono/dis/get.c
3601         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
3602
3603 2006-02-21  Raja R Harinath  <harinath@gmail.com>
3604
3605         Fix assertion triggered when compiling nemerle.
3606         * class.c (mono_get_shared_generic_inst): Rename from
3607         get_shared_inst and make non-static.
3608         * loader.c (mono_get_shared_generic_method): New.  Used to create
3609         the MonoGenericContext-equivalent of a MonoGenericContainer.
3610         (mono_get_method_from_token): Initialize the 'context' field of
3611         the created MonoGenericContainer.
3612         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
3613         * metadata.c (get_constraints): Add sanity check.
3614         * class-internals.h: Add new internal methods.
3615
3616         * reflection.c (verify_safe_for_managed_space): New sanity check.
3617         Currently checks that owner-less generic parameters aren't allowed
3618         in managed space.
3619         (mono_type_get_object): Use it.
3620         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
3621         that are now in mono_type_get_object.
3622         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
3623
3624 2006-02-19  Raja R Harinath  <harinath@gmail.com>
3625
3626         * metadata.c (mono_type_create_from_typespec): Rename from
3627         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
3628         argument and caching of types in the generic container.
3629         (unwrap_arrays, find_generic_param): Remove.
3630         * metadata-internals.h: Update.
3631         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
3632
3633 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
3634
3635         * class.c (mono_class_get_exception_for_failure): Fix a warning.
3636
3637         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
3638         return values. Fixes #77581.
3639
3640         * class.c (mono_fnptr_class_get): Switch name and name_space.
3641
3642         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
3643         classes and add support for [In, Out] attributes.
3644         (mono_marshal_free_asany): Ditto. Fixes #77524.
3645
3646 2006-02-18  Raja R Harinath  <harinath@gmail.com>
3647
3648         * class.c (mono_class_from_generic_parameter): Make more robust to
3649         incomplete MonoGenericContainers from monodis.
3650
3651 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3652
3653         * class-internals.h: added some more exception types.
3654         * class.c, metadata.c: added a few checks to handle missing
3655         types.
3656
3657 2006-02-17  Raja R Harinath  <rharinath@novell.com>
3658
3659         Use owner-less generic-params some more.
3660         * class.c (my_mono_class_from_generic_parameter): Remove.
3661         (mono_class_from_generic_parameter): Handle null image,
3662         param->name and param->owner.
3663         (mono_class_from_mono_type): Update.
3664         (mono_class_create_from_typespec): Remove 'container' parameter.
3665         If that parameter is non-null, the result is always inflated by
3666         'mono_class_get_full' anyway.
3667         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
3668         parameter.
3669         (mono_class_get_full): Update.
3670
3671         * class.c (inflate_generic_type) [GENERICINST]: If the generic
3672         instance is not open, don't bother inflating.
3673         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
3674         parse metadata for inflated classes.
3675         (_mono_class_get): Change GenericContext* parameter to
3676         GenericContainer*.
3677         (mono_class_create_from_typespec): Likewise.  Simplify, and
3678         implement trivially.  All the cases are handled in
3679         mono_class_from_mono_type.  Don't inflate returned class.
3680         (mono_class_get_full): Delegate GENERICINST optimization to
3681         inflate_generic_type.
3682         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
3683
3684 2006-02-16  Dick Porter  <dick@ximian.com>
3685
3686         * socket-io.c (create_object_from_sockaddr): Fix typo.
3687         (create_sockaddr_from_object): Check array lengths before
3688         potentially accessing items off the end.
3689         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
3690         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
3691         (ves_icall_System_Net_Sockets_Socket_Send_internal)
3692         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
3693         length checks to avoid wraparound overflows.
3694         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
3695         contents of the array of sockets
3696         (hostent_to_IPHostEntry2)
3697         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
3698         Check return value of inet_ntop ().
3699         (addrinfo_to_IPHostEntry): Fix typo
3700
3701 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3702
3703         Type metadata parsing doesn't use generic-instantiation information.
3704         * metadata.c (mono_metadata_parse_array_full): Change
3705         MonoGenericContext* parameter to MonoGenericContainer*.
3706         (mono_metadata_parse_type_full): Likewise.
3707         (mono_type_create_from_typespec_full): Likewise.
3708         (mono_metadata_parse_mh_full): Likewise.
3709         (mono_metadata_parse_generic_inst): Likewise.
3710         (do_mono_metadata_parse_generic_class): Likewise.
3711         (do_mono_metadata_parse_type): Likewise.
3712         * metadata-internals.h: Update to changes.
3713         * class.c (mono_class_find_enum_basetype): Likewise.
3714         (mono_class_setup_fields): Likewise.
3715         (mono_class_create_from_typespec): Likewise.
3716         * loader.c (method_from_methodspec): Likewise.
3717         (mono_get_method_from_token): Likewise.
3718         (mono_method_get_header): Likewise.
3719
3720 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3721
3722         * marshal.c: handle additional GENERICINST case (patch from
3723         Thong Nguyen <tum@veridicus.com>).
3724         Fix a few cases where LDIND_I/STIND_I was used for references.
3725
3726 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3727
3728         * reflection.c (mono_reflection_get_token): Remove unused variable.
3729
3730 2006-02-16  Martin Baulig  <martin@ximian.com>
3731
3732         * reflection.c (mono_reflection_get_token): Add support for fields
3733         in instantiated generic types.
3734
3735         * icall.c
3736         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3737
3738 2006-02-15  Martin Baulig  <martin@ximian.com>
3739
3740         * icall.c
3741         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3742         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3743         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3744         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3745
3746 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3747
3748         * class.c, metadata.c, metadata.h, object.c, icall.c,
3749         marshal.c: changed mono_type_get_underlying_type () to do
3750         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3751         Fixed handling of instantiated generic valuetypes (bug #75479).
3752
3753 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3754
3755         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3756         Delegate to mono_metadata_decode_value, and work on the returned value.
3757
3758         * icall.c (ves_icall_MonoType_GetGenericArguments):
3759         Add consistency check here too.
3760         
3761 2006-02-15  Ankit Jain  <jankit@novell.com>
3762
3763         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3764         char/short etc.
3765
3766 2006-02-15  Ankit Jain  <jankit@novell.com>
3767
3768         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3769         signed values, used only for representing lower bounds of arrays.
3770         (mono_metadata_parse_array_full): Use new
3771         mono_metadata_decode_signed_value to decode lower bounds.
3772
3773 2006-02-14  Martin Baulig  <martin@ximian.com>
3774
3775         * reflection.c
3776         (mono_reflection_get_token): Support "MonoGenericMethod" and
3777         "MonoGenericCMethod" and allow generic instances / methods.
3778
3779 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3780
3781         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3782         to obtain the terminal size using an ioctl.
3783
3784         * object.c (mono_nullable_init): Revert this as nullable reference
3785         types are not valid.
3786         (mono_nullable_box): Ditto.
3787
3788 2006-02-09  Dick Porter  <dick@ximian.com>
3789
3790         * threads.c (mono_thread_detach): Drop a reference to the thread
3791         we're detaching.
3792
3793 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3794
3795         * object.c (mono_nullable_init): Handle nullable reference types.
3796         (mono_nullable_box): Ditto. Fixes #77446.
3797
3798 2006-02-07  Martin Baulig  <martin@ximian.com>
3799
3800         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3801
3802 2006-02-07  Ankit Jain  <jankit@novell.com>
3803
3804         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3805         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3806         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3807         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3808         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3809         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3810
3811 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3812
3813         * class.c (mono_class_create_generic): Set type_token as well.
3814
3815         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3816         compatible with MS.
3817
3818 2006-02-02  Martin Baulig  <martin@ximian.com>
3819
3820         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3821         has never been used so far.
3822
3823 2006-02-02  Martin Baulig  <martin@ximian.com>
3824
3825         * mono-debug-debugger.h: Changed comment at the top of this file;
3826         the header is not installed, but it's safe to #include it from
3827         within the JIT.
3828
3829         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3830         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3831
3832 2006-02-02  Martin Baulig  <martin@ximian.com>
3833
3834         * mono-debug.h
3835         (MonoSymbolTable): Removed the `metadata_info' field.
3836
3837         * mono-debug.c
3838         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3839
3840         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3841         (mono_debugger_add_builtin_types): Removed.
3842         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3843         (mono_debugger_create_notification_function): We now operate on a
3844         pre-allocated area; take a `gpointer' and return `void'.
3845
3846         * mono-debug-debugger.c
3847         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3848         (mono_debugger_add_builtin_types): Removed.
3849
3850 2006-02-02  Martin Baulig  <martin@ximian.com>
3851
3852         * threads.c (mono_debugger_create_all_threads): New public method.
3853
3854 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3855
3856         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3857         breaks on several platforms.
3858
3859 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3860
3861         * assembly.c: the VS.NET build doesn't supply default values for
3862         MONO_ASSEMBLIES and MONO_CFG_DIR.
3863
3864 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3865
3866         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3867         helper function.
3868
3869         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3870
3871         * loader.c (method_from_memberref): Fix a warning.
3872
3873         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3874
3875         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3876         with explicit layout. Fixes #77433.
3877
3878 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3879
3880         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3881         max_interface_id is initialized before using it. Fixes #77398.
3882         (ves_icall_Type_GetInterfaces): Ditto.
3883
3884 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3885
3886         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3887         allocate memory for parameter attributes when parsing memberref
3888         signatures.
3889         * loader.c (mono_loader_set_error_method_load): Don't warn.
3890         (method_from_memberref): Ensure MissingMethodException gets thrown
3891         if method is not found.  Make warning more informative.
3892
3893 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3894
3895         Fix #77397
3896         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3897         return true if is byref.
3898         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3899         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3900         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3901
3902 2006-01-27  Raja R Harinath  <rharinath@novell.com>
3903
3904         Fix tests/find-method.2.il
3905         * loader.c (find_method, find_method_in_class): Remove is_inflated
3906         argument.  Revert 2006-01-18 change.
3907         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
3908         is generic, search for method in its generic definition.
3909         * class.c (mono_class_setup_vtable_general): Print generic
3910         arguments of generic types in debugging printf.
3911
3912 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
3913
3914         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
3915
3916         * threads.c (mono_threads_request_thread_dump): New helper function.
3917
3918 2006-01-25  Raja R Harinath  <rharinath@novell.com>
3919
3920         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
3921
3922 2006-01-25  Ankit Jain  <jankit@novell.com>
3923
3924         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
3925         move definition to ..
3926         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
3927         
3928 2006-01-25  Ankit Jain  <jankit@novell.com>
3929             Raja R Harinath  <rharinath@novell.com>
3930
3931         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
3932         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
3933         as necessary.
3934
3935 2006-01-25  Martin Baulig  <martin@ximian.com>
3936
3937         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
3938         `MonoDebuggerThread' into debug-debugger.c.
3939
3940 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
3941
3942         * profiler.c: fix printing of data.
3943
3944 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
3945
3946         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
3947           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
3948
3949 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3950
3951         * object.c: fix deadlock related to string interning.
3952
3953 2006-01-23  Martin Baulig  <martin@ximian.com>
3954
3955         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3956
3957         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
3958
3959 2006-01-23  Martin Baulig  <martin@ximian.com>
3960
3961         * mono-debug.h: Moved the prototypes of some functions which are
3962         used by the JIT here from mono-debug-debugger.h.
3963
3964 2006-01-21  Martin Baulig  <martin@ximian.com>
3965
3966         * Makefile.am: Don't install mono-debug-debugger.h.
3967
3968 2006-01-21  Martin Baulig  <martin@ximian.com>
3969
3970         * mono-debug-debugger.h: Enforce the private status of this header
3971         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
3972         Moved some stuff from mono-debugger-jit-wrapper.h here.
3973
3974 2006-01-20  Raja R Harinath  <rharinath@novell.com>
3975
3976         * class.c (mono_class_from_typeref): Add a sanity test to help
3977         catch lack of assembly load/search hooks.
3978
3979 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
3980
3981         * marshal.c (emit_struct_conv): Relax the fields with same offset
3982         check even more. Fixes #77230.
3983
3984 2006-01-18  Martin Baulig  <martin@ximian.com>
3985
3986         * loader.c (find_method_in_class): Added `gboolean is_inflated'
3987         argument; if false, we compare the uninstantiated signatures.
3988         (method_from_memberref): Compare the uninstantiated signatures;
3989         fixes #76417.
3990
3991 2006-01-18  Robert Jordan  <robertj@gmx.net>
3992
3993         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
3994         Clear the weak link. Fixes bug #77170.
3995
3996         * gc.c (mono_gchandle_free):
3997         Reflect *-gc.c changes (tiny optimization).
3998
3999 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
4000
4001         * metadata.c (mono_metadata_signature_dup): Applied patch from
4002         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
4003         Fixes #77288.
4004
4005 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
4006
4007         * marshal.c (emit_struct_conv): Allow fields with the same offset when
4008         marshalling from native to managed code. Fixes #77230.
4009
4010 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4011
4012         * threadpool.c: fix problem (Mac only) when more than one asynchronous
4013         connect. Fixes bug #77020.
4014
4015 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
4016
4017         * class.c: fixed id assignement for nested interfaces (bug #77275).
4018         Added also better info for --print-vtable debugging.
4019
4020 2006-01-12  Martin Baulig  <martin@ximian.com>
4021
4022         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
4023         interfaces on-the-fly; fixes #76625.
4024
4025         * class-internals.h
4026         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
4027         don't need that anymore.
4028
4029 2006-01-12  Miguel de Icaza  <miguel@novell.com>
4030
4031         * socket-io.c
4032         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4033         To avoid initing the nested_classes when not needed I turned the
4034         PeerCredData as a toplevel internal class, as it has to be shared
4035         anyways. 
4036
4037         Fixes the CASA issue.
4038
4039 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
4040
4041         * domain.c: Accessors for MonoJitInfo
4042
4043         * profiler-private.h: Add jitinfo to the end jit hook
4044
4045         * profiler.[ch]: Define new hooks, called after jitting which give
4046         the MonoJitInfo that was compiled
4047
4048 2006-01-10  Martin Baulig  <martin@ximian.com>
4049
4050         * class.c (mono_class_setup_events): Add support for generic
4051         classes; fixes #76440.
4052
4053 2006-01-06  Raja R Harinath  <rharinath@novell.com>
4054
4055         Fix #77160.
4056         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
4057         on passed-in method.
4058
4059 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
4060
4061         * object.c (mono_runtime_invoke_array): Add Nullable support.
4062
4063         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
4064
4065 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
4066
4067         * file-io.c: Don't consider sockets as directory and avoid an endless
4068         loop. Fix bug #76966.
4069
4070 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
4071
4072         * object.c (mono_nullable_init): New helper function.
4073         (mono_nullable_box): Ditto.
4074
4075         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
4076
4077         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
4078
4079         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
4080         
4081 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
4082
4083         * class.c (mono_class_is_assignable_from): Make T assignable to 
4084         Nullable<T>.
4085
4086 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
4087
4088         * appdomain.c: Bump corlib version to 46.
4089         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
4090         serialization purpose) and changed ves_icall_System_Reflection_
4091         Assembly_get_code_base signature to accept a boolean (to escape, or 
4092         not, the assembly code base).
4093
4094 2005-12-23  Dick Porter  <dick@ximian.com>
4095
4096         * icall.c: 
4097         * threads-types.h: 
4098         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
4099         CreateEvent icall now returns "created" boolean parameter.
4100
4101 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
4102
4103         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
4104         #76967.
4105
4106         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
4107         when attr_klass is an interface. Fixes #77045.
4108
4109 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
4110
4111         * marshal.c (emit_struct_conv): Fix previous patch.
4112         
4113         * marshal.c (emit_struct_conv): Add a check for fields with the same
4114         offset.
4115
4116 2005-12-20  Raja R Harinath  <rharinath@novell.com>
4117
4118         Fix regression in Mono.C5.
4119         * class.c (mono_class_create_generic): If 'klass' is an interface
4120         set up the interface offsets.
4121         (mono_class_is_assignable_from): Don't throw away generic arguments.
4122
4123 2005-12-19  Raja R Harinath  <rharinath@novell.com>
4124
4125         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
4126         type parameters.
4127
4128 2005-12-15  Raja R Harinath  <rharinath@novell.com>
4129
4130         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
4131         dead store.
4132         (do_mono_metadata_parse_generic_class): Don't pass the current
4133         generic context when parsing the type being instantiated: it
4134         cannot use it, anyway.
4135
4136         * loader.c (method_from_memberref): Don't inflate a signature if
4137         it doesn't contain any type parameters.
4138
4139 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
4140
4141         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
4142
4143 2005-12-14  Martin Baulig  <martin@ximian.com>
4144
4145         * class.c
4146         (mono_type_get_name_recurse): Don't return null for type
4147         parameters and open generic classes.
4148         (mono_class_setup_methods): Don't exclude generic instances.
4149         (mono_get_unique_iid): Use different IDs for different
4150         instantiations of the same generic type.
4151         (mono_class_setup_vtable): Only use setup_generic_vtable() for
4152         open generic instances; create a normal vtable for closed generic
4153         instances.
4154         (mono_class_setup_vtable_general): We're now also called for
4155         closed generic instances.
4156
4157         * reflection.c
4158         (mono_reflection_bind_generic_parameters): Correctly use
4159         mono_metadata_lookup_generic_inst() everywhere.
4160
4161 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
4162
4163         * object.c (mono_class_create_runtime_vtable): Call 
4164         mono_class_setup_vtable ().
4165
4166         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
4167         function.
4168         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
4169         #76959.
4170
4171         * loader.c (mono_loader_set_error_type_load): Print the type load
4172         warnings to the console so they are more visible to the user.
4173         (mono_loader_set_error_method_load): Ditto.
4174
4175         * reflection.c (ensure_runtime_vtable): Revert the last change as it
4176         is still broken.
4177         
4178         * reflection.c (ensure_runtime_vtable): Fix build.
4179
4180         * reflection.c (ensure_runtime_vtable): Disable an optimization which
4181         doesn't work in all cases.
4182
4183 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
4184
4185         * object.c (mono_array_new_full): Treat a single dimensional array
4186         with 0 lower bounds as an szarray. Fixes #76973.
4187
4188         * reflection.c (custom_attr_visible): Really fix this.
4189
4190 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
4191
4192         * reflection.c (custom_attr_visible): Allow nested public attributes
4193         as well.
4194
4195         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
4196         interface check.
4197
4198 2005-12-12  Raja R Harinath  <harinath@gmail.com>
4199
4200         * class.c (set_generic_param_owner): Delete.
4201         (mono_class_create_from_typedef): Don't set ->owner field of
4202         generic parameters to "param containers" of enclosing classes.
4203         * reflection.c (mono_reflection_initialize_generic_parameter):
4204         Likewise.
4205
4206 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
4207
4208         * reflection.c (custom_attr_visible): Fix build.
4209
4210 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
4211
4212         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
4213         private attributes.
4214         
4215         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
4216         handling of null parameter defaults.
4217
4218 2005-12-09  Raja R Harinath  <rharinath@novell.com>
4219
4220         * class.c (mono_class_from_generic_parameter): Don't set
4221         klass->generic_container.
4222         (my_mono_class_from_generic_parameter): Likewise.
4223
4224 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
4225
4226         * reflection.c (load_public_key): Fix a warning.
4227         (method_encode_code): Fix unaligned accesses.
4228
4229 2005-12-07  Martin Baulig  <martin@ximian.com>
4230
4231         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
4232
4233         * reflection.c
4234         (write_generic_param_entry): Encode our custom attrs.
4235
4236         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
4237
4238 2005-12-07  Martin Baulig  <martin@ximian.com>
4239
4240         * reflection.c (encode_new_constraint): Removed; we don't use the
4241         `NewConstraintAttribute' anymore.
4242
4243 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
4244
4245         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
4246         not fire a TypeResolve event when Assembly.GetType () is called.
4247
4248 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
4249
4250         Beginning of support for nullable types in the runtime. Parts of
4251         this patch are from Martin.
4252
4253         * appdomain.c (MONO_CORLIB_VERSION): Bump
4254
4255         * domain.c (mono_init_internal): get the nullable type
4256
4257         * class.c (mono_class_is_nullable): New method
4258         (mono_class_get_nullable_param): New mehod
4259         (mono_class_create_generic): In types T? set cast_class to T
4260
4261         * class-internals.h (MonoDefaults): new nullable default class
4262         (mono_class_get_nullable_param, mono_class_get_nullable_param):
4263         new methods.
4264
4265 2005-12-05  Raja R Harinath  <rharinath@novell.com>
4266
4267         * metadata.c (select_container): New.  Refactor code to select the
4268         appropriate GenericContainer given the type of generic parameter
4269         we are looking for.
4270         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
4271         not a MonoGenericContext.  Use select_container.  Update parameters.
4272         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
4273         and MONO_TYPE_MVAR.
4274         (unwrap_arrays): Remove duplicate tests.
4275         (find_generic_param): Rename from 'has_same_context'.  Now walks a
4276         generic instantiated class to find any arguments that are generic
4277         parameters.
4278         (mono_type_create_from_typespec_full): Use find_generic_param to
4279         avoid evicting some generic instantiations from the typespec
4280         cache.
4281
4282 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
4283
4284         * reflection.c: fixed writing of doubles on ARM FPA.
4285
4286 2005-12-02  Robert Jordan  <robertj@gmx.net>
4287
4288         * icall.c: Fixed EventInfo.ReflectedType (#76829).
4289
4290 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4291
4292         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
4293         least on SUSE 10 they are not the same (on debian, they are just the
4294         same thing).
4295
4296 2005-12-01  Raja R Harinath  <rharinath@novell.com>
4297
4298         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
4299         DeclaringType for VARs and MVARs.
4300         * class.c (set_generic_param_owner): Fix initialization of owner
4301         fields.
4302
4303 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
4304
4305         * icall.c: fixed Enum.ToObject() to correctly convert the values.
4306
4307 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4308
4309         * threadpool.c: workaround for a bug that shows up on the Mac:
4310         select()+connect() on a blocking socket is not like it should
4311         be, so we proceed to connect() in that case, wasting the I/O
4312         threadpool thread until connect succeedes. Fixes bug #75436.
4313
4314 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4315
4316         * threadpool.c: fix typo when setting file descriptor states.
4317
4318 2005-11-28  Raja R Harinath  <rharinath@novell.com>
4319
4320         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
4321         * metadata.c (mono_metadata_parse_method_signature_full): Don't
4322         create a temporary signature container.
4323         (mono_metadata_parse_generic_param): Update to changes.
4324         (mono_type_create_from_typespec_full): Update to changes.
4325         * loader.c (method_from_memberref): Don't use a
4326         MonoGenericContainer while parsing a memberref signature.
4327         (method_from_methodspec): Remove dead-store of the 'container'
4328         variable.  It's overwritten before use.
4329
4330         * metadata.c (mono_type_create_from_typespec_full): Make debugging
4331         checks tighter.
4332         (mono_metadata_parse_generic_param): Likewise.
4333         * loader.c (find_method_in_class): Does not need a
4334         MonoGenericContainer.  Use 'mono_method_signature' rather than
4335         'mono_method_signature_full'.
4336         (find_method, mono_get_method_constrained, method_from_memberref):
4337         Update to changes.
4338
4339         * metadata.c (mono_type_create_from_typespec_full): Ensure that
4340         owner-less generic-parameters are never evicted from the typespec
4341         cache.
4342
4343         * loader.c (method_from_memberref): Don't use the current context
4344         when parsing signatures.
4345         (method_from_methodspec, mono_get_method_from_token): Update to changes.
4346
4347         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
4348         side-effects in g_assert.
4349         * loader.c (mono_get_method_from_token): Resolve klass earlier so
4350         that we don't potentially lose information.
4351
4352 2005-11-26  Dick Porter  <dick@ximian.com>
4353
4354         * icall.c:
4355         * threads.c: icalls to implement basic (ie, not named)
4356         System.Threading.Semaphore.
4357
4358 2005-11-24  Dick Porter  <dick@ximian.com>
4359
4360         * process.c
4361         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4362         Use GetProcessId() if it's available.
4363
4364 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
4365
4366         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
4367
4368 2005-11-23  Raja R Harinath  <rharinath@novell.com>
4369             Ankit Jain  <jankit@novell.com>
4370
4371         * loader.c (mono_get_method_from_token): Initialize 'method' field
4372         of all generic parameters before parsing the signature.  Remove
4373         code that "fixed"-up MVAR references.
4374
4375 2005-11-23  Ankit Jain  <jankit@novell.com>
4376
4377         * metadata.c (mono_metadata_has_generic_params):
4378         (mono_metadata_load_generic_param_constraints):
4379         (mono_metadata_load_generic_params): Move duplicate code ...
4380         (mono_metadata_get_generic_param_row): ... here. Returns the
4381         first row-id in GenericParam table for a given owner (token).
4382         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
4383         prototype.
4384
4385 2005-11-23  Raja R Harinath  <rharinath@novell.com>
4386             Ankit Jain  <jankit@novell.com>
4387
4388         * metadata.c (mono_metadata_class_equal): Pass signature_only when
4389         comparing VARs too.
4390         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
4391         type->data.generic_param only if the type is an MVAR.
4392         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
4393         leak owner-less VARs and MVARs into managed space.
4394
4395 2005-11-21  Martin Baulig  <martin@ximian.com>
4396
4397         * class-internals.h
4398         (MonoMethod): Moved the `generic_container' here from
4399         `MonoMethodNormal' since we now also need it for
4400         `MonoMethodPInvoke';
4401         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
4402         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
4403         an union containing both `MonoMethodNormal' and
4404         `MonoMethodPInvoke'.
4405
4406         * loader.c
4407         (mono_get_method_from_token): Allow implementing generic methods
4408         as interncalls.
4409
4410         * threads.c
4411         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
4412         icall.
4413
4414 2005-11-17  Dick Porter  <dick@ximian.com>
4415
4416         * icall.c: 
4417         * process.h: 
4418         * process.c: Split the Process Start_internal icall into
4419         ShellExecuteEx_internal and CreateProcess_internal, which are
4420         called depending on whether UseShellExecute is true.  Fixes bug
4421         76670.
4422
4423         * appdomain.c (MONO_CORLIB_VERSION): Incremented
4424
4425 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
4426
4427         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
4428         'msize' parameters, use the information in 'mspec' instead.
4429         (emit_object_to_ptr_conv): Ditto.
4430
4431         * marshal.c (emit_struct_conv): Handle explicit layout structs with
4432         fields out of order. Fixes #76733.
4433
4434 2005-11-17  Ankit Jain  <jankit@novell.com>
4435
4436         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
4437
4438 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
4439
4440         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
4441           bug #76575.
4442
4443 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4444
4445         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
4446         for types with non-auto layout. Fixes #76717.
4447
4448 2005-11-16  Ankit Jain  <jankit@novell.com>
4449
4450         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
4451         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
4452         if generic_context is null.
4453           (mono_metadata_generic_param_equal): param->owner can be null.
4454           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
4455         null.
4456
4457 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4458
4459         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
4460         the correct value.
4461
4462 2005-11-15  Martin Baulig  <martin@ximian.com>
4463
4464         * object.c (set_value): Use mono_class_from_mono_type() instead of
4465         the hack for generic instances; fixes #76136.
4466
4467 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
4468
4469         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
4470         fields.
4471
4472         * image.c (load_metadata_ptrs): Initialize the new fields.
4473
4474         * reflection.c (create_dynamic_mono_image): Ditto.
4475
4476         * reflection.c (build_compressed_metadata): Use the new fields.
4477
4478         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
4479         icall.
4480
4481         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
4482         icall.
4483         
4484 2005-11-15  Ankit Jain  <jankit@novell.com>
4485             Raja R Harinath  <harinath@gmail.com>
4486
4487         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
4488         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
4489         new per-generic_container cache if the cached MonoType's context matches
4490         the current context.
4491           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
4492         to the expected context.
4493           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
4494
4495 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4496
4497         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
4498         we changed the signature of an icall.
4499         * icall.c: Modify to mono_double_ParseImpl return true/false 
4500         depending on the success, instead of throwing the exception. This will
4501         help us in Double.TryParse methods.
4502         
4503 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
4504
4505         * marshal.c (emit_marshal_object): Throw an exception when
4506         marshalling 'object' instead of crashing. Fixes #76696.
4507
4508 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4509
4510         * class-internals.h: Add prototype for mono_type_get_full_name ().
4511
4512 2005-11-11  Dick Porter  <dick@ximian.com>
4513
4514         * threads.c (mono_thread_manage): Make sure the main thread has
4515         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
4516
4517 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4518
4519         * loader.c (mono_loader_set_error_type_load): Log a warning to the
4520         console about the missing type.
4521         (mono_loader_set_error_method_load): Ditto.
4522
4523 2005-11-09  Miguel de Icaza  <miguel@novell.com>
4524
4525         * mono-config.c (mono_get_config_dir): Set the system defaults if
4526         none is specified.
4527
4528         * assembly.c (mono_set_dirs): New API entry point to set the
4529         assembly and the config directory in one call
4530
4531 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
4532
4533         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
4534         the ftnptr was created from a delegate in a domain other than the
4535         current domain. Fixes #75377.
4536
4537         * exception.h exception.c: Add mono_get_exception_not_supported ().
4538
4539 2005-11-08  Martin Baulig  <martin@ximian.com>
4540
4541         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
4542
4543 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
4544
4545         * security-manager.h: Added definitions to deal with strongname key 
4546         pairs bigger (and smaller) than 1024 bits.
4547         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
4548         adjust wrt the public key length being used.
4549
4550 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4551
4552         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
4553           Windows build (r51396-51397).
4554
4555 2005-11-03  Martin Baulig  <martin@ximian.com>
4556
4557         * class.c (mono_class_setup_vtable_general): Also add generic
4558         methods to the vtable; fixes #76581.
4559
4560 2005-11-01  Miguel de Icaza  <miguel@novell.com>
4561
4562         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
4563         sure that we lookup GetString method from the System.Text.Encoding
4564         class, not the derived class or we get an empty method.
4565
4566         Fixed class #76612.
4567
4568 2005-10-25  Miguel de Icaza  <miguel@novell.com>
4569
4570         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
4571         if it has been previously set (embedders). 
4572
4573         Make mono_set_rootdir available also on Unix.
4574
4575 005-10-24  Robert Jordan  <robertj@gmx.net>
4576
4577         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
4578
4579 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
4580
4581         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
4582         only calls which are made to native code use this flag.
4583
4584         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
4585
4586 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
4587
4588         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
4589         Add support for FieldBuilders.
4590
4591 2005-10-29  Martin Baulig  <martin@ximian.com>
4592
4593         * mono-debug.c
4594         (mono_debug_using_mono_debugger): New public method; returns
4595         whether we're running inside the debugger.
4596
4597 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
4598
4599         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
4600         for Method/Constructor/FieldBuilders.
4601
4602 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
4603
4604         * reflection.c (module_add_cattrs): Save custom attributes for global methods
4605         and fields as well.
4606
4607 2005-10-26  Martin Baulig  <martin@ximian.com>
4608
4609         * mono-debug-debugger.c
4610         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
4611
4612 2005-10-24  Raja R Harinath  <harinath@gmail.com>
4613
4614         * icall.c (base64_to_byte_array): Don't pass an out-of-range
4615         integer to isspace.
4616
4617 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
4618
4619         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
4620         when passing valuetypes byref. Fixes #76502.
4621
4622 2005-10-19  Jackson Harper  <jackson@ximian.com>
4623
4624         * profiler.c: Don't put a . in front of types that are not in a
4625         namespace.
4626
4627 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
4628
4629         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
4630
4631 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
4632
4633         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
4634         #76436.
4635         (mono_marshal_get_ldflda_wrapper): Fix a warning.
4636
4637 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4638
4639         * assembly.c metadata-internals.h icall.c: Define an additional
4640         parameter for mono_assembly_name_parse_full, so we can avoid creating
4641         S.R.AssemblyName.Version when no version info wasn't passed.
4642         
4643 2005-10-09  Miguel de Icaza  <miguel@novell.com>
4644
4645         * class.c (mono_type_get_full_name): Reimplement method that was
4646         removed. 
4647
4648         * image.c: Some docs
4649
4650 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
4651
4652         * profiler.c (output_newobj_profile): Fix printing of Total memory
4653         on x86.
4654
4655 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4656
4657         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
4658
4659 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
4660
4661         * threads.c: remove debug output.
4662
4663 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4664
4665         * threads.c (mono_thread_manage): Fix crashes if more than 64
4666         threads need to be aborted. Hopefully fixes #75899.
4667
4668         * assembly.c (mono_stringify_assembly_name): New helper function.
4669
4670         * class.c: Use mono_stringify_assembly_name instead of the similar
4671         static function.
4672
4673         * assembly.h assembly.c: Add support for calling a postload search 
4674         hook if an assembly cannot be loaded.
4675
4676         * appdomain.c: Register new search hooks which call the AssemblyResolve
4677         events in AppDomain. Fixes #75231
4678
4679 2005-10-07  Martin Baulig  <martin@ximian.com>
4680
4681         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
4682         methods without debug info.
4683
4684 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
4685
4686         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
4687         wrappers.
4688
4689 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4690
4691         * file-io.c: now that we return symlinks, use lstat and, when the file
4692         is a symbolic link, stat, to get the file attributes. Also avoid the
4693         conversion to/from utf16/external.
4694
4695 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
4696
4697         * class.c (mono_class_layout_fields): Compute klass->has_references
4698         correctly if an embedded valuetype is not yet initialized. Fixes
4699         #76331.
4700
4701 2005-10-04  Martin Baulig  <martin@ximian.com>
4702
4703         * metadata.c
4704         (mono_metadata_load_generic_param_constraints): New public
4705         function; splitted the constraints loading out from
4706         mono_metadata_load_generic_params().
4707
4708         * class.c (mono_class_create_from_typedef): Call
4709         mono_metadata_load_generic_param_constraints() after setting up
4710         the type and creating our parent; fixes #75329.
4711
4712 2005-10-04  Martin Baulig  <martin@ximian.com>
4713
4714         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
4715         non-dynamic parent classes.
4716
4717 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4718
4719         * file-io.c : win32 build fix (ETXTBSY seems not found).
4720
4721 2005-10-04  Martin Baulig  <martin@ximian.com>
4722
4723         * reflection.c
4724         (mono_image_get_methodspec_token): Make the cache actually work;
4725         fixes #75974.
4726
4727 2005-10-04  Martin Baulig  <martin@ximian.com>
4728
4729         * class.c (mono_class_name_from_token): Removed the unneccessary
4730         `MonoGenericContext *' argument.
4731
4732 2005-10-04  Martin Baulig  <martin@ximian.com>
4733
4734         * loader.c
4735         (method_from_methodspec): Make the caching work again; fixes the
4736         performance regression from #76262.
4737
4738 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4739
4740         * file-io.c:
4741         * file-io.h:
4742         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4743         GetFileSystemEntries that performs the same work but without going
4744         into io-layer, locking, etc.
4745
4746 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4747
4748         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4749         ThreadState_Stopped as well. Fixes #76047.
4750
4751 2005-09-29  Martin Baulig  <martin@ximian.com>
4752
4753         * class.c
4754         (inflate_generic_context): If the new context has a `gmethod', set
4755         its `container' that that gmethod's `container'.
4756
4757         * metadata.c
4758         (mono_metadata_parse_generic_param): Simplify things;
4759         `generic_container = generic_context->container;' is just fine.
4760
4761         * loader.c (method_from_methodspec): Code cleanups.
4762
4763 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4764
4765         * decimal.c: fix warning (and let gcc generate correct
4766         code on ARM with optimizations).
4767
4768 2005-09-28  Martin Baulig  <martin@ximian.com>
4769
4770         * loader.c
4771         (method_from_memberref): Added `MonoGenericContext *class_context'
4772         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4773         (method_from_methodspec): If we're a memberref, use the enclosing
4774         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4775
4776 2005-09-28  Martin Baulig  <martin@ximian.com>
4777
4778         * object.c (mono_runtime_invoke_array): Added support for
4779         MONO_TYPE_GENERICINST; fixes #75917.
4780
4781 2005-09-27  Martin Baulig  <martin@ximian.com>
4782
4783         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4784         `k->byval_arg.type' to determine the actual type.
4785
4786         * loader.c (method_from_methodspec): Removed some hacks.
4787
4788 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4789
4790         * class-internals.h (mono_field_is_deleted): Do the test for
4791         rtspecialname before we check the actual name of the field. This
4792         prevents us from dereferencing a pointer into the string table,
4793         saving us from accessing a few pages
4794
4795         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4796         macros. This will allow a deadlock debugger to easily be plugged
4797         in.
4798
4799 2005-09-27  Martin Baulig  <martin@ximian.com>
4800
4801         * loader.c (method_from_methodspec): Create a "signature"
4802         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4803
4804 2005-09-27  Martin Baulig  <martin@ximian.com>
4805
4806         * class.c
4807         (inflate_generic_class): Correctly set the new context's
4808         container.
4809
4810         * loader.c
4811         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4812         instead of a `MonoGenericContext *'.
4813         (mono_method_signature_full): Take a `MonoGenericContainer *'
4814         instead of a `MonoGenericContext *'.
4815
4816         * metadata.c
4817         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4818         instead of a `MonoGenericContext *'.
4819         (mono_metadata_parse_method_signature_full): Likewise.
4820
4821 2005-09-26  Martin Baulig  <martin@ximian.com>
4822
4823         * class.c
4824         (mono_class_from_generic_parameter): Set `klass->generic_container'
4825         (mono_class_from_generic_parameter): Likewise.
4826         (mono_bounded_array_class_get): We inherit the generic container
4827         from the element class.
4828
4829         * loader.c
4830         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4831         argument rather than computing it here.
4832         (method_from_memberref): Correctly set the generic context before
4833         parsing the signature.  Fixes #75681.
4834
4835 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4836
4837         * object.c (mono_class_has_special_static_fields): Fix warnings.
4838
4839 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4840
4841         * assembly.c: Add parse_public_key function, to
4842         par the public keys. Also added mono_assembly_name_parse_full,
4843         to define it the parsed key should be freed or not.
4844         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4845         to parse a long format assembly name.
4846         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4847         private, since calling it to preserve the key requires
4848         freeing it manually.
4849         
4850 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4851
4852         * locales.c : removed HAVE_ICU part.
4853
4854 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4855
4856         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4857         field_is_special_static if the klass has no special static fields.
4858
4859         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4860         (MonoCachedClassInfo): Likewise.
4861
4862         * object.c (mono_class_has_special_static_fields): New helper function.
4863
4864 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4865
4866         * class.c (mono_class_create_from_typedef): Don't call 
4867         interfaces_from_typedef_full for enums.
4868         (mono_class_create_from_typedef): Compute the base types of enums directly
4869         without calling mono_class_setup_fields ().
4870         (mono_class_find_enum_basetype): New helper function.
4871
4872         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4873         one place inside the string heap.
4874         
4875 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4876
4877         * class.c: locking fixes, code cleanups, some docs added.
4878         Allocate some data structures in the image mempool.
4879
4880 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4881
4882         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4883         the example code.
4884         
4885 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4886
4887         * class-internals.h, class.c, reflection.c: reduce memory taken by
4888         MonoClass.
4889
4890 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4891
4892         * metadata.c, metadata.h, loader.h: documentation updates, code and
4893         API cleanups.
4894
4895 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4896
4897         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4898         the example code.
4899
4900         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
4901         page faults caused by the runtime while reading metadata.
4902
4903 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4904
4905         * socket-io.c: the field names were changed 3 months ago and no one
4906         realized until bug #76077 got filed!
4907
4908 2005-09-20  Martin Baulig  <martin@ximian.com>
4909
4910         * icall.c (assembly_icalls): Removed some unused debugger icalls.
4911
4912 2005-09-20  Martin Baulig  <martin@ximian.com>
4913
4914         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
4915         write the rank into the class entry.
4916
4917 2005-09-20  Martin Baulig  <martin@ximian.com>
4918
4919         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
4920
4921 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
4922
4923         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4924
4925         * icall.c (custom_attrs_defined_internal): New icall.
4926
4927         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
4928         function.
4929         (mono_custom_attrs_construct_by_type): New helper function.
4930
4931 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
4932
4933         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
4934         terminate the resulting string. Fixes #76123.
4935
4936 2005-09-16  Martin Baulig  <martin@ximian.com>
4937
4938         * mono-debug.c
4939         (mono_debug_add_method): Ignore inflated methods for the moment.
4940
4941 2005-09-14  Martin Baulig  <martin@ximian.com>
4942
4943         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
4944
4945 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
4946
4947         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
4948         return a success/failure indication.
4949         (mono_metadata_interfaces_from_typedef_full): Ditto.
4950         (get_constraints): Ditto.
4951
4952 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
4953
4954         * marshal.c (emit_marshal_array): Fix handling of null arrays.
4955         
4956         * marshal.c (emit_marshal_array): Add support for returning string
4957         arrays from delegates. Fixes #76063.
4958
4959         * marshal.c: Use the emit_ldloc/stloc macros where possible.
4960
4961 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
4962
4963         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
4964         icall.
4965
4966 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
4967
4968         * reflection.c icall.c: Fix after mono_get_exception_type_load
4969         signature change.
4970
4971         * assembly.c (mono_assembly_get_assemblyref): New helper function.
4972         (mono_assembly_load_reference): Use the new helper.
4973
4974         * class-internals.h (MonoLoaderError): New structure containing 
4975         information about type loading errors.
4976
4977         * class-internals.h loader.c: Add APIs to store per-thread loader
4978         error information.
4979
4980         * loader.c class.c: Set the loader error if needed.
4981
4982         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
4983
4984 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
4985
4986         * decimal.c: fixed to handle the broken ARM fp format.
4987
4988 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
4989
4990         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
4991         broken.
4992
4993 2005-09-06  Martin Baulig  <martin@ximian.com>
4994
4995         * domain.c (supported_runtimes): Added v2.0.50727.
4996
4997 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
4998
4999         * culture-info.h: reduce the size of some structures.
5000
5001 2005-09-05  Martin Baulig  <martin@ximian.com>
5002
5003         Reflect latest API changes in the August CTP.
5004
5005         * icall.c
5006         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
5007         ("MonoType.HasGenericArguments"): Removed.
5008         ("MonoMethod.BindGenericParameters"): Renamed to
5009         "MakeGenericMethod".
5010         ("MethodBuilder.BindGenericParameters"): Renamed to
5011         "MakeGenericMethod".    
5012
5013 2005-09-05  Martin Baulig  <martin@ximian.com>
5014
5015         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
5016
5017 2005-09-05  Martin Baulig  <martin@ximian.com>
5018
5019         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5020
5021         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
5022         generic_container is non-NULL.
5023
5024 2005-09-05  Martin Baulig  <martin@ximian.com>
5025
5026         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5027
5028         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
5029
5030 2005-08-29  Michal Moskal  <malekith@nemerle.org>
5031
5032         * reflection.c (encode_locals,
5033         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
5034         for large generic types.
5035
5036 2005-09-05  Martin Baulig  <martin@ximian.com>
5037
5038         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5039
5040         * class.c (mono_dup_array_type): New public method.
5041         (mono_metadata_signature_deep_dup): New public method.
5042         (dup_type): Correctly duplicate array and function types.
5043
5044 2005-09-05  Martin Baulig  <martin@ximian.com>
5045
5046         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5047
5048         * reflection.c (get_default_param_value_blobs): Handle generic types
5049         and generic methods.
5050
5051 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
5052
5053         * class.c: Fixed error reporting (method/class were inversed) for 
5054         inheritance demands.
5055         * security-manager.c|h: Added the AppDomain when calling the managed
5056         System.Security.SecurityManager.InheritanceDemand method.
5057
5058 2005-09-01  Raja R Harinath  <rharinath@novell.com>
5059
5060         * reflection.c (encode_marshal_blob): 'marshaltype' and
5061         'marshaltyperef' are alternate sources for the custom marshaler
5062         name.
5063
5064 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
5065
5066         * class.c: fix creation of array classes with rank == 1
5067         (patch by Ankit Jain <jankit@novell.com>).
5068
5069 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
5070
5071         * object.c: fix check for creating the bound data for arrays vs
5072         szarrays.
5073
5074 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5075
5076         * object.c: configuration file name is now based on the executable name,
5077         not the image name. Fixes bug #75931.
5078
5079 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
5080
5081         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
5082         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
5083
5084 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
5085
5086         * rand.c: Use wincrypt.h instead of WinCrypt.h.
5087
5088 2005-08-24  Ankit Jain  <jankit@novell.com>
5089             Raja R Harinath  <rharinath@novell.com>
5090
5091         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
5092           called by it recursively.
5093           (mono_class_init): Remove special case in pending_init handling, since it's
5094           superseded by the fix to mono_class_from_typeref.
5095
5096 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
5097
5098         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
5099         BROKEN_THREAD_START stuff.
5100
5101 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
5102
5103         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
5104         trampoline.
5105
5106         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
5107         
5108         * object.c (mono_delegate_ctor): Replace the original function address with
5109         a delegate trampoline.
5110
5111 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
5112
5113         * icall.c: add boolean argument to base64_to_byte_array and 
5114         InternalFromBase64String to control whether a whitespace-only string
5115         is allowed (or should casue a FormatException to be thrown). We need
5116         this as the behavior has changed between MS.NET 1.x and 2.0, and we
5117         to match the MS behaviour in both profiles.
5118         * appdomain.c: Bump corlib version.
5119
5120 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5121
5122         This patch implements a big portion of publisher policy
5123         support, used to bind assembly versions and redirect
5124         one assembly from version A to version B.
5125
5126         * assembly.c:
5127         New GSList loaded_assembly_bindings, for storing the cached
5128         assembly bindings.
5129         (assembly_binding_maps_name): New static function for checking if a 
5130         assembly binding information maps an assembly name.
5131         (mono_assembly_binding_info_free): New function for freeing
5132         assembly binding information resources.
5133         (get_publisher_policy_info): New static function for retrieving 
5134         assembly binding information from a MonoImage.
5135         (compare_versions): New static function for comparing an assembly
5136         binding information data and the version of an assembly name.
5137         (check_policy_versions): New static function for checking if an
5138         assembly binding info mapping an assembly name is valid for it.
5139         (mono_assembly_load_publisher_policy): New static function for
5140         loading the 'policy.major.minor.MyAssembly' image for an assembly
5141         with an assembly name 'aname'.
5142         (mono_assembly_bind_version): New static function for updating
5143         assembly redirection.
5144         (mono_assembly_apply_binding): New static function for applying
5145         assembly binding.
5146         (search_binding_loaded): New static function for searching 
5147         loaded assembly binding infos in the cache domain.
5148         (mono_assembly_load_full): Don't apply assembly binding for
5149         reflection only assemblies.
5150
5151         * metadata-internals.h: Add MonoAssemblyBindingInfo,
5152         which contains information about assembly binding. Also
5153         declare signature for mono_config_parse_publisher_policy ()
5154         function, used to retrieve pub policy info.
5155         
5156         * mono-config.c:
5157         (publisher_policy_start): New static function used to parse publisher 
5158         policy config files.
5159         (publisher_policy_parser): New static MonoParseHandler containing 
5160         the functions used when parsing config files.
5161         (mono_config_parse_publisher_policy): New function for parsing
5162         publisher policy files.
5163         
5164 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
5165
5166         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
5167
5168         * marshal.c (mono_delegate_free_ftnptr): Ditto.
5169
5170         * object.c (mono_get_addr_from_ftnptr): New helper function.
5171
5172         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
5173
5174         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5175
5176 2005-08-19  Dick Porter  <dick@ximian.com>
5177
5178         * threads.c, threads.h, appdomain.c, appdomain.h,
5179         profiler-private.h, monitor.c, object.c, object-internals.h,
5180         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
5181         store the thread ID, so it can hold a 64 bit value if needed.
5182
5183 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
5184
5185         * reflection.c (mono_reflection_create_dynamic_method): Store the
5186         handle class into the method references as well so ldtoken works in
5187         dynamic methods.
5188
5189         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
5190         types.
5191
5192 2005-08-19  Ankit Jain <jankit@novell.com>
5193
5194         Fix #75847.
5195         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
5196           here rather than using the method signature of a arbitrary function
5197           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
5198           two arguments.
5199           Hack done with Harinath.
5200
5201 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5202
5203         * threadpool.c: disable printing stack traces when we get a exception
5204         in a threadpool thread. I need to do more testing to figure out which
5205         cases actually print this. Fixes bug #75828.
5206
5207 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5208
5209         * icall.c: there might be ignored whitespace after the last '='. This
5210         fixes length computation and bug #75840.
5211
5212 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
5213
5214         * assembly.c (mono_assembly_load_full): Consider .exe extension as
5215         well. Fixes #75809.
5216
5217         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
5218         #75784.
5219         
5220         * reflection.c (create_custom_attr_data): Ditto.
5221
5222 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
5223
5224         * locales.c, culture-info.h : removed RegionLCIDMap.
5225         * culture-info-tables.h : regenerated.
5226
5227 2005-08-16  Martin Baulig  <martin@ximian.com>
5228
5229         * class.c (mono_type_get_name_recurse): Small fix.
5230
5231 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
5232
5233         * locales.c : indentation fixie.
5234
5235 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
5236
5237         * object-internals.h,
5238           locales.h,
5239           locales.c,
5240           culture-info.h,
5241           icall.c : added RegionInfo table support.
5242         * culture-info-table.h : regenerated for region support.
5243
5244 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
5245
5246         * reflection.c (resolve_object): handle all kinds of MonoMethod
5247         including generic ones
5248
5249 2005-08-12  Ankit Jain <jankit@novell.com>
5250
5251         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
5252           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
5253
5254 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
5255
5256         * process.c: Don't close a thread handle when it's NULL. This is a
5257         workaround for bug #75733.
5258
5259 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
5260
5261         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
5262
5263 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
5264
5265         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
5266
5267 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5268
5269         * threadpool.c: if a work item in the thread pool has a callback that
5270         catches a exception, don't propagate it after invoking the callback.
5271         Fixes bug #75336.
5272
5273 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
5274
5275         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
5276
5277         * class-internals.h (MonoCachedClassInfo): Add some new fields.
5278
5279         * class.c (mono_class_init): Load field info lazily in the AOT case.    
5280
5281         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
5282
5283 2005-08-03  Ankit Jain  <jankit@novell.com>
5284
5285         Fix #75683.
5286         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
5287           PInvoke calling convention is 0.
5288
5289 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
5290
5291         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
5292         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
5293
5294 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
5295
5296         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
5297         to handle threads not started by the GC (patch by Michael Meeks
5298         <michael.meeks@novell.com>).
5299
5300 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
5301
5302         * reflection.c: Make buffer used in emitting types larger for some
5303         big generic types (patch by Michal Moskal).
5304
5305 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
5306
5307         * mono-debug.c: Fix some (not all) alignment problems.
5308
5309 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5310
5311         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
5312         Invoke mono_image_load_from_data_full passing the refonly
5313         parameter.
5314
5315         * assembly.c
5316         (mono_assembly_open_from_bundle): Add the refonly argument, 
5317         in order to pass it to other methods it calls to.
5318         (do_mono_assembly_open): Add the refonly argument, in order 
5319         to pass it to other methods it calls to.
5320         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
5321         the refonly parameter to it.
5322
5323         * image.c: Add loaded_images_refonly_hash and
5324         loaded_images_refonly_guid_hash to cache the reflection
5325         only loaded images.
5326         (mono_images_init): Initialize the hash tables used for
5327         caching the reflection only images.
5328         (load_modules): Invoke mono_image_open_full passing the refonly
5329         parameter to load the modules the correct way.
5330         (build_guid_table): Add the refonly argument, to re-build the 
5331         correct hash table.
5332         (do_mono_image_open): Added the refonly argument, in order to
5333         define it for the loaded image.
5334         (mono_image_loaded_full): New function, which receives an
5335         additional parameter to look for the image in the refonly or
5336         non-refonly section.
5337         (mono_image_loaded): Updated, using mono_image_loaded_full.
5338         (mono_image_loaded_by_guid_full): The same case that happens
5339         with mono_image_loaded_full.
5340         (mono_image_loaded_by_guid): Likewise.
5341         (register_image): Use the ref_only variable inside MonoImage
5342         to decide in which hash table store the current image.
5343         (mono_image_open_from_data_full): Rename
5344         mono_image_open_from_data to mono_image_open_from_data_full,
5345         adding the refonly argument, to define the ref_only variable 
5346         inside MonoImage.
5347         (mono_image_open_from_data): Return 
5348         mono_image_open_from_data_full.
5349         (mono_image_open_full): Rename mono_image_open to
5350         mono_image_open_full, receiving the new refonly argument,
5351         to pass it to inner methods.
5352         (mono_pe_file_open): Update this function, to open
5353         a MonoImage as a non-refonly image.
5354         (mono_image_close): Use the refonly variable inside
5355         MonoImage to remove the image from the correct caches.
5356
5357         * image.h: Add the signatures of mono_image_open_full,
5358         mono_image_open_from_data_full, mono_image_loaded_full,
5359         mono_image_loaded_by_guid_full.
5360
5361         * metadata-internals.h: Add the ref_only field to 
5362         MonoImage.
5363         
5364 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5365
5366         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
5367         Fix the last behavior, which used to load the assemblies and
5368         extract MonoReflectionAssemblyName information, instead of
5369         extract it from the metadata tables. Needed for Reflection
5370         Only assemblies.
5371         
5372 2005-07-29  Martin Baulig  <martin@ximian.com>
5373
5374         * mono-debug-debugger.c
5375         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
5376         not initialized.
5377
5378         * mono-debug.c
5379         (mono_debug_address_from_il_offset): Check whether we have
5380         debugging support before attempting to take the lock.
5381         (mono_debug_source_location_from_address): Likewise.
5382         (mono_debug_source_location_from_il_offset): Likewise.
5383         (mono_debug_il_offset_from_address): Likewise.
5384         (mono_debug_address_from_il_offset): Likewise.
5385
5386 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
5387
5388         * class.c (mono_class_from_name_case): Add support for dynamic images.
5389         Fixes #75650.
5390
5391         * object.c (mono_class_compute_gc_descriptor): Add a workaround
5392         for #75479.
5393
5394 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
5395         
5396         * reflection.c (mono_method_get_object): Fix warning.
5397
5398 2005-07-28  Martin Baulig  <martin@ximian.com>
5399
5400         * mono-debug.c
5401         (mono_debug_add_wrapper): Also write the wrapper type.
5402
5403 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
5404
5405         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
5406         
5407         * class.c (mono_class_init): Avoid reading nested classes if the AOT
5408         data indicates the class has none.
5409
5410 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
5411
5412         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
5413         loader lock with the debugger lock. Prevents deadlocks for beagle.
5414
5415         Beagle can now run on an smp box for a weekend without any
5416         issues. Woohoo!
5417
5418 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
5419
5420         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
5421         in a module. Fixes #75629.
5422
5423 2005-07-26  Martin Baulig  <martin@ximian.com>
5424
5425         * mono-debug.c (mono_debug_add_wrapper): New static method.
5426         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
5427         interncall or a wrapper.
5428
5429         * mono-debug.h (MonoDebugWrapperData): New public typedef.
5430         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
5431         (MONO_DEBUGGER_VERSION): Bump to 51.
5432
5433         * mono-debug-debugger.c
5434         (mono_debugger_add_type): Removed this empty function.
5435         (mono_debugger_add_method): Likewise.
5436
5437 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
5438
5439         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
5440         before accessing method->slot.
5441
5442 2005-07-21  Jb Evain  <jbevain@gmail.com>
5443
5444         * reflection.c (method_encode_clauses/class): Handle filters clauses.
5445         Fixes #75010.
5446
5447 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
5448
5449         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
5450         #75587.
5451
5452 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
5453
5454         * image.h image.c: Add mono_image_get_guid () API function.
5455
5456 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
5457
5458         There were issues when multiple threads tried to load
5459         assemblies. A deadlock was created between assemblies_mutex and
5460         mono_domain_assemblies_lock. This fixes the issue by making the
5461         assembly ref counting be lock free. See bug 75586.
5462         
5463         * image.c (mono_image_close): The add ref function here was using
5464         Interlocked operations while the unref was using a mutex and a
5465         --. I don't think this was ever a bug that would be exposed in a
5466         non-pendantic way (ie, by an embedder doing a ref on one thread
5467         and an unref on another), but for the sake of correctness, this is
5468         now Interlocked.
5469
5470         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
5471         (mono_assembly_load_reference): Call mono_assembly_addref rather
5472         than touching the refcount ourselves.
5473         (mono_assembly_close): Use InterlockedDecrement to unref the
5474         assembly. Don't acquire the lock unless it is actually needed.
5475
5476 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5477
5478         * class.c (mono_class_layout_fields): Fix calculation of has_references
5479         for generic types.
5480
5481 2005-07-12  Martin Baulig  <martin@ximian.com>
5482
5483         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5484
5485         * metadata.c
5486         (mono_type_hash): Provide better hashing for generic instances.
5487         (mono_generic_inst_hash): Improve hashing.
5488         (mono_generic_class_hash): Likewise.
5489
5490         * reflection.c (mymono_metadata_type_hash): Improve hashing for
5491         generic instances.
5492
5493 2005-07-12  Martin Baulig  <martin@ximian.com>
5494
5495         * reflection.c (mono_reflection_create_runtime_class): Remove the
5496         hack for generic type definitions and non-`Run' assemblies.
5497         (mono_reflection_bind_generic_parameters): Also use
5498         `klass->wastypebuilder' to check for TypeBuilders.
5499
5500 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5501
5502         * class.c (mono_class_layout_fields): Fix calculation of has_references
5503         for generic types.
5504
5505         * class.c (inflate_generic_class): Fix a leak.
5506         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
5507         for generic types.
5508
5509 2005-07-11  Martin Baulig  <martin@ximian.com>
5510
5511         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
5512         on error.
5513
5514 2005-07-11  Martin Baulig  <martin@ximian.com>
5515
5516         * loader.c (find_method): Also lookup in
5517         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
5518
5519 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5520
5521         * appdomain.c (mono_domain_unload): Don't free the error message
5522         before passing it to mono_get_exception_...
5523
5524         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
5525         
5526 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
5527
5528         * threads.c: try to better guess an available RT signal (bug #75387).
5529
5530 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5531
5532         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
5533         and CACHE_OBJECT.
5534
5535 2005-07-07  Martin Baulig  <martin@ximian.com>
5536
5537         * class.c (mono_type_get_name_full): Return NULL for
5538         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
5539         fixes #75408.
5540
5541 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5542
5543         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
5544         exit the appdomain as well being aborted.
5545
5546         * threadpool.c: Create all threadpool threads inside the root appdomain, and
5547         change back to the root domain after calling managed code. This enables
5548         appdomains using threadpools to be unloaded.
5549
5550 2005-07-07  Martin Baulig  <martin@ximian.com>
5551
5552         * class-internals.h
5553         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
5554         into `MonoDynamicGenericClass' since we only need it for dynamic
5555         types.
5556
5557         * reflection.c (mono_class_bind_generic_parameters): We don't need
5558         to compute the `parent' here.
5559
5560 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
5561
5562         * culture-info-table.h : regenerated.
5563
5564 2005-07-06  Martin Baulig  <martin@ximian.com>
5565
5566         * icall.c
5567         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
5568
5569         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
5570
5571 2005-07-06  Martin Baulig  <martin@ximian.com>
5572
5573         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
5574         we're doing a signature-only comparision; fixes #74945.
5575
5576 2005-07-06  Martin Baulig  <martin@ximian.com>
5577
5578         * class-internals.h (MonoGenericClass): Moved some things out into
5579         a new `MonoInflatedGenericClass' type.  
5580         (MonoInflatedGenericClass): New type; the `klass' of a
5581         `MonoGenericClass' is now computed lazyly in
5582         mono_get_inflated_generic_class().      
5583
5584         * class.c (mono_get_inflated_generic_class): New public function.
5585         (mono_class_inflate_generic_method): Removed the unused
5586         `MonoClass *' argument.
5587         (setup_generic_vtable): Don't call mono_get_inflated_method() on
5588         all the methods.
5589         (mono_class_create_generic): Make this static and merge it with
5590         mono_class_create_generic_2(); we're now called automatically from
5591         mono_get_inflated_generic_class().
5592
5593         * loader.c (mono_method_signature): Call
5594         mono_get_inflated_method() here.
5595
5596 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
5597
5598         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
5599         type of fields with RVA.
5600
5601         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
5602         for this pseudo class.
5603         (my_mono_class_from_generic_parameter): Likewise.
5604         (mono_class_init): Allow interfaces to have cctors.
5605
5606 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5607
5608         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
5609         lazily for AOT methods.
5610
5611 2005-07-05  Martin Baulig  <martin@ximian.com>
5612
5613         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
5614         returns FALSE for a successful match, not TRUE.
5615
5616 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5617
5618         * loader.c (mono_method_get_index): Optimize this a bit.
5619
5620 2005-07-04  Martin Baulig  <martin@ximian.com>
5621
5622         * class.c
5623         (class_compute_field_layout): Move the check for generic type
5624         definitions into mono_class_layout_fields().  Fixes #74684.
5625         (mono_class_from_generic_parameter): Correctly compute
5626         `klass->parent'; fixes #75457.
5627
5628         * reflection.c (register_assembly, register_module): Make sure
5629         `domain->rejobject_hash' is already created.
5630
5631 2005-07-02  Martin Baulig  <martin@ximian.com>
5632
5633         * class-internals.h
5634         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
5635         `MonoDynamicGenericClass'.      
5636
5637 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
5638
5639         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
5640         returned by a field getter is null, since null is a valid value.
5641
5642 2005-07-01  Martin Baulig  <martin@ximian.com>
5643
5644         * reflection.c (mono_reflection_generic_class_initialize): Update
5645         the `dgclass->fields [i].parent' to the correct class.
5646         (mono_image_get_fieldref_token): Use the declaring type, not the
5647         reflected type.
5648
5649 2005-07-01  Martin Baulig  <martin@ximian.com>
5650
5651         * loader.c (find_method): Also look in the interfaces; fixes #75429.
5652
5653 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
5654
5655         * threads.c (thread_cleanup): assert that thread != NULL
5656         (wait_for_tids_or_state_change): We were using the wrong variable
5657         when accessing wait->threads. `i' was always out of the bounds of
5658         the array.
5659
5660 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5661
5662         * loader.c: map user32 and kernel32 to libMonoSupportW
5663
5664 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
5665
5666         * appdomain.c (unload_thread_main): Mark this as WINAPI.
5667
5668 2005-06-28  Martin Baulig  <martin@ximian.com>
5669
5670         * loader.c (method_from_methodspec): Fix #75334.
5671
5672 2005-06-28  Martin Baulig  <martin@ximian.com>
5673
5674         Fix #74953 - Arrays now implement the generic IList<T> interface
5675         on the 2.0 platform.
5676
5677         * class-internals.h (MonoDefaults): Added `generic_array_class'.
5678
5679         * reflection.c (mono_class_bind_generic_parameters): New public
5680         function; similar to mono_reflection_bind_generic_parameters(),
5681         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
5682
5683         * domain.c (mono_init_internal): Try to initialize.
5684         `mono_defaults.generic_array_class' here; this'll only succeed if
5685         we're using the 2.0 corlib.
5686
5687         * icall.c
5688         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
5689         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
5690         (mono_lookup_internal_call): Added support for nested classes.
5691
5692         * loader.c
5693         (mono_get_method_from_token): Set `result->signature->pinvoke' if
5694         we're an interncall and have generic arguments.
5695
5696         * class.c
5697         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
5698         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
5699         instance of System.Array.InternalArray<T> for arrays, so they
5700         implement the generic IList<T> interface.
5701
5702 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
5703
5704         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
5705         (chastamar@yahoo.com). Fixes #75374.    
5706
5707 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
5708
5709         * culture-info-table.h: regenerated.
5710
5711 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5712
5713         * icall.c: handle spaces correctly for base64 strings.
5714
5715 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
5716
5717         * *.c: Kill some warnings.
5718
5719 2005-06-23  Duncan Mak  <duncan@novell.com>
5720
5721         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
5722         that this builds on Solaris 10 (x86).
5723
5724 2005-06-23  Martin Baulig  <martin@ximian.com>
5725
5726         * class.c
5727         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
5728         generic type definitions.
5729
5730 2005-06-23  Martin Baulig  <martin@ximian.com>
5731
5732         Fix #75331.
5733
5734         * metadata.c (mono_class_get_overrides): Renamed to
5735         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5736         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5737         pass it to mono_get_method_full().
5738
5739 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5740
5741         * reflection.c (mono_reflection_create_runtime_class): take the
5742         mono_domain_lock in this method. Prevents deadlocks
5743
5744 2005-06-22  Martin Baulig  <martin@ximian.com>
5745
5746         * loader.c (method_from_methodspec): Fix #75330.
5747
5748 2005-06-22  Martin Baulig  <martin@ximian.com>
5749
5750         * reflection.c (type_get_qualified_name): Use
5751         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5752         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5753         argument; use it if we don't have an assembly name.
5754
5755 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5756
5757         * object.c: In mono_message_init, set "copy out" flag for in
5758         parameters with the [Out] flag.
5759
5760 2005-06-21  Martin Baulig  <martin@ximian.com>
5761
5762         * class.c
5763         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5764         and MONO_TYPE_PTR.
5765
5766 2005-06-21  Martin Baulig  <martin@ximian.com>
5767
5768         * class.c (mono_class_init): Don't initialize `class->fields' for
5769         generic instances since they're initialized again in
5770         compute_field_layout(). 
5771         (compute_field_layout): Set the field's `generic_info' here; fix
5772         #75320. 
5773
5774 2005-06-21  Martin Baulig  <martin@ximian.com>
5775
5776         * class-internals.h
5777         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5778
5779         * metadata.c (mono_metadata_generic_method_equal): Also
5780         distinguish the `generic_class'; fixes #75334.
5781
5782 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5783
5784         * domain.c:
5785         * appdomain.c:
5786         * domain-internals.h:
5787         * reflection.c: 'domain_assemblies' field is now protected by its own
5788         lock. Don't call into managed code to run the AssemblyLoad event if we
5789         now there are no registered delegates for it.
5790
5791 2005-06-20  Martin Baulig  <martin@ximian.com>
5792
5793         * class.c (mono_class_is_assignable_from): Use a custom version of
5794         mono_class_has_parent() to make things work for generic instances;
5795         fix #75300.
5796
5797 2005-06-20  Martin Baulig  <martin@ximian.com>
5798
5799         * loader.c (method_from_methodspec): Apply a patch from
5800         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5801
5802 2005-06-20  Martin Baulig  <martin@ximian.com>
5803
5804         * class.c (mono_class_init): Reverted Zoltan's last change; it
5805         breaks generics.
5806
5807 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5808
5809         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5810
5811 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5812
5813         * socket-io.c: fix the index in the socket array for writable/error
5814         sockets. Fixes bug #75306.
5815
5816 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5817
5818         * class.c (mono_class_init): Allow interfaces to have static ctors.
5819
5820 2005-06-17  Martin Baulig  <martin@ximian.com>
5821
5822         * loader.c (method_from_methodspec): Use `context->container' when
5823         parsing the `gmethod->inst'.
5824
5825 2005-06-17  Martin Baulig  <martin@ximian.com>
5826
5827         * class.c (mono_type_get_name_recurse): Don't add the assembly
5828         name for type arguments.
5829
5830 2005-06-15  Martin Baulig  <martin@ximian.com>
5831
5832         * reflection.c (mono_image_get_inflated_method_token): Encode
5833         correct klass; fixes #75260.
5834
5835 2005-06-13 Michal Moskal <malekith@nemerle.org>
5836
5837         * icall.c: Make GetCorrespondingMethod/Constructor take
5838         MonoReflectionMethod method not MonoMethod. Removed
5839         MonoType.GetCorrespondingField, and make
5840         MonoGenericType.GetCorrespondingField take name not
5841         MonoClassField.
5842
5843 2005-06-13  Michal Moskal <malekith@nemerle.org>
5844
5845         * reflection.c (field_encode_signature, encode_locals):
5846          Make sizes of buffers for types larger (for big generic types).
5847          (create_generic_typespec,
5848          mono_reflection_sighelper_get_signature_local,
5849          mono_reflection_sighelper_get_signature_field):
5850          Add asserts for too small buffers.
5851
5852 2005-06-15  Martin Baulig  <martin@ximian.com>
5853
5854         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5855         if our parent is not a dynamic type.
5856
5857 2005-06-15  Martin Baulig  <martin@ximian.com>
5858
5859         * class-internals.h (MonoTypeNameFormat): New enum.
5860
5861         * class.c
5862         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5863         (mono_type_get_full_name): Removed.
5864         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5865         argument instead of the boolean's.
5866
5867         * icall.c (ves_icall_System_MonoType_getFullName):
5868         Added `gboolean assembly_qualified'.    
5869
5870         * reflection.h
5871         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5872
5873         * reflection.c (mono_reflection_parse_type): Parse the new type
5874         name format.
5875
5876 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5877
5878         * icall.c: no need to convert from utf16 to utf8 and then back again
5879         after the call to GetLogicalDrives.
5880
5881 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5882
5883         * icall.c: frombase64. Fix problems exposed by new tests.
5884
5885 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5886
5887         * icall.c: added internal calls for converting char [] and strings in
5888         base64 into byte [].
5889
5890 2005-06-10  Martin Baulig  <martin@ximian.com>
5891
5892         * class.c (mono_class_create_generic_2): Read the nested classes
5893         from the metadata rather than from `gklass->nested_classes' since
5894         `gklass' might not be initialized yet.
5895
5896 2005-06-09  Duncan Mak  <duncan@novell.com>
5897
5898         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5899         all public headers. Fixes #74919.
5900
5901 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
5902
5903         * domain.c: The key for proxy_vtable_hash is now a pointer
5904         array. Added new GHashFunc and GCompareFunc functions for this.
5905
5906         * class.h: The list of interfaces in MonoRemoteClass is known in
5907         advance and can't grow (we create a new MonoRemoteClass if needed),
5908         so now the interface array can be allocated together with
5909         MonoRemoteClass.
5910         
5911         * object.c: Added a new method create_remote_class_key.
5912         Fixed mono_remote_class so it does not depend on
5913         mono_upgrade_remote_class.
5914         Removed extend_interface_array.
5915         Added new method clone_remote_class(), which makes a copy of a remote
5916         class and adds a new interface or class to it.
5917         mono_upgrade_remote_class() now creates a new remote class (or gets
5918         it from the cache) if an vtable upgrade is needed. In this way
5919         we make sure that other objects sharing the same remote class
5920         don't get the new vtable with unwanted interfaces.
5921         
5922         * object-internals.h:
5923         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
5924         
5925         * marshal.c: Track changes in mono_upgrade_remote_class().
5926
5927 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
5928         * icall.c: Add runtime methods for obtaining members of inflated
5929         class, which were created from supplied non-inflated members. It
5930         is used in internal Get{Method,Constructor,Field} methods in
5931         System.Type
5932
5933 2005-06-09  Martin Baulig  <martin@ximian.com>
5934
5935         * reflection.c
5936         (mono_reflection_bind_generic_method_parameters): Fix #75169.
5937
5938 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5939         * reflection.c (mono_image_basic_init): Define
5940         Version in MonoDynamicAssembly. 
5941         
5942 2005-06-08  Martin Baulig  <martin@ximian.com>
5943
5944         Fix #75136.
5945
5946         * loader.c
5947         (mono_method_signature_full): New public method; takes a
5948         `MonoGenericContext *'.
5949         (find_method): Use mono_method_signature_full() and pass the
5950         klass'es context to it.
5951
5952         * class.c (mono_class_is_inflated_method): Use
5953         mono_method_signature_full() and pass the context to it.
5954
5955 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
5956
5957         * object.c: add proper locking in mono_remote_class_vtable(),
5958         fixes possible memory corruption.
5959
5960 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
5961
5962         * marshal.c (mono_remoting_marshal_init): set
5963         initialized after initialization.
5964
5965 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5966
5967         * locales.c : hush.
5968
5969 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
5970
5971         * object.c (extend_interface_array): fix really silly
5972         memory corrupting / comparison bug.
5973
5974 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5975
5976         * reflection.c: Functions added to support the creation
5977         of CustomAttributeData, which includes Attribute data
5978         used by ReflectionOnly methods.
5979
5980         * reflection.h:  mono_reflection_get_custom_attrs_data and
5981          mono_custom_attrs_data_construct added (functions exposed).
5982
5983          * icall.c: Added mono_reflection_get_custom_attrs_data
5984          as icall.
5985         
5986 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
5987
5988         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
5989         lupus's request.
5990
5991 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
5992
5993         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
5994
5995         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
5996         dynamic DllImportAttribute.
5997
5998         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
5999         dynamic DllImportAttribute.
6000
6001         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
6002         Fixes #75162.
6003
6004 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6005
6006         * threads.c: avoid segfault when an unstarted thread is aborted.
6007
6008 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
6009
6010         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
6011         Returns the name and version of the runtime for reporting.
6012
6013 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6014
6015         * appdomain.c: bump corlib version.
6016         * object-internals.h: new field in MonoReflectionAssembly.
6017
6018 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6019
6020         * object-internals.h: Carlos forgot to add this field.
6021
6022 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6023
6024         * icall.c: Added create_version to create instances
6025         of Version of MonoReflectionAssemblyName. This change helps
6026         the AssemblyName tests to keep running fine.
6027         
6028 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
6029   
6030         * object.c (mono_method_return_message_restore): A somehow less
6031         intrusive fix for #75138.
6032
6033 2005-06-03  Raja R Harinath  <rharinath@novell.com>
6034
6035         * object.c (mono_method_return_message_restore): Fix computation
6036         of expected number of out args.
6037
6038 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
6039
6040         * reflection.c (mono_image_get_method_info): Fix the case when the
6041         charset is empty.
6042
6043 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
6044
6045         * object.c: Added missing null check in
6046           mono_method_return_message_restore.
6047
6048 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
6049
6050         * reflection.c (mono_image_get_method_info): Handle the case when
6051         dllentry is empty.
6052
6053 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
6054
6055         * object.c: When creating the vtable for a proxy, take into account
6056         all inherited interfaces, not only the ones registered in
6057         iclass->interfaces. This fixs bug #74996.
6058         Also, in mono_method_return_message_restore, verify that the array
6059         of out args has the expected lengh.
6060
6061 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6062
6063         * socket-io.c: update the timeout in Poll when the call is interrupte.
6064
6065 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6066
6067         * socket-io.c: support abort/suspend in Select_internal after last
6068         change.
6069
6070 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6071
6072         * threadpool.c: remove warning.
6073
6074 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6075
6076         * icall.c:
6077         * socket-io.[ch]: Select_internal uses poll() now when available, thus
6078         removing the 1024 limit from select(). Runtime part of the fix for
6079         bug #71203.
6080
6081 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6082
6083         * socket-io.c: when resolving the addresses for the same
6084         host returned by gethostname(), get the local IPs from the interface
6085         list. Loopback addresses are discarded if the are interfaces up with
6086         non-loopback ones. Fixes bug #63265.
6087
6088 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
6089
6090         * appdomain.c, verify.c, object-internals.h, reflection.c:
6091         bumped corlib number to 36, and added new extra_flags field
6092         to ReflectionMethodBuilder and friends.  Fixes #75060.
6093
6094 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
6095
6096         * gc.c: register a new weak link only if the object is non-null
6097         (fixes bug#75047).
6098
6099 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
6100
6101         * culture-info.h : short time pattern too.
6102
6103 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
6104
6105         * culture-info.h : expand long time pattern string length.
6106
6107 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
6108
6109         * culture-info-table.h : update (more French date format; #72788).
6110
6111 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
6112
6113         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
6114         the method is static. Fixes #75029.
6115
6116 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
6117
6118         * reflection.c: Update the table_idx field of method builders after
6119         saving the module, since it can change. This is a workaround for
6120         bug #74914. 
6121
6122 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
6123
6124         * culture-info-table.h : update (additional French date format).
6125
6126 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
6127
6128         * icall.c (ves_icall_type_Equals): Revert last change.
6129         
6130         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
6131
6132         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
6133
6134 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
6135
6136         * class-internals.h: Added executioncontext_class field to 
6137         MonoDefaults structure.
6138         * domain.c: Cache System.Threading.ExecutionContext class in 
6139         mono_defaults.
6140         * object.c: Capture the ExecutionContext for asynchroneous calls in
6141          mono_async_result_new.
6142         * object-internals.h: Added execution_context and original_context 
6143         fields to MonoAsyncResult. Added execution_context to MonoThread.
6144         * security-manager.c|.h: Added mono_get_context_capture_method to 
6145         return the capture method (if required by the security manager or by
6146         the framework version used).
6147         * threadpool.c: Apply capture (if present) ExecutionContext in 
6148         mono_async_invoke and revert to original context after it completes.
6149
6150 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
6151
6152         * culture-info-table.h : updated (real hacky solution for zh-CHT).
6153
6154 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
6155
6156         * culture-info-table.h : zh-CHT related workaround.
6157
6158 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
6159
6160         * marshal.c (emit_marshal_custom): Add some error checking and call the
6161         methods in the ICustomMarshaler interface. Fixes #74875.
6162         
6163         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
6164         native->managed wrappers.
6165
6166 2005-05-12  Martin Baulig  <martin@ximian.com>
6167
6168         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
6169         here and use the loader lock.
6170
6171         * mono-debug.c: Properly lock when the debugger is not attached.
6172         (mono_debug_init): Release the initial lock if we're not running
6173         in the debugger.
6174
6175 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
6176
6177         * marshal.c (emit_marshal_custom): Pass through NULL values without
6178         calling the custom marshalling routines.
6179
6180         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
6181         conversion in structures. Fixes #74882.
6182
6183 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
6184
6185         * culture-info-table.h : zh-* cultures were missing.
6186
6187 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
6188
6189         * threads.c: Added a new event background_change_event which is signaled
6190         when a thread changes its background mode.
6191         Moved here several checks previously done in managed code. The checks
6192         require the thread lock, and using the thread lock in managed code
6193         can result in deadlocks.
6194         Merged Start_internal and Thread_internal into a single method. Now 
6195         Thread_internal does all work of creating and starting a thread.
6196         Added icalls for setting and getting the state of the object. Moved from
6197         managed code to avoid locking there.
6198         Added wait_for_tids_or_state_change() which is called instad of
6199         wait_for_tids when waiting for non-backround threads to end. This method
6200         will return if one of the threads ends or the background_change_event
6201         is signaled.
6202         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
6203         the background mode. This method signals the background_change_event
6204         event.
6205         * icall.c:
6206         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
6207         removed Start_internal.
6208         
6209 2005-05-11  Martin Baulig  <martin@ximian.com>
6210
6211         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
6212         to order of some fields to get proper alignment on 64-bit machines.
6213
6214 2005-05-11  Martin Baulig  <martin@ximian.com>
6215
6216         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
6217         changes as they're broken and completely fuck up the debugger.
6218
6219         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
6220
6221 2005-05-10  Martin Baulig  <martin@ximian.com>
6222
6223         * reflection.c (mono_reflection_generic_class_initialize): Don't
6224         call mono_class_setup_parent() here.
6225
6226 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6227
6228         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
6229         send/receive timeout use an integer in milliseconds. We were using a
6230         struct timeval.
6231
6232 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6233
6234         * locales.c:
6235         (internal_get_cultures): reserve the first slot of the array for the
6236         InvariantCulture, which will be filled in managed code.
6237
6238 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
6239
6240         * reflection.c (mono_image_fill_module_table): Initialize the
6241         GENERATION field as well.
6242
6243 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6244
6245         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
6246         Monitor.Enter on the object.
6247
6248 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
6249
6250         * threads.c: Enable the wait for running threads when exiting.
6251         * icall.c: Suspend all threads before exiting.
6252
6253 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
6254
6255         * assembly.c (mono_assembly_load_reference): Fix warning.
6256
6257 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6258
6259         * threadpool.c: changed the default number of threads per cpu. From now
6260         on, the default will be 20 + (5 * number of cpus) instead of 50.
6261
6262 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
6263
6264         * loader.c (mono_method_get_signature_full): Add locking here.
6265
6266 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
6267
6268         * appdomain.c: Moved methods for parsing and freeing assembly
6269         names to assembly.c.
6270         * assembly.c, domain-internals.h: Created public methods for parsing
6271         assembly names. Fixed mono_assembly_load_with_partial_name:
6272         it now finds the best match, taking into account the version,
6273         token and culture specified in the partial name. Also return
6274         the latest version if no version information is specified.
6275
6276 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
6277
6278         * threadpool.c: replace check for SocketAsyncCall class.
6279
6280 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6281
6282         * threadpool-internals.h:
6283         * Makefile.am: added threadpool-internals.h
6284
6285         * threadpool.c: call mono_unhandled_exception on exceptions not handled
6286         that happen in threadpool threads (tested on MS).
6287         (mono_thread_pool_remove_socket): new function that dispatch any pending
6288         AIO call on a socket that is closing. By now only epoll really needs it,
6289         as select/poll wake up when the socket closes.
6290
6291
6292         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
6293
6294 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
6295
6296         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
6297
6298 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
6299
6300         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
6301
6302 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
6303
6304         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
6305         has an abort request, convert it into a suspend request.
6306
6307 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
6308
6309         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
6310         warning for the usage of `UnmanagedFunctionPointerAttribute' which
6311         is not supported yet.
6312
6313 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6314
6315         * image.c: register assemblies loaded from data (bundles) in the loaded
6316         assemblies hash. Fixes bug #74772.
6317
6318 2005-04-29  Martin Baulig  <martin@ximian.com>
6319
6320         * class.c (mono_type_get_name_recurse): Update to the new naming
6321         schema from the latest .NET 2.x beta2.
6322         (mono_class_setup_vtable_general): If we're a generic instance,
6323         copy the vtable from our generic type definition and inflate all
6324         the methods in it.
6325
6326         * loader.c (find_method): Update to the new naming schema from the
6327         latest .NET 2.x beta2.
6328
6329 2005-04-29  Raja R Harinath  <harinath@gmail.com>
6330
6331         * class.c (mono_class_init): Add a mono_loader_unlock to the
6332         #74734 fix.
6333
6334 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
6335
6336         * icall.c (ves_icall_System_Environment_Exit): Remove the 
6337         suspend_all_other_threads () call for the time being, since it can hang.
6338
6339         * threads.c (mono_thread_manage): Similarly, disable the waiting for
6340         the background threads to exit, since it can also hang.
6341
6342         * class.c (mono_class_init): Applied patch from Ankit Jain 
6343         (radical@gmail.com). Avoid pending init errors when a field refers
6344         to a nested class using a typeref. Fixes #74734.
6345
6346         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
6347         this for dynamic modules.
6348
6349 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6350
6351         * threads.c: don't wait for threads that are in the process of aborting
6352         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
6353         and waiting for background threads to finish. This makes xsp and
6354         mod-mono-server exit without random length delays and/or hangs.
6355
6356 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6357
6358         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
6359
6360 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
6361
6362         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
6363         dynamic types to prevent infinite loops. Fixes #74727.
6364
6365         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
6366         ..._is_assignable_to.
6367
6368 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
6369
6370         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
6371
6372 2005-04-25  Martin Baulig  <martin@ximian.com>
6373
6374         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
6375
6376         * domain.c
6377         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
6378
6379         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
6380
6381         * reflection.c (build_compressed_metadata): Set metadata header
6382         version to 2.0.
6383
6384 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
6385
6386         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
6387         number into an integral and a decimal part. Fixes #70473.
6388
6389         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
6390
6391 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
6392
6393         * culture-info-table.h : reflected the latest locale-builder output.
6394
6395 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6396
6397         * threadpool.c: check for SuspendRequested too when deciding if
6398         mono_thread_interruption_checkpoint should be called.
6399
6400 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6401
6402         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
6403         * threads.c: remove interruption_mutex and use Interlocked instead. When
6404         suspending all the threads, wait for all the suspended events at once.
6405         If we're shutting down and get an APC that is going to be queued,
6406         call mono_thread_execute_interruption immediately, as the thread might
6407         be sleeping on a pthread condition or mutex.
6408
6409         * icall.c: call mono_runtime_set_shutting_down before suspending the
6410         threads.
6411
6412         Fixes bug #74693. And now xsp is happier when exiting.
6413
6414 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
6415
6416         * loader.c (mono_stack_walk): Fix #74690.
6417
6418 2005-04-22  Martin Baulig  <martin@ximian.com>
6419
6420         * mono-debug.h (MonoDebugMethodJitInfo): Added
6421         `MonoDebugMethodJitInfo *jit'.
6422
6423         * mono-debug.c (mono_debug_read_method): Cache the
6424         MonoDebugMethodJitInfo in `address->jit'.
6425         (mono_debug_free_method_jit_info): New public method.
6426
6427 2005-04-22  Martin Baulig  <martin@ximian.com>
6428
6429         * class.c (mono_class_is_assignable_from): Disallow
6430         type parameter -> interface.
6431
6432 2005-04-21  Dick Porter  <dick@ximian.com>
6433
6434         * threads.c (mono_thread_create): Turn an assertion into an error.
6435
6436 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
6437
6438         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
6439         
6440         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
6441         Fix some gcc 4.0 warnings.
6442
6443 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
6444
6445         * file-io.c: fix alt dir separator char on unix systems
6446         and cleanup (fixes bug #71214).
6447
6448 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
6449
6450         * marshal.c: Use CALLVIRT instead of CALL when dispatching
6451         a call to a remote domain, since the method may be an
6452         interface method in the client domain. This fixes bug #74192.
6453
6454 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6455
6456         * threadpool.c: recv/send are now performed before going back to managed
6457         code to save one transition.
6458
6459 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6460
6461         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
6462
6463         * metadata/threadpool.c: removed hack to workaround the bug above.
6464
6465         Fixes bug #74618.
6466
6467 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
6468
6469         * reflection.c reflection.h: Fix handling of parameter defaults in
6470         dynamic methods. Also fixes handling of parameter attributes.
6471         Fixes #74609.
6472
6473         * mono-debug.c (mono_debug_close_image): Fix warning.
6474
6475 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6476
6477         * socket-io.h: replaced old unused field with new 'blocking'.
6478         * threadpool.c: restore socket blocking state on windows(tm).
6479
6480 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
6481
6482         * icall.c: don't return the codebase in the AssemblyName[] returned by
6483         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
6484         * object-internals.h: Removed FIXME (fields were presents) and fixed
6485         versioncompat declaration.
6486
6487 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6488
6489         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
6490         not closed, so don't cleanup when it happens.
6491
6492 2005-04-13  Chris Toshok  <toshok@ximian.com>
6493
6494         * mono-debug-debugger.h: change prototype for
6495         mono_debugger_lookup_type.
6496
6497         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
6498         this function, although it should probably be named
6499         mono_debugger_init_type.
6500
6501 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6502
6503         * threadpool.c: fix non-AIO case.
6504
6505 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
6506
6507         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
6508         the built-in profiler to measure just JIT compilation times.
6509
6510 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6511
6512         * threadpool.c: the epollfd might be closed by another thread at
6513         any time, so ignore EBADF at treat it as a "we're closing" sign.
6514
6515 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6516
6517         * threadpool.c: release the semaphores with a count equals to the number
6518         of working threads in both IO and regular pools. Fixed typo that messed
6519         up the count of IO pool threads. Don't initialize the pipe handles if
6520         we're using epoll.
6521
6522 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6523
6524         * threadpool.c: some systems don't like a NULL when deleting the socket
6525         from epoll.
6526
6527 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6528
6529         * threadpool.c: fix semaphore allocation.
6530
6531 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6532
6533         * threadpool.c: added epoll() based implementation for asynchronous IO
6534         that is used instead of the default poll() when available.
6535         It can be disabled by setting MONO_DISABLE_AIO.
6536
6537 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6538
6539         * threadpool.c: windows needs 'closesocket' and instead of returning
6540         0 when the stream is closed while in select, it returns -1. Fixes bug
6541         #74573.
6542
6543 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
6544
6545         * class.c (class_compute_field_layout): Fix the regression caused by
6546         the previous try.
6547
6548 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6549
6550         * threadpool.c: separate pool for socket async. IO.
6551         * threadpool.h: mono_max_worker_threads is not a global any more.
6552
6553 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
6554
6555         * class.c (class_compute_field_layout): Fix #74549.
6556
6557 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6558
6559         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
6560         use 2 connected sockets instead.
6561
6562 2005-04-08  Miguel de Icaza  <miguel@novell.com>
6563
6564         * mono-config.c: Add new entry point for mkbundle
6565         mono_config_parse_memory. 
6566
6567 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6568
6569         * threadpool.c: removed another unused function.
6570
6571 2005-04-08  Ankit Jain  <radical@corewars.org>
6572
6573         * reflection.c (get_default_param_value_blobs): Add 'types'
6574         parameter to get the types encoded in the constant table.
6575         (mono_param_get_objects): Use the type from the constant table,
6576         not the type of the parameter, when creating default values.
6577         Handle null default values correctly.
6578
6579 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6580
6581         * file-io.c:
6582         * file-io.h:
6583         * threadpool.c:
6584         * threadpool.h:
6585         * icall.c:
6586         * socket-io.c: removed dead code for async IO.
6587
6588 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6589
6590         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
6591
6592         * threadpool.c: intercept socket async. calls and pass them to a thread
6593         that is polling and dispatching the job items to the threadpool as
6594         socket become ready. Fixes bugs #71217, #71933.
6595
6596         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
6597         between char and short/ushort arrays.
6598
6599         * socket-io.c: remove dead code.
6600
6601 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6602
6603         * locales.c,
6604           icall.c : removed InternalToUpper_Comp() and
6605           InternalToLower_Comp().
6606
6607 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6608
6609         * char-conversions.h : The tables were incorrectly generated. Should
6610           be generated against invariant culture.
6611
6612 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
6613
6614         * object.c (mono_runtime_invoke_array): Fix return value when 
6615         passing pre-created valuetype objects to ctors.
6616
6617         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
6618         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
6619         Fixes #74338.
6620
6621 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
6622
6623         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
6624         only used with --security and hides the wrong corlib version error.
6625
6626 2005-03-30  Joshua Tauberer  <tauberer@for.net>
6627
6628         * class.c: Changed mono_class_name_from_token so that types
6629         outside of a namespace don't have an initial period.  Improved
6630         the g_warning message used in _mono_class_get when loading
6631         fails.
6632         * assembly.c: In mono_assembly_load_reference, when an assembly
6633         can't be found, "No such file or directory" is misleading and
6634         unhelpful because a few paths were checked for the presence of
6635         the assembly.  When that happens (ENOENT), display a nicer
6636         message indicating the directories that were searched.  In all
6637         cases, the warning is made easier to read for non-hackers.
6638
6639 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
6640
6641         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
6642         project/solution.
6643         * appdomain.h|domain.c: Removed inline from functions.
6644         * appdomain.c: Reduced warnings when compiling on windows.
6645         * icall.c: Fixed output_debug declaration to gunichar2*.
6646         * mono-config.c: Reduced warnings when compiling on windows.
6647         * rand.c: Added missing "windows.h". Added missing return value.
6648         * rawbuffer.c: Added missing winsock2.h for windows.
6649         * sysmath.h: Added mono-compiler.h header to allow/ease 
6650         compilation with non-GCC compilers.
6651         * threads.c: Fixed declarations to compile with VS.NET C compiler.
6652         Removed cast warnings.
6653
6654         Adapted from the work of J Lothian (for VC6).
6655
6656 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
6657
6658         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
6659         from default_path.
6660
6661 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
6662
6663         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
6664         the 2.0 profile.
6665
6666 2005-03-27  Raja R Harinath  <harinath@gmail.com>
6667
6668         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
6669         has to be in $(exec_prefix).  $(prefix) is for arch-independent
6670         stuff, and it would probably use $(prefix)/share rather than
6671         $(prefix)/lib.
6672
6673 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6674
6675         * console-io.c: added 2 includes that might be missing.
6676
6677 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
6678
6679         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
6680         profile.
6681
6682         * reflection.c (create_custom_attr): Allocate the params array using
6683         alloca so it gets GC tracking.
6684
6685 2005-03-23  Chris Toshok  <toshok@ximian.com>
6686
6687         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
6688         out some spew.
6689
6690 2005-03-24  Raja R Harinath  <rharinath@novell.com>
6691
6692         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
6693         changes to pick up any changes in prefix, etc.
6694
6695 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6696
6697         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
6698         
6699         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
6700         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
6701
6702 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6703
6704         * class-internals.h object-internals.h class.c reflection.c: Extend the
6705         mono_lookup_dynamic_token () function to return the class of the
6706         token as well. 
6707
6708         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
6709         well. Fixes #73848.
6710
6711 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
6712
6713         * security-manager.c: Skip inheritance checks for intra-corlib
6714         class inheritance and method overrides. This skips a lot of checks
6715         and (anyway) permissions cannot work until corlib is loaded.
6716
6717 2005-03-23  Martin Baulig  <martin@ximian.com>
6718
6719         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
6720         MONO_TYPE_GENERICINST.  
6721
6722 2005-03-23  Martin Baulig  <martin@ximian.com>
6723
6724         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
6725
6726 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6727
6728         * class.c: added locking comments to some functions.
6729         Cache the interface offsets arrays (saves about 20 KB
6730         of runtime memory in a typical app).
6731         Reduce the time overhead in mono_class_setup_supertypes ().
6732
6733 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6734
6735         * icall.c: speedup and fix leaks in GetMethodsByName and
6736         GetPropertiesByName.
6737
6738 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6739
6740         * reflection.c: some locking fixes.
6741
6742 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6743
6744         * metadata.c: added missing break in case statement.
6745
6746 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6747
6748         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6749         typedbyref return values. Fixes #73941.
6750
6751 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6752
6753         * security-manager.c|h: Added demandunmanaged method and 
6754         suppressunmanagedcodesecurity class to MonoSecurityManager.
6755         Renamed aptc class to allowpartiallytrustedcallers.
6756
6757 2005-03-17  Martin Baulig  <martin@ximian.com>
6758
6759         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6760
6761 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6762
6763         * file-io.c: disabled file async. IO using aio_*. It uses the
6764         threadpool now. Workaround for bug #73718.
6765
6766 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6767
6768         * assembly.h, mono-config.c: added code to deal with bundled configs
6769         for bundled assemblies.
6770
6771 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6772
6773         * *.c, private.h: cleanup, removing old private.h header file.
6774
6775 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6776
6777         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6778         and throw_on_unmappable_char attributes.
6779
6780 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6781
6782         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6783         _ProcessName_internal.
6784
6785 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6786
6787         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6788         #73631.
6789
6790         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6791         are no longer used.
6792
6793 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6794
6795         * object.c (compute_class_bitmap): Add support for generics. Fixes
6796         #73527.
6797
6798 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6799
6800         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6801
6802 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6803
6804         * filewatcher.c: commented out the code for windows watcher, as we don't
6805         use it (we use the managed implementation instead).
6806
6807 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6808
6809         * object-internals.h (MonoThread): Remove 'unused1' field.
6810
6811         * appdomain.c: Bump corlib version.
6812
6813         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6814
6815         * reflection.c (mono_reflection_create_runtime_class): Remove the
6816         AssemblyBuilder.Save optimization since it causes too many problems.
6817
6818 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6819
6820         * exception.c|h: Added mono_get_exception_reflection_type_load to
6821         create a ReflectionTypeLoadException object.
6822         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6823         to return NULL is a InheritanceDemand fails during reflection. Updated
6824         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6825         ReflectionTypeLoadException if an InheritanceDemand fails during 
6826         reflection. Added icall mapping for GetLinkDemandSecurity.
6827         * security-manager.c|h: Added ves_icall_System_Security_
6828         SecurityManager_GetLinkDemandSecurity internal call to return the
6829         class and methods permissions set for a LinkDemand. Removed unused
6830         fields in MonoSecurityManager.
6831
6832 2005-03-10  Martin Baulig  <martin@ximian.com>
6833
6834         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6835         it's a generic instance.
6836
6837 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6838
6839         * reflection.c (mono_get_object_from_blob): Applied patch from
6840         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6841
6842         * class.c (mono_class_is_assignable_from): Another try at fixing 
6843         #73469 without breaking anything.
6844
6845 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6846
6847         * class.c: (mono_class_is_assignable_from): Revert the last changes
6848         since they don't work with generics.
6849         
6850         * class.c (mono_class_is_assignable_from): Fix build bustage.
6851
6852         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6853         the managed IsAssignableFrom method. Fixes #73469.
6854
6855         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6856         function.
6857
6858 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6859
6860         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6861         memory when the remoting callback does not sets the out arguments.
6862         Fixes #73007.
6863
6864         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6865         by mistake.
6866
6867         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6868
6869         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6870
6871         * appdomain.c: Bump corlib version.
6872
6873 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6874
6875         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6876         function.
6877
6878         * threads.c (mono_thread_attach): Detect threads which are not started
6879         by the GC pthread wrappers.
6880
6881 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6882
6883         * icall.c: Added new icall for RNG.
6884         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6885         single handle on Linux to access /dev/urandom and fix #73183.
6886
6887 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6888
6889         * object.c: setting the new vtable in a transparent proxy object must
6890         not change the GC descriptor.
6891
6892 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6893
6894         * object.c: fixed compilation without GCJ support.
6895         * reflection.c: for runtime-created types ensure klass->has_references
6896         is correct (bug #73215).
6897
6898 2005-03-02  Martin Baulig  <martin@ximian.com>
6899
6900         * class.c (mono_class_is_assignable_from): Make this work if
6901         `oklass' is a generic instance; fixes #72831.
6902
6903 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6904
6905         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
6906         with hasthis set.
6907         
6908         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
6909
6910         * marshal.c: Reorganize native->managed marshalling code to also use
6911         the emit_marshal_... functions.
6912
6913 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6914
6915         * object.c: typed allocs have issues with bitmap sizes > 30,
6916         so check for max_set >= 30.
6917
6918 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6919
6920         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
6921         managed code. Fixes #73012.
6922
6923         * metadata.h (MonoMarshalSpec): Add elem_mult field.
6924
6925         * metadata.c reflection.c: Load/Emit elem_mult as well.
6926         
6927         * metadata.h (MonoMarshalSpec): Add comment.
6928
6929         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
6930
6931         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
6932         num_elem to -1 if not given.
6933
6934         * object-internals.h (MonoReflectionMarshal): Add has_size field.
6935
6936         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
6937         given values.
6938
6939 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
6940
6941         * null-gc.c (mono_gc_free_fixed): Was not compilable.
6942
6943 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
6944
6945         * reflection.c (encode_marshal_blob): Encode param_num field as well.
6946
6947         * object-internals.h (MonoReflectionMarshal): Add param_num field.
6948
6949 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6950
6951         * object.c: generalized the reference bitmap creation
6952         and added hooks for the new GC.
6953         * class-internals.c: removed the gc_bitmap field from MonoClass.
6954
6955 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6956
6957         * domain.c: help the compiler to produce better code
6958         in mono_jit_info_table_find ().
6959
6960 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6961
6962         * object.c: make all allocations look typed.
6963
6964 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6965
6966         * socket-io.c: load Mono.Posix if it's not loaded already
6967         (fixes bug#73033).
6968
6969 2005-02-24  Martin Baulig  <martin@ximian.com>
6970
6971         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
6972         * reflection.c (dup_type): Likewise.
6973
6974 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
6975
6976         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
6977         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
6978
6979 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6980
6981         * domain.c, threads.c, object-internals.h: make the critical thread
6982         local vars use the fast access mode (even when we're compiled in
6983         a lib). Provide accessors to be used by the jit during codegen.
6984
6985 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6986
6987         * appdomain.c: Changed hook functios behavior to include
6988         support for the reflection only assemblies. Some icalls were changed
6989         to support the mentioned assemblies too. Signatures of static methods
6990         try_assembly_resolve and real_load now have an additional parameter:
6991         refonly.
6992
6993         * assembly.c: General changes to mono_assembly_ methods to support
6994         reflection only api. Functions mono_assembly_open, mono_assembly_load,
6995         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
6996         suffix, to support an additional gbool parameter to specify whether
6997         the assembli is reflection only or not. Created some new hook functions 
6998         to add support for reflection only assemblies. Signatures of static 
6999         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
7000         have now an additional parameter: refonly.
7001
7002         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
7003         indicating whether the assembly is reflection only or not.
7004
7005         * exception.c: Add mono_get_exception_invalid_operation.
7006
7007         * icall.c: Throw an InvalidOperationException when trying to invoke
7008         a property/method/event, or trying to set/get the value of a field.
7009         Also add an icall to retrieve the ref_only flag to the
7010         MonoReflectionAssembly.
7011
7012 2005-02-23  Chris Toshok  <toshok@ximian.com>
7013
7014         Part of fix for #72827.
7015         * mono-debug.c (mono_debug_add_method): add lexical block data to
7016         the info we write.  Kind of a hack at the moment - we copy the
7017         lexical block info from the MonoDebugMethodInfo to the
7018         MonoDebugMethodJitInfo here, before writing it.
7019         (mono_debug_read_method): read the lexical block info.
7020
7021         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
7022
7023         * debug-mono-symfile.h: add lexical block support.
7024
7025         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
7026         support.
7027
7028 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
7029
7030         * loader.c (mono_lookup_pinvoke_call): Fix warning.
7031
7032         * object.c (mono_runtime_free_method): Call mono_free_method () and
7033         put the TODOs there.
7034
7035         * loader.c (mono_free_method): Free up most memory allocated for 
7036         dynamic methods.
7037
7038 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7039
7040         * reflection.c: properly flag a Type argument to a
7041         named custom attr value (bug #72248).
7042
7043 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7044
7045         * reflection.c: reduce code duplication in named custom
7046         attribute encoding.
7047
7048 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
7049
7050         * reflection.c: properly encode custom attrs of type object
7051         (bug #72649).
7052
7053 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
7054
7055         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
7056
7057 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
7058
7059         * socket-io.c: load System.dll if it's not loaded already
7060         (bug #72850 and #70477).
7061
7062 2005-02-21  Martin Baulig  <martin@ximian.com>
7063
7064         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7065         generic instances.
7066
7067 2005-02-21  Martin Baulig  <martin@ximian.com>
7068
7069         * reflection.c (mono_image_build_metadata): We also need to
7070         "fixup" the MethodImpl table after we computed the final method
7071         indices.  Call fixup_methodimpl() to do that.
7072         (fixup_methodimpl): New private method.
7073
7074 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
7075
7076         * assembly.c: special case mscorlib.dll (bug#72536),
7077         patch from Carlos Alberto Cortez.
7078
7079 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
7080
7081         * threads-types.h threads.c: Fix build bustage.
7082
7083         * threads.c: Use a union for long<->double conversions.
7084
7085         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
7086         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
7087
7088         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
7089         containing the checkpoint call with NOT_TAKEN.
7090         
7091         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
7092         checkpoint before pushing the arguments, so they won't have to be
7093         spilled to stack.
7094
7095 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7096
7097         * domain.c, assembly.c, domain-internals.h: make some data
7098         const and relocation-free.
7099
7100 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
7101
7102         * object.c, appdomain.c, class-internals.h: introduce the
7103         MonoClassRuntimeInfo structure to hold the info needed to
7104         use a class at runtime. Made mono_class_vtable() lock-free
7105         for all the appdomains.
7106
7107 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
7108
7109         * metadata-internals.h, image.c: introduce a per-image mempool to
7110         be used for memory that has the same lifetime as the image.
7111
7112 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
7113
7114         * domain.c: In mono_init_internal(), instead of selecting the first
7115         runtime version supported by an executable, get a list of all
7116         supported versions and select the one for which an mscorlib exists
7117         (since even if the runtime supports a given version, it doesn't mean
7118         that the framework for that version is installed).
7119         Modified get_runtimes_from_exe to support this behavior.
7120         In supported_runtimes, added information about additional system
7121         assembly versions.
7122         
7123         * assembly.c: Added support for more than one system assembly version
7124         per runtime version. Updated the assembly list.
7125         In mono_assembly_remap_version, removed the initial version check,
7126         since we don't know to which version we need to compare until we
7127         get the version set on which the assembly is based.
7128         Moved the code for loading corlib into the new method
7129         mono_assembly_load_corlib(), so it can be used by the initialization
7130         code.
7131         
7132         * domain-internals.h: Updated data structures and added declaration
7133         for mono_assembly_load_corlib.
7134
7135 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
7136
7137         * reflection.c (resolve_object): Fix the creation of the signature in 
7138         the SignatureHelper case.
7139
7140         * assembly.c (mono_assembly_remap_version): Fix binary search.
7141         
7142 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
7143  
7144         * class.c: Added inheritance check when a method is overloaded (from a
7145         virtual method or when implementing an interface) and when a class is
7146         inherited. Added functions to set a failure for a class and to 
7147         retreive the exception from a failure.
7148         * class-internals.h: Added fields to MonoClass to keep the exception
7149         information status for inheritance (or other exceptions) to be thrown
7150         later (i.e. not at load time).
7151         * object.c: Throw the inheritance SecurityException when a type is to 
7152         be created with either class or method inheritance violations.
7153         * reflection.c|h: Fix when getting declsec from a class. Removed 
7154         unrequired code for class. Improved sanity in parameter naming.
7155         * security-manager.c|h: Added functions to check for class and method
7156         inheritance.
7157
7158 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
7159
7160         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
7161         and has_finalize in dynamic types as well.
7162
7163 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
7164
7165         * culture-info-table.h : fixed currency format for en-GB (and so on).
7166
7167 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
7168
7169         * gc.c: ensure the GC handles never have 0 as a value.
7170
7171 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
7172
7173         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
7174         a pointer to a struct to unmanaged code. Fixes #72625.
7175
7176 2005-02-16  Martin Baulig  <martin@ximian.com>
7177
7178         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
7179
7180 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
7181
7182         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
7183
7184 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
7185
7186         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
7187
7188         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
7189         UnmanagedFunctionPointerAttribute, use it for determining calling convention
7190         etc. Fixes #71471.
7191
7192         * reflection.c (mono_custom_attrs_get_attr): New helper function.
7193
7194         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
7195
7196 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
7197
7198         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
7199         changes to make the current context a field in MonoThread.
7200
7201 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
7202
7203         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
7204         the last change.
7205         
7206         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
7207         extracted from mono_marshal_get_native_wrapper.
7208
7209         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
7210         to create wrappers around native functions.
7211
7212         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
7213         delegates for arbitrary function pointers. Fixes #71472.
7214
7215 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7216
7217         * threads.c: cleaned up the code a little.
7218
7219 2005-02-15  Martin Baulig  <martin@ximian.com>
7220
7221         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
7222         the data table.
7223
7224         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
7225         allocate larger chunks if needed.
7226
7227 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
7228
7229         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
7230         in by mistake.
7231
7232 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
7233
7234         * domain.c: keep the domains in an array and ensure the domain ids
7235         are kept small, so they can be used as indexes to domain-specific data
7236         with a small memory overhead.
7237
7238 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
7239
7240         * icall.c: Handle byref types in Type icalls. Fixes #72544.
7241
7242 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
7243
7244         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
7245
7246 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
7247
7248         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
7249
7250         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
7251         values.
7252
7253         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
7254         
7255 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
7256
7257         * domain-internals.h: add the hashtable here.
7258
7259         * class-internals.h: Remove `info' from MonoMethod
7260
7261         * domain.c: Add a new hashtable, jit_trampoline_hash
7262
7263 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7264
7265         * object.c: don't set the value of static fields
7266         (fixes bug#72494).
7267
7268 2005-02-11  Martin Baulig  <martin@ximian.com>
7269
7270         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
7271         (mono_debug_add_method): Silently ignore the method if it's too big.
7272         (mono_debug_add_type): Likewise.
7273
7274 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
7275
7276         * threads.c, appdomain.c: remove #ifdefs from the code.
7277
7278 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
7279
7280         * metadata-internals.h: Added flags to MonoAssembly to cache the most
7281         common security informations. This allows us to stay in unmanaged code
7282         when doing LinkDemand and it's special cases (except for the first 
7283         time for initialization). The flags a very much used with --security.
7284         * reflection.c|h: Added code to get declarative security attributes 
7285         for LinkDemand and InheritanceDemand. This required to refactor the
7286         existing code for Demand.
7287         * security-manager.c|h: Added new method fields for the special cases
7288         of LinkDemand.
7289
7290 2005-02-10  Martin Baulig  <martin@ximian.com>
7291
7292         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
7293         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
7294
7295 2005-02-10  Martin Baulig  <martin@ximian.com>
7296
7297         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
7298         debugging code; this is almost a complete rewrite.
7299
7300         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
7301
7302 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7303
7304         * domain.c, object.h: expose mono_string_equal () and 
7305         mono_string_hash ().
7306         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
7307         it's implemented in managed code.
7308
7309 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7310
7311         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
7312         lo leak objects between appdomains.
7313
7314 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7315
7316         * assembly.c: old compilers compilation fix from 
7317         robertj@gmx.net (Robert Jordan).
7318
7319 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
7320
7321         * class-internals.h: Little reminder for the future.
7322
7323         * debug-helpers.c: Fix up wrapper_type_names
7324
7325 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7326
7327         * image.c, metadata-internals.h: when loading an image from a file,
7328         mmap all of it and use the same codepaths as when using a
7329         in-memory image: the code is simpler and we use less memory
7330         (both writable and readonly).
7331
7332 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
7333
7334         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
7335         API to alloc runtime data structures that need to be tracked by the
7336         GC and contain pointers.
7337         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
7338         make the code more readable and eventually use a different GC.
7339
7340 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
7341
7342         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
7343         for out arguments.
7344         
7345 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
7346
7347         * object.c: In release_type_locks(), don't release the cctor lock
7348         if it has already been released. This fixes a crash in the
7349         thread5 test.
7350
7351 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7352
7353         * gc.c, marshal.c, icall.c: register a delegate for finalization
7354         only when the native function pointer has been allocated for it.
7355
7356 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7357
7358         * object.c: cleaned up some code, allocate objects that are
7359         pointer free with the atomic malloc variant. Allocate memory
7360         for static data from the mempool if it's pointer-free.
7361         Allocate the bounds array at the end of the array data, when needed.
7362         * object-internals.h, object.h: move a private function in a private
7363         header.
7364         * class.c: handle missing case in tracking references in fields.
7365
7366 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
7367
7368         * class.c, class-internals.h: keep track if a type has
7369         reference fields in either the instance or static fields.
7370
7371 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
7372
7373         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
7374         and renamed to MonoRuntimeInfo. Added fields to store the expected
7375         framework assembly version. Changed mono_get_framework_version and
7376         mono_get_runtime_version for a single mono_get_runtime_info method.
7377         
7378         * assembly.c: Added method to remap system assembly versions to the
7379         current executing runtime version. Removed old mapping code.
7380         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
7381         
7382         * icall.c, reflection.c: Track api changes.
7383
7384 2005-02-06  Miguel de Icaza  <miguel@novell.com>
7385
7386         * loader.c (method_from_memberref): Improve error reporting,
7387         produce the class name instead of the typeref/typedef index. 
7388
7389 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
7390
7391         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
7392
7393 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7394
7395         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
7396         stdcall and charset name mangling.  Reorganize the code and add
7397         some tracing stuff.
7398
7399 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
7400
7401         * monodiet.c: More iters!
7402
7403         * marshal.c: Iter usage.
7404
7405         * icall.c: Iter usage.
7406
7407         * object.c: Use iters.
7408
7409         * debug-helpers.c: More iters
7410
7411 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7412
7413         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
7414         under win32.
7415
7416 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
7417
7418         * mono-debug-debugger.c: use iters
7419
7420         * class.c, class-internals.h: mono_class_setup_events is static
7421         now
7422
7423         * All callers: use iters
7424
7425 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7426
7427         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
7428         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
7429
7430 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7431
7432         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
7433
7434         * marshal.h: Add prototypes for ldfld/stfld_remote.
7435
7436         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
7437         this is called during startup.
7438         
7439 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
7440
7441         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
7442         MonoThreadsSync struct private in monitor.c. Changed the way
7443         MonoThreadsSync is allocated so it's faster and there is no
7444         need to keep track of it with a finalizer and it uses less memory.
7445         This also finally allows us to allocate mono objects as ptrfree when
7446         there are no reference fields.
7447
7448 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
7449
7450         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
7451         disappearing link to the GC interface and use them to simplify
7452         the gchandles code.
7453
7454 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7455
7456         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
7457         stfld_remote which call mono_load/store_field_new. This allows methods
7458         calling ldfld/stfld wrappers to be AOTed.
7459
7460         * console-io.c: Include sys/filio.h under solaris.
7461         
7462         * console-io.c: Include curses.h if needed correctly.
7463
7464 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7465         
7466         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
7467         method->klass as well.
7468
7469         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
7470
7471         * class.c (mono_class_init): Switch on lazy initialization of 
7472         methods.
7473
7474         * class.c (mono_class_get_finalizer): Handle the case when the 
7475         finalizer is inherited.
7476
7477 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7478
7479         * console-io.c: <curses.h> is needed by term.h on solaris.
7480
7481 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
7482
7483         * icall.c, class-internals.h, monodiet.c, class.c: Remove
7484         mono_class_setup_properties where possible. Remove this ftn from
7485         the header file, and make it static.
7486
7487 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7488
7489         * loader.c: Add missing setup_... call.
7490
7491         * class.c: Add missing setup_... calls.
7492
7493         * class.c (mono_class_init): Switch on lazy initialization of 
7494         the generic vtable.
7495         
7496         * class.c (mono_class_init): Fix generics broken by the recent changes.
7497
7498         * monodiet.c (handle_type): Add missing setup_... calls.
7499
7500         * class.c: Back out garbage in previous patch.
7501         
7502         * class.c: Add missing setup_... calls.
7503
7504         * class.c (mono_class_get_method_from_name_flags): Avoid calling
7505         mono_class_setup_methods () if possible.
7506
7507         * class-internals.h (MonoClass): Add 'has_cctor' flag.
7508
7509         * class-internals.h (MonoCachedClassInfo): New structure.
7510
7511         * class.c: Initialize properties and events fields of MonoClass lazily.
7512
7513         * class.c: Add infrastructure for lazily initializing the methods and
7514         vtable fields of MonoClass. Not yet used.
7515
7516         * class.c (mono_class_get_finalizer): New helper function.
7517
7518         * class.c: Add infrastructure for loading some class related data from
7519         an AOT file.
7520
7521         * object.c: Add infrastructure for initializing the vtable from data
7522         in the AOT file.
7523
7524         * gc.c (run_finalize): Use mono_class_get_finalizer ().
7525
7526         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
7527         appropriate initialization function before accessing parts of the
7528         MonoClass structure.
7529
7530         * marshal.c: Fix warnings.
7531         
7532         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
7533
7534         * mono-debug-debugger.c (get_exception_message): Use 
7535         mono_class_get_method_from_name_flags ().
7536
7537 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
7538
7539         * reflection.c, appdomain.c: Replace a few manual searches that
7540         Zoltan missed. (Paolo approved this part of my initial patch).
7541
7542 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
7543
7544         * profiler.c: disable recording statistical events at report time.
7545
7546 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7547
7548         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
7549         to byteswap arrays of enum values, too (bug #72080).
7550
7551 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
7552
7553         * appdomain.c (set_domain_search_path): Allow this to be called if
7554         domain->setup is not yet set.
7555
7556         * loader.c (mono_method_get_index): New helper function.
7557
7558         * loader.c reflection.c: Use mono_method_get_index ().
7559
7560         * class.c (mono_class_get_method_from_name_flags): New helper method.
7561
7562         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
7563         this.
7564
7565         * class.c (mono_class_get_cctor): New helper method.
7566
7567         * string-icalls.c object.c class.c marshal.c reflection.c: Use
7568         mono_class_get_method () to look up methods.
7569
7570 2005-02-01  Miguel de Icaza  <miguel@novell.com>
7571
7572         * console-io.c: Fix the build, this should work on Windows.
7573
7574 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
7575
7576         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
7577         be set to null to keep things valid
7578
7579 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7580
7581         * icall.c: added Console 2.0 icalls.
7582         * Makefile.am: added console-io.[ch]
7583         * console-io.[ch]: internal calls for Console 2.0 API.
7584
7585 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7586
7587         * class.c: make sure we consider all the interfaces
7588         when calculating max_interface_id (bug found by
7589         Jeroen Frijters running ikvm).
7590
7591 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
7592
7593         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
7594         valuetype fields to null.
7595
7596         * object.c (set_value): Ditto. Fixes #71669.    
7597
7598 2005-01-31  Martin Baulig  <martin@ximian.com>
7599
7600         * metadata.c (mono_metadata_has_generic_params): New public
7601         function; checks whether something is a generic method.
7602
7603 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
7604
7605         * appdomain.c: fix infinite recursion when adding assemblies.
7606
7607 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
7608
7609         * object.c: Fix small typo to return all items for Environment.
7610         GetCommandLineArgs.
7611
7612 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7613
7614         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
7615         reflection.c: more domain and assembly-unload related fixes
7616         and memory leaks plugs.
7617
7618 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
7619
7620         * 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.
7621
7622 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
7623
7624         * loader.c (mono_method_signature): Make this method lazy
7625         (mono_get_method_from_token): Don't computate the signature here.
7626
7627         Doing this saves quite a bit of memory. I got 90 kb on starting up
7628         monodoc. It should also save some disk reads on startup.
7629
7630         * *: MonoMethod->signature might be NULL now. You *MUST* use
7631         mono_method_signature.
7632
7633 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
7634
7635         * object.c (mono_runtime_get_main_args): Return an array from the
7636         current domain here. Fixes #71938.
7637
7638 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
7639
7640         * monitor.c: formatting changes to comply with the
7641         mono coding style and remove #ifdefs from the code.
7642
7643 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7644
7645         * metadata.c, private.h: remove some unneeded data
7646         and use a more compact representation for table schemas.
7647
7648 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
7649
7650         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
7651         to get a better distribution in hash tables.
7652         * *.c: use mono_aligned_addr_hash() where appropriate.
7653         * assembly.c: make var static.
7654
7655 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
7656
7657         * domain-internals.h: Put MonoJitInfo on a diet.
7658
7659         * domain.c: Fix a warning.
7660
7661 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7662
7663         * gc.c: rework the gc handles code to reuse handles
7664         when freed.
7665
7666 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7667
7668         * domain.c: fixed long standing bug in mono_string_equal() which
7669         was brought to light with the ldstr changes.
7670
7671 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
7672
7673         * reflection.c: Remove warning by adding missing include for marshal.h
7674
7675 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7676
7677         * domain.c, object.c: change the ldstr_table to hold
7678         MonoString* as keys: makes the runtime isinterned lookup
7679         faster and simplifies memory management.
7680
7681 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
7682  
7683         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
7684         possible to add imperative security checks before calling the icall.
7685         * reflection.c: Return security attributes on the original MonoMethod
7686         (and not the wrapped one). This fix permissions on icalls.
7687
7688 2005-01-25  Dick Porter  <dick@ximian.com>
7689
7690         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
7691         the check for mktime() support actually test the mktime() return
7692         value.  "Fixes" bug 71682, though the output is still different to
7693         MS.
7694
7695 2005-01-25  Martin Baulig  <martin@ximian.com>
7696
7697         * class.c (mono_class_is_assignable_from): Make this work for
7698         generic instances.
7699
7700 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
7701
7702         * marshal.c (mono_string_utf8_to_builder)
7703         (mono_string_builder_to_utf16): We might not have ownership of the
7704         string. In thise case, we need to create a new buffer.
7705
7706         * object-internals.h (mono_stringbuilder_capacity): sb->str might
7707         be null, in which case, use the default capacity.
7708
7709 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7710
7711         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
7712         GC events to the profiler.
7713
7714 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7715
7716         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
7717         if you don't want the GC to run.
7718
7719 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
7720
7721         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
7722         start providing a GC API and keeping different implementations in
7723         their own file.
7724         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
7725
7726 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
7727
7728         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
7729         mmap rather than allocating a huge buffer.
7730         (mono_debug_close_mono_symbol_file): Free the buffer allocated
7731         above.
7732
7733 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
7734
7735         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7736         and CheckExecutionRights.
7737         * reflection.c|h: Keep the index of the declarative security to be 
7738         used, instead of the pointer, when AOT compiler is used. Also add 
7739         class initialization when requesting demands.
7740         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7741         CheckExecutionRights. Both properties are now FALSE by default, and
7742         unmodifiable, unless the --security option is used.
7743
7744 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7745
7746         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7747         reflection.c: properly refcount images and assemblies, many leaks fixed.
7748
7749 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7750
7751         * threadpool.c: increase the timeout for threads in the thread pool to
7752         10s.  Fixes bug #67159.
7753
7754 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7755
7756         * class-internals.h: Sun's compiler insists on explicit
7757         signed on bit fields to handle then correctly.
7758
7759 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7760
7761         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7762         Make the size of the array fit only the number of invalid path
7763         chars that we have.
7764
7765         * class.c (_mono_class_get): Improve the error reporting when a
7766         class referenced is not found, to assist debugging. 
7767
7768 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7769
7770         * threads.c: fix off-by-one error.
7771         * domain.c: free data allocated in the domain.
7772
7773 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7774
7775         * reflection.c (mono_method_body_get_object): Fill out exception info
7776         as well.
7777
7778         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7779         structure.
7780         
7781 2005-01-19  Martin Baulig  <martin@ximian.com>
7782
7783         * loader.c (mono_get_method_constrained): Make this work again.
7784
7785 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7786
7787         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7788         guint16 to match the managed side.
7789
7790         * reflection.c (mono_reflection_body_get_object): Fill out local
7791         variables array.
7792
7793         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7794         as well.
7795
7796         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7797         'local_var_sig_token'.
7798
7799 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7800
7801         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7802         System.Drawing.
7803
7804         * reflection.c (mono_method_body_get_object): Handle abstract and
7805         runtime methods.
7806
7807 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7808
7809         * marshal.c, loader.c, class-internals.h, reflection.c:
7810         store the emthod data for a wrapper in an array instead of a list.
7811
7812 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7813
7814         * marshal.c: change the code to allocate memory more
7815         conservatively for method wrappers.
7816
7817 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7818
7819         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7820         fields from MonoClass to the marshal info structure where they belong.
7821
7822 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7823
7824         * class.c, object.c, class-internals.h, marshal.c: rearrange
7825         some fields and tweak some types to lower memory usage.
7826
7827 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7828
7829         * threads.c (signal_thread_state_change): Handle the case when the
7830         target thread is the current thread.
7831
7832         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7833
7834         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7835         emit_ptr_to_object_conv. 
7836
7837         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7838         marshalling. Fixes #71352.
7839
7840 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7841
7842         * metadata.h, blob.h: move table enum to blob.h so it can be included
7843         in any header.
7844         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7845         cut the size of MonoImage/MonoDynamicImage.
7846
7847 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7848
7849         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7850
7851 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7852
7853         * reflection.c, reflection.h, icall.c: add a function to check
7854         if an attribute type is defined for a metadata object.
7855
7856 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7857
7858         * object-internals.h: Added some needed fields from StringBuilder class.
7859         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7860
7861 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7862
7863         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7864         threads before shutting down the runtime.
7865
7866         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7867
7868 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7869
7870         * object-internal.h, threads.c: implement stacksize and 
7871         parameterized thread start functionality (requires
7872         matching corlib). Marked broken code for later removal.
7873
7874 2005-01-12  Martin Baulig  <martin@ximian.com>
7875
7876         * class-internals.h (MonoGenericClass): Moved the `initialized'
7877         flag to MonoDynamicGenericClass, removed `init_pending'.
7878         (MonoGenericInst): Added `is_reference' flag.
7879
7880 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7881
7882         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7883         inside the MSDOS header. Fixes #71201.
7884
7885         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7886         gc thread.
7887         (mono_domain_finalize): Ditto.
7888
7889 2005-01-12  Martin Baulig  <martin@ximian.com>
7890
7891         * class.c (mono_get_shared_generic_class): Use the cache for
7892         non-dynamic generic classes.
7893
7894         * class-internals.h (mono_class_create_generic_2): Removed
7895         function prototype, this function is now static inside class.c.
7896
7897         * class.c (mono_class_create_generic_2): Made this static, only
7898         call it from mono_class_init() and mono_class_setup_parent().
7899         (collect_implemented_interfaces_aux): Call mono_class_init() on
7900         the interfaces we collect.
7901         (mono_class_setup_vtable): Call mono_class_init (class->parent).
7902
7903 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7904
7905         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
7906         it a real thread handle.
7907
7908         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
7909         MonoJitExceptionInfo, since each catch clause needs its own variable.
7910         
7911 2005-01-11  Dick Porter  <dick@ximian.com>
7912
7913         * image.c (mono_pe_file_open): New variant on mono_image_open()
7914         that does not set up the CLI metadata; used for FileVersionInfo so
7915         it can get the data for windows binaries too.
7916         
7917         * process.c (process_read_string_block): Don't read off the end of
7918         the StringTable block.
7919
7920         These both fix bug 70766.
7921
7922 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
7923
7924         * gc.c: set some fields to NULL at GC cleanup time.
7925         * threads.c: if we quit the main thread, call exit ().
7926
7927 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7928
7929         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
7930
7931 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
7932
7933         * threads.h, threads.c, object.c: added accessor and settor for
7934         main_thread. Handle it specially when exiting from it: wait
7935         for other foreground threads to exit.
7936
7937 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
7938
7939         * process.c, verify.c: remove some bloat.
7940
7941 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
7942
7943         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
7944         the calling convention to cdecl under win32.
7945
7946 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
7947
7948         * object.c (mono_object_get_size): New function to get the size of
7949         an object instance.
7950
7951         * profiler.c (simple_allocation): Use above.
7952
7953 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
7954
7955         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
7956         ves_icall_System_AppDomain_getRootDomain (as it's not required to
7957         get an appdomain by it's id and we can't assume the root's id is 0).
7958         * domain-internals.h: Change the function prototype to match.
7959         * icall.c: Change the icall table for AppDomain.
7960
7961 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
7962
7963         * locales.c (string_invariant_compare_char): Only compute
7964         GUnicodeTypes in the case where we need them.  Test for ordinality
7965         first and return if so.
7966
7967         From the commit:
7968
7969                 /*
7970                  * FIXME: here we must use the information from c1type and c2type
7971                  * to find out the proper collation, even on the InvariantCulture, the
7972                  * sorting is not done by computing the unicode values, but their
7973                  * actual sort order.
7974                  */
7975
7976 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7977
7978         * loader.c: for P/Invoke methods, allow the "Internal" shared
7979         library name to refer to the calling process symbol namespace.
7980
7981 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
7982
7983         * Makefile.am: Add the security manager to the build.
7984         * security-manager.c|h: New. Initialization of the security manager.
7985
7986 2005-01-07  Dick Porter  <dick@ximian.com>
7987
7988         * threads.c: 
7989         * monitor.c: Update thread state during Monitor and WaitHandle
7990         waits.  Fixes bug 71031.
7991
7992 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
7993
7994         * reflection.c (property_encode_signature): Correctly handle when the
7995         property has no methods.
7996
7997 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
7998
7999         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
8000         
8001         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
8002         fields from mb, not rmb. Fixes #71017.
8003
8004         * marshal.c (emit_ptr_to_str_conv): Add support for 
8005         ByValTStr -> string conversion. Fixes #71015.
8006
8007         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
8008
8009         * mempool.c (mono_mempool_contains_addr): New helper function.
8010
8011 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8012
8013         * metadata.c (mono_metadata_compute_size): Fix size calculation of
8014         HasSematics encoded fields.
8015         
8016         * metadata.c (mono_type_to_unmanaged): Improve error message for 
8017         invalid string marshalling.
8018
8019         * metadata.c: Fix warnings.
8020         
8021 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8022
8023         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
8024         profiler support.
8025
8026 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8027
8028         * domain.c object.c domain-internals.h: Revert part of r38077 since the
8029         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
8030         tests.
8031
8032 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
8033
8034         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
8035         so methods containing these can be AOTed.
8036
8037 2005-01-03  Martin Baulig  <martin@ximian.com>
8038
8039         * loader.c (find_method): Removed the hack for generic instances.
8040         (method_from_memberref): If our parent is a generic instance, pass
8041         its generic type definition to find_method() and then inflate the
8042         method.
8043         (mono_get_method_constrained): Pass the generic type definition to
8044         find_method() and inflate the method later.
8045
8046         * class-internals.h (MonoStats): Added `generic_class_count'.
8047
8048         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
8049         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
8050
8051         * reflection.c (mono_custom_attrs_from_params): Don't ignore
8052         generic type definitions.
8053
8054 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
8055
8056         * loader.c icall.c: Fix warnings.
8057
8058 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
8059
8060         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
8061         blittable types. Fixes #70864.
8062
8063 2004-12-29  Martin Baulig  <martin@ximian.com>
8064
8065         * icall.c
8066         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
8067
8068         * reflection.c (mono_method_get_object): Create a
8069         "System.Reflection.MonoGenericMethod" for inflated methods; don't
8070         call mono_get_inflated_method().
8071
8072         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
8073
8074 2004-12-27  Martin Baulig  <martin@ximian.com>
8075
8076         * class-internals.h (MonoMethod): Added `is_inflated' flag.
8077         (MonoMethodInflated): Added `inflated' field.
8078
8079         * class.c (mono_class_inflate_generic_method): Don't really
8080         inflate the method here; just set the `is_inflated' flag in the
8081         MonoMethod.
8082         (mono_class_get_inflated_method): Actually inflate the method here
8083         if it's not already inflated; we use the MonoMethodInflated's new
8084         `inflated' field as a cache.
8085
8086 2004-12-26  Martin Baulig  <martin@ximian.com>
8087
8088         * class.c
8089         (inflate_generic_class): Moved some code out of inflate_generic_type().
8090         (mono_class_inflate_generic_method): If we're already inflated,
8091         inflate the context and use the declaring method; ie. make sure
8092         the declaring method of an inflated method is always the generic
8093         method definition.
8094         (mono_class_create_from_typedef): Create
8095         `class->generic_container->context->gclass'.
8096
8097 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
8098
8099         * metadata-internals.h, marshal.c, reflection.c: More
8100         MonoGHashTable->GHashTable.
8101
8102         * domain-internals.h, class.c: Change MonoGHashTable's into
8103         GHashTables for some cases where no gc stuff is used
8104
8105         All users: update apis
8106
8107 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
8108
8109         * metadata.c (builtin_types): Make this `const'. Makes this get
8110         put into the shareable section.
8111         (mono_metadata_init): Casts to make gcc happy.
8112
8113 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
8114
8115         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
8116
8117 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
8118
8119         * icall.c: Added an internal call to retrieve the position and length
8120         of assembly-level declarative security attributes (RequestMinimum, 
8121         RequestOptional and RequestRefuse). This is used by the Assembly class
8122         to re-create the corresponding permission sets.
8123
8124 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
8125
8126         * marshal.c: fix the stelemref wrapper to be type correct
8127         (and faster).
8128
8129 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
8130
8131         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
8132         to do key & 0x7fffffff. Hashtable already does this. It just
8133         results in longer code.
8134
8135 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
8136
8137         * appdomain.c: Bump corlib version.
8138         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
8139         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
8140         * reflection.c|h: Add functions to get declarative security infos
8141         (blob position and length) for assemblies, classes and methods.
8142
8143 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
8144
8145         * reflection.c: sort the constant table (bug #70693).
8146
8147 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
8148
8149         * object-internals.h, threads.c, domain.c: add accessors for
8150         the MonoThread and MonoDomain tls keys.
8151
8152 2004-12-18  Martin Baulig  <martin@ximian.com>
8153
8154         * class.c (inflate_generic_type): If we're inflating a generic
8155         instance, set `ngclass->context->container = context->container';
8156         ie. the container we inflated into.
8157
8158         * metadata.c (mono_metadata_parse_generic_param): Reflect above
8159         inflate_generic_type() changes.
8160
8161 2004-12-17  Martin Baulig  <martin@ximian.com>
8162
8163         * class-internals.h
8164         (MonoGenericClass): Replaced `MonoType *generic_type' with
8165         `MonoClass *generic_class'.  Removed `dynamic_info'; if
8166         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
8167         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
8168
8169 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
8170
8171         * exception.c (mono_exception_from_token): New helper function.
8172
8173 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
8174
8175         * assembly.c (mono_assembly_load_with_partial_name): Call 
8176         mono_assembly_loaded before invoking the preload hooks. Fixes
8177         #70564.
8178
8179         * object-internals.h (MonoThread): Change culture_info and 
8180         ui_culture_info into an array.
8181
8182         * threads.c: Cache culture info objects from more than one appdomain.
8183
8184         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
8185         current UI culture.
8186
8187 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
8188
8189         * threads.h threads.c appdomain.c: Clear the culture_info field of
8190         all threads during unloading if they point to an object in the dying
8191         appdomain.
8192
8193 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
8194
8195         * culture-info.h (TextInfoEntry): New struct
8196         * object-internals.h: sync with managed
8197         * locales.c: fill the `text_info_data' field
8198         * culture-info-tables.h: update
8199
8200 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
8201
8202         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
8203         collector.
8204
8205 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
8206
8207         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
8208         (ves_icall_ModuleBuilder_getMethodToken): Ditto
8209
8210 2004-12-12  Martin Baulig  <martin@ximian.com>
8211
8212         * mono-debug-debugger.c (write_type): If we're an enum and the
8213         builtin types have already been initialized, call mono_class_init().
8214
8215 2004-12-11  Martin Baulig  <martin@ximian.com>
8216
8217         * metadata.c (mono_metadata_load_generic_params): Added
8218         `MonoGenericContainer *parent_container' argument; automatically
8219         compute `container->is_method'; pass the correct owner to
8220         get_constraints().      
8221
8222         * reflection.c (compare_genericparam): Sort the GenericParam table
8223         according to increasing owners. 
8224
8225 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
8226
8227         * profiler.c: allow disabling the default profiler.
8228
8229 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
8230
8231         * decimal.c, icall.c: allow disabling System.Decimal support.
8232
8233 2004-12-09  Marek Safar <marek.safar@seznam.cz>
8234
8235         * reflection.c: Add support for null attribute arguments.
8236
8237 2004-12-09  Martin Baulig  <martin@ximian.com>
8238
8239         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
8240         names to get rid of compiler warnings.
8241
8242 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
8243
8244         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
8245         mono_marshal_load_type_info (). Fixes #69625.
8246         (mono_marshal_get_ptr_to_struct): Likewise.
8247
8248 2004-12-08  Martin Baulig  <martin@ximian.com>
8249
8250         * mono-debug.h: Bumped version number to 47.
8251
8252         * mono-debug-debugger.c
8253         (mono_debugger_event_handler, mono_debugger_event): Take two
8254         guint64 arguments insteed of a gpointer and a guint32.  
8255
8256 2004-12-08  Martin Baulig  <martin@ximian.com>
8257
8258         * debug-mono-symfile.h
8259         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
8260         `address' to `native_offset'.
8261
8262 2004-12-08  Martin Baulig  <martin@ximian.com>
8263
8264         * class.c (mono_class_create_from_typespec): Only inflate if we
8265         either have `context->gclass' or `context->gmethod'.
8266
8267 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
8268
8269         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
8270
8271         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
8272
8273         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
8274
8275         * reflection.c (mono_assembly_get_object): Remove the workaround put
8276         in for the release.
8277         
8278         * appdomain.c: Use the corlib_internal field from MonoAssembly.
8279
8280         * appdomain.c: Bump corlib version.
8281
8282         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
8283         be visible in other appdomains.
8284
8285 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
8286
8287         * threads.c: Interlocked inc and dec for longs were messed up,
8288         use a KISS based impl for this. Fixes 70234
8289
8290 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
8291
8292         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
8293
8294 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
8295
8296         * icall.c: fix to follow policy not to allow struct
8297         arguments in icalls.
8298
8299 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8300
8301         * process.c: make the patch that handles spaces in file paths work
8302         on mono/windows too.
8303
8304 2004-12-06  Martin Baulig  <martin@ximian.com>
8305
8306         * class.c (mono_class_create_generic): Call
8307         mono_class_setup_supertypes() if we're dynamic.
8308         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
8309
8310 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
8311
8312         * object-internals.h: Add new fields to MonoThread.
8313
8314         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8315
8316         * icall.c threads-types.h threads.c: Add new icalls.
8317
8318         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
8319
8320         * object-internals.h (MonoReflectionAssembly): Sync object layout with
8321         managed side.
8322
8323         * appdomain.c: Bump corlib version.
8324
8325         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
8326         internal assemblies. Fixes #69181.
8327
8328 2004-12-05  Martin Baulig  <martin@ximian.com>
8329
8330         * class.c (mono_class_inflate_generic_signature): Make this a
8331         no-op if `context' is NULL or we don't have any type parameters;
8332         also copy `sentinelpos'.        
8333
8334 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
8335
8336         * image.c: Add unbox_wrapper_cache.
8337
8338         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
8339
8340         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
8341         function generator.
8342         
8343         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
8344         Fixes #70173.
8345
8346         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
8347         
8348 2004-12-04  Martin Baulig  <martin@ximian.com>
8349
8350         * loader.c (mono_method_get_signature_full): New public function;
8351         like mono_method_get_signature(), but with an additional
8352         `MonoGenericContext *' argument.
8353
8354         * class.c (mono_class_inflate_generic_signature): Formerly known
8355         as inflate_generic_signature(); make this public.
8356
8357 2004-12-04  Martin Baulig  <martin@ximian.com>
8358
8359         * metadata.c
8360         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
8361         instead of a `MonoGenericContainer *'.  
8362         (mono_metadata_parse_array_full): Likewise.
8363         (mono_metadata_parse_signature_full): Likewise.
8364         (mono_metadata_parse_method_signature_full): Likewise.
8365         (mono_metadata_parse_generic_inst): Likewise.
8366         (mono_metadata_parse_generic_param): Likewise.
8367         (mono_metadata_parse_mh_full): Likewise.
8368         (mono_type_create_from_typespec_full): Likewise.
8369
8370 2004-12-03  Martin Baulig  <martin@ximian.com>
8371
8372         * class-internals.h (MonoGenericContainer): Replaced the
8373         `MonoGenericContext * pointer with a `MonoGenericContext'
8374         structure and made it the first element.
8375
8376 2004-12-03  Martin Baulig  <martin@ximian.com>
8377
8378         * class.c
8379         (inflate_generic_type): Set the `context->container' when creating
8380         a new MonoGenericContext.
8381         (mono_class_inflate_generic_method): Likewise.
8382         (mono_class_create_from_typespec): Just use `context->container'
8383         to get the container.
8384
8385         * loader.c (method_from_methodspec): Set `context->parent' from
8386         `context->container' - and if that's a method container, use its
8387         parent.  Also set the `context->container' when creating a new
8388         MonoGenericContext.
8389         (mono_get_method_from_token): Use just `context->container' to get
8390         the container.
8391
8392         * metadata.c (do_mono_metadata_parse_generic_class): Also set
8393         `gclass->context->container'.
8394
8395         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
8396         the `context->container' when creating a new MonoGenericContext.
8397
8398 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
8399
8400         * reflection.c (compare_genericparam): Sort params with identical
8401         owner by their number. Fixes gen-111 on sparc.
8402
8403 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8404
8405         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
8406         around the domain changes.
8407
8408         * appdomain.c (mono_domain_unload): Handle the case when the thread
8409         calling Unload is itself being aborted during unloading. Fixes #70022.
8410
8411         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
8412
8413         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
8414         checkpoint_func as an icall so it gets a wrapper.
8415         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
8416         in the cross-appdomain wrappers too.
8417
8418         * threads.c (mono_thread_has_appdomain_ref): Make this public.
8419
8420         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
8421
8422         * reflection.c: Fix some memory leaks.
8423         
8424 2004-12-02  Martin Baulig  <martin@ximian.com>
8425
8426         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
8427
8428         * metadata.c (generic_class_cache): New static hashtable.
8429         (mono_metadata_lookup_generic_class): New public method.
8430
8431 2004-12-02  Martin Baulig  <martin@ximian.com>
8432
8433         * class.c (mono_class_create_from_typedef): Call
8434         mono_class_setup_parent() and mono_class_create_mono_type() before
8435         parsing the interfaces.
8436
8437 2004-12-02  Martin Baulig  <martin@ximian.com>
8438
8439         * metadata.c (generic_inst_cache): New static hashtable.
8440         (mono_metadata_lookup_generic_inst): New public function.
8441         (mono_metadata_inflate_generic_inst): New public function.
8442         (mono_metadata_parse_generic_inst): New public function.
8443         (do_mono_metadata_parse_generic_class): Use the new
8444         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
8445         since this'll also use the cache.
8446
8447         * reflection.c (mono_reflection_bind_generic_method_parameters):
8448         Use mono_metadata_lookup_generic_inst() to use the new cache.
8449
8450         * class.c (inflate_mono_type): Use
8451         mono_metadata_inflate_generic_inst() to inflate a generic
8452         instance; this'll also use the new cache.
8453
8454         * loader.c (method_from_methodspec): Use
8455         mono_metadata_parse_generic_inst() and
8456         mono_metadata_inflate_generic_inst() rather than parsing it
8457         manually, so we can use the new cache.
8458
8459 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8460
8461         * threads.c (wait_for_tids): Do not incorrectly free threads when 
8462         the wait times out.
8463
8464 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
8465
8466         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
8467         iter->args based on whether parameters are passed in registers (i.e.
8468         MONO_ARCH_REGPARMS is defined)
8469
8470 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
8471
8472         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
8473         the exception message. Fixes #70070.
8474         (method_from_methodspec): Fix warnings.
8475
8476 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8477
8478         * process.c: (complete_path) return the path quoted
8479
8480 2004-12-01  Martin Baulig  <martin@ximian.com>
8481
8482         * class-internals.h (MonoGenericInst): New structure.
8483         (MonoGenericClass): Replaced `type_argc', `type_argv' and
8484         `is_open' with `MonoGenericInst *inst'.
8485         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
8486         `is_open' with `MonoGenericInst *inst'.
8487
8488 2004-11-30  Martin Baulig  <martin@ximian.com>
8489
8490         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
8491
8492         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
8493         to `generic_class_cache'.
8494
8495         * metadata.c
8496         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
8497         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
8498         (mono_generic_inst_is_valuetype): Renamed to
8499         mono_generic_class_is_valuetype().
8500
8501         * class-internals.h
8502         (MonoGenericInst): Renamed to MonoGenericClass.
8503         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
8504         (MonoClass): Renamed `generic_inst' to `generic_class'.
8505         (MonoGenericContext): Renamed `ginst' to `gclass'.
8506
8507         * object-internals.h
8508         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
8509
8510         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
8511         mono_reflection_generic_class_initialize().
8512
8513         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
8514         now known as "System.Reflection.MonoGenericClass".
8515         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
8516
8517 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
8518
8519         * class-internals.h: Added a flag field to MonoClass to cache the
8520         declarative security attributes actions associated with the class.
8521         * domain-internals.h: Added booleans to MonoJitInfo to cache the
8522         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
8523         applicable to the JITted method.
8524         * reflection.c|h: Added functions to extract (as flags) which security
8525         actions are available (declaratively) for a method, class or assembly.
8526         * metadata.c|h: Added functions to search the declarative security
8527         table in the metadata.
8528         
8529 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
8530
8531         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
8532         EXPORTEDTYPES are already in the class name cache, so there is no
8533         need to add extra code here to look at them. Just removes a bit of
8534         cruft.
8535
8536         (ves_icall_System_Environment_get_TickCount): No need for #if
8537         WINDOWS. We already have the code in io-layer.
8538
8539 2004-11-28  Martin Baulig  <martin@ximian.com>
8540
8541         * loader.c
8542         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
8543         Fixes gen-112.cs.
8544
8545 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
8546
8547         * assembly.c (do_mono_assembly_open): Instead of having a
8548         conditional WITH_BUNDLE, incorporate support for bundles here, by
8549         having a global `bundles' variable holding a pointer to the actual
8550         bundles. 
8551
8552         (mono_register_bundled_assemblies): New API call used by the
8553         bundle code. 
8554
8555         See mkbundle.1 for details.
8556         
8557 2004-11-27  Martin Baulig  <martin@ximian.com>
8558
8559         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
8560         the vtable for generic methods.
8561
8562 2004-11-26  Martin Baulig  <martin@ximian.com>
8563
8564         * metadata.c
8565         (mono_metadata_generic_method_hash): New public function.
8566         (mono_metadata_generic_method_equal): Likewise.
8567
8568         * class-internals.h
8569         (MonoGenericContainer): Added `GHashTable *method_hash'.
8570
8571         * reflection.c (ReflectionMethodBuilder): Added
8572         `MonoGenericContainer *generic_container'.
8573         (reflection_methodbuilder_to_mono_method): Don't create a new
8574         MonoGenericContainer each time we're called.
8575         (mono_reflection_bind_generic_method_parameters): Use
8576         `container->method_hash' to cache the results so we don't create a
8577         different method if we're called several times with the same
8578         arguments.
8579
8580         * loader.c (method_from_methodspec): Use the new
8581         `container->method_hash' here, too.
8582
8583 2004-11-26  Martin Baulig  <martin@ximian.com>
8584
8585         * class.c (inflate_generic_signature): Correctly compute
8586         `res->has_type_parameters'.
8587         (mono_class_vtable): Use the `has_type_parameters' flag to
8588         determine whether we're a generic method.
8589
8590         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
8591
8592 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
8593
8594         * object.c (mono_runtime_run_main): Fix a small memory leak.
8595
8596 2004-11-25  Martin Baulig  <martin@ximian.com>
8597
8598         * class.c (set_generic_param_owner): Fixed the loop.
8599
8600 2004-11-25  Martin Baulig  <martin@ximian.com>
8601
8602         * object.c (mono_class_vtable): Don't create any JIT wrappers for
8603         generic methods.
8604
8605 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
8606
8607         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
8608         names. Fixes #69787.
8609
8610 2004-11-24  Martin Baulig  <martin@ximian.com>
8611
8612         * class.c (mono_class_create_generic_2): If we don't have a
8613         `ginst->parent', inflate `gklass->parent' to get our parent.
8614
8615 2004-11-24  Martin Baulig  <martin@ximian.com>
8616
8617         * reflection.c (compare_genericparam): Correctly sort the
8618         GenericParam table; fixes #69779.
8619
8620 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
8621
8622         * reflection.c: When writing a PE file, don't create a huge
8623         buffer in memory. Just write the arrays we have to the file.
8624         This reduces memory usage.
8625
8626         * metadata-internals.h: MonoDynamicStream pefile is no longer used
8627         globally.
8628
8629 2004-11-17  Martin Baulig  <martin@ximian.com>
8630
8631         * class.c (mono_class_init): Don't setup `class->parent' for
8632         dynamic instances; moved this to mono_class_generic_2().
8633         (mono_class_create_generic): Also set `klass->inited' for dynamic
8634         generic instances.
8635         (mono_class_create_generic_2): Don't do anything for dynamic
8636         generic instances.  Set `klass->parent' here and also call
8637         mono_class_setup_parent() here. 
8638
8639         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
8640         `MonoType *parent' argument; set `ginst->parent' before calling
8641         mono_class_create_generic_2(), so we set the correct parent.
8642
8643 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
8644
8645         * reflection.c: allow getting attributes from ModuleBuilder
8646         (used by ikvm).
8647
8648 2004-11-17  Martin Baulig  <martin@ximian.com>
8649
8650         * class.c (mono_class_create_from_typedef): If a type parameter is
8651         inherited from an outer class, set its owner to that class.
8652
8653 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
8654
8655         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
8656           for (int*) written size. This fixes bug #69592.
8657
8658 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
8659
8660         * icall.c: Added IsAuthenticodePresnet internal call.
8661         * image.c|h: New function that check a MonoImage for an Authenticode
8662         signature in the certificate PE data directory.
8663         * security.c|h: New internal call to ask the runtime if an 
8664         Authenticode signature seems referenced in the PE header.
8665
8666 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
8667
8668         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
8669
8670         * reflection.c (mono_image_create_pefile): Free the assembly streams
8671         after writing out the assembly file.
8672
8673         * object.c (mono_runtime_run_main): Fix small memory leak.
8674
8675         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
8676         property access modifiers. Fixes #69389.
8677
8678 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
8679
8680         * domain.c, object.c, object-internals.h, domain-internals.h,
8681         object.h, marshal.c: keep dynamic code info per domain.
8682
8683 2004-11-15  Martin Baulig  <martin@ximian.com>
8684
8685         * class.c (mono_type_get_name_recurse): Put type arguments in
8686         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
8687         see bug #68387.
8688
8689 2004-11-15  Martin Baulig  <martin@ximian.com>
8690
8691         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
8692         (mono_class_setup_vtable): When computing `the_cname' for a
8693         generic instance, don't include the namespace since we'd otherwise
8694         add it twice.
8695
8696 2004-11-15  Martin Baulig  <martin@ximian.com>
8697
8698         * class.c (mono_class_create_generic): Changed return type to void.
8699         (mono_class_create_generic_2): New public function; setup
8700         `class->method', `class->field' and `class->interfaces' here
8701         instead of in mono_class_init().
8702
8703         * class.h (mono_class_create_generic): Moved to class-internals.h.
8704
8705 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
8706
8707         * reflection.c (mono_image_create_pefile): take a file HANDLE.
8708         rather than writing to memory, write to this file. Right now,
8709         we are just writting into a buffer, and copying that. However
8710         we can avoid the buffer later.
8711
8712         (mono_dynamic_stream_reset): new function
8713
8714         * icall.c, object-internals.h: update for the above.
8715
8716 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
8717
8718         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
8719         have been using gc'd memory. First it is slower, unlikely
8720         the comment in the source code said, secondly, it increases
8721         our footprint to do it in the gc.
8722
8723         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
8724         the method so that it does not have to copy to managed code.
8725
8726 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
8727
8728         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
8729
8730 2004-11-12  Martin Baulig  <martin@localhost>
8731
8732         * reflection.c (mono_image_create_token): Allow generic method
8733         definitions here, since they may appear in an `.override'; see
8734         gen-98/gen-99 for an example.
8735
8736 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
8737
8738         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8739         #69365.
8740
8741         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8742         descriptive.
8743
8744 2004-11-11  Martin Baulig  <martin@ximian.com>
8745
8746         * class.c (mono_class_setup_vtable): In an explicit interface
8747         implementation, the method name now includes the arity.
8748
8749 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8750
8751         * object.c (mono_array_full_copy): Fix warning.
8752
8753 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8754
8755         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8756         mono_class_get_method_from_name() instead.
8757         
8758         * class-internals.h: Added two new types of wrappers. 
8759         Added MonoRemotingTarget enum. Added new trampoline function type, which
8760         takes an additional MonoRemotingTarget value as parameter, so it is
8761         possible to request a trampoline for a specific target.
8762         
8763         * class.c: Added new mono_class_get_method_from_name() method.
8764         
8765         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8766         general remoting sinks and one specific for cross domain calls.
8767         
8768         * debug-helpers.c: Added new wrapper names.
8769         
8770         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8771         of a remote class.
8772         
8773         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8774         
8775         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8776         with several other methods (mono_marshal_get_xappdomain_dispatch,
8777         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8778         and others) can generate a fast remoting wrapper for cross domain calls.
8779         More information can be found in docs/remoting.
8780         Other changes: Removed mono_find_method_by_name, and used
8781         mono_class_get_method_from_name instead.
8782         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8783         is stored in the remoting invoke hashtable.
8784         
8785         * marshal.h: published the new method for getting the xdomain wrapper,
8786         and also added a method for getting the adequate wrapper for a given
8787         method and target.
8788         
8789         * object-internals.h, object.c: Added a couple of methods for capying and
8790         cloning arrays.
8791         Modified mono_install_remoting_trampoline, which takes the new remoting
8792         trampoline that has a remoting target as parameter.
8793         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8794         will return the most suitable vtable for the target.
8795         Added mono_remote_class_vtable, which returns the vtable of a remote class
8796         (which can be the normal remoting vtable or the xdomain vtable).
8797         
8798         * threads.c: the xdomain invoke and dispatch wrappers must also be
8799         protected against interruptions.
8800
8801 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8802
8803         * icall.c: use memmove in BlockCopyInternal when the source and
8804         destination arrays are the same.
8805
8806 2004-11-09  Martin Baulig  <martin@ximian.com>
8807
8808         * class-internals.h (MonoGenericContainer): Removed `method' and
8809         `signature', replaced them with `is_method' and `is_signature'
8810         flags.  Added `context'.
8811
8812         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8813         instead of a `MonoGenericContainer *'.
8814
8815         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8816         for dynamic type parameters.
8817         (mono_metadata_load_generic_params): Setup `container->context'.
8818
8819         * reflection.c (mono_reflection_setup_generic_class): Setup
8820         `tb->generic_container->context'.
8821         (do_mono_reflection_bind_generic_parameters): Use
8822         mono_class_inflate_generic_type() to correctly inflate types,
8823         rather than using our own hack just for MONO_TYPE_VAR.
8824
8825 2004-11-09  Martin Baulig  <martin@ximian.com>
8826
8827         * class.c (mono_class_inflate_generic_method): Small fix; don't
8828         crash here.
8829
8830         * icall.c
8831         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8832         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8833         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8834         (ves_icall_Type_BindGenericParameters): Likewise.
8835         (ves_icall_Type_get_IsGenericInstance): Likewise.
8836         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8837         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8838         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8839         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8840
8841 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8842
8843         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8844         assembly versions and public key tokens. Fixes #69113.
8845
8846 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8847
8848         * metadata.c: fix bug introduced with the type cache changes
8849         on 2004-11-06.
8850
8851 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8852
8853         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8854         the MonoClass pointer instead of the token in exception clauses.
8855         * reflection.c: updates for the above and make the code not depend
8856         on the structure of MonoExceptionClause.
8857
8858 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8859
8860         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8861         Add support for dynamic assemblies. Fixes #69114.
8862
8863         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8864
8865 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8866
8867         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8868         since most only those methods use it. the code member of
8869         MonoMethodPInvoke was dead, so that can be removed too. Also,
8870         remove inline_count (again, not used), and move slot so that it
8871         can share bits with some other flags. This saves 8 bytes in the
8872         structure and gives us about 50 kb back for mcs helloworld.cs
8873
8874         * *.[ch]: Do naming changes for the above.
8875
8876         * loader.c (mono_method_get_header): Lazily init the header
8877         on first access.
8878         (mono_get_method_from_token): don't init the header here
8879         (mono_free_method): the header may never be allocated
8880
8881         Overall, this saves 150 kb of unmanaged allocations
8882         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8883         memory at runtime.
8884         
8885         * loader.c, loader.h (mono_method_get_header): new accessor.
8886
8887         * *.[ch]: use the above method. Prepares us to lazily load
8888         the header.
8889
8890         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8891         three warnings, which are actual bugs (see 69206).
8892
8893         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8894         unused. Saves a cool 4 bytes / method.
8895
8896 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
8897
8898         * metadata.c (builtin_types): Add types for System.Object here.
8899         (mono_metadata_parse_type_full): Cache MonoType*'s that are
8900         for a class or valuetype from klass->this_arg or klass->byval_arg.
8901
8902         On mcs for a hello world, this gets us down from 21836 MonoType's
8903         to 14560.
8904
8905         (mono_metadata_free_type): Account for the above change.
8906
8907 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
8908
8909         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
8910         exception instead of asserting if name is null.
8911         (ves_icall_System_AppDomain_GetData): Ditto.
8912
8913 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
8914
8915         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
8916         EnumBuilder.
8917
8918         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
8919         Return NULL when the domain does not have entry_assembly set.
8920
8921         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
8922         Add a 'resource_modules' argument.
8923         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
8924
8925         * reflection.c (mono_reflection_create_runtime_class): Move setting
8926         of wastypebuilder here, so mono_get_type_object () returns a MonoType
8927         for enums too.
8928
8929         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
8930         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
8931         Throw an ArgumentNullException if 'ptr' is null.
8932
8933         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
8934         assemblies here. Fixes #69020.
8935
8936 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
8937
8938         * reflection.c (build_compressed_metadata): Fix the previous patch for
8939         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
8940         the stack.
8941
8942 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
8943
8944         * assembly.c (mono_assembly_names_equal): Allow a match if one of
8945         the cultures is false. Fixes #69090.
8946
8947         * reflection.c (build_compressed_metadata): Fix invalid memory read 
8948         detected by valgrind.
8949         
8950         * reflection.c (mono_reflection_get_type): Avoid triggering a 
8951         TypeResolve multiple times for the same type. Fixes #65577.
8952
8953 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
8954
8955         * marshal.c: Avoid using ldftn to call managed functions. It is
8956         much slower than just a call.
8957
8958         * reflection.c (mono_module_get_object): free the basename we
8959         allocate here from glib.
8960         
8961         * reflection.c (ensure_runtime_vtable): make sure to free
8962         overrides.  Also, we were allocating an array of MonoMethod not an
8963         array of MonoMethod*.
8964
8965         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
8966
8967         * image.c (mono_image_close): free image->guid here.
8968
8969 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
8970
8971         * reflection.c: Fix some spec conformance issues with the PE file
8972         structures so mcs compiled apps run on the Net 2.0 beta.
8973
8974 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
8975
8976         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
8977         Implement this. Fixes #67264.
8978
8979         * debug-helpers.h debug-helpers.c marshal.c: Move 
8980         mono_find_method_by_name to debug-helpers.c.
8981
8982 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
8983
8984         * object.c (mono_release_type_locks): type_initialization_hash is
8985         a GHashTable.
8986
8987         * reflection.c object.c object-internals.h: Fix warnings.
8988
8989         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
8990         without accessors. Fixes #61561.
8991
8992         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
8993         application base from the root domain if not set. Fixes #65641.
8994         (mono_runtime_init): Fix warning.
8995
8996 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8997
8998         * appdomain.c: call mono_thread_pool_init.
8999         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
9000         of worker threads based on the number of CPUs and the environment
9001         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
9002         for non-windows (windows) systems.
9003
9004 2004-10-27  Chris Toshok  <toshok@ximian.com>
9005
9006         * mono-debug-debugger.c (write_class): don't call mono_class_init
9007         here, as even with the check for (!klass->init_pending), we get
9008         into a situation where we're hitting cycles in class
9009         initialization.  Fixes #68816.
9010
9011 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
9012
9013         * image.c: Avoid overwriting values in the loaded_images_hash when an
9014         assembly is loaded multiple times. Fixes #61152.
9015
9016         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
9017         so multiple satellite assemblies for the same name can be loaded.
9018         Fixes #68259.
9019
9020         * mono_domain_assembly_preload: Actually return the loaded assembly, 
9021         not NULL.
9022
9023         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
9024         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
9025
9026         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
9027         pending finalizers are not invoked after the appdomain has been 
9028         unloaded. Fixes #67862.
9029
9030 2004-10-22  Martin Baulig  <martin@ximian.com>
9031
9032         * mono-debug-debugger.c
9033         (mono_debugger_runtime_invoke): Don't box valuetypes.
9034
9035 2004-10-22  Chris Toshok  <toshok@ximian.com>
9036
9037         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
9038         don't hide private methods.
9039
9040 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
9041
9042         * icall.c: Allows the runtime to "share" (when known) the public key
9043         token of an assembly. This avoid the need to recalculate the token 
9044         (from the public key) in managed code.
9045
9046 2004-10-21  Chris Toshok  <toshok@ximian.com>
9047
9048         * debug-helpers.c (append_class_name): argh, revert last patch.
9049         
9050 2004-10-21  Chris Toshok  <toshok@ximian.com>
9051
9052         * debug-helpers.c (append_class_name): use '+' as the delimiter,
9053         not '/', so that it matches what the debugger uses to look up
9054         methods.
9055
9056 2004-10-21  Martin Baulig  <martin@ximian.com>
9057
9058         * mono-debug-debugger.c (mono_debugger_throw_exception): New
9059         public method; this is called each time an exception is thrown and
9060         allows the debugger to use exception catch points.
9061
9062 2004-10-21  Martin Baulig  <martin@ximian.com>
9063
9064         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
9065         the stack pointer and the exception object in some struct and pass
9066         that to the debugger.
9067
9068 2004-10-21  Chris Toshok  <toshok@ximian.com>
9069
9070         * mono-debug-debugger.c (do_write_class): add instance/static
9071         event support.  We don't expose "raise" or "other" yet.
9072         (event_is_static): new method.
9073
9074 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
9075
9076         * mono-debug-debugger.c
9077         (mono_debugger_handle_exception): Remove
9078         bogus return value for fussy compilers.
9079
9080 2004-10-20  Martin Baulig  <martin@ximian.com>
9081
9082         * mono-debug-debugger.c
9083         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
9084         (mono_debugger_handled_exception): Likewise.
9085
9086 2004-10-20  Martin Baulig  <martin@ximian.com>
9087
9088         * mono-debug-debugger.h (MonoDebuggerEvent): Added
9089         MONO_DEBUGGER_EVENT_EXCEPTION.
9090
9091         * mono-debug-debugger.c (mono_debugger_handle_exception): New
9092         public function to send the debugger a notification for an
9093         exception and inform it about a catch/finally clause.
9094
9095 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
9096
9097         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
9098         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
9099         fix 2.95 build. 
9100
9101         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
9102
9103 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
9104
9105         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
9106         marshalled as [In,Out]. Fixes #58325.
9107
9108 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
9109
9110         * reflection.c (mono_method_body_get_object): Implement some fields.
9111
9112 2004-10-12  Martin Baulig  <martin@ximian.com>
9113
9114         * reflection.c (mono_reflection_bind_generic_parameters): Small
9115         fix, correctly retrieve our parent from a generic instance.
9116
9117 2004-10-12  Martin Baulig  <martin@ximian.com>
9118
9119         * metadata.c (mono_metadata_generic_param_equal): We always have
9120         an owner.
9121
9122         * class.c
9123         (mono_class_from_generic_parameter): We need to have an owner.
9124         (my_mono_class_from_generic_parameter): Likewise.
9125
9126         * reflection.c (mono_reflection_setup_generic_class): Renamed to
9127         mono_reflection_create_generic_class() and added a new
9128         mono_reflection_setup_generic_class().  
9129         (mono_reflection_initialize_generic_param): If we're a nested
9130         generic type and inherited from the containing class, set our
9131         owner to the outer class.
9132
9133 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
9134
9135         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
9136
9137         * reflection.c (mono_method_body_get_object): New function to create
9138         a MethodBody object.
9139
9140         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
9141
9142 2004-10-11  Martin Baulig  <martin@ximian.com>
9143
9144         * metadata.c (_mono_metadata_type_equal): Renamed to
9145         do_mono_metadata_type_equal() and made static.
9146
9147 2004-10-11  Martin Baulig  <martin@ximian.com>
9148
9149         * appdomain.c: Bump corlib version number to 28.
9150
9151 2004-10-10  Martin Baulig  <martin@ximian.com>
9152
9153         * class-internals.h
9154         (MonoGenericInst): Added `MonoGenericContainer *container'.
9155         (MonoGenericMethod): Likewise.
9156         (MonoGenericContext): Likewise.
9157         (MonoGenericParam): Added `MonoGenericContainer *owner'.
9158
9159         * metadata.c
9160         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
9161         (do_mono_metadata_parse_generic_inst): Likewise.
9162         (mono_metadata_parse_type_full): New public method.  This is the actual
9163         mono_metadata_parse_type() implementation - with an additional
9164         `MonoGenericContainer *' argument.
9165         (mono_metadata_parse_array_full): Likewise.
9166         (mono_metadata_parse_signature_full): Likewise.
9167         (mono_metadata_parse_method_signature_full): Likewise.
9168         (mono_metadata_parse_mh_full): Likewise.
9169         (mono_type_create_from_typespec): Likewise.
9170         (mono_metadata_interfaces_from_typedef_full): New public method;
9171         this is similar to the other _full() methods, but we take a
9172         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
9173         (mono_metadata_parse_generic_param): Take an additional
9174         `MonoGenericContainer *' argument and lookup the MonoGenericParam
9175         from that container.
9176         (mono_metadata_generic_param_equal): New static method to compare
9177         two type parameters.
9178         (_mono_metadata_type_equal): New static method; takes an
9179         additional `gboolean signature_only' argument - if true, we don't
9180         compare the owners of generic parameters.
9181         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
9182         with a TRUE argument - do a signature-only comparision.
9183
9184         * loader.c: Use the new _full() methods and pass the
9185         MonoGenericContainer to them.
9186
9187         * object-internals.h (MonoReflectionTypeBuilder): Added
9188         `MonoGenericContainer *generic_container' field.
9189         (MonoReflectionMethodBuilder): Likewise.
9190
9191 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
9192
9193         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
9194         case initial images of dynamic assemblies.
9195
9196         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
9197
9198         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
9199
9200         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
9201         length of event->other array.
9202         (typebuilder_setup_events): Ditto.
9203
9204         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
9205         'assembly_by_name' and add an 'assemblies' list.
9206
9207         * assembly.h assembly.c: Add a new search hook for determining whenever
9208         an assembly is already loaded. Use this instead of searching in the
9209         loaded_assemblies list.
9210
9211         * domain.c appdomain.c: Implement the new search hook so loaded 
9212         assemblies are now scoped by appdomain. Fixes #67727.
9213
9214 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
9215
9216         * threads.c (mono_thread_attach): Initialize synch_lock field so
9217         mono_thread_detach works again.
9218
9219         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
9220         'lib' too. Fixes #63130.
9221
9222 2004-10-06  Jackson Harper  <jackson@ximian.com>
9223
9224         * culture-info-tables.h: regenerated.
9225
9226 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
9227
9228         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
9229         implemented by other interfaces in the result. Fixes #65764.
9230         
9231         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9232         Handle unloadable modules without crashing.
9233
9234         * image.c (load_modules): Revert the previous patch since modules must
9235         have a fixed index inside the array.
9236         
9237         * image.c (load_modules): Don't include native modules in the modules
9238         array.
9239
9240 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
9241
9242         * reflection.h: Add param_defaults field.
9243
9244         * reflection.c: Add support for parameter defaults in dynamic methods.
9245         Fixes #64595.
9246
9247         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
9248         an empty string when a type has no namespace. Fixes #64230.
9249
9250 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
9251
9252         * tabledefs.h: Added "internal" security actions to support non-CAS
9253         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
9254         Note: they do not seems to be used anymore in 2.0 (new metadata format)
9255
9256 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
9257
9258         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
9259         constructor of abstract class. Fixes #61689.
9260
9261 2004-10-04  Martin Baulig  <martin@ximian.com>
9262
9263         * class-internals.h (MonoGenericContainer): New type.
9264         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
9265         `MonoGenericContainer *generic_container'.
9266         (MonoClass): Replaced `gen_params' and `num_gen_params' with
9267         `MonoGenericContainer *generic_container'.
9268
9269         * metadata.c (mono_metadata_load_generic_params): Return a
9270         `MonoGenericContainer *' instead of a `MonoGenericParam *';
9271         removed the `num' argument.
9272
9273 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
9274
9275         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
9276         for dynamic images.
9277
9278         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
9279         machine fields.
9280
9281         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
9282
9283         * reflection.c: Save pe_kind and machine values into the generated
9284         image file.
9285
9286         * appdomain.c: Bump corlib version number.
9287
9288         * object-internals.h: Reorganize layout of LocalBuilder.
9289
9290         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
9291         New helper function.
9292
9293         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
9294         created MonoType for dynamic types. Fixes #66180.
9295
9296 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
9297
9298         * threadpool.c: the ares hashtable needs a critical section around it.
9299         this prevents some nasty segfaults
9300
9301 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
9302
9303         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
9304         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
9305         bug 67324).
9306         
9307 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
9308
9309         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
9310         
9311 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
9312
9313         * image.c: Always canonicalize image file names, to avoid loading
9314         the same assembly twice when referenced using a relative path.
9315
9316 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
9317
9318         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
9319
9320         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
9321
9322         * marshal.c: Fix warnings.
9323
9324 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
9325
9326         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
9327         attempting to marshal the delegate_trampoline as the method_addr.
9328         This patch has a static hashtable of marshalled delegates so that 
9329         we can map delegate_trampoline addresses back to delegates.  This
9330         allows a delegate passed to managed code to be passed back into native
9331         code.  Fixes #67039
9332
9333 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
9334
9335         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
9336
9337         * reflection.c (method_encode_code): Align method headers properly.
9338         Fixes #66025.
9339
9340 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
9341
9342         * marshal.c: In the runtime invoke wrapper, reset the abort
9343         exception if it is cached. This avoids the automatic rethrowal of 
9344         the exception after the catch of the wrapper. Also check for pending
9345         interruptions before calling the managed method. This is done using
9346         the new method emit_thread_force_interrupt_checkpoint, since the
9347         normal checkpoint method is ignored when running the invoke wrapper.
9348         * object.c: If the abort exception is rethrown, set the abort_exc
9349         field of the thread, so it will be rethrown aftere every catch.
9350         * threadpool.c: Only run an interruption checkpoint if what has been
9351         requested is a stop of the thread (aborts will be ignored).
9352         * threads.c: By default, a thread will now never be interrumped while
9353         running the runtime invoke wrapper (this ensures that runtime_invoke
9354         will always return to the caller if an exception pointer is provided).
9355         There is a new special method mono_thread_force_interruption_checkpoint()
9356         to force an interruption checkpoint even if running a protected
9357         wrapper, which is used by the same runtime invoke wrapper to do a check
9358         at a safe point.
9359
9360 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
9361
9362         * object.c, object-internals.h: Implemented mono_release_type_locks,
9363         which releases the cctor locks held by a thread.
9364         * threads.c, threads.h: In thread_cleanup, release cctor locks held
9365         by a thread. Added mono_thread_exit() method to be used to safely stop
9366         a thread.
9367
9368 2004-09-28  Raja R Harinath  <rharinath@novell.com>
9369
9370         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9371         Move null check before dereference.  Avoid indexing beyond the end
9372         of the 'modules' array.
9373
9374 2004-09-28  Raja R Harinath  <rharinath@novell.com>
9375
9376         * metadata-internals.h (MonoImage): Add module_count field.
9377         * image.c (load_modules): Set image->module_count.
9378         (mono_image_load_file_for_image): Use image->module_count.
9379         * reflection.c (mono_image_load_module): Append to image->modules array 
9380         of dynamic assembly.
9381         (mono_module_get_object): Fix loop to actually increment index.
9382         Use image->module_count.
9383         * assembly.c (mono_assembly_load_references): Use image->module_count.
9384         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
9385         Likewise.
9386
9387 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
9388
9389         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
9390         Avoid assert on generic types.
9391
9392 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
9393
9394         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
9395
9396         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
9397
9398         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
9399         function to convert a MarshalSpec structure to its managed counterpart.
9400
9401         * reflection.c: Fix warnings.
9402         
9403         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
9404         field.
9405
9406         * icall.c (mono_create_icall_signature): Fix build.
9407
9408 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
9409
9410         * icall.c: Add MakePointType icall.
9411
9412         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
9413         warnings.
9414
9415 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9416
9417         * threadpool.c: reuse allocated slots in the queue.
9418
9419 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
9420
9421         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
9422
9423         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
9424
9425         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
9426         previous change.
9427
9428         * tabledefs.h: Add constants for pinvoke attributes BestFit and
9429         ThrowOnUnmappableChar.
9430
9431         * icall.c (ves_icall_Type_GetPacking): New icall.
9432
9433 2004-09-24  Martin Baulig  <martin@ximian.com>
9434
9435         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
9436
9437 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9438
9439         * appdomain.c:
9440         (mono_domain_set): allow setting a domain that is being unloaded.
9441         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
9442         being unloaded.
9443
9444 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9445
9446         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
9447         the GetCustomAttributes icall.
9448
9449 2004-09-23  Martin Baulig  <martin@ximian.com>
9450
9451         * object-internals.h (MonoReflectionGenericParam): Replaced
9452         'has_ctor_constraint', `has_reference_type' and `has_value_type'
9453         with `guint32 attrs'.
9454
9455 2004-09-23  Martin Baulig  <martin@ximian.com>
9456
9457         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
9458
9459 2004-09-23  Martin Baulig  <martin@ximian.com>
9460
9461         * object-internals.h (GenericParameterAttributes): New enum.
9462
9463 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9464
9465         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
9466         
9467         * class.c (init_events): Fill out event->other field.
9468
9469         * class.c: Fix warnings.
9470
9471         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
9472
9473 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
9474
9475         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
9476         walk which doesn't supply the IL offset.
9477
9478 2004-09-22  Martin Baulig  <martin@ximian.com>
9479
9480         * reflection.c (mono_reflection_setup_internal_class): If we're
9481         System.ValueType, System.Object or System.Enum, set
9482         `klass->instance_size' and create the vtable.
9483         (mono_reflection_create_internal_class): If we're an enum type,
9484         get the base class from our current corlib.
9485
9486 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
9487
9488         * reflection.h (MonoResolveTokenError): New type.
9489
9490         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
9491         icall.
9492
9493         * icall.c: Add an 'error' argument to the ResolveToken icalls.
9494
9495 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
9496
9497         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
9498         Support also calling constructors, but only for already allocated objects.
9499
9500 2004-09-17  Geoff Norton <gnorton@customerdna.com>
9501
9502         * reflection.c (type_get_qualified_name): If the klass is null
9503         return the typename to avoid a NullRefEx.
9504         (encode_cattr_value): Get the qualified name of the boxed type,
9505         not the underlying enumtype.  Fixes #62984.
9506
9507 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
9508
9509         * marshal.c: Fix problems with previous checkin.
9510
9511 2004-09-21    <vargaz@freemail.hu>
9512
9513         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
9514         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
9515
9516         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
9517
9518 2004-09-21  Geoff Norton <gnorton@customerdna.com>
9519
9520         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
9521         should only return a type for pointers, arrays, and passbyref types.
9522         Fixes bug #63841.
9523
9524 2004-09-21  Martin Baulig  <martin@ximian.com>
9525
9526         * domain.c (mono_debugger_check_runtime_version): New public
9527         function.
9528
9529         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
9530
9531 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
9532
9533         * reflection.c: Added missing sort to the declarative security 
9534         attributes table. MS implementation stops seeing the attributes if the
9535         token number regress in the table (as shown by ildasm and permview).
9536
9537 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
9538
9539         * object-internals.h (MonoReflectionModule): Add 'token' field.
9540         
9541         * reflection.c (mono_reflection_get_token): Add support for Module
9542         and Assembly.
9543         (mono_module_get_object): Set 'token' field.
9544         (mono_module_file_get_object): Set 'token' field.
9545
9546         * icall.c: Add new Assembly and Module icalls.
9547
9548         * appdomain.c: Bump corlib version.
9549
9550 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
9551
9552         * loader.h loader.c class.h class.c: Add helper functions for obtaining
9553         tokens of metadata objects.
9554
9555         * reflection.h reflection.c (mono_reflection_get_token): New function
9556         to obtain the token of a metadata object.
9557
9558         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
9559
9560 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
9561
9562         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
9563         
9564         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
9565
9566 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
9567
9568         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
9569         * object-internals.h: Added 3 MonoArray* members to MonoReflection
9570         AssemblyBuilder to access the permissions set in the class lib.
9571         * reflection.c: Added security attributes encoding step in 
9572         mono_image_build_metadata.
9573         * tabledefs.h: Added new security actions defined in 2.0:
9574         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
9575
9576 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9577
9578         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
9579         macro parameter.
9580
9581 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9582  
9583         * locales.c: nullify the ICU_collator member of CompareInfo when it is
9584           finalized. There where random SIGSEVs at program termination, when
9585           an object being finalized was trying to do a string comparison and
9586           the current culture was already finalized.
9587  
9588 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9589
9590         * threads.c: call thread_cleanup before finishing the thread if we get
9591         there.
9592
9593 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
9594
9595         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
9596         assemblies from the parent. Fixes #65665.
9597
9598 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
9599
9600         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
9601         modifiers.
9602
9603 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
9604
9605         * reflection.h: add prototype for mono_get_dbnull_object
9606         * reflection.c: add prototypes for get_default_param_value_blobs 
9607         and mono_get_object_from_blob for fussier compilers
9608
9609 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
9610  
9611         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
9612         false deadlock checks in class initialization.
9613  
9614 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
9615
9616         * image.c (mono_image_addref): Fix comment.
9617
9618         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
9619         possible.
9620
9621 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
9622
9623         * reflection.c (mono_param_get_objects): Modified to return
9624         ParameterInfo.DefaultValue object.
9625
9626         (get_default_param_value_blobs):
9627         (mono_get_object_from_blob):
9628         (mono_get_dbnull_object): New helper routines. 
9629
9630         * object.c (mono_get_constant_value_from_blob): New helper routine
9631         carved out from get_default_field_value ()
9632
9633         * object-internals.h (mono_get_constant_value_from_blob): Added
9634         function declaration.
9635
9636 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
9637
9638         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
9639         referenced assemblies. Fixes #62135.
9640
9641         * exception.h exception.c (mono_get_exception_file_not_found2): New
9642         helper function.
9643
9644 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
9645
9646         * class.h class.c: Add mono_type_get_underlying_type ().
9647
9648 2004-09-09  Geoff Norton <gnorton@customerndna.com>
9649
9650         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
9651         Fix GetTypes() to support dynamically created assemblies.
9652
9653 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
9654
9655         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
9656         
9657         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
9658         previous patch.
9659
9660         * reflection.h reflection.c loader.c: Allow dynamic construction of
9661         pinvoke methods. Fixes #65571.
9662         
9663         * reflection.c (mono_reflection_get_type): Revert previous change since
9664         it causes regressions.
9665
9666 2004-09-08  Martin Baulig  <martin@ximian.com>
9667
9668         * class.c (class_compute_field_layout): Don't call
9669         mono_class_layout_fields() for open generic instances.
9670
9671 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
9672         * threads.c appdomain.c: fix typo in GC macro
9673
9674 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9675
9676         * threads.c: don't call mono_thread_detach() in start_wrapper(),
9677         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
9678
9679 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
9680
9681         * image.c (mono_image_close): Applied patch from 
9682         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
9683         assembly is loaded multiple times from data.
9684         
9685         * image.c (mono_image_open): Fix warning.
9686
9687 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9688
9689         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
9690         once. Fixes #58334.
9691         
9692         * reflection.c (mono_reflection_create_runtime_class): Initialize
9693         klass->nested_classes. Fixes #61224.
9694
9695 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9696
9697         * threads.c: sched_yield() on exit, to allow threads to quit.
9698
9699 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9700
9701         * object.c (mono_unhandled_exception): Remove leftover debug code.
9702
9703 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
9704
9705         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
9706
9707 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9708
9709         * marshal.c (emit_marshal_array): Really null terminate string arrays.
9710         
9711         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
9712
9713 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9714
9715         * marshal.c (emit_marshal_array): Null terminate string arrays.
9716         
9717         * marshal.c (raise_auto_layout_exception): Fix warning.
9718
9719         * reflection.c (mono_param_get_objects): Initialize the default value
9720         with DBNull.Value, not null. Fixes #62123.
9721
9722 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
9723
9724         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
9725         throw an exception with a cute explanation.
9726
9727 2004-09-06  Dick Porter  <dick@ximian.com>
9728
9729         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
9730         Close the new process's thread handle, as we don't use it.  The
9731         handle stays around forever otherwise.
9732
9733 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9734
9735         * object.c (arith_overflow): Fix warning.
9736
9737         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9738         calling conventions in method refs. Fixes #65352.
9739
9740         * reflection.c: Fix warnings.
9741
9742 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9743
9744         * icall.c: Add a new icall for Array.Clear
9745
9746 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9747
9748         * object.c: When allocating an array, we have to throw
9749         an overflow exception if any of the lengths are < 0.
9750
9751 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9752
9753         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9754         properly. Also move implementation of string array marshalling to 
9755         managed code. Fixes #42316.
9756
9757 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9758
9759         * assembly.c: provide more information when loading an assembly fails.
9760
9761 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9762
9763         * filewatcher.c: don't expect the development fam package to be
9764         installed.
9765
9766 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9767
9768         * marshal.c: Make a copy of the signature cookie since it will be
9769         freed by the caller.
9770         
9771         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9772
9773         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9774
9775         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9776         marshal specs.
9777
9778         * marshal.c: More refactoring.
9779         
9780         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9781         smaller functions.
9782
9783 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9784
9785         * object.c: In mono_message_invoke, fill the output parameter array after
9786           calling the managed method (it was done before the call). This fixes
9787           bug #59299.
9788
9789 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9790
9791         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9792         as well.
9793
9794 2004-09-02  Martin Baulig  <martin@ximian.com>
9795
9796         * class.c (mono_class_instance_size): Don't allow generic type
9797         definitions or open generic instances.
9798         (mono_class_array_element_size): If we're a value type, call
9799         mono_class_instance_size() on the original class.
9800
9801         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9802         handle generic instances.
9803
9804         * mono-debug-debugger.c (write_type): Handle generic instances
9805         like classes.
9806
9807 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9808
9809         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9810         the allocation request fails. Fixes #65089.
9811
9812         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9813         
9814         * object.c (mono_runtime_free_method): New function to free a dynamic
9815         method.
9816
9817         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9818         delegate trampoline.
9819
9820         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9821         with hasthis as dynamic,
9822
9823         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9824
9825         * domain.c (mono_jit_info_table_remove): New function to remove an
9826         entry from the jit info table.
9827
9828         * class-internals.h (MonoMethod): Add 'dynamic' field.
9829
9830         * loader.c: Fix warnings.
9831
9832 2004-09-01  Martin Baulig  <martin@ximian.com>
9833
9834         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9835         instead of mono_debugger_lock() because the latter one is a no-op
9836         unless running in the debugger.
9837
9838 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9839
9840         * class.c (class_compute_field_layout): Classes with auto-layout or
9841         reference fields are not blittable.
9842         
9843 2004-09-01  Dick Porter  <dick@ximian.com>
9844
9845         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9846         mono_image_get_filename() to get the assembly location.
9847
9848         * icall.c:
9849         * metadata.h: Fix compile warnings
9850
9851 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9852
9853         * class.c (class_compute_field_layout): System.Object is blittable.
9854
9855         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9856         as in/out. Fixes #59909.
9857
9858 2004-09-01  Martin Baulig  <martin@ximian.com>
9859
9860         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9861         mono_metadata_generic_inst_is_valuetype() if we're a generic
9862         instance to check whether our underlying type is a reference type.
9863
9864 2004-09-01  Martin Baulig  <martin@ximian.com>
9865
9866         * metadata.c (mono_type_size): If we're a generic instance, call
9867         mono_class_value_size() for value types.
9868
9869 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9870
9871         * marshal.c: Implement more custom marshalling functionality. Fixes
9872         #64915.
9873
9874 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9875
9876         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9877
9878 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9879
9880         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9881
9882         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9883
9884         * icall.c: Fix some warnings.
9885
9886         * threads.c (abort_appdomain_thread): Fix unref errors.
9887         (mono_thread_current): Fix THREAD_DEBUG define.
9888
9889 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9890
9891         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9892
9893         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9894
9895 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
9896
9897         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
9898         string arrays.
9899
9900 2004-08-28  Martin Baulig  <martin@ximian.com>
9901
9902         * metadata.c
9903         (mono_metadata_generic_inst_is_valuetype): New public function.
9904
9905         * metadata.h (MONO_TYPE_ISSTRUCT): Call
9906         mono_metadata_generic_inst_is_valuetype() if we're a generic
9907         instance to check whether our underlying type is a valuetype.
9908
9909 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
9910
9911         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
9912         #63768.
9913
9914 2004-08-25  Martin Baulig  <martin@ximian.com>
9915
9916         * loader.c (mono_get_method_from_token): Abstract methods can also
9917         be generic and thus have type parameters.
9918
9919         * metadata-internals.h
9920         (MonoDynamicImage): Added `GPtrArray *gen_params'.
9921
9922         * reflection.c (mono_image_get_generic_param_info): Don't create a
9923         metadata row, just add an entry to the `gen_params' array.
9924         (build_compressed_metadata): Sort the `gen_params' array and then
9925         actually create the metadata.
9926
9927 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9928
9929         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
9930
9931 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
9932
9933         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
9934
9935 2004-08-24  Martin Baulig  <martin@ximian.com>
9936
9937         * class.cs (mono_class_is_subclass_of): Like an interface, a
9938         generic instance also derives from System.Object.
9939
9940 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
9941
9942         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
9943         custom modifiers to be in any order. Fixes #61990.
9944
9945 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
9946
9947         * object.c: Register mono_object_new_fast icall.
9948         
9949         * object.c (mono_class_get_allocation_ftn): Return to calling
9950         mono_object_new_fast, since it seems faster to compute the object 
9951         size in unmanaged code than passing it as a parameter.
9952
9953         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
9954
9955         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
9956         this function with Boehm as the oom handler, so we don't have to check
9957         the result of GC_malloc.
9958
9959         * object.c: Remove checks for oom.
9960
9961         * object.h object.c (mono_class_get_allocation_ftn): New function to
9962         return the icall which can be used to allocate an instance of a given
9963         class. 
9964
9965         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
9966
9967         * class-internals.h: Add 'enabled' field.
9968
9969 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
9970
9971         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
9972
9973 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
9974         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
9975         value 0x0010.
9976
9977 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
9978
9979         * appdomain.c: use the Tls function for appdomain too,
9980         at Zoltan's request. Actually return in mono_context_get
9981
9982         * appdomain.c, profiler.c, threads.c: use __thread
9983
9984 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
9985
9986         * appdomain.c threads.c: Call GC_CreateThread on windows.
9987
9988         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
9989         multiple libraries since this don't work on windows.
9990
9991 2004-08-18  Martin Baulig  <martin@ximian.com>
9992
9993         * class-internals.h
9994         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
9995         MonoMethodHeader.
9996
9997         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
9998         MonoMethodNormal since we also need it for abstract and interface
9999         methods.
10000
10001         * reflection.c
10002         (build_compressed_metadata): Sort the GenericParam table.
10003         (mono_image_create_token): Added `gboolean create_methodspec'
10004         argument; this is false when generating a MethodImpl token.
10005         (reflection_methodbuilder_to_mono_method): Abstract and interface
10006         methods may also have generic parameters.
10007
10008 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
10009
10010         * appdomain.c: thread local alloc
10011
10012 2004-08-17  Martin Baulig  <martin@ximian.com>
10013
10014         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
10015
10016         * icall.c
10017         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
10018         argument.
10019
10020         * class.c (mono_type_get_full_name): New public function.
10021         (mono_type_get_name): Don't include the type arguments.
10022
10023 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
10024
10025         * Makefile.am: Build static versions of libmetadata and libmonoruntime
10026         for inclusion into the mono executable.
10027
10028 2004-08-16  Martin Baulig  <martin@ximian.com>
10029
10030         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
10031         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
10032
10033 2004-08-14  Martin Baulig  <martin@ximian.com>
10034
10035         * class.c (dup_type): Also copy the `byref' field.
10036
10037 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
10038
10039         * reflection.c (create_dynamic_mono_image): Revert the last change 
10040         since it breaks bootstrap.
10041
10042 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
10043
10044         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
10045
10046         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
10047         not free them with g_free.
10048
10049 2004-08-11  Martin Baulig  <martin@ximian.com>
10050
10051         * reflection.c (mono_reflection_setup_internal_class): Also call
10052         mono_class_setup_mono_type() if we already have a `tb->type.type'.
10053
10054 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
10055
10056         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
10057         called during default (first) AppDomain creation. Keep track of
10058         Evidence when loading assemblies.
10059
10060 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10061
10062         * opcodes.c, opcodes.h: reduce runtime relocations.
10063
10064 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
10065
10066         * culture-info.h, locales.c: fixes and chages to sue the new
10067         optimized format of the locale data.
10068         * culture-info-tables.h: regenerated.
10069
10070 2004-08-06  Geoff Norton <gnorton@customerdna.com>
10071         
10072         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
10073
10074 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
10075
10076         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
10077         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
10078         * domain-internals.h: icall declaration.
10079         * icall.c: icall registration.
10080         * object-internals.h: New fields in MonoAssembly for CAS.
10081
10082 2004-08-05  Duncan Mak  <duncan@ximian.com>
10083
10084         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
10085         CEE_LDELEM_ANY.
10086
10087 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10088
10089         * reflection.c: fix to deal with object[] arrays in custom ctors
10090         (bug #62550).
10091
10092 2004-08-05  Martin Baulig  <martin@ximian.com>
10093
10094         * class.c (mono_class_array_element_size): Added support for
10095         generic instances and correctly handle "recursive" types.
10096
10097 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
10098
10099         * assembly.c: Fix warnings.
10100
10101 2004-08-04  Martin Baulig  <martin@ximian.com>
10102
10103         * class.c
10104         (mono_type_get_name_recurse): Added `gboolean include_arity'
10105         argument specifying whether or not we should include the generic
10106         arity in the type name.
10107         (_mono_type_get_name): New static function.
10108         (mono_class_setup_vtable): If we're a generic instance, don't
10109         include the generic arity in the names of explicit method
10110         implementations.        
10111
10112 2004-08-03  Martin Baulig  <martin@ximian.com>
10113
10114         * class.c (mono_type_get_name_recurse): Enclose the generic type
10115         arguments in `<', '>'.
10116
10117 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10118
10119         * gc.c: make GC warning messages use the trace API, they are just
10120         noise to most of the users.
10121
10122 2004-08-03  Martin Baulig  <martin@ximian.com>
10123
10124         * debug-mono-symfile.c (read_string): Correctly read the string.
10125
10126 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
10127
10128         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
10129         
10130         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
10131         icalls.
10132         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
10133
10134 2004-07-30  Martin Baulig  <martin@ximian.com>
10135
10136         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
10137         Reflect latest symbol writer changes.   
10138
10139 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
10140
10141         * object.c: always create an object if null is passed
10142         to Invoke() where a valuetype is expected.
10143
10144 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
10145
10146         * marshal.c (mono_marshal_init): make managed
10147         signatures match native ones better for 64bits.
10148
10149 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10150
10151         * appdomain.c: hack to build correctly the private bin path on windows.
10152         Fixes bug #61991.
10153
10154 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
10155
10156         * assembly.c: Load mscorlib from the correct framework directory
10157           (mono/<version>/mscorlib.dll).
10158         * appdomain.h: Added prototypes for new functions.
10159         * internals.h: Added some prototypes.
10160         * domain.c: When initializing the runtime, get from the executable and
10161           the configuration files the runtime version that the app supports.
10162           Added support methods for reading app.exe.config. Added list of versions
10163           supported by the JIT. Added two new methods: mono_init_from_assembly,
10164           which initializes the runtime and determines the required version from
10165           the provided exe file, and mono_init_version, which initializes
10166           the runtime using the provided version.
10167         * icall.c: Get machine.config from version-specific directory.
10168         * reflection.c: When generating an image, embed the version number
10169           of the current runtime.
10170
10171 2004-07-28  Dick Porter  <dick@ximian.com>
10172
10173         * socket-io.c
10174         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
10175         returned sockaddr size before creating the remote address object.
10176         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
10177         61608.
10178
10179 2004-07-28  Dick Porter  <dick@ximian.com>
10180
10181         * locales.c (string_invariant_compare_char): Fix invariant char
10182         compares between upper and lower cases.  Fixes bug 61458.
10183
10184 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
10185         
10186         * marshal.c: actually cache stelem.ref wrappers.
10187         
10188 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
10189
10190         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
10191         sections and remove the mono_cli_rva_map () function.
10192
10193 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10194
10195         * debug-mono-symfile.c: fix one more endianess issue, from a patch
10196         by Geoff Norton (<gnorton@customerdna.com>).
10197
10198 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10199
10200         * class.c: fix class loads for pointer types (typeof(int) !=
10201         typeof(int*)).
10202
10203 2004-07-27  Martin Baulig  <martin@ximian.com>
10204
10205         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
10206         reading the debugging information from an external ".mdb" file.
10207
10208 2004-07-24  Martin Baulig  <martin@ximian.com>
10209
10210         * reflection.c (mono_image_get_type_info): Only write a class
10211         layout entry if we actually have a size or a packing size.
10212
10213 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
10214
10215         * reflection.c (type_get_fully_qualified_name): 
10216         insert cast to get type checking of ?: with non-gcc compilers
10217
10218 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
10219
10220         * rand.c: use g_getenv for both lookups of
10221         MONO_EGD_SOCKET
10222
10223 2004-07-17  Martin Baulig  <martin@ximian.com>
10224
10225         * reflection.c (mono_reflection_bind_generic_method_parameters):
10226         Set `gmethod->reflection_info'.
10227
10228 2004-07-17  Martin Baulig  <martin@ximian.com>
10229
10230         * class.c (mono_class_create_from_typedef): Insert the newly
10231         created class into the hash table before computing the interfaces
10232         since we could be called recursively.
10233
10234 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
10235
10236         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
10237         function to implement stelem.ref in managed code
10238         * class-internals.h, debug-helpers.c: a new wrapper type
10239         for the above.
10240
10241 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
10242
10243         * gc.c: allow GC handles to work even when no GC is compiled in.
10244         Fix part of bug #61134 (GetAddrOfPinnedObject).
10245
10246 2004-07-13  Peter Williams  <peter@newton.cx>
10247  
10248         * process.c (complete_path): Make sure we don't attempt to execute
10249         directories.
10250  
10251 2004-07-12  Geoff Norton <gnorton@customerdna.com>
10252
10253         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
10254           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
10255           and will add/subtract the hour if needed
10256
10257 2004-07-12  Martin Baulig  <martin@ximian.com>
10258
10259         * reflection.c (mono_field_get_object): If we have
10260         `field->generic_info', take the attributes from
10261         `field->generic_info->generic_type'.    
10262
10263 2004-07-12  Martin Baulig  <martin@ximian.com>
10264
10265         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
10266         This function must be called before initializing the runtime.
10267         (mono_debug_init_1): New function; call this after initializing
10268         the runtime, but before loading the assembly.  It tells the
10269         debugger to load corlib and the builtin types.
10270
10271         * mono-debug-debugger.c: Did some larger changes in the debugging
10272         code; support recursive class declarations, make sure we actually
10273         add all classes.
10274
10275 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10276
10277         * debug-helpers.c: undo my previous patch and fixed the real issue in
10278         ../mini/exceptions-x86.c
10279
10280 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10281
10282         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
10283         when no HOME env. variable was set and a NullRef was thrown in a .cctor
10284         called from other .cctors.
10285
10286 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
10287
10288         * loader.c: Removed the mono_loader_wine_init hack now that we are
10289         doing a managed version of Windows.Forms.
10290
10291 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
10292
10293         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
10294         threadpool.c, threads.c: remove static data from rootset.
10295
10296 2004-07-09  Dick Porter  <dick@ximian.com>
10297
10298         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
10299         Don't do any more processing if the matched length was 0.  It was
10300         increasing the size of the string before.  Fixes bug 61167.
10301
10302 2004-07-09  Dick Porter  <dick@ximian.com>
10303
10304         * socket-io.h:
10305         * socket-io.c
10306         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
10307         Add support for SO_PEERCRED if its available.
10308
10309 2004-07-09  Peter Bartok <pbartok@novell.com>
10310         * loader.c: winelib.exe.so error message is now only displayed if
10311         MONO_DEBUG is set. To help us avoid questions when people are trying
10312         out the new Managed.Windows.Forms.
10313
10314 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
10315
10316         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
10317         for isinst and castclass wrappers.
10318
10319         * class-internals.h icall.c: Move registration and lookup of JIT icalls
10320         to libmetadata from the JIT, so they could be used by the marshalling
10321         code and the interpreter.
10322
10323         * marshal.c: Register marshalling related JIT icalls here instead of
10324         in mini.c. Use CEE_MONO_ICALL instead of the family of 
10325         CEE_MONO_PROC<x> opcodes to call marshalling functions.
10326
10327         * metadata.h: Remove unneeded marshalling conversions.
10328
10329         * opcodes.c: Update for new opcodes.
10330         
10331 2004-07-08  Martin Baulig  <martin@ximian.com>
10332
10333         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
10334         (mono_debug_get_domain_data): Make this function static.
10335
10336 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
10337
10338         * gc.c, object.h: add nice GC handle API for embedders.
10339
10340 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
10341
10342         * reflection.c: more changes for the new api
10343
10344         * object.c: When we reflect on a field w/ a constant value, it
10345         will not have a memory location, so we must access metadata. Also,
10346         allow easier reading of strings so that we can read them from
10347         the constant data.
10348
10349         * class.c (mono_class_layout_fields): no need for literal fields here.
10350
10351         * class-internals.h: api changes for const fields
10352
10353         * icall.c (ves_icall_get_enum_info): use new apis for const fields
10354
10355 2004-07-06  Martin Baulig  <martin@ximian.com>
10356
10357         * mono-debug.h: Increment version number to 44.
10358
10359         * mono-debug.c (mono_debug_add_wrapper): The second argument is
10360         now a gpointer, rewrote this whole method.
10361
10362         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
10363         function.  Add information about the wrapper in a new "misc table".
10364
10365         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
10366         for the new misc table.
10367
10368 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
10369
10370         * metadata-internals.h image.c: Add a cache for helper signatures.
10371
10372         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
10373
10374 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
10375
10376         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
10377         delegates from a delegate. Fixes #61033.
10378         
10379         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
10380         marshalling of stringbuilder arrays. Fixes #59900.
10381
10382 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
10383
10384         * icall.c: Add EnumBuilder:setup_enum_type icall.
10385
10386 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
10387
10388         * icall.c: Added a new icall for the property version of
10389         OffsetOfStringData.
10390
10391 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
10392
10393         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
10394         it has a constant size across platforms.
10395
10396         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
10397         stack trace.
10398
10399 2004-06-29  Martin Baulig  <martin@ximian.com>
10400
10401         * mono-debug.c (mono_debug_add_method): Protect the whole function
10402         in mono_debugger_lock(), not just parts of it.
10403
10404 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10405
10406         * reflection.c: make sure padding bytes in heaps are zeroed.
10407
10408 2004-06-24  David Waite  <mass@akuma.org>
10409
10410         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
10411         image.c, loader.c, locales.c, marshal.c, metadata.c,
10412         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
10413         string-icalls.c, threads.c: change to C90-style comments from C99 /
10414         C++ -style
10415
10416 2004-06-24  Dick Porter  <dick@ximian.com>
10417
10418         * threads.c
10419         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
10420         return createdNew.  Fixes bug 60412.
10421
10422         * threads-types.h: 
10423         * icall.c: Add createdNew parameter to CreateMutex icall
10424
10425 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10426
10427         * reflection.c, object-internals.h: save default value in params.
10428
10429 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10430
10431         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
10432         no need to build a new path combining that with the application base.
10433         Fixes bug #60442.
10434
10435 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
10436
10437         * reflection.c: fixed minor standard compliance issues.
10438
10439 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
10440
10441         * reflection.c: fixed issue with encoding some custom attributes
10442         (arrays in properties and fields, bug #60411).
10443
10444 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10445
10446         * reflection.c: fix start address when copying the public key token.
10447
10448 2004-06-23  Martin Baulig  <martin@ximian.com>
10449
10450         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
10451         the `exc' object in a static object to put it into the GC's root set.
10452
10453 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
10454
10455         * reflection.c: make mono_reflection_setup_internal_class ()
10456         callable a second time to setup a new parent class.
10457
10458 2004-06-23  Dick Porter  <dick@ximian.com>
10459
10460         * threads.c: Check for WAIT_IO_COMPLETION return values.
10461
10462 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
10463
10464         * appdomain.c: Removed the g_free on the public key token. Now copy 
10465         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
10466         * assembly.c: Added public key token string value when loading 
10467         assemblies. Fix bug #60439.
10468         * icall.c: Added missing informations (like public key) in 
10469         GetReferencedAssemblies. Fix #60519.
10470         * image.h: Changed definition for public key token from const char*
10471         public_tok_value to guchar public_key_token [17];
10472         * reflection.c: Updated for changes to public key token.
10473
10474 2004-06-22  Lluis Sanchez Gual
10475
10476         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
10477         for the field in base classes.
10478
10479 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10480
10481         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
10482         mark headers as not supported, they are installed only for use by the
10483         debugger.
10484
10485 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
10486
10487         * *.c, *.h: avoid namespace pollution in public headers.
10488
10489 2004-06-21  Martin Baulig  <martin@ximian.com>
10490
10491         * exception.c (mono_get_exception_security): It's in
10492         "System.Security", not in "System".
10493
10494         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
10495         the exception classes.
10496
10497 2004-06-21  Martin Baulig  <martin@ximian.com>
10498
10499         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
10500         Protect the exception object from being finalized.
10501
10502 2004-06-21  Martin Baulig  <martin@ximian.com>
10503
10504         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
10505         public function.
10506
10507 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
10508
10509         * reflection.c: Load the assembly in mono_reflection_type_from_name,
10510         if it was not loaded before. Fix parts of #60439.
10511
10512 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
10513
10514         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
10515         code that was broken since Ben's change: wrappers are now
10516         dependent on the method signature only again.
10517
10518 2004-06-21  Martin Baulig  <martin@ximian.com>
10519
10520         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
10521         added interface support.
10522
10523 2004-06-21  Martin Baulig  <martin@ximian.com>
10524
10525         * class.c (mono_vtable_get_static_field_data): New public method.
10526
10527 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
10528
10529         * filewatcher.c : Windows build fix to be compliant with API changes.
10530
10531 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10532
10533         * class.h, class.c: more accessors.
10534         * metadata.h, metadata.c: prepare for hiding MonoType and
10535         MonoMethodSignature: people should use the accessors from now on
10536         outside of the tree.
10537
10538 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10539
10540         * *.c, *.h: more API cleanups.
10541
10542 2004-06-18  Jackson Harper  <jackson@ximian.com>
10543
10544         * assembly.c: Trace loading assemblies.
10545         * loader.c: Trace loading native libraries.
10546         * mono-config.c: Trace loading config files.
10547         
10548 2004-06-18  Dick Porter  <dick@ximian.com>
10549
10550         * locales.c: Tell ICU the lengths of strings, it can cope with
10551         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
10552
10553 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
10554
10555         * image.c: swapped name/filename;
10556
10557 2004-06-18  Martin Baulig  <martin@ximian.com>
10558
10559         * mono-debug-debugger.c (write_class): Write the parent class at
10560         the end of the header.
10561
10562 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10563
10564         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
10565
10566 2004-06-17  Raja R Harinath  <rharinath@novell.com>
10567
10568         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
10569         (bundle_obj): New conditional define.
10570         (BUILT_SOURCES): Remove.
10571         ($(bundle_srcs)): Make parallel-make safe.
10572         (libmonoruntime_la_LIBADD): Make unconditional.
10573         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
10574         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
10575
10576 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
10577
10578         * culture-info-tables.h: It was inconsistent with the latest
10579           supp info files.
10580
10581 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
10582
10583         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
10584         be loaded.
10585
10586         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
10587         with gcc 2.95.
10588
10589 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10590
10591         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
10592         cleaned up public header threads.h.
10593
10594 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10595
10596         * Makefile.am, *.c, *.h: more API cleanups.
10597
10598 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
10599
10600         * Makefile.am: removed monosn from compilation.
10601         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
10602         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
10603         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
10604         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
10605         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
10606         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
10607
10608 2004-06-15  Jackson Harper  <jackson@ximian.com>
10609
10610         * assembly.c: Make locales lower case when searching the GAC for
10611         assemblies. gacutil will always make locales lowercase when
10612         installing so this effectively makes them case insensitive.
10613         
10614 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
10615
10616         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
10617         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
10618           parameter which allows to choose whether the wait can be interrupted or 
10619           not. Also added the method mono_monitor_enter(), which locks the monitor
10620           using an infinite wait and without allowing interruption.
10621           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
10622           interrupted.
10623         * object.h: Added new fields in MonoThread. suspend_event holds the event
10624           used to susped/resume the thread. synch_lock is the lock object to use for
10625           modifying the thread state.
10626         * threads.c: Use the new synch_lock object for locking, instead of "this",
10627           which can generate deadlocks.
10628           Moved thread state change in Thread.Sleep and Thread.Join from managed
10629           to unmanaged code. This avoids a deadlock when the thread was suspended
10630           just after acquiring the thread lock.
10631           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
10632           Implemented Thread.Suspend using an event instead of ThreadSuspend,
10633           which is not fully implemented in the io-layer.
10634         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
10635
10636 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
10637
10638         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
10639         threads-types.h: more API cleanups.
10640
10641 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10642
10643         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
10644         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
10645         threadpool.c, threads.c: first pass at the exported API cleanup.
10646
10647 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
10648
10649         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
10650
10651 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10652
10653         * icall.c: added internalGetHome.
10654
10655 2004-06-14  Dick Porter  <dick@ximian.com>
10656
10657         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
10658         possible to return successfully when '.' or '..' were the only
10659         entries in a directory, but were skipped.  The MonoIOStat was not
10660         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
10661         Fixes bug 59574.
10662
10663 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10664
10665         * reflection.c: make binaries run on .Net 1.1 by default.
10666
10667 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10668
10669         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
10670
10671 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
10672
10673         * marshal.c: keep track of struct size with explicit layout
10674         (bug #59979).
10675
10676 2004-06-12  Martin Baulig  <martin@ximian.com>
10677
10678         * mono-debug-debugger.c: Comment out a debugging g_message().
10679
10680 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10681
10682         * reflection.c, reflection.h: do not free custom attrs that are cached.
10683         * icall.c: use braces to make code clearer.
10684
10685 2004-06-11  Martin Baulig  <martin@ximian.com>
10686
10687         * class.h (MonoInflatedField): New type.
10688         (MonoClassField): Replaced `MonoType *generic_type' with
10689         `MonoInflatedField *generic_info'.
10690
10691         * icall.c
10692         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
10693
10694 2004-06-11  Martin Baulig  <martin@ximian.com>
10695
10696         * reflection.c (mono_image_create_method_token): Correctly encode
10697         varargs methods.
10698
10699 2004-06-11  Martin Baulig  <martin@ximian.com>
10700
10701         * metadata.c (mono_metadata_parse_method_signature): When parsing
10702         a MethodDef which has VarArgs, also set sentinelpos if we don't
10703         have any parameters.
10704
10705 2004-06-11  Martin Baulig  <martin@ximian.com>
10706
10707         * verify.c (mono_method_verify): In CEE_CALL, use
10708         mono_method_get_signature() to get the method's signature, unless
10709         we're a PInvoke method.
10710
10711 2004-06-10  Jackson Harper  <jackson@ximian.com>
10712
10713         * assembly.c: Use <path>/lib/mono/gac for the extra paths
10714         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
10715         logical name as the supplied path is just a prefix to the gac not
10716         the direct path to it.
10717         
10718 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
10719
10720         * reflection.c: make the token for a created method match
10721         the token of the MethodBuilder it was created from
10722         (IKVM requires this behaviour now).
10723
10724 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
10725
10726         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
10727         reflection.c, socket-io.c: leak fixes.
10728
10729 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
10730
10731         * icall.c: handle sentinel pos in vararg methods in position different
10732         from 0.
10733
10734 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10735
10736         * culture-info-tables.h: freshly generated.
10737
10738 2004-06-09  Martin Baulig  <martin@ximian.com>
10739
10740         * loader.c (mono_get_method_constrained): Call `mono_class_init
10741         (constrained_class)'.   
10742
10743 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10744
10745         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10746         any methods. Fixes #59629.
10747
10748 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10749
10750         * culture-info-tables.h: reflecting locale-builder updates.
10751
10752 2004-06-08  Dick Porter  <dick@ximian.com>
10753
10754         * object.h:
10755         * locales.c: Fixed compile warnings, including a real bug in
10756         CompareInfo_internal_compare.
10757         
10758 2004-06-08  Dick Porter  <dick@ximian.com>
10759
10760         * locales.c
10761         (ves_icall_System_Globalization_CompareInfo_internal_index):
10762         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10763         Double-check the resuls of usearches, because ICU currently
10764         ignores most of the collator settings here.  Fixes bug 59720.
10765         
10766 2004-06-08  Dick Porter  <dick@ximian.com>
10767
10768         * locales.c
10769         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10770         Fix memory leak and segfault-causing typo.  No idea how this one
10771         lasted so long without being noticed.
10772
10773 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10774
10775         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10776         any methods. Fixes #59629.
10777
10778 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10779
10780         * assembly.c:
10781         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10782         own the critical section before). Removed dead code (that's done
10783         in the preload hook).
10784
10785         (mono_assembly_load_with_partial_name): call the preload hook.
10786
10787 2004-06-08  Martin Baulig  <martin@ximian.com>
10788
10789         * metadata.c (mono_metadata_signature_alloc): Default
10790         `sentinelpos' to -1.
10791
10792         * reflection.c (mono_image_get_array_token): Likewise.
10793
10794 2004-06-08  Martin Baulig  <martin@ximian.com>
10795
10796         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10797
10798         * metadata.c (mono_metadata_parse_method_signature): When parsing
10799         a MethodDef which has VarArgs, set sentinelpos.
10800
10801         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10802         `gint16' since we're using -1 for non-varargs methods.
10803
10804         * reflection.c
10805         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10806         (method_encode_signature): Added varargs support.
10807         (method_builder_encode_signature): Likewise.
10808         (mono_image_get_varargs_method_token): New static method.
10809         (mono_image_create_method_token): New public method; this is
10810         called via an icall instead of mono_image_create_token() when
10811         calling a varargs method.       
10812
10813 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10814
10815         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10816
10817 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10818
10819         * culture-info-tables.h : Reflecting the latest locale-builder that
10820           fixed empty array representation ({} to {0}).
10821
10822 2004-06-07  Jackson Harper  <jackson@ximian.com>
10823
10824         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10825         looking up extra gac paths. This allows MONO_GAC_PATH to act
10826         exactly like a prefix.
10827         
10828 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10829
10830         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10831         type name before modifying it. Fixes #59405.
10832
10833 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10834
10835         * culture-info.h: added fields for "all datetime patterns".
10836         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10837           _construct_datetime_format ()): fill xxx_patterns fields.
10838         * object.h: added fields for "all datetime patterns" to
10839           MonoDateTimeFormatInfo.
10840         * culture-info-tables.h: reflecting locale-builder updates.
10841
10842 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10843
10844         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10845         the event has no add and remove methods. Fixes #59629.
10846
10847 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10848
10849         * object.c: Fixed possible integer overflow when allocating large
10850         strings.
10851
10852 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10853
10854         * culture-info-tables.h: reflecting locale-builder updates.
10855
10856 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10857
10858         * culture-info-tables.h: reflecting locale-builder updates.
10859
10860 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10861
10862         * culture-info-tables.h: reflecting locale-builder updates.
10863
10864 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10865
10866         * threads.c: Made Thread.Sleep abortable.
10867
10868 2004-06-02  Martin Baulig  <martin@ximian.com>
10869
10870         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10871
10872         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10873
10874 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10875
10876         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10877
10878 2004-05-30  Jackson Harper  <jackson@ximian.com>
10879
10880         * reflection.c: Do not hardcode assembly versions or public key
10881         tokens anymore. All of this except the corlib section was dead
10882         code anyways.
10883         
10884 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10885
10886         * object.c (mono_runtime_invoke_array): Automatically create boxed
10887         objects for byref valuetypes if needed. Fixes #59300.
10888         
10889         * object.c (mono_method_return_message_restore): Handle 
10890         MONO_TYPE_OBJECT as well.
10891
10892 2004-05-28  Jackson Harper  <jackson@ximian.com>
10893
10894         * reflection.c: The modified type encoding was causing build
10895         problems. Reverted for now.
10896         
10897 2004-05-28  Jackson Harper  <jackson@ximian.com>
10898
10899         * reflection.c/h: Take an assembly ref so that we dont create
10900         fully qualified names when encoding types in the same assembly as
10901         the custom attribute being emitted.
10902         * appdomain.c: Increment version number.
10903         
10904 2004-05-26  Duncan Mak  <duncan@ximian.com>
10905
10906         * icall.c
10907         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10908         Set the full version number (major, minor, build, revision).
10909
10910 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
10911
10912         * marshal.c (emit_struct_conv): increment src/dst after blit
10913         (mono_marshal_get_managed_wrapper,
10914         mono_marshal_get_native_wrapper): make sure we have marshalling
10915         info before marshalling params (info computation affects
10916         blittable)
10917
10918         * class.c (class_compute_field_layout): correctly deal with
10919         blittable
10920         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
10921         value types (as per what windows dows by default)
10922         (mono_class_setup_mono_type): System.ValueType is blittable
10923         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
10924         blittable
10925
10926         * marshal.c (mono_marshal_load_type_info): flag types  as
10927         non-blittable if the native layout doesn't match the managed
10928         layout
10929
10930 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10931
10932         * appdomain.c: don't add stuff in the private search path that is
10933         above the application base. If application base is not set, there's
10934         no private search path.
10935
10936 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
10937
10938         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
10939         byref struct arguments in native->managed marshalling.
10940
10941 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
10942
10943         * marshal.c (mono_marshal_get_runtime_invoke): correctly
10944         cache methods using signature (special case for methods
10945         that are value type or string class)
10946         
10947         * image.c (mono_image_close): clean up allocated GSList's
10948         in runtime_invoke_cache.
10949
10950 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10951
10952         * mono-config.c: set the correct path for mono_cfg_dir on windows when
10953         there's no MONO_CFG_DIR environment variable defined.
10954
10955 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10956
10957         * threads.c: windows version must be >= 0x0500 to include OpenThread.
10958
10959 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
10960
10961         * threadpool.c: Really wait for 500ms after the async call, even if the wait
10962           is interrumped.
10963         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
10964           before waiting for it, and call CloseHandle after the wait to unref it.
10965           This will make sure that handles are not disposed too early.
10966
10967 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10968
10969         * appdomain.c:
10970         * appdomain.h:
10971         * icall.c: removed
10972         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
10973         needed now.
10974
10975         * object.c: se the application_base only for the domain that runs
10976         Main. Fixes bug #59216,
10977
10978 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10979
10980         * appdomain.c:
10981         * object.c: only the domain in which Main is run have
10982         SetupInformation.ConfigurationFile set, so moved a few lines from
10983         appdomain.c to object.c.
10984
10985 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10986
10987         * appdomain.c: we tried to load [name].(dll|exe), but according
10988         to bug #57710, we must also try [culture]/[name].(dll|exe) and
10989         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
10990         There's a test case attached to bug #58922.
10991
10992 2004-05-27  Dick Porter  <dick@ximian.com>
10993
10994         * icall.c:
10995         * file-io.c: Implemented icalls for locking and unlocking regions
10996         in a file.
10997         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
10998         FALSE on error (fixes both compiler warning and real bug.)
10999
11000 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
11001
11002         * culture-info-tables.h: reflecting locale-builder updates.
11003
11004           (Added missing ChangeLog entry for 05/26)
11005
11006 2004-05-27  Jackson Harper  <jackson@ximian.com>
11007
11008         * locales.c: Fix some cut and paste errors.
11009         
11010 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11011
11012         * mono-config.c: set the correct path for config. directory on windows.
11013
11014 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11015
11016         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
11017           on win32.
11018
11019 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
11020
11021         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
11022         from pinvoke functions.
11023         
11024         * marshal.c (mono_ftnptr_to_delegate): Implement this.
11025
11026 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11027
11028         * culture-info-tables.h: reflecting locale-builder updates.
11029
11030 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
11031
11032         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
11033         #59086.
11034
11035 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
11036
11037         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
11038         * icall.c: Modified icalls for RNG.
11039         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
11040         Windows (CryptoAPI).
11041
11042 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
11043
11044         * locales.c: Fix build.
11045
11046 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11047
11048         * culture-info-tables.h: reflecting locale-builder updates.
11049
11050 2004-05-25  Jackson Harper  <jackson@ximian.com>
11051
11052         * locales.c: When creating the current culture use the $LANGs
11053         specific culture. So DateTimeFormat and NumberFormat entries are created.
11054         
11055 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
11056
11057         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
11058         a char array as parameter.
11059
11060 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
11061
11062         * image.c: In mono_image_open(), always use an absolute path name to
11063           look for already loaded images.
11064
11065 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
11066
11067         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
11068         missing in the windows build (like older cygwin include files).
11069
11070 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
11071
11072         * icall.c: Fixed check for possible integer overflow in Buffer_
11073         BlockCopy icall. Replaced comments style // by /* */.
11074
11075 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
11076
11077         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
11078         
11079         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
11080         check after MONO_VTADDR. Fixes pinvoke2.exe.
11081
11082         * marshal.h marshal.c metadata.h: Add beginnings of support for
11083         ftnptr -> delegate marshalling.
11084
11085 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
11086
11087         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
11088         * threads.c: Fix warnings.
11089
11090 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
11091
11092         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
11093         * icall.c: Registered icalls for Suspend and Resume.
11094         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
11095           Thread.Abort.
11096         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
11097         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
11098         * process.c: Use WaitForSingleObjectEx.
11099         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
11100           checkpoints.
11101         * threads.c, threads.h: Make use of new Ex wait methods. Improved
11102           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
11103           for Suspend and Resume. Added new mono_thread_stop, used for stoping
11104           background threads. Added basic support for Abort in Windows.
11105           Start new threads using a managed delegate invoke wrapper. This wrapper
11106           has an interruption checkpoint that is needed since an interruption
11107           can be requested before the thread leaves the unmanaged code that starts 
11108           the thread.
11109         * marshal.c: Added interruption checkpoint after every native call, and
11110           also before managed calls for wrappers called from unmanaged code to
11111           go into managed code.
11112         * object.h: Added new field in MonoThread to keep track of interruption
11113           requests.
11114
11115 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
11116
11117         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
11118         calls.
11119
11120 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11121
11122         * appdomain.c:
11123         * assembly.c:
11124         * gc.c:
11125         * locales.c:
11126         * mono-config.c:
11127         * rand.c: getenv -> g_getenv (windows!)
11128
11129         * process.c: complete_path is also used on non-windows platforms.
11130
11131 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11132
11133         * icall.c: new signature for Process_Start.
11134
11135         * process.[ch]: new signature for Process_Start. If we're on windows
11136         and UseShellExecute is false, we have to search for the program by
11137         ourselves if we don't get a full path.
11138
11139 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
11140
11141         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
11142         marshalling and call CleanUpNativeData if needed. Fixes #58646.
11143
11144 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11145
11146         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
11147         Fixes bug #58373.
11148
11149 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11150
11151         * process.c: use double quotes to quote program name and arguments on
11152         windows. Fixes bug #58575.
11153
11154 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11155
11156         * file-io.c: don't return "." and ".." when using windows Find*File.
11157
11158 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
11159
11160         * marshal.c: Don't pass wrappers to message init because method 
11161         addressed used to lookup metadata. part of remoting[2|3] fix.
11162
11163 2004-05-15  Jackson Harper  <jackson@ximian.com>
11164
11165         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
11166         path is essentially the same as MONO_PATH except that it points to
11167         GACs instead of lib directories.
11168         * loader.h: The user gac is gone so we dont need function to
11169         enable/disable it.
11170         * mono-config.c: user gac option is now gone.
11171         
11172 2004-05-15  Jackson Harper  <jackson@ximian.com>
11173
11174         * culture-info.h: Make defines more consistent, add calendar data
11175         to the culture info table.
11176         * culture-info-tables.h: Add basic calendar data. Basically
11177         everyone gets default gregorian until all the data is
11178         updated.
11179         * locales.c: Use the new consistent defines. Set calendar data for
11180         culture info objects.
11181         * object.h: add a field for calendar data to CultureInfo
11182         
11183 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
11184
11185         * image.c: image->runtime_invoke_cache is keyed on signatures now.
11186         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
11187         a signature.
11188         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
11189         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
11190         an extra param that is the pointer of the method to invoke. The IL for
11191         the invoke method is no longer specific to the method, but to the
11192         signature of the method. Thus, we can share the same code for multiple
11193         methods. This reduces the number of methods that have to be compiled.
11194
11195 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
11196
11197         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
11198
11199         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11200
11201         * icall.c: Optimize Buffer.BlockCopy.
11202
11203 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11204
11205         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
11206         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
11207         quote). Changed them to "MMMM yyyy".
11208
11209 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
11210
11211         * rand.c
11212         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
11213
11214 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
11215
11216         * reflection.h: Updated after changes to managed structures.
11217
11218         * appdomain.c: Bump corlib version.
11219
11220 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11221
11222         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
11223         windows.
11224
11225 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11226
11227         * Makefile.am: link to ../os/libmonoos.la on windows.
11228
11229         * assembly.c:
11230                 -If MONO_DEBUG, warn about non-existing directories in
11231                 MONO_PATH.
11232                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
11233                 compile time variable.
11234                 -Removed init_default_path and call mono_set_rootdir from
11235                 libmonoos.a instead (windows only).
11236
11237         * assembly.h: declare mono_assembly_getrootdir().
11238
11239         * domain.c:
11240         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
11241
11242         * loader.c: s/getenv/g_getenv/
11243
11244 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
11245
11246         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
11247
11248         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
11249
11250         * metadata.h: Add new marshalling conversions.
11251
11252         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
11253         function.
11254
11255         * reflection.c (mono_reflection_get_type): Lookup the type in all
11256         modules of a multi-module assembly. Fixes #58291.
11257
11258 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
11259
11260         * threads.c: Before aborting a background, set the StopRequested
11261         state.  This avoids throwing the Abort exception.
11262         In mono_thread_manage, don't continue with the shutdown until all
11263         aborted threads have actually stopped.
11264
11265 2004-05-10  Jackson Harper  <jackson@ximian.com>
11266
11267         * locales.c: Remove the modifier from culture names.
11268         
11269 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11270
11271         * Makefile.am: monosn is not installed any more. It has been deprecated
11272         in favor of sn.
11273
11274 2004-05-07  Jackson Harper  <jackson@ximian.com>
11275
11276         * locales.c
11277         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
11278         Fix array construction, add bailout if the length is 0.
11279
11280 2004-05-07  Dick Porter  <dick@ximian.com>
11281
11282         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
11283         machine doesn't have a DNS entry.  Patch by Urs Muff
11284         (umuff@quark.com), fixes bug 57928.
11285
11286 2004-05-06  Jackson Harper  <jackson@ximian.com>
11287
11288         * reflection.c: Handle null PublicTokens properly. alloc mem for
11289         assembly names culture so we dont crash when freeing it.
11290         
11291 2004-05-06  Jackson Harper  <jackson@ximian.com>
11292
11293         * assembly.c: Check the usergac when loading with partial names.
11294         
11295 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
11296
11297         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
11298         does nothing for now (not required for Linux/Windows) but the class
11299         library can call it (and a newer or modified runtime could need it).
11300         * icall.c: Registred icall.
11301
11302 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11303
11304         * loader.c: prints a message on module loading error we set MONO_DEBUG
11305         environment variable.
11306
11307 2004-05-05  Jackson Harper  <jackson@ximian.com>
11308
11309         * appdomain.c: Handle PublicKeyToken=null properly.
11310         
11311 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
11312
11313         * environment.c|h: Added icall ves_icall_System_Environment_
11314         GetOSVersionString to get the current OS version as a string.
11315         * icall.c: Registred icall.
11316
11317 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
11318
11319         * object.c: in mono_object_get_virtual_method(), take into account that
11320         non-virtual methods don't have a slot in the vtable. Check needed when
11321         the object is a proxy.
11322
11323 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
11324
11325         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
11326         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
11327
11328         * object.c (mono_class_compute_gc_descriptor): Fix warning.
11329
11330         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
11331         passed when a valuetype is expected.
11332
11333         * object.c (mono_unhandled_exception): Only set the exit code if the
11334         exception happens in the main thread. Fixes thread5.exe.
11335
11336         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
11337         invalid names. Fixes #58047.
11338
11339 2004-05-03  Jackson Harper  <jackson@ximian.com>
11340
11341         * assembly.c: This line was committed accidently and is unneeded.
11342         
11343 2004-05-03  Jackson Harper  <jackson@ximian.com>
11344
11345         * icall.c: Add new icall for Assembly::LoadWithPartialName
11346         * assembly.c/.h: new function that probes the GAC to load partial
11347         assembly names by Paolo Molaro.
11348         
11349 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11350
11351         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
11352         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
11353         (type_get_fully_qualified_name): Added PublicKeyToken when building a
11354         full type name.
11355
11356 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11357
11358         * appdomain.c: fixed check for 'neutral' culture and removed warning.
11359         * reflection.c: fix bug when parsing a full type name and Version is not
11360         the last thing in the string.
11361
11362 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
11363
11364         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
11365         crashes when it is freed.
11366
11367 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11368
11369         * assembly.c: print the compat warning to stderr.
11370
11371 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
11372
11373         * assembly.c (mono_assembly_load_references): Add a compatibility
11374         hack to run old applications that might be still referencing the
11375         3300-based assemblies, only do this for System.xxx.
11376
11377 2004-05-01  Jackson Harper  <jackson@ximian.com>
11378
11379         * appdomain.c: If the culture is neutral we set it to "".
11380         
11381 2004-04-29  Jackson Harper  <jackson@ximian.com>
11382
11383         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
11384
11385 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
11386  
11387         * string-icalls.c: added low overhead function for copying chars
11388         * icall.c: added needed icall for the above function
11389  
11390 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11391
11392         * icall.c: fix return value of get_global_assembly_cache.  Implemented
11393         Environment.GetLogicalDrives.
11394
11395 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
11396
11397         * rand.c: try and talk to egd or prngd
11398         for random bytes if opening devices fail.
11399
11400 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
11401
11402         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
11403         alignment for the type using the native alignment of its members 
11404         instead of using klass->min_align.
11405
11406         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
11407
11408 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11409
11410         * file-io.c:
11411         * socket-io.c: added check for sys/aio.h.
11412
11413 2004-04-28  Dick Porter  <dick@ximian.com>
11414
11415         * threads.c: Don't abort a thread thats already aborting, when
11416         terminating everything.
11417
11418 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11419
11420         * icall.c: added 2 new async calls for Socket.
11421
11422         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
11423         IO on *nix systems.
11424
11425         * threadpool.c: removed unused variable.
11426
11427 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
11428
11429         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
11430
11431 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11432
11433         * locales.c: put back string_invariant_tolower () and
11434         string_invariant_toupper ().
11435
11436 2004-04-26 David Waite <mass@akuma.org>
11437
11438         * file-io.h:
11439         * socket-io.h:
11440         * threads.h:
11441         * unicode.h: remove comma from end of enumeration declarations
11442
11443 2004-04-26 David Waite <mass@akuma.org>
11444
11445         * debug-mono-symfile.h:
11446         * decimal.c:
11447         * mono_debug.h:
11448         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
11449
11450
11451 2004-04-26  Jackson Harper  <jackson@ximian.com>
11452
11453         * appdomain.c: Increment version number.
11454         
11455 2004-04-26  Jackson Harper  <jackson@ximian.com>
11456
11457         * appdomain.c: Set assembly references public token value when
11458         PublicKeyToken is specified, not the hash_value. Free public token
11459         values when free assembly name data. Previously the public key
11460         token was hex decoded, however we are using hex encoded public key
11461         tokens, so this is not neccasary.
11462         * assembly.c: Lookup assemblies in the gac if their public token
11463         value is set. Add function to allow enabling user gac
11464         lookups. Specify whether or not the assembly was loaded from the
11465         GAC. Compare full assembly names when checking the cache for
11466         assemblies (Temporarily disabled see comment in code). Remove
11467         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
11468         specifies trace-loader they get extra info to stdout on the
11469         loading of assemblies.
11470         * image.h: Add a field for an assembly references public token
11471         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
11472         whether an assembly has been loaded from the GAC.
11473         * image.c: Remove a corlib -> mscorlib name mapping.
11474         * loader.h: Add function to enable/disable the user gac.
11475         * mono-config.c: Check if the usergac is enabled in the config
11476         file.
11477         * icall.c: New icall to determine whether or not an assembly has
11478         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
11479         * tabldefs.h: Add constant for assemblyref flag that specifies a
11480         full public key is used instead of a public token.
11481         * reflection.c: Remove mscorlib -> corlib mappings. Set
11482         PublicTokenValue instead of hash value. This value is a hex
11483         string so it does not need to be expanded.
11484
11485 2004-04-26  Martin Baulig  <martin@ximian.com>
11486
11487         * mono-debug-debugger.c (mono_debugger_initialize): Set
11488         `mono_debugger_initialized' before calling mono_debug_lock().
11489
11490 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
11491
11492         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
11493           InternalToUpper/InternalToLower.
11494         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
11495           removed invariant culture shortcut.  This is now done in managed code.
11496         * locales.c: (string_invariant_toupper/tolower) removed.
11497
11498 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11499
11500         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
11501         Added Poll internal call.
11502
11503         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
11504         call for Poll. Select was too heavy for polling a single socket.
11505
11506         * threadpool.[ch]: added mono_threadpool_cleanup.
11507         * threads.c: use it. Don't use Thread_Abort on windows.
11508
11509 2004-04-23  Martin Baulig  <martin@ximian.com>
11510
11511         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
11512
11513 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
11514
11515         * icall.c: Registred new icalls for key pair protection and added an
11516         icall for Environment.GetFolderPath on Windows.
11517         * security.c|h: Added new icalls for key pair protection.
11518
11519 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11520
11521         * socket-io.c: don't display the non-supported family warning for known
11522         families. Now this is not displayed on windows when checking support
11523         for IPv4/IPv6.
11524
11525 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11526
11527         * class.c: don't display the layout warning for static fields.
11528
11529 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
11530
11531         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
11532         * locales.c, locales.h: Added new icalls for culture-specific
11533         Char.ToLower and Char.ToUpper.
11534
11535 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11536
11537         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
11538         by David Waite.
11539
11540 2004-04-20  Martin Baulig  <martin@ximian.com>
11541
11542         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
11543         of the type name before passing it to mono_reflection_type_from_name().
11544
11545 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
11546
11547         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
11548         encodings here. Fixes #56965.
11549
11550 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
11551
11552         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11553         fix test on strstr result not that I can see anything that
11554         relies on the result.
11555
11556 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
11557
11558         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
11559         Fixes #57081.
11560
11561         * marshal.c (mono_marshal_get_string_encoding): New helper function.
11562
11563         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
11564         function to determine which marshalling to use for strings. Fixes
11565         #56965.
11566
11567         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
11568
11569         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
11570
11571 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
11572
11573         * icall.c: #include mono-config.h
11574
11575 2004-04-15  Jackson Harper  <jackson@ximian.com>
11576
11577         * culture-info-tables.h: Fix date formats for en-US culture.
11578         
11579 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
11580
11581         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
11582         ThreadPool.SetMinThreads.
11583         * threadpool.c: Implemented ThreadPool.GetMinThreads and
11584         ThreadPool.SetMinThreads.
11585
11586 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11587
11588         * mono-config.c: also load the .config file in the directory
11589         where the assembly was found.
11590
11591 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
11592
11593         * assembly.c: load per-assembly config files.
11594         * icall.c: decrapified code to get the config dir and moved to
11595         mono-config.c.
11596         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
11597         per-assembly config files. When doing a dll map lookup give precedence
11598         to the per-assembly data.
11599
11600 2004-04-14  Martin Baulig  <martin@ximian.com>
11601
11602         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
11603         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
11604         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
11605
11606         * mono-debugger-debugger.c: While the debugger is locked, remember
11607         whether the symbol tables have changes and send one single
11608         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
11609
11610 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
11611
11612         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
11613
11614         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
11615         function.
11616
11617         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
11618         account when marshalling string arrays. Fixes #56965.
11619
11620 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
11621
11622         * icall.c: Add new icalls mapping for security.
11623         * security.c|h: Add internal calls for WindowsIdentity,
11624         WindowsImpersonationContext and WindowsPrincipal.
11625
11626 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
11627
11628         * class.c: Added comment to ensure the System.MonoDummy class
11629         is removed when no longer necessary
11630
11631 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
11632
11633         * appdomain.c: Pass arguments to the bootstraping exceptions to
11634         minimize JITed methods at boot
11635
11636         * metadata.c (mono_exception_from_name_two_strings): Allow for the
11637         second string to be null.
11638
11639         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11640         Change the protocol to minimize the JIT methods at startup.  Now
11641         it Returns the internal codepage, if the value of "int_code_page"
11642         is 1 at entry, and we can not compute a suitable code page
11643         number, returns the code page as a string.
11644
11645 2004-04-13  Jackson Harper  <jackson@ximian.com>
11646
11647         * culture-info-tables.h: Fix number of decimal digits for all
11648         english locales.
11649
11650 2004-04-13  Jackson Harper  <jackson@ximian.com>
11651
11652         * icall.c: Clairfy out of sync error message. It is not always
11653         your corlib that is out of sync.
11654
11655 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
11656
11657         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
11658         properties when only the set accessor is overriden. Fixes #55874.
11659
11660 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
11661
11662         * assembly.c (mono_assembly_load_references): Make this thread safe.
11663         Fixes #56327.
11664
11665 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
11666
11667         * monosn.c: Add missing initialization calls.
11668
11669 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
11670
11671         * locales.c:
11672         ves_icall_System_Globalization_CultureInfo_construct_number_format
11673         Fix g_assert so it compiles on fussier compilers re int/ptr
11674         mismatch
11675
11676 2004-04-08  Dick Porter  <dick@ximian.com>
11677
11678         * socket-io.h:
11679         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
11680         53992.  Also rearrange the code so that the internal calls return
11681         an error value and exceptions are thrown from managed code.
11682
11683         * icall.c: Add type info to the socket icalls.
11684
11685 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11686
11687         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
11688         owes me a beer.
11689
11690 2004-04-07  Martin Baulig  <martin@ximian.com>
11691
11692         * class.c (mono_class_from_generic_parameter): Don't default
11693         `klass->parent' to `mono_defaults.object_type'.
11694
11695 2004-04-07  Martin Baulig  <martin@ximian.com>
11696
11697         * reflection.c (mono_reflection_initialize_generic_parameter): Set
11698         `param->pklass->reflection_info'.       
11699
11700 2004-04-07  Jackson Harper  <jackson@ximian.com>
11701
11702         * culture-info-tables.h: Fix date separator symbol.
11703         
11704 2004-04-07  Martin Baulig  <martin@ximian.com>
11705
11706         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
11707         from System.Type to System.MonoType.
11708
11709 2004-04-07  Martin Baulig  <martin@ximian.com>
11710
11711         * reflection.h
11712         (MonoReflectionGenericParam): Added `has_reference_type' and
11713         `has_value_type' fields.
11714
11715         * reflection.c (mono_image_get_generic_param_info): Encode the
11716         correct flags if we have the `class' or `struct' constraint.
11717
11718 2004-04-07  Martin Baulig  <martin@ximian.com>
11719
11720         * reflection.h
11721         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
11722
11723 2004-04-07  Jackson Harper  <jackson@ximian.com>
11724
11725         * appdomain.c: Revert extra patches, just wanted to bump the
11726         version number.
11727         
11728 2004-04-07  Jackson Harper  <jackson@ximian.com>
11729
11730         * Makefile.am: Add culture-info private headers.
11731         * icall.c: Add new icalls for contructing locales.
11732         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11733         * locales.h: Declare new culture info construction methods.
11734         * object.h: Add new fields used to avoid the CultureMap to
11735         MonoCultureInfo.
11736         * culture-info.h: Definition of structs used in the culture info
11737         tables.
11738         * culture-info-tables.h: Autogenerated tables that contain culture
11739         info data. This file was generated with the locale-builder tool.
11740         * appdomain.c: Incement corlib version number.
11741         
11742 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11743
11744         * appdomain.c: (mono_runtime_init) move mono_thread_init
11745         to before mono_object_new calls so critical sections
11746         are initialized before use.
11747
11748 2004-04-07  Martin Baulig  <martin@ximian.com>
11749
11750         * icall.c
11751         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11752         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11753         (ves_icall_MonoGenericParam_initialize): Removed.
11754         (monogenericparam_icalls): Removed.
11755         (generictypeparambuilder_icalls): Added new table for
11756         System.Reflection.Emit.GenericTypeParameterBuilder.
11757
11758         * reflection.c
11759         (mono_reflection_define_generic_parameter): Removed.
11760         (mono_reflection_initialize_generic_parameter): This is now called
11761         from GenericTypeParameterBuilder's .ctor.
11762
11763 2004-04-06  Martin Baulig  <martin@ximian.com>
11764
11765         * class.c (mono_class_init): Don't inflate nested classes in a
11766         generic instance.
11767         (mono_type_get_name_recurse): Include the generic arguments for
11768         generic instances and generic type declarations.
11769         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11770         (_mono_class_get_instantiation_name): Removed.
11771         (mono_class_create_generic): Always use `gklass->name' as our name.
11772
11773         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11774
11775         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11776         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11777         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11778         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11779         closed generic methods here.
11780
11781         * reflection.c
11782         (mono_reflection_generic_inst_get_nested_types): Removed.
11783         (inflate_mono_method): Copy the generic parameters from the
11784         MonoMethodHeader into out MonoGenericMethod.
11785
11786 2004-04-06  Martin Baulig  <martin@ximian.com>
11787
11788         * row-indexes.h
11789         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11790
11791         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11792
11793         * reflection.c (build_compressed_metadata): If we have any entries
11794         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11795         set the header version to 1.1.
11796
11797 2004-04-06  Martin Baulig  <martin@ximian.com>
11798
11799         * class.c (mono_class_init): If we're a generic instance,
11800         initialize our nested classes, too.
11801         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11802         suffix. 
11803
11804 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11805
11806         * process.c: quote the argument passed to the shell on windows.
11807
11808 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11809
11810         * threads.c (mono_alloc_special_static_data): Allow this to be
11811         called during startup.
11812
11813 2004-04-02  Martin Baulig  <martin@ximian.com>
11814
11815         * icall.c
11816         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11817
11818 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11819
11820         * icall.c: Fix build.
11821
11822 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11823
11824         * Makefile.am: Added security.c|h.
11825         * icall.c: Added icall for get_UserName;
11826         * security.c: New file for security related icalls. Added function
11827         get_UserName for System.Environment (fix #56144).
11828         * security.h: New. Header file for security.c
11829
11830 2004-04-02  Dick Porter  <dick@ximian.com>
11831
11832         * icall.c: Deleted the icalls that were obsoleted some time ago
11833         by the ICU string code, and which were mixed into the icall
11834         rearranging.  Fixes bug 55969.
11835
11836         * string-icalls.h: 
11837         * string-icalls.c: Deleted the code that those icalls reference.
11838
11839 2004-04-01  Martin Baulig  <martin@ximian.com>
11840
11841         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11842
11843         * class.c (mono_class_from_generic_parameter): Don't set 
11844         TYPE_ATTRIBUTE_INTERFACE.
11845         (my_mono_class_from_generic_parameter): Likewise.
11846
11847 2004-04-01  Martin Baulig  <martin@ximian.com>
11848
11849         * loader.c (find_method): Added an optional `MonoClass *ic'
11850         argument to search in a specific interface.
11851         (mono_get_method_constrained): New public function.
11852
11853 2004-04-01  Martin Baulig  <martin@ximian.com>
11854
11855         * reflection.c (mono_image_get_generic_field_token): Use the
11856         `handleref' cache here.
11857
11858 2004-04-01  Martin Baulig  <martin@ximian.com>
11859
11860         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11861
11862         * reflection.c (create_generic_typespec): Use the `typespec' hash
11863         here, not the `typeref' one.    
11864
11865 2004-04-01  Martin Baulig  <martin@ximian.com>
11866
11867         * class.c (mono_class_inflate_generic_type): Moved the
11868         functionality into a new static inflate_generic_type() which
11869         returns NULL if it didn't do anything.  Only increment the
11870         `mono_stats.inflated_type_count' if we actually inflated
11871         something.
11872         (mono_class_get_full): Check the classes type to see whether we
11873         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11874
11875 2004-04-01  Jackson Harper  <jackson@ximian.com>
11876
11877         * reflection.c: Set culture for assembly references.
11878         
11879 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11880
11881         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11882
11883 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11884
11885         * assembly.c:
11886         (do_mono_assembly_open): the critical section also covers
11887         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11888
11889 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11890
11891         * threads.c:
11892         (mono_manage_threads): abort the background threads when finishing.
11893         Fixes bug #47232.
11894
11895 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11896
11897         * gc.c: only close the done_event handle if there was no timeout.
11898         C-ified comments.
11899
11900 2004-03-30  Martin Baulig  <martin@ximian.com>
11901
11902         * icall.c (icall_entries): It's called "System.Activator", not
11903         "System.Activation".    
11904
11905 2004-03-30  Martin Baulig  <martin@ximian.com>
11906
11907         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
11908         (mono_class_create_from_typespec): Likewise.
11909
11910 2004-03-30  Martin Baulig  <martin@ximian.com>
11911
11912         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
11913         `has_ctor_constraint' and `initialized'.
11914
11915 2004-03-30  Martin Baulig  <martin@ximian.com>
11916
11917         * reflection.c (encode_new_constraint): New static function to add
11918         the constructor constraint attribute to a type parameter.
11919         (encode_constraints): Call encode_new_constraint() if necessary.
11920
11921         * reflection.h
11922         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
11923
11924         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
11925         
11926 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
11927
11928         * reflection.c, icall.c: add support for pinning variables. 
11929
11930 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
11931
11932         * marshal.c (mono_marshal_get_managed_wrapper):
11933         init bool local with zero rather than null.
11934
11935 2004-03-29  Martin Baulig  <martin@ximian.com>
11936
11937         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
11938         the "official" behavior here.
11939         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
11940
11941 2004-03-29  Martin Baulig  <martin@ximian.com>
11942
11943         * icall.c: Reflect latest API changes.
11944
11945 2004-03-29  Martin Baulig  <martin@ximian.com>
11946
11947         * loader.c (mono_get_method_from_token): Also call
11948         mono_metadata_load_generic_params () for abstract and interface
11949         methods; replace the type arguments in the method signature with
11950         the ones which are loaded from the metadata.
11951
11952 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
11953
11954         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
11955         of the lock is not the current thread. MS.NET don't do it, in spite of
11956         what the documentation says. See bug #56157.
11957
11958 2004-03-28  Martin Baulig  <martin@ximian.com>
11959
11960         * class.c (mono_class_init): Don't call init_properties() and
11961         init_events() for generic instances; set `prop->parent' when
11962         inflating properties.
11963
11964         * reflection.c (mono_generic_inst_get_object): Call
11965         `mono_class_init (ginst->klass)'.
11966         (mono_type_get_object): Only create a MonoGenericInst if your
11967         generic type is a TypeBuilder.
11968         (do_mono_reflection_bind_generic_parameters): Only set
11969         `ginst->is_dynamic' if our generic type is a TypeBuilder.
11970
11971 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
11972
11973         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
11974         Fixes #56091.
11975
11976 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11977
11978         * icall.c: added Kill_internal icall.
11979         * process.[ch]: added Kill_internal icall.
11980
11981 2004-03-25  Martin Baulig  <martin@ximian.com>
11982
11983         * class.h (MonoStats): Added `generic_instance_count',
11984         `inflated_method_count', `inflated_type_count' and
11985         `generics_metadata_size'.       
11986
11987 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11988
11989         * reflection.c: no warnings now.
11990
11991 2004-03-25  Martin Baulig  <martin@ximian.com>
11992
11993         * class.c (mono_class_get_full): New public function; does a
11994         mono_class_get(), but also takes a `MonoGenericContext *'.
11995
11996         * loader.c (mono_field_from_memberref): Renamed to
11997         `field_from_memberref', made static and added `MonoGenericContext *'
11998         argument.
11999         (mono_field_from_token): Added `MonoGenericInst *' argument.
12000         (method_from_memberef): Likewise.
12001         (mono_get_method_from_token): Likewise.
12002         (mono_get_method_full): New public function; does a
12003         mono_get_method(), but also takes a `MonoGenericContext *'.
12004
12005         * verify.c (mono_method_verify): Get the method's generic context
12006         and pass it to mono_field_from_token(), mono_get_method_full() and
12007         mono_class_get_full().
12008
12009 2004-03-25  Martin Baulig  <martin@ximian.com>
12010
12011         * class.c (mono_class_inflate_generic_type): Take a
12012         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
12013         `MonoGenericMethod *'.
12014
12015 2004-03-25  Martin Baulig  <martin@ximian.com>
12016
12017         * loader.h (MonoMethodInflated): Store the MonoGenericContext
12018         instead of the MonoGenericMethod here.
12019
12020 2004-03-25  Martin Baulig  <martin@ximian.com>
12021
12022         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
12023         each time we create a new MonoGenericInst, we also create a new
12024         context which points back to us.
12025
12026         * class.c (inflate_method): Use `ginst->context' instead of
12027         creating a new context.
12028
12029         * loader.c (method_from_memberref): Use
12030         `klass->generic_inst->context' instead of creating a new context.
12031
12032 2004-03-25  Martin Baulig  <martin@ximian.com>
12033
12034         * class.h (MonoGenericContext): New struct.
12035         (MonoGenericMethod): Removed `generic_inst'.
12036
12037         * class.c (mono_class_inflate_generic_method): Take a
12038         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
12039
12040 2004-03-25  Martin Baulig  <martin@ximian.com>
12041
12042         * loader.h (MonoMethodInflated): New typedef.
12043
12044         * metadata.h (MonoMethodSignature): Removed `gen_method', make
12045         `generic_param_count' consume just 30 bits, added `is_inflated'
12046         and `has_type_parameters' flags (one bit each).
12047
12048         * class.c (mono_class_inflate_generic_method): Create a
12049         MonoMethodInflated instead of a MonoMethodNormal and set
12050         `is_inflated' in the method signature.
12051
12052         * class.h (MonoGenericMethod): Removed `generic_method'.
12053
12054 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
12055
12056         * image.c: Make sure the name of a MonoImage is always an absolute path.
12057           This fixes bug #54415.
12058
12059 2004-03-24  Martin Baulig  <martin@ximian.com>
12060
12061         * class.c (mono_class_setup_vtable): If we're a generic instance,
12062         use our generic type's vtable size.
12063
12064 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
12065
12066         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
12067         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
12068         problems.
12069
12070 2004-03-23  Martin Baulig  <martin@ximian.com>
12071
12072         * class.h (MonoDynamicGenericInst): Added `int count_events' and
12073         `MonoEvent *events'.
12074
12075         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
12076         (typebuilder_icalls): Added "get_event_info"; calls
12077         mono_reflection_event_builder_get_event_info(). 
12078
12079         * reflection.c (mono_reflection_generic_inst_initialize): Added
12080         `MonoArray *events'.
12081         (mono_reflection_event_builder_get_event_info): New function.
12082
12083 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
12084
12085         * object.h: add mono_type_initialization_init
12086
12087         * object.c (mono_runtime_class_init): 
12088         implement class constructor synchronization rules
12089         to cope with threading issues.  
12090         add mono_type_initialization_init
12091
12092         * appdomain.c (mono_runtime_init): call 
12093         mono_type_initialization_init
12094
12095         * class.h: removing initializing field from MonoVTable
12096
12097 2004-03-23  Martin Baulig  <martin@ximian.com>
12098
12099         * class.c (my_mono_class_from_generic_parameter): Use
12100         `param->name' if it's not NULL. 
12101
12102 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
12103
12104         * class.c: do not insert non-virtual methods in the vtable.
12105         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
12106         that means the method is non-virtual. This never would have
12107         happened before.
12108
12109 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
12110
12111         * profiler.c: Added lock for accessing coverage_hash.
12112
12113 2004-03-22  Martin Baulig  <martin@ximian.com>
12114
12115         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
12116         `method->method->signature->generic_param_count != 0' to make it
12117         work for interface methods.
12118
12119 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12120
12121         * process.c: quote the string passed to the shell using g_shell_quote.
12122
12123 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12124
12125         * threads.c:
12126         (mono_threads_manage): don't remove the finalizer thread and self
12127         from the threads hash table so that mono_thread_manage can be called
12128         more than once.
12129
12130 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12131
12132         * process.c: quote the arguments when UseShellExecute is true. Fixes
12133         bug #55790.
12134
12135 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12136
12137         * threads.c: set mono_thread_detach as a cleanup routine for every
12138         thread. This way it's always executed upon thread termination, either
12139         aborted or finished normally. No more xsp hangs!
12140
12141 2004-03-17  Martin Baulig  <martin@ximian.com>
12142
12143         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
12144         `int count_nested' and a `MonoType **nested'.
12145
12146         * reflection.c (mono_reflection_bind_generic_parameters): Moved
12147         most of the functionality into a new static
12148         do_mono_reflection_bind_generic_parameters() and don't take a
12149         `MonoType *nested_in' argument any more.  Don't compute nested
12150         types here.
12151         (mono_reflection_generic_inst_get_nested_types): New public method
12152         to get nested types.
12153
12154         * class.c (mono_class_create_generic): Set `klass->nested_in' if
12155         we're a nested class.
12156
12157         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
12158         mono_reflection_generic_inst_get_nested_types() to compute the
12159         nested types.
12160
12161 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
12162
12163         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
12164         descriptive error message under windows.
12165         
12166 2004-03-17  Martin Baulig  <martin@ximian.com>
12167
12168         * class.c (dup_type): Added `const MonoType *original' argument;
12169         copy the attrs from the original type.
12170
12171 2004-03-17  Martin Baulig  <martin@ximian.com>
12172
12173         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
12174         `m->generic_inst_cache' here.
12175
12176 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
12177
12178         * exception.h exception.c: Add stack_overflow_exception.
12179
12180 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12181
12182         * threadpool.c:
12183         (overlapped_callback): call SetEvent *after* invoking the callback.
12184         No need to call CloseHandle.
12185
12186 2004-03-16  Martin Baulig  <martin@ximian.com>
12187
12188         * reflection.c (mono_image_get_fieldref_token): Take a
12189         `MonoReflectionField *' instead of a `MonoClassField *' and a
12190         `MonoClass *'; store the `MonoReflectionField *' in the hash.
12191
12192 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12193
12194         * appdomain.c: don't add the culture to the filename we're looking for
12195         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
12196
12197 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12198
12199         * locales.c: don't ignore symbols when doing case insensitive compares.
12200         Thanks Dick! Fixes bug #54046.
12201
12202         * threads.c: surround 'threads' usage with enter/leave in
12203         mono_thread_manage.
12204
12205 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
12206
12207         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
12208         implicitly marshalled as [Out]. Fixes #55450.
12209
12210         (mono_marshal_get_runtime_invoke): Zero out the result if there is
12211         an exception.
12212
12213 2004-03-16  Martin Baulig  <martin@ximian.com>
12214
12215         * class.c (mono_class_from_generic_parameter): Use the actual
12216         parameter name. 
12217
12218 2004-03-16  Martin Baulig  <martin@ximian.com>
12219
12220         * reflection.c (type_get_signature_size): New static function.
12221         Compues the size of the type in a method signature.
12222         (method_get_signature_size): New static function; calls
12223         type_get_signature_size() to compute the actual size of the
12224         method's signature.
12225         (method_encode_signature): Use method_get_signature_size() to get
12226         the signature's size rather than using `nparams * 10'.
12227
12228 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12229
12230         * file-io.h: define here WapiOverlapped on windows. I don't want the
12231         regular OVERLAPPED one.
12232
12233         * file-io.c:
12234         * threadpool.c: somehow, BindIoCompletionCallback is not found.
12235         Disabling AIO on windows.
12236
12237 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12238
12239         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
12240         bug #55385.
12241
12242 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12243
12244         * appdomain.c: upgraded corlib version.
12245
12246         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
12247         and BeginWrite. Allow opening files for asynchrnous operations.
12248
12249         * file-io.h: new struct that maps FileStreamAsyncResult.
12250         * icall.c: added new icalls.
12251         * process.[ch]: support setting child process environment variables
12252         and use the SHELL or COMSPEC when UseShellExecute is true.
12253
12254         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
12255         callback for async. IO is here and also BindHandle.
12256
12257         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
12258         from here.
12259
12260 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
12261
12262         * reflection.c (create_custom_attr): Allow len == 0.
12263
12264         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
12265         computation on big-endian machines.
12266
12267 2004-03-13  Martin Baulig  <martin@ximian.com>
12268
12269         * class.h (MonoGenericInst): Added `int count_ifaces'.
12270
12271         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
12272         `ginst->count_ifaces' instead `klass->interface_count' since we
12273         may get called before the vtable is created.
12274
12275         * loader.c (mono_method_get_param_names): If we're a generic
12276         instance, return and don't initialize the class.
12277
12278         * reflection.c (mono_reflection_setup_generic_class): Don't call
12279         ensure_runtime_vtable().
12280         (mono_reflection_bind_generic_parameters): Set
12281         `ginst->count_ifaces'.
12282
12283 2004-03-11  Jackson Harper <jackson@ximian.com>
12284
12285         * icall.c:
12286         * unicode.c:
12287         * unicode.h: Remove unused System.Char icalls.
12288         
12289 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
12290
12291         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
12292         code when we P/Invoke the first library in Windows.Forms, instead
12293         of when we first open the assembly.
12294
12295         * assembly.c: Drop the lookup from here.
12296
12297 2004-03-10  Martin Baulig  <martin@ximian.com>
12298
12299         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
12300         class for properties, fields and events.  Finally fixes #54945.
12301
12302 2004-03-10  Martin Baulig  <martin@ximian.com>
12303
12304         * metadata.c (mono_metadata_class_equal): New static function;
12305         checks whether two generic instances or two generic parameters are
12306         equal.
12307         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
12308         compare classes.        
12309
12310 2004-03-10  Martin Baulig  <martin@ximian.com>
12311
12312         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
12313
12314         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
12315         argument and write it into the `reflection_info' field.
12316
12317         * icall.c
12318         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
12319         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
12320
12321 2004-03-09  Jackson Harper  <jackson@ximian.com>
12322
12323         * char-conversions.h: use 8 bits for numeric data its all we need
12324         * icall.c: numeric data is only 8 bits now.
12325
12326 2004-03-09  Martin Baulig  <martin@ximian.com>
12327
12328         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
12329
12330         * class.c (init_properties, init_events): Initialize the new
12331         `parent' field.
12332
12333         * reflection.c (typebuilder_setup_properties): Likewise.
12334         (typebuilder_setup_events): Likewise.
12335
12336         * reflection.h (MonoEventInfo): Replaced `parent with
12337         `declaring_type' and `reflected_type'.
12338
12339         * icall.c (ves_icall_get_property_info): Distinguish between
12340         declaring and reflected type.
12341         (ves_icall_get_event_info): Likewise.
12342
12343 2004-03-09  Martin Baulig  <martin@ximian.com>
12344
12345         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
12346         (ves_icall_Type_GetField): Correctly set field->klass.
12347
12348 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
12349
12350         * loader.h: Fix warning.
12351
12352 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
12353
12354         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
12355         library routine if present.  Notice that it will still continue
12356         executing even if its missing, for those working on the Gtk#
12357         edition of Windows.Forms.
12358
12359         * assembly.c (do_mono_assembly_open): If loading the
12360         System.Windows.Forms call mono_loader_wini_init.
12361
12362 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
12363
12364         * class.h: Added MonoRemoteClass struct.
12365         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
12366         function for MonoStrings.
12367         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
12368         Added internal call for getting the proxy type.
12369         * marshal.c: Get the type of transparent proxies from its remote_class.
12370         Added methods that generate the IL for type checks and casts:
12371         mono_marshal_get_isinst, mono_marshal_get_castclass, 
12372         mono_marshal_get_proxy_cancast.
12373         * marshal.h: Declaration of the previous new methods.
12374         * object.c: Added new moethods for creating and updating MonoRemoteClass
12375         instances: mono_remote_class, mono_upgrade_remote_class, 
12376         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
12377         * verify.c: FIx transparent_proxy_fields layout.
12378         * appdomain.c: Bump corlib version.
12379
12380 2004-03-04  Jackson Harper  <jackson@ximian.com>
12381
12382         * icall.c: Add icall to access char conversion tables.
12383         * char-conversions.h: Character conversion tables.
12384         * Makefile.am: Add char-conversions.h private header file.
12385         
12386 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
12387
12388         * appdomain.c (unload_thread_main): Increase unloading timeout to
12389         10 sec as a temporary workaround for Nant problems.
12390
12391 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
12392
12393         * gc.c: Add checks for GC_enable and GC_disable.
12394
12395         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
12396         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
12397         (bug #54988).
12398         
12399 2004-02-27  Martin Baulig  <martin@ximian.com>
12400
12401         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12402         `MonoReflectionType *' instead of a `MonoType *'.
12403
12404 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
12405
12406         * gc.c (run_finalize): Avoid finalizing the object representing the
12407         finalizer thread.
12408         (finalizer_thread): Fix warning.
12409
12410 2004-02-25  Martin Baulig  <martin@ximian.com>
12411
12412         * class.c (_mono_class_get_instantiation_name): Added `int offset'
12413         argument for nested types.
12414         (mono_class_create_generic): Added support for nested generictypes.
12415
12416         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
12417         `GList *nested'.
12418
12419         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
12420
12421         * reflection.c (method_encode_signature): Increase the minimum
12422         value of `size' from 10 to 11.
12423         (mono_reflection_bind_generic_parameters): Take `int type_argc'
12424         and `MonoType **types' arguments instead of the `MonoArray
12425         *types'; added `MonoType *nested_in'.  Recursively instantiate
12426         nested classes. 
12427
12428 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
12429
12430         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
12431         stack_overflow_ex members which are used by exception handling.
12432
12433         * appdomain.c (mono_runtime_init): Initialize the new members.
12434
12435         * gc.c (mono_gc_enable): New helper function.
12436         * gc.c (mono_gc_disable): New helper function.
12437
12438 2004-02-23  Martin Baulig  <martin@ximian.com>
12439
12440         * icall.c: I must have been really stupid - make it actually work
12441         this time ;-)
12442
12443 2004-02-23  Martin Baulig  <martin@ximian.com>
12444
12445         * loader.c (method_from_memberref): Only inflate the method if
12446         it's in another klass.
12447
12448 2004-02-23  Martin Baulig  <martin@ximian.com>
12449
12450         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
12451         (mono_class_init): If we're a generic instance and an interface,
12452         compute `class->interface_id'; also create `class->interfaces'
12453         here and inflate them.
12454
12455         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
12456         `ginst->is_open'.
12457         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
12458
12459         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
12460
12461 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
12462
12463         * reflection.c (method_encode_code): Improved the error message
12464         generated by the exception.
12465
12466 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12467
12468         * icall.c: Martin did not do what he said in the ChangeLog for
12469         2004-02-18, but put back the changes for properties and events.
12470         Commenting those changes out again and adding comment to bug #54518.
12471         
12472         * process.c: removed warning.
12473
12474 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
12475
12476         * marshal.c (emit_struct_conv): Print an error message instead of
12477         asserting when a type does not have the StructLayout attribute.
12478
12479 2004-02-20  Martin Baulig  <martin@ximian.com>
12480
12481         * reflection.c (mono_type_get_object): Also use the cache for
12482         generic instances.
12483         (mono_reflection_bind_generic_parameters): Always compute
12484         `ginst->ifaces'.        
12485
12486 2004-02-20  Martin Baulig  <martin@ximian.com>
12487
12488         * class.h (MonoGenericMethod): Removed `klass'.
12489
12490         * class.c (mono_class_inflate_generic_method): Added `MonoClass
12491         *klass' argument.
12492
12493 2004-02-20  Martin Baulig  <martin@ximian.com>
12494
12495         * reflection.c (method_encode_methodspec): Actually use the
12496         uninflated signature for the memberref.
12497
12498 2004-02-20  Martin Baulig  <martin@ximian.com>
12499
12500         * class.h (MonoGenericMethod): Removed `declaring'.
12501
12502         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
12503         is NULL, compute it here.
12504
12505 2004-02-20  Martin Baulig  <martin@ximian.com>
12506
12507         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
12508
12509         * metadata.c (mono_metadata_generic_inst_hash): New method.
12510         (mono_metadata_generic_inst_equal): New method.
12511
12512         * reflection.c (mono_reflection_bind_generic_parameters): Use the
12513         `klass->image->generic_inst_cache' cache to avoid creating
12514         duplicate MonoGenericInst's.
12515
12516         * class.c (mono_class_inflate_generic_type): Use the cache.
12517
12518 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12519
12520         * object.c: fixed gc descriptor calculation for embedded valuetypes.
12521
12522 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12523
12524         * icall.c: added Socket.WSAIoctl icall.
12525
12526         * socket-io.[ch]: implemented
12527         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
12528
12529 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
12530
12531         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
12532
12533 2004-02-18  Urs C Muff  <umuff@quark.com>
12534
12535         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
12536         this work on PPC and other big-endian architectures.
12537
12538         * debug-mono-symfile.h: Prepended the names of all the `guint32'
12539         fields with an underscore to make sure they're only accessed by
12540         the read32() macro.
12541
12542 2004-02-18  Martin Baulig  <martin@ximian.com>
12543
12544         * icall.c: Put the klass->refclass changes back for methods and
12545         fields, but not for properties and events.  We're currently not
12546         distinguishing between DeclaringType and ReflectedType for
12547         properties and events, that's what caused the regressions.
12548
12549 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12550
12551         * object.c:
12552         (mono_async_result_new): the handle can be NULL.
12553
12554         * threadpool.c: Use an event instead of a semaphore, don't initialize
12555         it until needed. This saves quite a few semaphores from being created
12556         when using the threadpool.
12557
12558 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
12559
12560         * object.c (mono_string_is_interned_lookup): Fix interning of long
12561         strings. Fixes #54473.
12562
12563         * domain.c (ldstr_equal): Optimize if the two strings are equal.
12564
12565         * icall.c: Revert the klass->refclass changes since they introduce
12566         regressions (bug #54518).
12567
12568 2004-02-18  Martin Baulig  <martin@ximian.com>
12569
12570         * class.c (mono_class_init): If we're a generic instance and don't
12571         come from a TypeBuilder, inflate our members here.
12572         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
12573         (mono_class_create_generic): New public method.
12574         (mono_class_initialize_generic): Removed.
12575         (get_instantiation_name): Renamed to
12576         _mono_class_get_instantiation_name() and made it public.
12577
12578 2004-02-18  Martin Baulig  <martin@ximian.com>
12579
12580         * class.c (mono_class_inflate_generic_type): Clear the new
12581         instance's `nginst->klass' when inflating a generic instance.
12582         (mono_class_is_subclass_of): Added (basic) support for generic
12583         instances.
12584
12585 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
12586
12587         * appdomain.h, domain.c: use a MonoCodeManager instead of a
12588         MonoMempool to hold compiled native code.
12589
12590 2004-02-17  Martin Baulig  <martin@ximian.com>
12591
12592         * class.h (MonoDynamicGenericInst): Added `count_properties' and
12593         `properties'.
12594
12595         * reflection.c (mono_reflection_generic_inst_initialize): Added
12596         `MonoArray *properties' argument.
12597
12598         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
12599
12600 2004-02-17  Martin Baulig  <martin@ximian.com>
12601
12602         * icall.c (ves_icall_Type_GetFields): Renamed to
12603         ves_icall_Type_GetFields_internal() and added a
12604         `MonoReflectionType *rtype' argument; pass it to
12605         mono_field_get_object() to set the field's "reflected" type.
12606         (ves_icall_Type_GetConstructors): Likewise.
12607         (ves_icall_Type_GetEvents): Likewise.
12608         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
12609         argument; pass it to mono_method_get_object() to set the method's
12610         "reflected" type.       
12611
12612 2004-02-17  Martin Baulig  <martin@ximian.com>
12613
12614         * class.h (MonoDynamicGenericInst): New type.
12615         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
12616
12617         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
12618         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
12619         (ves_icall_MonoGenericInst_GetFields): New interncall.
12620
12621         * class.c (mono_class_from_generic): Don't call
12622         mono_class_initialize_generic() if this is a dynamic instance;
12623         ie. it's being created from a TypeBuilder.
12624         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
12625         `class->byval_arg.type'.
12626
12627         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
12628         to `inflate_method' and made static.
12629         (mono_reflection_inflate_field): Removed.
12630         (mono_reflection_generic_inst_initialize): New public method.
12631
12632         * reflection.h (MonoReflectionGenericInst): Removed `methods',
12633         `ctors' and `fields'; added `initialized'.
12634
12635 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
12636
12637         * debug-helpers.c (mono_method_full_name): Fix output for empty
12638         namespaces.
12639
12640 2004-02-12  Martin Baulig  <martin@ximian.com>
12641
12642         * class.h (MonoClassField): Added `MonoType *generic_type'.
12643
12644         * reflection.c (mono_image_get_fieldref_token): Added support for
12645         instantiated generic types.
12646         (field_encode_inflated_field): Removed.
12647         (mono_image_get_inflated_field_token): Removed.
12648         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
12649
12650         * reflection.h (MonoReflectionInflatedField): Removed.
12651
12652 2004-02-12  Martin Baulig  <martin@ximian.com>
12653
12654         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
12655         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
12656
12657         * reflection.c (mono_image_get_methodspec_token): Take a
12658         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
12659         (mono_image_create_token): Check whether we have a
12660         `method->signature->gen_method' and call
12661         mono_image_get_methodspec_token() if appropriate.
12662         (inflated_method_get_object): Removed.
12663         (mono_reflection_bind_generic_method_parameters): Return a
12664         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
12665         (mono_reflection_inflate_method_or_ctor): Likewise.
12666
12667         * reflection.h (MonoReflectionInflatedMethod): Removed.
12668
12669 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
12670
12671         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
12672         for custom valuetype marshalling.
12673
12674         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
12675
12676 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12677
12678         * icall.c: fixed WSAGetLastError_internal name.
12679
12680 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
12681
12682         * threads.c (mono_thread_attach): Allow this to be called multiple
12683         times for a thread.
12684         
12685         * threads.c (build_wait_tids): Do not wait for ourselves.
12686
12687         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
12688         appdomain list is empty.
12689
12690         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
12691         memory returned by mono_string_builder_to_utf16, since it points into
12692         managed memory. Thanks to Bernie Solomon for noticing this.
12693
12694         * icall.c: Add AppDomainSetup icalls.
12695
12696         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
12697
12698         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
12699         types.
12700
12701         * reflection.c (reflection_methodbuilder_to_mono_method): Save
12702         custom attributes to the method_aux struct. Also fix array indexes etc.
12703
12704         * loader.c (mono_method_get_param_names): Make dynamic case work again.
12705         
12706 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
12707
12708         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
12709         (both static and runtime) and reduce startup time.
12710
12711 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
12712
12713         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
12714         AsAny marshalling conversion instead of crashing.
12715
12716         * marshal.c: Fix warnings.
12717
12718 2004-02-09  Martin Baulig  <martin@ximian.com>
12719
12720         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
12721
12722         * reflection.h (MonoReflectionInflatedMethod): Removed the
12723         `declaring' field, it's now in the unmanaged MonoGenericMethod.
12724
12725         * reflection.c (method_encode_methodspec): Removed the `method'
12726         argument; we get it from `gmethod->declaring'.
12727         (inflated_method_get_object): Removed the `declaring' argument.
12728
12729 2004-02-09  Martin Baulig  <martin@ximian.com>
12730
12731         * class.h (MonoGenericMethod): New type.
12732         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12733         `generic_method'.
12734
12735         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12736         a `MonoGenericMethod *gen_method' one.
12737
12738         * class.c (mono_class_inflate_generic_type): Take an additional
12739         `MonoGenericMethod * argument.  This is only non-NULL if we're
12740         inflating types for a generic method.   
12741         (mono_class_inflate_generic_signature): Renamed to
12742         inflate_generic_signature() and made static; take a
12743         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12744         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12745         instead of a `MonoGenericInst *' one.
12746         (mono_class_inflate_generic_method): Likewise.
12747
12748         * reflection.c (encode_generic_method_sig): Take a
12749         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12750         (method_encode_methodspec): Likewise.
12751         (inflated_method_get_object): Likewise. 
12752
12753         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12754         field with a `MonoGenericMethod *gmethod' one.  
12755
12756 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12757
12758         * class.h (mono_class_has_parent): add parens to expansion
12759         so you can ! this.
12760
12761 2004-02-08  Martin Baulig  <martin@ximian.com>
12762
12763         * image.h (MonoImage): Removed `generics_cache'.
12764
12765         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12766         instead of a `MonoType *' argument; removed the `inflate_methods'
12767         argument.  Don't inflate methods here.
12768
12769         * loader.c (find_method): If it's a generic instance, call
12770         mono_class_init() on the `sclass->generic_inst->generic_type'.
12771
12772         * metadata.c (mono_type_size): Make this work on uninitialized
12773         generic instances; call it on the `ginst->generic_type's class.
12774
12775         * reflection.c (mono_reflection_bind_generic_parameters): Call
12776         mono_class_from_generic() to create the `ginst->klass'.
12777
12778 2004-02-08  Martin Baulig  <martin@ximian.com>
12779
12780         * class.h (MonoClass): Changed type of `generic_inst' from
12781         `MonoType *' to `MonoGenericInst *'.
12782
12783 2004-02-08  Martin Baulig  <martin@ximian.com>
12784
12785         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12786         mono_type_get_object(), this is now creating a `MonoGenericInst'
12787         for MONO_TYPE_GENERICINST.
12788         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12789         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12790
12791         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12792         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12793         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12794         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12795         and reflected type.
12796
12797         * reflection.h (MonoReflectionInflatedMethod): Removed
12798         `declaring_type' and `reflected_type'.
12799
12800 2004-02-08  Martin Baulig  <martin@ximian.com>
12801
12802         * class.h (MonoGenericInst): Added `MonoType *parent' and
12803         `MonoType **ifaces'.
12804
12805         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12806         `parent' and `interfaces'.
12807
12808         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12809         `MonoType *' argument and return a `MonoType *'.
12810
12811         * icall.c
12812         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12813         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12814
12815 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12816
12817         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12818         valuetype marshalling.
12819
12820 2004-02-06  Martin Baulig  <martin@ximian.com>
12821
12822         * class.c
12823         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12824         (my_mono_class_from_generic_parameter): Likewise.
12825
12826 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12827
12828         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12829         contents of the symbol files lazily.
12830
12831         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12832
12833         * threads.h threads.c icall.c: New icalls for getting and setting the
12834         threads name.
12835
12836 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12837
12838         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12839         Raise an exception when the domain is not found.
12840
12841 2004-02-03  Martin Baulig  <martin@ximian.com>
12842
12843         * reflection.c (mono_image_get_methodspec_token): Use the
12844         uninflated signature; fixes gen-33.
12845
12846 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12847
12848         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12849         the finalizer code can use thread functionality.
12850
12851         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12852         the finalizer thread.
12853
12854         * threads.c: Make some functions more robust.
12855
12856         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12857
12858         * metadata.h: Add new marshalling conventions.
12859
12860         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12861         stringbuilder marshalling. Fixes #53700.
12862
12863         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12864
12865         * reflection.c (mono_image_get_type_info): Save declarative security
12866         info.
12867
12868         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12869         unmanaged fields as well.
12870
12871         * appdomain.c: Bump corlib version.
12872
12873 2004-02-01  Martin Baulig  <martin@ximian.com>
12874
12875         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12876         method type arguments.  
12877
12878 2004-01-30  Duncan Mak  <duncan@ximian.com>
12879
12880         * marshal.h: Add prototype for
12881         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12882         and
12883         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12884         fix the build.
12885
12886 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12887
12888         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12889         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12890
12891 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12892
12893         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12894         custom marshalling of valuetypes.
12895
12896         * marshal.c: Fix some warnings.
12897
12898 2004-01-29  Martin Baulig  <martin@ximian.com>
12899
12900         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
12901         for generic method parameters.
12902
12903         * reflection.c (method_encode_methodspec): Write the uninflated
12904         signature into the methodspec table.
12905         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
12906         is always the uninflated method.
12907         (reflection_methodbuilder_to_mono_method): Copy the generic
12908         parameters from the MethodBuilder into `header->gen_params'.
12909
12910 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12911
12912         * class.c (mono_class_from_generic_parameter): Fix warning.
12913
12914 2004-01-27  Martin Baulig  <martin@ximian.com>
12915
12916         * class.c (mono_class_from_generic_parameter): Don't create
12917         `klass->methods' here.  
12918
12919 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
12920
12921         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
12922         extension since it does not work with libraries named lib<FOO>.dll.so.
12923
12924 2004-01-25  Martin Baulig  <martin@ximian.com>
12925
12926         * class.c (mono_class_inflate_generic_type): Added support for
12927         MONO_TYPE_GENERICINST.
12928
12929         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
12930         inflate methods on open constructed types.      
12931
12932 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12933
12934         * object.c: fire ProcessExit event in the root AppDomain after running
12935         Main. Fixes bug #53299.
12936
12937 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
12938
12939         * socket-io.c: include the new socket-wrappers.h header.
12940         Use the wrappers instead of the unix socket functions to make the code
12941         more clear.
12942
12943 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
12944
12945         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
12946
12947         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12948         Fixes #22532.
12949
12950 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
12951
12952         * reflection.c (mono_image_create_pefile): Handle the case when the
12953         entry point is not a MethodBuilder.
12954
12955         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12956         field to ReflectionMethod since it is not allways a builder.
12957
12958         * reflection.c (type_get_fully_qualified_name): New helper function to
12959         return the fully qualified name of a type.
12960
12961         * reflection.c (encode_marshal_blob): Always emit the fully qualified
12962         type name for custom marshallers.
12963
12964         * reflection.c (mono_marshal_spec_from_builder): Ditto.
12965
12966         * class.c (mono_class_setup_vtable): If a parent class already 
12967         implements an interface, use the implementing methods from that class.
12968         Fixes #53148.
12969
12970 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12971
12972         * threadpool.c: just return instead of ExitThread to allow for thread
12973         clean up earlier.
12974
12975 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
12976
12977         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
12978         when closing resource modules.
12979
12980         * reflection.c (mono_image_create_pefile): Handle the case when the
12981         entry point is not a MethodBuilder.
12982
12983         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12984         field to ReflectionMethod since it is not allways a builder.
12985
12986 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12987
12988         * marshal.c (mono_marshal_get_managed_wrapper): 
12989         mono_marshal_alloc takes native int so CONV_I
12990         the arg for 64bits.
12991
12992 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
12993
12994         * reflection.c (fixup_cattrs): New function to fixup the methoddef
12995         tokens in the cattr table. Fixes #53108.
12996
12997 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12998
12999         * loader.c: don't trim ".dll" before looking up in the config file.
13000         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
13001
13002 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
13003
13004         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
13005         Return the module which contains the resource as well.
13006         (ves_icall_System_Reflection_Module_Close): New icall.
13007
13008         * appdomain.c: Bump corlib version number.
13009
13010         * image.c (mono_image_addref): New public function.
13011
13012         * assembly.c: Call mono_image_addref.
13013
13014         * reflection.c (mono_module_get_object): Increase reference count of 
13015         the image.
13016
13017         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
13018         Fixes #22532.
13019
13020         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
13021         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
13022         proper exceptions on DllImport problems.
13023
13024 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
13025
13026         * class.c, metadata.c: eliminate CSIZE macro.
13027
13028 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
13029
13030         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
13031         * object.h: Added async_callback field in MonoAsyncResult.
13032         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
13033         * verify.c: Added async_callback in MonoAsyncResult layout.
13034
13035 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
13036
13037         * reflection.c (mono_reflection_get_custom_attrs): Add support
13038         for Modules.
13039
13040 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
13041
13042         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
13043         marshalling.
13044         (mono_marshal_method_from_wrapper): Add null pointer check.
13045
13046 2004-01-16  Martin Baulig  <martin@ximian.com>
13047
13048         * debug-mono-symfile.h: Set version number to 36 and reflect
13049         latest symbol writer changes.
13050
13051 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
13052
13053         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
13054         multi-dimensional arrays.
13055         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
13056         (mono_class_from_mono_type): Use bounded_array_class_get.
13057         
13058         * class.c (mono_bounded_array_class_get): New function which takes
13059         a 'bounded' bool argument to distinguish vectors from one dimensional
13060         arrays.
13061
13062         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
13063         bounded_array_class_get if the array has bounds.
13064
13065         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13066         Search modules loaded using AssemblyBuilder:AddModule as well.
13067
13068 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13069
13070         * appdomain.c: increased corlib version.
13071         * filewatcher.c: removed g_print.
13072         * icall.c:
13073         (get_property_info): only allocate what is actually requested.
13074         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
13075
13076 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13077
13078         * Makefile.am: added filewatcher.[ch]
13079         * filewatcher.[ch]: FileSystemWatcher runtime support.
13080         * icall.c: added new FSW icalls.
13081
13082 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
13083
13084         * string-icalls.c: fix stringbuilder regression as suggested by
13085         Iain McCoy <iain@mccoy.id.au>.
13086
13087 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
13088
13089         * process.c (process_read_stringtable_block): Recognize '007f' as
13090         a language neutral stringtable block.
13091
13092 2004-01-12  Patrik Torstensson
13093
13094         * object.h (MonoStringBuilder) : Changed layout to support our
13095         new stringbuilder class.
13096         * marshal.c: Change marshalling to support the new layout of 
13097         string builder.
13098         * appdomain.c: increased version number because new layout of
13099         string builder.
13100
13101 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
13102
13103         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
13104         assembly name as an string instead of an AssemblyName, since it is
13105         easier to extract info from it.
13106
13107         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
13108         the culture subdirectories too. Fixes #52231.
13109
13110 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13111
13112         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
13113         It takes 2 new parameters with an optional name for the method to look
13114         for and case ignoring info.
13115
13116         * threadpool.c: removed unused variable.
13117
13118 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13119
13120         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
13121         It takes 2 new parameters with an optional name for the property to look
13122         for and case ignoring info.
13123         Fixes bug #52753.
13124
13125 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
13126
13127         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
13128         Fix #52451.
13129
13130 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13131
13132         * appdomain.c:
13133         * assembly.c: escape the uri before passing it to g_filename_from_uri.
13134         Fixes bug #52630.
13135
13136 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
13137
13138         * reflection.c: Add support for more than one unmanaged resource.
13139
13140         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
13141         in field->def_value, as done in all other cases.
13142
13143         * reflection.c (mono_reflection_get_custom_attrs): Add support for
13144         TypeBuilders.
13145
13146         * reflection.c (mono_reflection_create_runtime_class): Remove 
13147         errorneous assignment to klass->element_class, since it is already
13148         done in mono_reflection_setup_internal_class.
13149
13150 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13151
13152         * gc.c: added missing LeaveCriticalSection.
13153         * icall.c: indented a couple of lines.
13154         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
13155         if we call EndInvoke inside a callback. Fixes bug #52601.
13156
13157 2004-01-07  Martin Baulig  <martin@ximian.com>
13158
13159         * mono-debug-debugger.h
13160         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
13161
13162 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
13163
13164         * appdomain.c: Use messages in NotImplementedException.
13165
13166         * exception.c (mono_get_exception_not_implemented): Now this takes
13167         a message argument.
13168
13169         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
13170         exception instead of g_asserting an aborting when something is not
13171         implemented.
13172
13173         Add some inline docs.
13174
13175 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
13176
13177         * reflection.h: Update after changes to object layout.
13178
13179         * reflection.c: Implement saving of unmanaged aka win32 resources.
13180
13181         * appdomain.c: Bump version number.
13182
13183         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
13184         Handle missing domains gracefully.
13185
13186 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
13187
13188         * file-io.c : On Windows, there are much more invalid_path_chars.
13189
13190 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
13191
13192         * class.h, object.c: prepare for GetType () speedup.
13193
13194 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
13195
13196         * profiler.c: workaround for --profile null reference exception on
13197           cygwin. Patch by Patrik Torstensson.
13198
13199 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
13200
13201         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
13202         make work for unaligned access.
13203
13204 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
13205
13206         * class.c: small cleanup (class->fields [i] -> field).
13207         * image.c: check address of metadata is valid.
13208
13209 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
13210
13211         * assembly.h assembly.c (mono_assembly_loaded): New public function to
13212         search the list of loaded assemblies.
13213
13214         * reflection.c (mono_reflection_type_from_name): Use 
13215         mono_assembly_loaded instead of mono_image_loaded.
13216
13217         * reflection.c: Fix warnings.
13218
13219 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
13220
13221         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
13222         is dynamic. This is needed since an assembly can contain both dynamic and
13223         non-dynamic images.
13224
13225         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
13226         assembly->dynamic.
13227
13228         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
13229
13230         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
13231         to store modules loaded using AddModule.
13232
13233         * reflection.c (mono_image_fill_file_table): Generalize this so it works
13234         on Modules.
13235
13236         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
13237
13238         * reflection.c (mono_image_fill_export_table_from_module): New function to
13239         fill out the EXPORTEDTYPES table from a module.
13240
13241         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
13242         into a separate function. Also handle loaded non-dynamic modules.
13243
13244         * reflection.c (mono_image_basic_init): Fix memory allocation.
13245
13246         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13247
13248         * assembly.c (mono_assembly_load_references): Make this public.
13249
13250 2003-12-19  Martin Baulig  <martin@ximian.com>
13251
13252         * class.c (mono_class_initialize_generic): Made this static, take
13253         a `MonoGenericInst *' instead of a `MonoClass *'.
13254         (mono_class_from_generic): Call mono_class_initialize_generic()
13255         unless we're already initialized or being called from
13256         do_mono_metadata_parse_generic_inst().
13257
13258         * class.h (MonoGenericInst): Added `initialized' and
13259         `init_pending' flags.
13260
13261         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
13262         `mono_class_init (gklass)' or mono_class_initialize_generic()
13263         here; set `generic_inst->init_pending' while parsing the
13264         `type_argv'.
13265
13266 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
13267
13268         * locales.c: include string.h for memxxx prototypes
13269
13270 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
13271
13272         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
13273         constructor when accessing literal fields.
13274
13275 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
13276
13277         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13278
13279         * reflection.c (assembly_add_resource_manifest): New function to fill
13280         the MANIFESTRESOURCE table.
13281
13282         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
13283
13284         * reflection.h: Update to changes in class layout.
13285
13286         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
13287         Reenable call to mono_runtime_is_shutting_down ().
13288
13289         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
13290         determine if the runtime is shutting down.
13291
13292 2003-12-16  Jackson Harper <jackson@ximian.com>
13293
13294         * icall.c: comment out call to mono_runtime_is_shutting_down to
13295         fix build.
13296         
13297 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
13298
13299         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
13300         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
13301
13302 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
13303
13304         * reflection.c: move definition of swap_with_size
13305         to before its first call
13306
13307 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
13308
13309         * appdomain.c (mono_runtime_is_shutting_down): New public function.
13310
13311         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
13312         icall.
13313
13314         * object.c: Fix warnings.
13315
13316         * icall.c (ves_icall_Type_Get...): Only consider inherited static
13317         members if FlattenHierarchy is set.
13318
13319         * reflection.c (mono_image_add_decl_security): New function to emit
13320         declarative security.
13321
13322         * reflection.h reflection.c: Add support for declarative security.
13323
13324         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
13325         
13326 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
13327
13328         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
13329         
13330         * appdomain.c verify.c: Moved corlib version checking into its own
13331         function in appdomain.c since it needs to create vtables etc.
13332
13333 2003-12-13  Patrik Torstensson <p@rxc.se>
13334
13335         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
13336         instead of unwrapped server.
13337
13338 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
13339
13340         * verify.c (check_corlib): Fix field index.
13341
13342 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
13343
13344         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
13345         GetGacPath icall.
13346
13347 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
13348
13349         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
13350         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
13351         cope with sizeof(size_t) != sizeof(guint32).
13352
13353 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13354
13355         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
13356         in case of failure.
13357
13358 2003-12-10  Mark Crichton <crichton@gimp.org>
13359
13360         * icall.c: removed the GetNonZeroBytes.  We now handle this case
13361         in managed code.
13362
13363         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
13364
13365 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
13366
13367         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
13368         marked as deleted.
13369
13370 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
13371
13372         * verify.c (check_corlib): Handle the case when the version field is 
13373         initialized by a static constructor.
13374
13375 2003-12-08  Patrik Torstensson  <p@rxc.se>
13376
13377     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
13378
13379 2003-12-08  Martin Baulig  <martin@ximian.com>
13380
13381         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
13382         a MonoReflectionGenericParameter, also take the parameter index
13383         and name as arguments.
13384         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
13385         (ves_icall_MonoGenericParam_initialize): New interncall.
13386         (ves_icall_Type_make_byref_type): New interncall.
13387
13388         * reflection.h (MonoReflectionGenericParam): Derive from
13389         MonoReflectionType, not just from MonoObject.  Added `refobj' and
13390         `index' fields.
13391
13392         * reflection.c (mono_reflection_define_generic_parameter): Create
13393         and return a new MonoReflectionGenericParam; don't initialize the
13394         constraints here.
13395         (mono_reflection_initialize_generic_parameter): New public method;
13396         initializes the constraints and creates the `param->pklass'.
13397
13398 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
13399
13400         * reflection.h reflection.c: Use the new fields 'num_types', 
13401         'num_fields' and 'num_methods' to track the number of types etc.
13402
13403         * verify.c (check_corlib): Check corlib version number.
13404
13405 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
13406
13407         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
13408         function works on all methods.
13409
13410 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
13411
13412         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
13413         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
13414         the custom_type_info flag of the transparent proxy.
13415         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
13416         objects that supports IRemotingTypeInfo.
13417         * object.h: Added custom_type_info field in transparent proxy.
13418
13419 2003-12-06  Martin Baulig  <martin@ximian.com>
13420
13421         * class.c (mono_class_create_from_generic): Removed.
13422         (mono_class_from_generic): Check `ginst->klass' before doing
13423         anything else.  This is important to fully support "recursive"
13424         generic types.
13425
13426         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
13427         empty `generic_inst->klass' before doing anything else.
13428
13429 2003-12-06  Dick Porter  <dick@ximian.com>
13430
13431         * verify.c: 
13432         * object.h:
13433         * icall.c:
13434         * locales.c: Use C structs to access class fields.  Don't do a
13435         conversion between MonoString and UChar because both are
13436         platform-endian UTF-16.  Compare now takes startindex and count
13437         parameters.  Add a char overload for IndexOf.  Speed up the
13438         invariant string IndexOf.
13439
13440 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
13441
13442         * Makefile.am (monosn_LDADD): Fix parallel build.
13443
13444 2003-12-04  Martin Baulig  <martin@ximian.com>
13445
13446         * icall.c
13447         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13448         (ves_icall_Type_make_array_type): New interncall.       
13449
13450 2003-12-04  Martin Baulig  <martin@ximian.com>
13451
13452         * locales.c: also change it in the !HAVE_ICU case.
13453
13454 2003-12-04  Dick Porter  <dick@ximian.com>
13455
13456         * icall.c:
13457         * locales.c: construct_compareinfo is now in CompareInfo, not
13458         CultureInfo.
13459
13460 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
13461
13462         * image.c (mono_image_load_file_for_image): Cache loaded images in the
13463         image->files array.
13464
13465         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
13466         table as well.
13467
13468         * assembly.c (mono_assembly_load_references): Only load references
13469         once.
13470
13471         * class.c (mono_class_from_name): Avoid linear search of the 
13472         EXPORTEDTYPE table.
13473
13474         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
13475
13476 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
13477
13478         * image.h (MonoImage): Add 'field_cache' field.
13479
13480         * loader.c (mono_field_from_token): Cache field lookups.
13481         
13482         * reflection.c (mono_module_get_object): Fix name property.
13483
13484         * icall.c (ves_icall_get_enum_info): Update after changes to 
13485         mono_metadata_get_constant_index ().
13486
13487         * icall.c: Get rid of get_type_info icall, use a separate icall for
13488         each type property to avoid needless memory allocations. Fixes #51514.
13489
13490         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
13491         to avoid needless binary searches.
13492
13493         * class.c (class_compute_field_layout): Move the initialization of
13494         field->def_value to mono_class_vtable ().
13495
13496         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
13497         non-corlib types.
13498
13499         * object.c (mono_object_allocate): Make it inline.
13500
13501         * object.c (mono_object_allocate_spec): Make it inline.
13502         
13503 2003-12-02  Dick Porter  <dick@ximian.com>
13504
13505         * locales.c (create_NumberFormat): NumberFormatInfo construction.
13506         Patch by Mohammad DAMT (mdamt@cdl2000.com).
13507
13508 2003-12-01  Dick Porter  <dick@ximian.com>
13509
13510         * threads.c: Fix signature and call in CreateMutex and
13511         CreateEvent.
13512
13513 2003-12-01  Dick Porter  <dick@ximian.com>
13514
13515         * icall.c: 
13516         * locales.c: Implement string compares and searching
13517
13518         * object.h: Add extra Thread field
13519
13520 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
13521
13522         * reflection.c (fixup_method): Add support for MonoCMethod.
13523
13524 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
13525
13526         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
13527
13528         * reflection.c (assembly_name_to_aname): Allow extra characters in
13529         assembly names. Fixes #51468.
13530
13531 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
13532
13533         * exception.c (mono_exception_from_name_domain): New helper function.
13534
13535         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
13536         exception object in the correct domain.
13537
13538         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
13539         formatting + make a copy a the input data.
13540
13541         * loader.c (mono_get_method_from_token): Methods which contain
13542         native code do not have entries in the ImplMap.
13543
13544         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
13545         Thanks to Gonzalo for spotting this.
13546         
13547         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
13548         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
13549
13550         * assembly.h (mono_assembly_load_from): Split the second part of 
13551         assembly loading into a new public function.
13552
13553         * exception.h (mono_get_exception_bad_image_format): New function.
13554
13555 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
13556
13557         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13558         Enumerate all modules inside a dynamic assembly. Fixes #51293.
13559         
13560         * icall.c: Add new icall for creating dynamic methods.
13561
13562         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
13563
13564         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
13565
13566         * reflection.c (mono_reflection_create_dynamic_method): New icall to
13567         create a dynamic method.
13568
13569         * reflection.c (resolve_object): New helper function.
13570
13571         * reflection.c: Generalize ReflectionMethodBuilder and the functions
13572         which manipulate it so they can also work on dynamic methods.
13573
13574         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
13575         creating the MonoReflectionMethodAux structure if it is not needed.
13576         
13577         * reflection.h verify.c: Update after changes to object layout.
13578
13579         * reflection.c (method_builder_encode_signature): Fix compilation on
13580         gcc 2.95.x.
13581
13582 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
13583
13584         * appdomain.h: Added support for context static fields. Added static_data
13585           field to MonoAppContext and renamed thread_static_fields to a more
13586           generic special_static_fields in MonoAppDomain, since it can now contain
13587           context static fields.
13588         * domain.c: Updated hashtable name.
13589         * object.c: Replaced field_is_thread_static() for a more generic
13590           field_is_special_static() which also checks for context static attribute.
13591           In mono_class_vtable(), added support for static context fields.
13592         * threads.c: Changed methods that manage thread static fields to more
13593           generic methods so they can be reused both for thread and context static
13594           data.
13595         * threads.h: Declared some new methods.
13596
13597 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
13598
13599         * reflection.h: Update after changes to the managed types.
13600
13601         * reflection.c (encode_custom_modifiers): New helper function.
13602
13603         * reflection.c (method_encode_signature): Emit custom modifiers.
13604
13605         * reflection.c (field_encode_signature): Emit custom modifiers.
13606
13607 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
13608
13609         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
13610
13611         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
13612         implementation.
13613
13614         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
13615         icall.
13616
13617         * object.c (mono_field_get_value_object): New function.
13618
13619         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
13620         specific.
13621
13622 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
13623
13624         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
13625         return a preallocated out-of-memory exception instance.
13626
13627         * object.c (out_of_memory): Use the new function.
13628
13629         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
13630         flag is before the custom modifiers. Fixes #49802.
13631
13632 2003-11-16  Martin Baulig  <martin@ximian.com>
13633
13634         * class.c (mono_class_is_open_constructed_type): Implemented the
13635         MONO_TYPE_GENERICINST case.
13636
13637 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
13638
13639         * assembly.c (mono_assembly_fill_assembly_name): New function to
13640         fill out the MonoAssemblyName structure.
13641         (mono_assembly_open): Use the new function.
13642
13643         * icall.c (fill_reflection_assembly_name): New helper function.
13644
13645         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
13646         new function.
13647
13648         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
13649
13650 2003-11-15  Martin Baulig  <martin@ximian.com>
13651
13652         * class.c (mono_class_is_open_constructed_type): New public
13653         function; checks whether a type is an open constructed type,
13654         ie. whether it still contains type parameters.
13655         (mono_class_inflate_generic_type): If we're a type parameter and
13656         the inflated type is also a MONO_TYPE_(M)VAR, return the original
13657         type.
13658
13659         * class.h (MonoGenericInst): Added `guint32 is_open'.
13660
13661         * loader.c (method_from_methodspec): Check whether we're an open
13662         or closed constructed type and set `ginst->is_open'.
13663
13664         * reflection.c (mono_reflection_bind_generic_parameters): Check
13665         whether we're an open or closed constructed type and set
13666         `ginst->is_open'.
13667         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
13668         from open constructed types.
13669
13670 2003-11-15  Martin Baulig  <martin@ximian.com>
13671
13672         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13673         a generic instance (instead of a generic type declaration) with
13674         unbound generic parameters, bind them to our actual types.
13675
13676 2003-11-14  Martin Baulig  <martin@ximian.com>
13677
13678         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
13679
13680         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13681         an interface type, populate `res->interfaces' with instantiated
13682         versions of all the interfaces we inherit.
13683
13684 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
13685
13686         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
13687         when MONO_PATH is set but doesn't contain the install dir.
13688
13689 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13690
13691         * icall.c:
13692         (ves_icall_Type_GetInterfaces): don't return an interface twice when
13693         it's also implemented in base classes. Fixes bug #50927.
13694
13695 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
13696
13697         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
13698         if this method is called from a finalizer. Fixes #50913.
13699
13700 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
13701
13702         * threads.c: Implement VolatileRead/VolatileWrite
13703
13704         * icall.c: Add new icalls for VolatileRead/VolatileWrite
13705
13706 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13707
13708         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
13709         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
13710         2.95.3.
13711
13712         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
13713         from Peter Ross (pro@missioncriticalit.com).
13714         
13715 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
13716
13717         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
13718
13719 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13720
13721         * assembly.c (mono_assembly_load_references): Disable check because it
13722         triggers on older corlibs which lots of people have.
13723
13724 2003-11-12  Jackson Harper  <jackson@ximian.com>
13725
13726         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
13727         load corlib.dll if mscorlib.dll is not found.
13728         * assembly.h: Remove corlib name define.
13729         * class.c:
13730         * domain.c:
13731         * image.c: Change corlib name to mscorlib.
13732         
13733 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13734
13735         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13736
13737 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13738
13739         * appdomain.h: Added loader_optimization here to sync with the C#
13740         code, and add disallow_binding_redirects field.
13741
13742 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13743
13744         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13745
13746         * reflection.c (mono_image_build_metadata): Fix crash on modules
13747         with no types.
13748
13749         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13750
13751         * icall.c (ves_icall_get_method_info): Return callingConvention as
13752         well.
13753
13754         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13755         namespaces from the EXPORTEDTYPE table as well.
13756
13757         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13758         from all modules inside the assembly.
13759         
13760 2003-11-11  Martin Baulig  <martin@ximian.com>
13761
13762         * reflection.c (mono_reflection_bind_generic_parameters): Make
13763         this work for interfaces.
13764
13765 2003-11-11  Martin Baulig  <martin@ximian.com>
13766
13767         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13768
13769 2003-11-11  Martin Baulig  <martin@ximian.com>
13770
13771         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13772         "MonoInflatedMethod" and "MonoInflatedCtor".
13773
13774 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13775
13776         * reflection.c (resolution_scope_from_image): Use the assembly table
13777         from the manifest module, since other modules don't have it.
13778
13779         * debug-helpers.c (mono_type_full_name): New helper function.
13780
13781         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13782
13783         * image.c (mono_image_load_file_for_image): New public function which
13784         is a replacement for the load_file_for_image in class.c.
13785
13786         * assembly.c (mono_assembly_load_module): A wrapper for the function
13787         above which does assembly association and reference loading too.
13788
13789         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13790
13791 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13792
13793         * appdomain.c: not all of the attributes for the full assembly name
13794         are required and the order doesn't matter. Fixes bug #50787.
13795
13796 2003-11-10  Dick Porter  <dick@ximian.com>
13797
13798         * locales.c: Use platform-endian UTF16
13799
13800 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13801
13802         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13803         
13804 2003-11-10  Martin Baulig  <martin@ximian.com>
13805
13806         * metadata.c
13807         (mono_metadata_load_generic_params): Make this actually work.
13808
13809         * reflection.c (mono_reflection_bind_generic_parameters): If our
13810         parent is a generic instance, pass all the `types' to it, no
13811         matter whether it has the same number of type parameters or not.
13812
13813 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13814
13815         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13816
13817         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13818         assignment code to this function so it gets called recursively for all
13819         modules.
13820
13821         * image.c (load_modules): Remove the assembly assignment since it is
13822         now done by mono_assembly_load_references.
13823         
13824         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13825         Add 'module' argument.
13826         (mono_module_get_types): New helper function.
13827         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13828
13829 2003-11-08  Martin Baulig  <martin@ximian.com>
13830
13831         * class.c (mono_class_inflate_generic_method): Interface method
13832         don't have a header.
13833
13834         * reflection.c (mono_image_get_methodspec_token): Take an
13835         additional `MonoGenericInst *' argument instead of reading it from
13836         the header; this is necessary to support interfaces.
13837         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13838         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13839         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13840         argument.
13841
13842         * reflection.h (MonoReflectionInflatedMethod): Added
13843         `MonoGenericInst *ginst'.
13844
13845 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13846
13847         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13848
13849 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13850
13851         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13852
13853 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13854
13855         * reflection.c 
13856         (reflection_methodbuilder_from_method_builder):
13857         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13858         initialize a ReflectionMethodBuilder structure.
13859         (mono_image_get_methodbuilder_token):
13860         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13861         tokens which point to types in another module inside the same assembly.
13862
13863         * reflection.c: Use the new helper functions.
13864         
13865         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13866
13867         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13868         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13869
13870         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13871         neccesary.
13872
13873         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13874         current module. Emit the manifest only for the main module.
13875
13876         * reflection.c (mono_image_create_token): Add assertion when a 
13877         memberref needs to be created.
13878
13879         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13880
13881         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13882         larger buffer for the custom attribute blob. Fixes #50637.
13883         
13884 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13885
13886         * threadpool.c: notify listener on async processing handles after
13887         invoking the async callback. Thanks to Zoltan.
13888
13889 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13890
13891         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13892         avoid code duplication.
13893
13894         * reflection.h (MonoDynamicImage): New type which is currently unused,
13895         but will be used through the ref.emit code in place of 
13896         MonoDynamicAssembly.
13897
13898         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13899         object layout.
13900
13901         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
13902         a MonoDynamicImage instead of just a MonoImage.
13903         
13904         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
13905         icalls to ModuleBuilder but keep their semantics, so they will work
13906         with moduleb->assemblyb. This will change later.
13907         
13908 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13909
13910         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13911         object layout.
13912
13913         * reflection.c (mono_image_build_metadata): Avoid creation of a default
13914         main module, since it is now done by the managed code.
13915
13916 2003-11-03  Martin Baulig  <martin@ximian.com>
13917
13918         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
13919         `ginst->klass' here.
13920         (method_encode_methodspec): Don't use the `ginst->generic_method's
13921         klass if it's a generic instance, use `ginst->klass' in this case.
13922
13923 2003-11-03  Martin Baulig  <martin@ximian.com>
13924
13925         * reflection.c (mono_image_get_generic_method_param_info):
13926         Removed, use mono_image_get_generic_param_info() instead.
13927         (mono_image_get_type_info): Write the GenericParam table before
13928         the Method table.  This is neccessary because in the GenericParam
13929         table, type parameters of the class (ie. '!0' etc.) must come
13930         before the ones from its generic methods (ie. '!!0' etc).
13931
13932 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13933
13934         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
13935
13936 2003-11-02  Martin Baulig  <martin@ximian.com>
13937
13938         * reflection.c (create_generic_typespec): Take a
13939         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
13940         the generic parameters from it.
13941
13942 2003-11-02  Martin Baulig  <martin@ximian.com>
13943
13944         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
13945         instead of a `MonoClassField *' since we just need the type.
13946         (create_generic_typespec): New static function.  Creates a
13947         TypeSpec token for a generic type declaration.
13948         (mono_image_get_generic_field_token): New static function.
13949         (mono_image_create_token): If we're a FieldBuilder in a generic
13950         type declaration, call mono_image_get_generic_field_token() to get
13951         the token.
13952
13953 2003-11-02  Martin Baulig  <martin@ximian.com>
13954
13955         * reflection.h
13956         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
13957         `MonoReflectionGenericInst *declaring_type' and
13958         `MonoReflectionGenericInst *reflected_type' fields.
13959
13960         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
13961         `MonoReflectionGenericInst *declaring_type' and a
13962         `MonoReflectionGenericInst *reflected_type' argument instead of a
13963         single `MonoReflectionGenericInst *type' one.  Set
13964         `res->declaring_type' and `res->reflected_type' from them.
13965         (mono_reflection_inflate_field): Likewise.      
13966
13967 2003-11-02  Martin Baulig  <martin@ximian.com>
13968
13969         * class.c (mono_class_setup_vtable): Don't store generic methods
13970         in the vtable.  
13971
13972 2003-11-02  Martin Baulig  <martin@ximian.com>
13973
13974         * reflection.h (MonoReflectionGenericInst): Added
13975         `MonoReflectionType *declaring_type'.
13976
13977         * reflection.c (mono_reflection_bind_generic_parameters): Use
13978         `if (tb->parent)' instead of `klass->parent'.
13979
13980 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
13981
13982         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
13983         with an empty ASSEMBLY table.
13984
13985         * reflection.c (mono_image_build_metadata): Avoid using the same loop
13986         variable in the inner and outer loops.
13987
13988 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
13989
13990         * metadata.h (mono_metadata_make_token): Put parentheses around macro
13991         argument.
13992
13993         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
13994         
13995         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
13996         icalls. Instead, do everything in managed code. This is needed since
13997         it is hard to restore the original domain etc. in unmanaged code in the
13998         presence of undeniable exceptions.
13999
14000         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
14001         New icalls to push and pop appdomain refs.
14002
14003 2003-10-31  Martin Baulig  <martin@ximian.com>
14004
14005         * class.c (inflate_generic_type): Renamed to
14006         mono_class_inflate_generic_type() and made it public.
14007
14008         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
14009         New interncall.
14010
14011         * loader.c (mono_field_from_memberref): Also set the retklass for
14012         typespecs.
14013
14014         * fielder.c (mono_image_get_inflated_field_token): New static
14015         method; creates a metadata token for an inflated field.
14016         (mono_image_create_token, fixup_method): Added support for
14017         "MonoInflatedField".
14018         (fieldbuilder_to_mono_class_field): New static function.
14019         (mono_reflection_inflate_field): New public function.
14020
14021         * reflection.h
14022         (MonoReflectionGenericInst): Added `MonoArray *fields'.
14023         (MonoReflectionInflatedField): New typedef.     
14024
14025 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
14026
14027         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
14028         for Solaris and other platforms without s6_addr16
14029
14030 2003-10-30  Martin Baulig  <martin@ximian.com>
14031
14032         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
14033         argument instead of two.
14034         (mono_class_inflate_generic_signature): Likewise.
14035         (inflate_generic_header): Likewise.
14036         (mono_class_inflate_generic_method): Likewise.  In addition, if
14037         `ginst->klass' is set, it becomes the new `method->klass'.
14038
14039         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
14040         field.
14041
14042         * reflection.c (encode_generic_method_sig): Write a 0xa as the
14043         first byte. [FIXME]
14044         (method_encode_methodspec): If we have generic parameters, create
14045         a MethodSpec instead of a MethodRef.
14046         (fixup_method): Added support for "MonoInflatedMethod" and
14047         "MonoInflatedCtor".
14048         (mono_image_create_token): Added support for "MonoInflatedMethod"
14049         and "MonoInflatedCtor".
14050         (inflated_method_get_object): New static function; returns a
14051         managed "System.Reflection.MonoInflatedMethod" object.
14052         (mono_reflection_bind_generic_method_parameters): Return a
14053         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
14054         (mono_reflection_inflate_method_or_ctor): Likewise.
14055         (mono_image_get_generic_method_param_info): Initialize unused
14056         fields to zero.
14057         (mono_image_get_generic_param_info): Likewise.
14058
14059         * reflection.h (MonoReflectionInflatedMethod): New public
14060         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
14061         "S.R.MonoInflatedCtor" classes.
14062
14063         * loader.c (method_from_memberref): If we're a TypeSpec and it
14064         resolves to a generic instance, inflate the method.
14065
14066 2003-10-28  Dick Porter  <dick@ximian.com>
14067
14068         * object.c (mono_runtime_run_main): Convert command-line arguments
14069         into utf8, falling back to the user's locale encoding to do so.
14070
14071 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
14072
14073         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
14074         at this time.
14075
14076         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
14077
14078         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
14079         up icalls at method definition time. Partially fixes #33569.
14080
14081 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
14082
14083         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
14084         marshalling of arrays. Fixes #50116.
14085
14086         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
14087
14088         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
14089         points to a vtable in the dying appdomain.
14090
14091         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
14092         listeners into unmanaged code inside the lock.
14093
14094         * object.c (mono_class_vtable): Turn off typed allocation in non-root
14095         domains and add some comments.
14096
14097 2003-10-25  Martin Baulig  <martin@ximian.com>
14098
14099         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
14100
14101         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
14102
14103         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
14104         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
14105         currently parsing.  Create the generic class and store it in
14106         `generic_inst->klass' before parsing the type arguments.  This is
14107         required to support "recursive" definitions; see mcs/tests/gen-23.cs
14108         for an example.
14109         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
14110         to support recursive typespec entries.
14111
14112         * class.c (mono_class_setup_parent): If our parent is a generic
14113         instance, we may get called before it has its name set.
14114         (mono_class_from_generic): Splitted into
14115         mono_class_create_from_generic() and mono_class_initialize_generic().
14116
14117 2003-10-25  Martin Baulig  <martin@ximian.com>
14118
14119         * icall.c (ves_icall_Type_BindGenericParameters): Return a
14120         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
14121         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
14122         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
14123
14124         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
14125         (create_typespec): Likewise.
14126         (mono_reflection_bind_generic_parameters): Return a
14127         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
14128         (mono_reflection_inflate_method_or_ctor): New public function.
14129
14130         * reflection.h (MonoReflectionGenericInst): New typedef.        
14131
14132 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
14133
14134         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
14135         inside the domain lock. Fixes #49993.
14136         
14137         * object.c (mono_class_vtable): When typed allocation is used, 
14138         allocate vtables in the GC heap instead of in the mempool, since the
14139         vtables contain GC descriptors which are used by the collector even
14140         after the domain owning the mempool is unloaded.
14141
14142         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
14143
14144         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
14145         reflect what it does. Also invalidate mempools instead of freeing
14146         them if a define is set.
14147
14148         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
14149         of the appdomain.
14150         
14151         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
14152         hold the finalizable objects in this domain.
14153
14154         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
14155         appdomain.
14156
14157         * appdomain.c (mono_domain_set): New function to set the current
14158         appdomain, but only if it is not being unloaded.
14159
14160         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
14161         appdomain which is being unloaded.
14162         
14163         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
14164         unloading of the root appdomain.
14165
14166         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
14167         icall to execute a method in another appdomain. Intended as a 
14168         replacement for InternalSetDomain, which can confuse the code 
14169         generation in the JIT.
14170
14171         * appdomain.c (mono_domain_is_unloading): New function to determine
14172         whenever an appdomain is unloading.
14173
14174         * appdomain.c (mono_domain_unload): New function to correctly unload
14175         an appdomain.
14176
14177         * assembly.c (mono_assembly_load_references): Check that an assembly
14178         does not references itself.
14179
14180         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
14181         domain manually, it asks the finalizer thread to do it, then waits for
14182         the result. Also added a timeout.
14183
14184         * icall.c: Register the new icalls.
14185
14186         * threads.h threads.c: Export the mono_gc_stop_world and 
14187         mono_gc_start_world functions.
14188         
14189         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
14190         function to fill out the mempool with 0x2a.
14191
14192 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
14193
14194         * reflection.h (MonoReflectionMethodAux): New structure to store
14195         information which is rarely used, thus is not in the MonoMethod
14196         structure.
14197
14198         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
14199         store the aux info.
14200
14201         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
14202         and marshalling info into the aux structure.
14203
14204         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
14205         from the aux structure.
14206
14207         * loader.c (mono_method_get_param_names): Retrieve the param names from
14208         the aux structure.
14209         
14210 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
14211
14212         * exception.h exception.c: Add AppDomainUnloadedException && fix 
14213         warning.
14214
14215 2003-10-21  Dick Porter  <dick@ximian.com>
14216
14217         * socket-io.c
14218         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
14219         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
14220
14221 2003-10-21  Martin Baulig  <martin@ximian.com>
14222
14223         * reflection.c (mono_reflection_bind_generic_parameters):
14224         `klass->parent' is NULL for interfaces.
14225
14226 2003-10-21  Martin Baulig  <martin@ximian.com>
14227
14228         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14229
14230 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
14231
14232         * exception.c (mono_exception_from_name_msg): New helper function for
14233         creating exceptions and initializing their message field.
14234
14235         * exception.c: Simplify functions using the new helper.
14236
14237         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
14238         New function.
14239
14240         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
14241         mono_raise_exception, since otherwise gcc doesn't generate the function
14242         epilog for raise_exception, confusing the stack unwinding in the JIT.
14243         Fixes #45043.
14244
14245         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
14246         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
14247         Fixes #49499.
14248
14249 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14250
14251         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
14252         utf8.
14253
14254 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
14255
14256         * icall.c: Removed GetUninitializedObject method because
14257           AllocateUninitializedClassInstance does the same.
14258
14259 2003-10-18  Martin Baulig  <martin@ximian.com>
14260
14261         * class.c (inflate_generic_signature): Renamed to
14262         mono_class_inflate_generic_signature() and made it public.
14263         (my_mono_class_from_generic_parameter): New static function; if we
14264         don't already have the generic parameter's MonoClass, create a
14265         very simple one which is just used internally in the runtime and
14266         not passed back to managed code.
14267
14268         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
14269
14270         * metadata.h (MonoMethodSignature): Moved the
14271         `MonoGenericParam *gen_params' to the MonoMethodHeader.
14272         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
14273
14274         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
14275         ves_icall_MonoMethod_GetGenericArguments(); this is now an
14276         interncall on the MonoMethod class, not on MethodInfo.
14277         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
14278         calling mono_reflection_bind_generic_method_parameters() directly.
14279
14280         * loader.c (mono_method_get_signature): If this is a MethodSpec;
14281         return the already computed `method->signature'.
14282         (method_from_methodspec): New static function to load a method
14283         from a MethodSpec entry.
14284         (mono_get_method_from_token): Call the new method_from_methodspec()
14285         for MethodSpec tokens.  
14286         (mono_get_method_from_token): If we're a generic method, load the
14287         type parameters.
14288
14289         * reflection.c (mono_image_get_memberref_token): Allow
14290         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
14291         table.
14292         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
14293         (mono_image_create_token): First check whether it's a generic
14294         method (so we'd need to create a MethodSpec), then do the other
14295         two alternatives.
14296         (mono_reflection_bind_generic_method_parameters): Return a
14297         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
14298         called directly from the interncall.
14299
14300 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
14301
14302         * reflection.c (load_public_key): Move loading of the public key
14303         into managed code.
14304
14305         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
14306
14307         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
14308         fields.
14309
14310         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
14311         culture, hash_alg and public_key. Fixes #49555.
14312
14313 2003-10-17  Martin Baulig  <martin@ximian.com>
14314
14315         * class.h (MonoGenericInst): Moved this declaration here and added
14316         `MonoMethod *generic_method'.
14317
14318         * icall.c
14319         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
14320         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
14321
14322         * metadata.c (mono_metadata_type_equal): Two types of
14323         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
14324         index; ie. don't compare the address of the `MonoGenericParam'
14325         structure.
14326         (mono_metadata_load_generic_params): Removed the `MonoMethod
14327         *method' argument.
14328
14329         * metadata.h (MonoGenericInst): Moved declaration to class.h.
14330         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
14331
14332         * reflection.c (method_encode_signature): Encode the number of
14333         generic parameters.
14334         (encode_generic_method_sig): New static function.
14335         (method_encode_methodspec): New static function; creates an entry
14336         in the MethodSpec table for a generic method.
14337         (mono_image_get_methodspec_token): New static function.
14338         (mono_image_create_token): Call mono_image_get_methodspec_token()
14339         for generic methods.
14340         (mono_reflection_bind_generic_method_parameters): New public
14341         function.  Instantiates a generic method.
14342
14343 2003-10-16  Martin Baulig  <martin@ximian.com>
14344
14345         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
14346         *gen_params' here from MonoMethodHeader.
14347
14348         * metadata.c (mono_metadata_parse_method_signature): If we have
14349         generic parameters, initialize `method->gen_params' and then set
14350         the correct `type->data.generic_param' in all the parameters.
14351
14352 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
14353
14354         * threads.c (mono_threads_get_default_stacksize): New function to 
14355         return the default stacksize.
14356
14357         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
14358         termination of the finalizer thread, since the previous method had
14359         race conditions. Fixes #49628.
14360
14361         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
14362         as for the other managed threads.
14363
14364 2003-10-16  Martin Baulig  <martin@ximian.com>
14365
14366         * class.c (inflate_generic_signature): Copy `generic_param_count'
14367         and `gen_params'.
14368
14369         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
14370         New interncall.
14371
14372         * metadata.c (mono_metadata_parse_method_signature): Actually set
14373         the `method->generic_param_count' here.
14374         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
14375
14376 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
14377
14378         * object.h: Add a new field to TypedRef to simplify the implementation
14379         of the REFANY opcodes in the JIT.
14380
14381         * icall.c: Make use of the new field.
14382
14383         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
14384         dynamically.
14385
14386 2003-10-15  Martin Baulig  <martin@ximian.com>
14387
14388         * class.c (mono_class_from_gen_param): Renamed to
14389         mono_class_from_generic_parameter() and moved most of the
14390         functionality from mono_reflection_define_generic_parameter()
14391         here; ie. we create a "real" class here.
14392         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
14393         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
14394         previously been called.
14395
14396         * class.h (MonoGenericParam): Moved the declaration of this struct
14397         here from metadata.h and added `MonoMethod *method'.
14398
14399         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
14400         interncall.
14401
14402         * loader.c (mono_get_method_from_token): If we have any generic
14403         parameters, call mono_metadata_load_generic_params() to read them
14404         from the MONO_TABLE_GENERICPAR.
14405
14406         * metadata.c (mono_metadata_load_generic_params): Added
14407         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
14408
14409         * metadata.h (MonoMethodSignature): Replaced
14410         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
14411         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
14412
14413         * reflection.c (mono_reflection_define_generic_parameter): Moved
14414         most of the functionality into the new
14415         mono_class_from_generic_parameter(); set the `method' field if
14416         we're a method parameter.       
14417
14418 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
14419
14420         * marshal.c (emit_struct_conv): if native size is 0
14421         emit no code.
14422
14423 2003-10-14  Martin Baulig  <martin@ximian.com>
14424
14425         * icall.c: The generics API has changed in the spec since it was
14426         added to System.Type; these modifications make it match the spec
14427         again.
14428         (ves_icall_Type_GetGenericParameters): Renamed to
14429         `ves_icall_Type_GetGenericArguments'.
14430         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
14431         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
14432         `ves_icall_MonoType_get_HasGenericArguments'.
14433         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
14434         `ves_icall_MonoType_get_IsGenericParameter'.
14435         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
14436         this is no interncall anymore.
14437         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
14438         `ves_icall_TypeBuilder_get_IsGenericParameter'.
14439
14440 2003-10-14  Martin Baulig  <martin@ximian.com>
14441
14442         * reflection.c (mono_reflection_bind_generic_parameters): Also
14443         inflate generic methods if we're reading the class from IL.
14444
14445 2003-10-13  Martin Baulig  <martin@ximian.com>
14446
14447         * reflection.c (mono_reflection_define_generic_parameter): This
14448         method isn't called directly from the icall anymore; take a
14449         `MonoReflectionAssemblyBuilder *' so we can use this for type and
14450         method generic parameters.
14451         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
14452         (method_builder_encode_signature): Encode generic parameters.
14453         (mono_image_get_method_info): Write generic params to the
14454         MONO_TABLE_GENERICPARAM table.
14455
14456         * reflection.h (MonoReflectionMethodBuilder): Added
14457         `MonoArray *generic_params'.
14458
14459         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
14460
14461         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
14462         wrapper for mono_reflection_define_generic_parameter().
14463         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
14464
14465 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
14466
14467         * marshal.h: Add missing function to fix build.
14468
14469         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
14470         the SetLastError pinvoke attribute.
14471
14472         * marshal.c (mono_marshal_set_last_error): New helper function called
14473         by the generated code.
14474         
14475         * marshal.c (mono_mb_emit_branch): New helper function.
14476
14477         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
14478
14479         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14480         classes as parameters and return values of delegates. Fixes #29256. 
14481
14482 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
14483
14484         * locales.c: use gint32 in non HAVE_ICU case
14485
14486 2003-10-11  Martin Baulig  <martin@ximian.com>
14487
14488         * mono-debug.c (mono_debug_add_method): Added a workaround for
14489         bug #48591.
14490
14491 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
14492
14493         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
14494         delegates passed to native code must use the STDCALL calling 
14495         convention. Fixes #35987.
14496
14497 2003-10-10  Martin Baulig  <martin@ximian.com>
14498
14499         * class.c (inflate_generic_type): If we're inflating for a generic
14500         type instance (and not for a generic method), return
14501         MONO_TYPE_MVAR unchanged.
14502
14503 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14504
14505         * string-icalls.c: Join ignores null strings in the source array.
14506         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
14507         * threads.c: GetAvailableTheads is slightly more accurate.
14508
14509 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
14510
14511         * threads.h threads.c : add mono_threads_set_default_stacksize
14512         and pass default to CreateThread calls.
14513
14514 2003-10-09  Dick Porter  <dick@ximian.com>
14515
14516         * icall.c:
14517         * locales.h:
14518         * locales.c: Internal calls for constructing CultureInfo and
14519         related objects from libicu (if its available.)
14520
14521 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
14522
14523         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
14524
14525 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14526
14527         * threadpool.c: added an argument to async_invoke_thread that is the
14528         item to process, pass the MonoAsyncResult to the thread start function
14529         when creating a new thread. This way we don't need to acquire any lock
14530         when we're creating a new thread. Readded a semaphore for faster
14531         response times (instead of that Sleep i added).
14532
14533 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
14534
14535         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14536         get daylight change dates better on Windows, fix handling
14537         of platforms without tm_gmtoff.
14538
14539 2003-10-06  Martin Baulig  <martin@ximian.com>
14540
14541         * class.c (inflate_generic_method): Renamed to
14542         mono_class_inflate_generic_method() and made public.
14543         (mono_class_init): Don't inflate the generic methods here.
14544         (mono_class_from_generic): Added `gboolean inflate_methods'
14545         argument.  Inflate the methods here.
14546
14547         * loader.c (mono_method_get_param_names): Ignore instances of
14548         generic types for the moment.
14549
14550         * reflection.c (fixup_method): Added support for inflated methods.
14551         (mono_image_create_token): Use mono_image_get_methodref_token()
14552         for inflated methods.
14553         (mono_custom_attrs_from_param): Ignore instances of generic types
14554         for the moment.
14555         (mono_reflection_bind_generic_parameters): New public function.
14556         Moved all the functionality from
14557         ves_icall_Type_BindGenericParameters() here and added support for
14558         dynamic types.
14559         (mono_reflection_define_generic_parameter): Initialize
14560         `klass->methods' here.
14561
14562         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
14563         functionality into mono_reflection_define_generic_parameter().
14564         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
14565         TypeBuilder, return that TypeBuilder.
14566
14567 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14568
14569         * appdomain.c: removed mono_delegate_semaphore.
14570
14571         * threadpool.c:
14572         (mono_thread_pool_add): moved hash table creation inside and the thread 
14573         creation outside of the critical region.
14574         (mono_thread_pool_finish): removed obsolete code.
14575         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
14576         continue or exit the thread depending on the queue.
14577
14578 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
14579
14580         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
14581         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
14582         handle more bool marshalling options
14583
14584 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
14585
14586         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
14587         arrays of structs. Also add a more descriptive error message when
14588         a structure member is marshalled as LPArray.
14589
14590 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
14591
14592         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14593         marshalling arrays of complex types. Fixes #29098. Also remove an
14594         usused and incomplete function.
14595
14596 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14597
14598         * gc.c: report heap_size - free_bytes as total memory allocated
14599         (bug#49362).
14600
14601 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
14602
14603         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
14604         fix timezone handling problems on Windows.
14605         
14606         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
14607         asserts when the year is outside the range handled by ms the functions.
14608
14609         * class.c (setup_interface_offsets): If the class is an interface,
14610         fill out its interface_offsets slot.
14611
14612 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14613
14614         * threadpool.c: mark threadpool threads as background.
14615
14616 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
14617
14618         * decimal.c - define DECINLINE to nothing if not using GCC
14619
14620 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
14621
14622         * assembly.c: More refcount fixes.
14623
14624 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14625
14626         * string-icalls.c: if we're not trimming, return the same string.
14627         When not splitting, don't create a new string.
14628
14629 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14630
14631         * image.c:
14632         (mono_image_open): increment the ref_count inside the critical section.
14633
14634 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
14635
14636         * image.c (mono_image_open): Fix reference counting bug.
14637
14638 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
14639
14640         * marshal.c (mono_marshal_type_size) struct alignment changed for 
14641         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
14642         64bits. Avoid leak in mono_marshal_get_native_wrapper when
14643         mono_lookup_pinvoke_call throws.        
14644
14645 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
14646
14647         * reflection.c (mono_reflection_parse_type): Fix #49114.
14648
14649         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
14650         temporary workaround for cygwin header problem.
14651
14652         * object.c (mono_object_isinst): Synchronize this with the code
14653         generated by the JIT for casts.
14654
14655 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
14656
14657         * reflection.c (encode_type): Fix #38332.
14658
14659 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
14660
14661         * marshal.c (mono_marshal_method_from_wrapper): New function to return
14662         the original method from the wrapper method.
14663
14664 2003-09-25  Martin Baulig  <martin@ximian.com>
14665
14666         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
14667         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
14668         (ves_icall_Type_get_IsGenericInstance): New interncall.
14669
14670 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
14671
14672         * object.c: fix cast warning in big endian code.
14673
14674 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
14675
14676         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
14677         
14678 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14679
14680         * assembly.c: don't call check_env from mono_assembly_load. It's
14681         already done once in mono_assemblies_init and may cause headaches when
14682         multiple threads are loading assemblies.
14683
14684 2003-09-19  Martin Baulig  <martin@ximian.com>
14685
14686         * reflection.c (mono_reflection_define_generic_parameter): Don't
14687         allocate `klass->methods', set `klass->flags' to
14688         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
14689
14690 2003-09-18  Martin Baulig  <martin@ximian.com>
14691
14692         * class.c (mono_class_init): Don't create `class->methods' if it's
14693         already initialized.
14694
14695         * metadata.c (mono_metadata_load_generic_params): Make this
14696         actually work.
14697
14698         * reflection.c (mono_reflection_define_generic_parameter): Set
14699         parent class and interfaces from the constraints.
14700
14701         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
14702         to keep this struct in sync with the declaration in TypeBuilder.cs.
14703
14704 2003-09-17  Martin Baulig  <martin@ximian.com>
14705
14706         * metadata.h (MonoType): Replaced the data's `int type_param'
14707         field with `MonoGenericParam *generic_param'.
14708         (MonoGenericParam): Added `MonoClass *klass'.
14709
14710         * class.c (mono_class_from_gen_param): Removed the
14711         `MonoImage *image' and `int type_num' arguments.
14712
14713         * metadata.c (mono_metadata_parse_generic_param): New static
14714         method; creates a MonoGenericParam which just contains the index.
14715         (do_mono_metadata_parse_type): Call
14716         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
14717         MONO_TYPE_MVAR.
14718
14719         * reflection.c (mono_image_typedef_or_ref): Generic type
14720         parameters may be in the same assembly, but never use a typedef
14721         for them.
14722         (mono_reflection_define_generic_parameter): We're now creating a
14723         "real" class for the type parameter; it's now safe to call
14724         mono_class_from_mono_type() on the class'es type, it'll do the
14725         right thing.
14726
14727 2003-09-16  Martin Baulig  <martin@ximian.com>
14728
14729         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
14730         `symfile->range_entry_size' and `symfile->class_entry_size' here;
14731         the `symfile' data structure must be fully initialized before it
14732         gets added to the table.
14733
14734 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
14735
14736         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14737
14738         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14739         class init trampolines.
14740
14741 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14742
14743         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14744         to the built-in profiler to turn off time and allocation profiling
14745         respectively.
14746
14747 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14748
14749         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14750         g_direct_equal.
14751
14752         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14753         in human readable form.
14754
14755 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14756
14757         * reflection.c icall.c: Fixed warnings.
14758
14759         * image.c (load_class_names): Use a temporary hash table to hold the
14760         namespaces in order to avoid doing many string comparisons.
14761
14762         * image.h: Fix typo.
14763
14764         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14765         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14766         since the NULL case is short-circuited inside g_hash_table_lookup, 
14767         leading to better performance.  
14768
14769         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14770         obtain the first custom attribute for a given index. Depends on the
14771         CustomAttribute table being sorted by the parent field.
14772
14773         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14774         for better performance.
14775
14776 2003-09-07  Martin Baulig  <martin@ximian.com>
14777
14778         * class.c (mono_class_init): If we're a generic instance, inflate
14779         all our methods instead of loading them from the image.
14780         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14781
14782 2003-09-07  Martin Baulig  <martin@ximian.com>
14783
14784         * mono-debug-debugger.c: Added support for constructors.
14785
14786 2003-09-06  Martin Baulig  <martin@ximian.com>
14787
14788         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14789         New interncall.
14790
14791         * reflection.c (mono_reflection_setup_generic_class): Call
14792         ensure_runtime_vtable() to create the vtable.
14793
14794 2003-09-05  Martin Baulig  <martin@ximian.com>
14795
14796         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14797         MONO_TYPE_MVAR.
14798
14799 2003-09-04  Martin Baulig  <martin@ximian.com>
14800
14801         * reflection.c (mono_reflection_define_generic_parameter): Generic
14802         parameters start with zero.
14803
14804 2003-09-04  Martin Baulig  <martin@ximian.com>
14805
14806         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14807
14808         * reflection.h (MonoReflectionGenericParam): New typedef.
14809         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14810         the generic parameters from the managed TypeBuilder.
14811
14812         * reflection.c (mono_reflection_define_generic_parameter): New function.
14813         (mono_reflection_create_runtime_class): Encode generic parameters.
14814         (mono_reflection_setup_generic_class): New function; this is
14815         called after adding adding all generic params to the TypeBuilder.
14816         (encode_type): Added MONO_TYPE_VAR.
14817
14818 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14819
14820         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14821         here from the JIT.
14822
14823         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14824         load hook.
14825
14826 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14827
14828         * reflection.h reflection.c class.h class.c: Delete duplicate 
14829         definition of mono_type_get_name () from reflection.c and export the
14830         one in class.c.
14831
14832         * class.c: Class loading fixes from Bernie Solomon 
14833         (bernard@ugsolutions.com).
14834
14835         * reflection.c: Endianness fixes from Bernie Solomon 
14836         (bernard@ugsolutions.com).
14837         
14838 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14839
14840         * assembly.h assembly.c: Define a file format version for AOT
14841         libraries.
14842         
14843         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14844
14845         * appdomain.h (MonoJitInfo): New field to determine whenever the
14846         code is domain neutral.
14847         
14848 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14849
14850         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14851
14852 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14853
14854         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14855         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14856         Avoid caching the result since strings must be domain specific. Fixes
14857         #48050.
14858
14859 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14860
14861         * marshal.c (mono_marshal_init): Make this callable multiple times
14862         since it is hard to find a correct place to call it.
14863
14864         * object.c (mono_runtime_class_init): Execute static constructors in
14865         the correct appdomain.
14866
14867         * image.c (build_guid_table): Handle the case when multiple images have
14868         the same GUID.
14869
14870 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14871
14872         * icall.c: added a couple of icalls for System.Web.
14873
14874 2003-08-28  Martin Baulig  <martin@ximian.com>
14875
14876         * icall.c (ves_icall_Type_BindGenericParameters): Use
14877         `klass->generic_inst' instead of `&klass->byval_arg' in the
14878         mono_type_get_object() call.  The returned type must be
14879         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14880
14881 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14882
14883         * NOTES: New file.
14884
14885         * object.c (mono_class_proxy_vtable): Make it thread safe.
14886
14887         * pedump.c: Fix warning.
14888
14889         * object.c appdomain.h: Get rid of metadata_section. 
14890         It is no longer needed and it was causing deadlocks with domain->lock.
14891
14892         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14893
14894 2003-08-26  Martin Baulig  <martin@ximian.com>
14895
14896         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14897
14898 2003-08-26  Martin Baulig  <martin@ximian.com>
14899
14900         * pedump.c (main): Call mono_metadata_init(),
14901         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
14902         and mono_loader_init().
14903
14904 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
14905
14906         * loader.h: Add missing include to fix build.
14907
14908         * image.h: mono_image_load_references is no more.
14909
14910         * assembly.c: Reworked assembly loading to make it really thread safe.
14911         After these changes, the assembly returned by mono_assembly_open is
14912         fully initialized, i.e. all its references assemblies are loaded.
14913
14914         * assembly.c (mono_image_load_references): Renamed to 
14915         mono_assembly_load_references, and made private, since clients no
14916         longer need to call it.
14917
14918         * class.c: Removed calls to mono_assembly_load_references, since it was
14919         a source of deadlocks.
14920
14921         * loader.h loader.c class.h class.c: Protect data structures using a 
14922         new lock, the loader lock.
14923
14924         * class.c (mono_class_setup_vtable): Create temporary hash tables and
14925         GPtrArrays only when needed.
14926
14927         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
14928         into empty structures by mcs. Fixes pinvoke7.cs.
14929         
14930         * domain.c (mono_init): Call a new initialization function.
14931
14932         * appdomain.c (mono_runtime_init): Call the new initializer function
14933         of the marshal module.
14934
14935         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
14936         inserted into empty structures by mcs. Fixes pinvoke7.cs.
14937
14938         * marshal.h marshal.c: Added locks around the wrapper caches to make
14939         this module thread safe.
14940
14941         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
14942         this argument. Fixes pinvoke1.exe.
14943
14944 2003-08-25  Lluis Sanchez <lluis@ximian.com>
14945
14946         * object.h: Added call_type field to MonoMethodMessage and the corresponding
14947         enumeration of values. Removed fields to store remote call output values in
14948         MonoAsyncResult. Not needed any more.
14949         * object.c: Initialize call_type and async_result fields in mono_message_init.
14950         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
14951         dispatching the message.
14952         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
14953         async call to finish. To do it use a message with EndInvoke call type.
14954
14955 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
14956
14957         * loader.h loader.c (mono_method_hash_marhal_info): New function which
14958         determines whenever a method has marshalling info.
14959
14960 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14961
14962         * assembly.c: fix the build on windows.
14963
14964 2003-08-22 Lluis Sanchez <lluis@ximian.com>
14965
14966         * object.cs: Fixed bug #47785.
14967
14968 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
14969
14970         * string-icalls.c (StringReplace): If their are no occurances of
14971         the old string found return a reference to the supplied
14972         string. This saves some memory and matches MS behavoir.
14973         
14974 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14975
14976         * socket-io.c: fixed compilation for systems that define AF_INET6
14977         and don't define SOL_IP/SOL_IPV6.
14978
14979 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
14980
14981         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
14982         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
14983
14984         * rawbuffer.c rawbuffer.h: Make this module thread safe.
14985
14986         * domain.c: Make this module thread safe.
14987
14988         * domain.c (mono_init): Call new initialization function.
14989
14990         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
14991         reference types too. Fixes #38812.
14992
14993         * image.c (mono_image_init): Fixed warnings.
14994
14995         * class.c (mono_class_from_typeref): Handle assembly load failure
14996         correctly.
14997
14998         * appdomain.c (add_assemblies_to_domain): Handle the case when
14999         the references of an assembly are not yet loaded.
15000
15001         * metadata.c image.c assembly.c: Moved initialization of global
15002         variables to a separate function called at startup since lazy 
15003         initialization of these variables is not thread safe.
15004         
15005         * image.c assembly.c: Made this module thread safe by adding locks in 
15006         the appropriate places.
15007
15008         * domain.c (mono_init): Call the new initialization functions of the
15009         three modules.
15010
15011 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
15012
15013         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
15014           make a direct call. It is proxy's work to make the call asynchronous.
15015           mono_delegate_end_invoke(): If the targe is a proxy, just collect
15016           the return values.
15017         * object.cs: mono_method_call_message_new(): read AsyncResult and
15018           state object from parameters list, if this info is requested.
15019         * object.h: Added fields to store remote call output values in
15020           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
15021
15022 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15023
15024         * object.h: add needed fields to MonoThread.
15025         * threads.c, threads.h: allow registering a function to cleanup data
15026         allocated per thread by the JIT.
15027
15028 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15029
15030         * loader.h: portability fix by Bernie Solomon
15031         * <bernard@ugsolutions.com>.
15032
15033 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
15034
15035         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
15036         return a MonoArray. This simplifies the code and also ensures that
15037         the cache allways contains an object reference as a value.
15038
15039         * icall.c (ves_icall_get_parameter_info): Simplified using the new
15040         function.
15041
15042 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15043
15044         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
15045         fixes a problem with byte ordering when getting the address family for
15046         a socket.
15047
15048 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
15049
15050         * .cvsignore: Added monosn.
15051
15052         * reflection.h reflection.c loader.c: Added support for parameter
15053         marshalling to dynamically created types. Fixes #47295.
15054
15055 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
15056
15057         * rand.c: remove useless warnings.
15058
15059 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
15060
15061         * class.c: implemented ldtoken for methods and fieldrefs.
15062
15063 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15064
15065         * threadpool.c: when mono_async_invoke was called, no one took care of
15066         monitoring the queue. So if the method invoked took some time and we
15067         got new async invoke requests after 500 ms (the thread created waited
15068         that long in WaitForSingleObject), the new async invoke was not called
15069         until the previous one finished.
15070
15071         This is fixed now. Thanks to Totte for helping with it.
15072
15073 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15074
15075         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
15076
15077 2003-08-11  Martin Baulig  <martin@ximian.com>
15078
15079         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
15080
15081 2003-08-06  Martin Baulig  <martin@ximian.com>
15082
15083         * mono-debug-debugger.c: Added support for static fields,
15084         properties and methods.
15085
15086 2003-08-06  Martin Baulig  <martin@ximian.com>
15087
15088         * mono-debug-debugger.c: Don't store the MonoString's vtable to
15089         make this work for applications with multiple application domains.
15090
15091 2003-08-04  Martin Baulig  <martin@ximian.com>
15092
15093         * mono-debug-debugger.c: Completely reworked the type support; the
15094         most important thing is that we're now just using one single
15095         `MonoType' instance per type.
15096
15097 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
15098
15099         * mono-endian.h, mono-endian.c, icall.c: Added icall
15100         ves_icall_System_Double_AssertEndianity to assert double word endianity
15101         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
15102
15103 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15104
15105         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
15106         support, icalls and fixes.
15107
15108 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
15109
15110         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
15111         classes that are a punctuation character in .NET is not the same a
15112         g_unichar_ispunct.
15113
15114 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15115
15116         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
15117
15118 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
15119
15120         * icall.c: Add new MemCopy internalcall.
15121         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
15122         Simplified code; It is not necessary to handle all the cases here,
15123         as the C# code takes care of it.  Only handle the case of the name
15124         resource embedded into the assembly.
15125
15126         Changed signature to return the data pointer and the size of the
15127         data. 
15128
15129 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
15130
15131         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
15132         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
15133
15134 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
15135
15136         * socket-io.c: ignore EINTR error in select.
15137
15138 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15139
15140         * class.h, class.c: removed unused subclasses field in MonoClass.
15141
15142 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
15143
15144         * icall.c: improve fix of get_base_definition(). If the parent class
15145           doesn't have the mehod, look at the parent of the parent.
15146         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
15147           to check if a parameter is an in or out parameter
15148           (PARAM_ATTRIBUTE_IN is not set by default).
15149           mono_method_return_message_restore(): Use mono_class_value_size to
15150           get the size of a value type. mono_type_stack_size (parameterType)
15151           does not return the correct value if parameterType is byRef.
15152           mono_load_remote_field(), mono_load_remote_field_new(),
15153           mono_store_remote_field(), mono_store_remote_field_new():
15154           raise exception if the remote call returns an exception.
15155
15156 2003-07-28  Martin Baulig  <martin@ximian.com>
15157
15158         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
15159         method.  This is a wrapper around mono_runtime_invoke() which
15160         boxes the instance object if neccessary.
15161
15162 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15163
15164         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
15165         metadata.h, row-indexes.h, verify.c: first cut of generics support.
15166
15167 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15168
15169         * icall.c: disable mcs bug workaround.
15170
15171 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
15172
15173         * object.c (mono_runtime_class_init): Take the metadata_section
15174         mutex before obtaining the domain mutex.
15175
15176         * appdomain.h: Added definition of metadata_section mutex here. 
15177
15178         * object.c: define metadata_mutex here.
15179
15180 2003-07-24  Ravi Pratap  <ravi@ximian.com>
15181
15182         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
15183         fixed.
15184
15185 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
15186
15187         * reflection.c: Fix bug #46669
15188
15189 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15190
15191         * exception.c:
15192         * exception.h:
15193         * icall.c:
15194         * object.h: fill in the type name for TypeLoadException.
15195
15196 2003-07-23  Ravi Pratap  <ravi@ximian.com>
15197
15198         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
15199         relationship between TypeBuilders while compiling corlib) and bug
15200         45993 (Array types returned from the runtime while compiling
15201         corlib were from the loaded corlib).
15202
15203 2003-07-22  Martin Baulig  <martin@ximian.com>
15204
15205         * mono-debug-debugger.c: Reworked the type support a bit more;
15206         distinguish between types and classes.
15207
15208 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
15209
15210         * icall.c: add IsArrayImpl icall.
15211
15212 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
15213
15214         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
15215         initializing real_size only once. Also fix bug #46602.
15216
15217 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
15218
15219         * object.c: Renamed mono_metadata_section to metadata_section.
15220
15221 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
15222
15223         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
15224           empty array if the type is an array. Fixed.
15225           ves_icall_MonoMethod_get_base_definition: if the base method
15226           is abstract, get the MethodInfo from the list of methods of
15227           the class.
15228         * reflection.c: ParameterInfo.PositionImpl should be zero-based
15229           and it was 1-based. Fixed in mono_param_get_objects.
15230
15231 2003-07-20  Martin Baulig  <martin@ximian.com>
15232
15233         * mono-debug.h: Set version number to 31.
15234         (mono_debug_init): Added `MonoDomain *' argument.
15235
15236         * mono-debug-debugger.c: Reworked the type support; explicitly
15237         tell the debugger about builtin types; pass the `klass' address to
15238         the debugger.
15239
15240 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
15241
15242         * image.c: Allow new metadata tables to be loaded without a
15243         warning. Also update the warning message to give the new constant value.
15244                 
15245 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
15246
15247         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
15248         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
15249         array type representation changes.
15250
15251 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
15252
15253         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
15254         on Environment.Exit () call.
15255
15256 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
15257
15258         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
15259         requires a matching corlib.
15260
15261 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
15262
15263         * Changelog: My editor decided to add a CR to each line. Sorry about that.
15264           Committed again without the CRs.
15265         
15266 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
15267
15268         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
15269           getting it from the "this" socket instance. Did not work
15270           if the socket is a subclass of Socket.
15271           Also fixed bug #35371.
15272
15273 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
15274
15275         * metadata.c: fixed size for TypedByRef.
15276         * loader.c: when searching for a method, consider the vararg amrker.
15277         * unicode.c, decimal.c: constify some arrays.
15278
15279 2003-07-15  Dick Porter  <dick@ximian.com>
15280
15281         * socket-io.c: Fixed compilation for gcc < 3.2.
15282
15283         Fixed compilation for machines that don't have AF_INET6 (thanks to
15284         Bernie Solomon <bernard@ugsolutions.com> for that part.)
15285
15286         Fixed compile warnings.
15287         
15288         Fixed formatting and line endings.
15289
15290 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
15291
15292         * socket-io.h:
15293         * socket-io.c: Added IPv6 support.
15294
15295 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
15296
15297         * class.c (mono_class_is_assignable_from): New function to implement
15298         the is_assignable_from logic. Used by mono_object_isinst, 
15299         Type::IsAssignableFrom () and the interpreter.
15300
15301         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
15302         Object, even interfaces.
15303         
15304         * object.c (mono_object_isinst): Implement in terms of 
15305         is_assignable_from.
15306
15307         * icall.c (ves_icall_type_is_assignable_from): New icall.
15308
15309 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
15310
15311         * domain.c (foreach_domain): fix compiler warning.
15312
15313 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
15314
15315         * image.c (load_metadata_ptrs): use g_strndup because strndup is
15316         not available on all plattforms
15317
15318 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
15319
15320         * image.h image.c: Store the metadata version string in MonoImage.
15321         * icall.c: New icall to retrieve the image version.
15322         * reflection.c (create_dynamic_image): Fill in the image version field
15323         * reflection.c (build_compressed_metadata): Use the image version
15324         from the image structure.
15325
15326 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15327
15328         * appdomain.c: modified comment.
15329         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
15330         That will be its last iteration when mono_gc_cleanup is called from
15331         mono_runtime_cleanup and before the domain is unloaded.
15332
15333         Fixes bug #45962.
15334
15335 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
15336
15337         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
15338         attributes.
15339
15340 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15341
15342         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
15343         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
15344         Bernie Solomon <bernard@ugsolutions.com>.
15345
15346 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15347
15348         * object.c, object.h: provide mono_object_new_fast() for faster
15349         allocation in some special cases.
15350
15351 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
15352
15353         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
15354         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
15355
15356 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
15357
15358         * threadpool.c: fix leaks.
15359
15360 2003-07-01  Dick Porter  <dick@ximian.com>
15361
15362         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
15363         using MonoGHashTables.  Fixes threadpool bug posted to list.
15364
15365 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15366
15367         * image.h, image.c: added support to load an assembly from a byte array.
15368         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
15369         assembly bundle support.
15370
15371 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
15372
15373         * threadpool.c (mono_thread_pool_add): keep a reference to the
15374         AsyncResult to prevent GC
15375
15376 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15377
15378         * class.c: leak fix.
15379
15380 2003-06-25  Dick Porter  <dick@ximian.com>
15381
15382         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
15383         for the async object, the WaitHandle object will close the handle.
15384         Fixes bug 45321.
15385
15386 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15387
15388         * class.c: in mono_array_class_get (), lookup from the hash with the
15389         same type we insert: this works around a bug in
15390         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
15391         lluis. The real fix will have to wait for after the release.
15392
15393 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15394
15395         * icall.c: fix memory leak when getting type members.
15396
15397 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15398
15399         * reflection.c: added more pubtoken special cases.
15400
15401 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
15402
15403         * class.c: handle field offset correctly when class size
15404         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
15405
15406 2003-06-20  Martin Baulig  <martin@ximian.com>
15407
15408         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
15409         *image' field.
15410
15411 2003-06-20  Martin Baulig  <martin@ximian.com>
15412
15413         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
15414
15415 2003-06-20  Martin Baulig  <martin@ximian.com>
15416
15417         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
15418         just distinguish between variables in registers and variables at
15419         an offset relative to a register.
15420
15421 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15422
15423         * icall.c: #ifdef out latest changes until mcs is fixed.
15424
15425 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15426
15427         * icall.c: return members in metadata order.
15428
15429 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
15430
15431         * icall.c: avoid infinite loop in GetTimeZoneData.
15432
15433 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
15434
15435         * icall.c: added Marshal.Prelink/All icalls.
15436
15437 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15438
15439         * object.c, object.h: fix warnings and do some overflow checking
15440         when creating arrays.
15441
15442 2003-06-17  Dick Porter  <dick@ximian.com>
15443
15444         * file-io.h:
15445         * file-io.c: File attributes need to be tweaked slightly when
15446         passed from the managed to the w32 world.
15447
15448 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15449         * profiler.h profiler-private.h profiler.c: Rework last patch
15450         based on suggestion by Paolo.
15451         
15452 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15453
15454         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
15455         instruction level coverage data collection.
15456         * profiler.h profiler.c (: Added new callback function which can be
15457         used by the profiler to limit which functions should have coverage
15458         instrumentation.
15459         * profiler.c (mono_profiler_load): Call g_module_build_path to
15460         generate the file name of the profiler library.
15461
15462 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15463
15464         * profiler.c, profiler.h, profiler-private.h: added basic block 
15465         coverage profiling API.
15466
15467 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
15468
15469         * reflection.c (mono_reflection_create_runtime_class): Add support
15470         for events in dynamically generated code.
15471
15472         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
15473         not allocated.
15474
15475 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
15476
15477         * icall.c: when getting timezone info, return reasonable values if we
15478         can't get the actual data.
15479
15480 2003-06-14  Dick Porter  <dick@ximian.com>
15481
15482         * threads.c (start_wrapper): Remove the reference to the thread
15483         object in the TLS data, so the thread object can be finalized.
15484         This won't be reached if the thread threw an uncaught exception,
15485         so those thread handles will stay referenced :-( (This is due to
15486         missing support for scanning thread-specific data in the Boehm GC
15487         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
15488
15489 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
15490
15491         * reflection.c: ensure streams and tables are first allocated with
15492         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
15493
15494 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15495
15496         * icall.c: fixed GetElementType for byrefs (bug# 44792).
15497
15498 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
15499
15500         * reflection.c (mono_reflection_create_runtime_class): Add support for
15501         properties to dynamically created classes.
15502         * reflection.c: Fix a few places where non-MonoObjects were inserted
15503         into the tokens hashtable.
15504
15505 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15506
15507         * object.c: some support to handle out of memory exceptions.
15508
15509 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
15510
15511         * marshal.c (mono_marshal_get_native_wrapper): support reference
15512         return types
15513
15514 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15515
15516         * object.h, object.c: more portability stuff from Bernie Solomon.
15517         Unexport mono_object_allocate(). Added mono_object_unbox ().
15518         Set exitcode when an unhandled exception is thrown.
15519
15520 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
15521
15522         * marshal.c (mono_marshal_get_native_wrapper): use custom
15523         marshaler for return types.
15524
15525 2003-06-10  Dick Porter  <dick@ximian.com>
15526
15527         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
15528         ip_mreq is available
15529
15530 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
15531
15532         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
15533         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
15534         by Bernie Solomon <bernard@ugsolutions.com>.
15535
15536 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
15537
15538         * gc.c (mono_gc_init): Avoid error message on shutdown when
15539         GC_DONT_GC=1 is used.
15540
15541         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
15542         New icall to return the GUID of a module.
15543
15544 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15545
15546         * class.c: ensure instance size always includes the parent's size
15547         even whem class size is set explicitly (fixes bug#44294).
15548
15549 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15550
15551         * profiler.h, profiler.c: made the simple profiler thread-safe,
15552         get more accurate timing info. Allow the loading of an
15553         externally-developed profiler module.
15554
15555 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
15556
15557         * marshal.c (mono_marshal_get_native_wrapper): improved
15558         class/byref arguments.
15559         (mono_marshal_get_native_wrapper): better string marshaling support.
15560
15561 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
15562
15563         * class.c: ensure .pack and .size are handled correctly and
15564         simplified layout of static fields.
15565
15566 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
15567
15568         * appdomain.c
15569         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
15570
15571         * loader.c (mono_lookup_pinvoke_call): look for modules in the
15572         current directory (fix bug 44008)
15573
15574 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
15575
15576         * marshal.c (mono_marshal_get_native_wrapper): started support for
15577         custom marshalers.
15578         (mono_delegate_to_ftnptr): consider marshalling specifications
15579
15580 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
15581
15582         * reflection.c, reflection.h: emit custom marshal info.
15583
15584 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15585
15586         * object.c: free the GError.
15587         * icall.c: added CloseEvent_internal.
15588         * threads.[ch]:
15589         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
15590         call.
15591
15592 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
15593
15594         * loader.c (mono_method_get_signature): Add support for dynamic
15595         assemblies.
15596
15597 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
15598
15599         * reflection.c: fixed bug #43905.
15600
15601 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15602
15603         * class.c, domain.c, icall.c, metadata.h, object.h: support for
15604         handling TypedReference and ArgIterator.
15605         * loader.c, loader.h: added function to get signature at call site.
15606
15607 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15608
15609         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
15610         data readonly. Buglets and warning fixes. Some MethodSpec support.
15611
15612 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15613
15614         * class.h, class.c, object.c: remove relative numbering support.
15615
15616 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
15617
15618         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
15619         free the string, until we get a chance to fix Gtk#
15620
15621 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15622
15623         * marshal.c: revert last patch.
15624
15625 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
15626
15627         * icall.c: updates for new mono_class_vtable() not calling
15628         the type constructor anymore.
15629
15630 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15631
15632         * object.h, object.c: separate vtable creation from type
15633         initialization. Make running the .cctor thread safe.
15634
15635 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
15636
15637         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
15638
15639 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
15640
15641         * loader.c (mono_get_method): consider calling convention
15642
15643 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
15644
15645         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
15646         to return the invisible global type for a module.
15647
15648         * reflection.c (mono_image_build_metadata): Emit global fields too.
15649
15650 2003-05-20  Peter Williams  <peterw@ximian.com>
15651
15652         * loader.c (mono_lookup_internal_call): Add a few newlines.
15653
15654 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
15655
15656         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
15657         literal strings.
15658
15659         * appdomain.c (set_domain_search_path): Recalculate search path when
15660         AppDomainSetup.PrivateBinPath changes.
15661
15662         * object.c (mono_class_compute_gc_descriptor): It turns out some
15663         parts of the class libs (like System.Thread) holds pointers to
15664         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
15665         to treat native int a pointer type here.
15666         
15667 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
15668
15669         * appdomain.h, domain.c: add hashtable for jump target resolution.
15670
15671 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
15672
15673         * reflection.h reflection.c icall.c: Added new icalls 
15674         GetManifestResourceInfoInternal, GetModulesInternal and support
15675         infrastructure.
15676
15677 2003-05-16  Dick Porter  <dick@ximian.com>
15678
15679         * icall.c:
15680         * file-io.h:
15681         * file-io.c: Implement System.IO.MonoIO::GetTempPath
15682
15683 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
15684
15685         * object.c: mono_store_remote_field: little fix to previous patch.
15686
15687 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15688
15689         * class.c: add constructors to array classes.
15690         * icall.c: special case array construction for InternalInvoke (),
15691
15692 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
15693
15694         * class.h class.c reflection.c object.c: Added support for field
15695         defaults in dynamically generated classes.
15696
15697 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
15698
15699         * reflection.c: properly encode charset for ddlimport.
15700
15701 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
15702
15703         * threads.c: allow compiling without GC.
15704
15705 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15706
15707         * appdomain.h, object.c, object.h, threads.c, threads.h: added
15708         handling of thread static data.
15709
15710 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15711
15712         * reflection.h, reflection.c: added mono_custom_attrs_free ().
15713
15714 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
15715
15716         * class.c (mono_array_class_get): always set the serializable flags
15717         (mono_array_class_get): always set the SEALED attribute for array types
15718
15719 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
15720
15721         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
15722         attributes (fix for bug 42021).
15723
15724 2003-05-12  Dick Porter  <dick@ximian.com>
15725
15726         * gc.c: Don't run finalizers when the finalizer thread is
15727         finishing up, because the default domain has already been
15728         destroyed.
15729
15730 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
15731
15732         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15733         value is null, we should throw an exception.   This is slightly
15734         different than the other conventions used for the constructor.
15735
15736 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15737
15738         * socket-io.c: fixed windows build.
15739
15740 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15741
15742         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15743
15744 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15745
15746         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15747         compilers.
15748
15749 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15750
15751         * class.c (mono_class_layout_fields): Add experimental GC aware
15752         auto layout facility. Requires class library changes to work correctly.
15753
15754         (mono_class_setup_vtable): Avoid overriding explicit interface
15755         method implementations. Fixes iface3.exe test.
15756
15757         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15758         object reference.
15759         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15760         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15761
15762         * metadata.h: Add new type classification macro which determines
15763         whenever the type holds an object reference.
15764
15765 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15766
15767         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15768
15769 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15770
15771         * gc.c (finalizer_thread): Work around a GC bug.
15772
15773 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15774
15775         * marshal.c (emit_struct_conv): allow unions
15776
15777         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15778
15779 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15780
15781         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15782
15783 2003-05-06  Martin Baulig  <martin@ximian.com>
15784
15785         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15786
15787 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15788
15789         * socket-io.c:
15790         (Select_internal): allow NULLs, don't create arrays if not needed.
15791         Coupled with Socket.cs changes.
15792
15793         * threadpool.c:
15794         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15795         register a finalizer for it that will close the semaphore handle. This
15796         fixes the leak and make Lupus' test run with > 4080 loops.
15797
15798 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15799
15800         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15801         Jerome Laban (bug #42287)
15802
15803 2003-05-02  Martin Baulig  <martin@ximian.com>
15804
15805         * debug-mono-symfile.h
15806         (MonoSymbolFile): Moved declaration into mono-debug.h.
15807         (MonoDebugMethodJitInfo): Likewise.
15808         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15809         argument.
15810         (_mono_debug_address_from_il_offset): Take a
15811         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15812
15813         * mono-debug.h
15814         (MonoDebugDomainData): New struct.
15815         (mono_debug_get_domain_data): New function.
15816         (mono_debug_add_method): Take an additional `MonoDomain *'
15817         argument.
15818         (mono_debug_source_location_from_address): Likewise.
15819         (mono_debug_il_offset_from_address): Likewise.
15820         (mono_debug_address_from_il_offset): Likewise.
15821
15822 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15823
15824         * reflection.c: one more check for null type in custom attrs.
15825
15826 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15827
15828         * reflection.c: avoid warning (comparison is always false due to limited
15829         range of data type).
15830
15831 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15832
15833         * icall.c: throw an exception in Type.GetField if the argument 'name'
15834         is NULL.
15835
15836 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15837
15838         * reflection.c: fixed handling of enums in named arguments to custom
15839         attributes (bug #42123).
15840
15841 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15842
15843         * reflection.c: use the right array element type and handle
15844         a null for a Type argument, too.
15845
15846 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15847
15848         * reflection.c: handle arrays as arguments to custom attributes.
15849
15850 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15851
15852         * reflection.c: handle a string value in a custom attr
15853         ctor that takes an object.
15854
15855 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15856
15857         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15858         (fix bug #42063)
15859
15860 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15861
15862         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15863
15864 2003-04-27  Martin Baulig  <martin@ximian.com>
15865
15866         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15867         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15868         MONO_DEBUGGER_EVENT_BREAKPOINT.
15869         (mono_breakpoint_trampoline_code): Removed.
15870         (mono_debugger_event_handler): The last argument is now a
15871         `guint32'.
15872         (mono_debugger_insert_breakpoint_full): Removed the
15873         `use_trampoline' argument.
15874         (mono_debugger_method_has_breakpoint): Likewise.
15875         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15876         mono_debugger_breakpoint_callback(); take the method and
15877         breakpoint number as arguments.
15878
15879 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15880
15881         * metadata.c: fix off by one when loading parameters attributes.
15882
15883 2003-04-24  Martin Baulig  <martin@ximian.com>
15884
15885         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15886
15887 2003-04-24  Martin Baulig  <martin@ximian.com>
15888
15889         * mono-debug-debugger.c: Moved all code which interacts with the
15890         Mono Debugger here.
15891
15892         * debug-mono-symfile.c: This code now just deals with the symbol
15893         file itself, the debugger code is now in mono-debug-debugger.c.
15894
15895 2003-04-23  Martin Baulig  <martin@ximian.com>
15896
15897         * mono-debug.c (mono_debug_source_location_from_il_offset):
15898         New method; like mono_debug_source_location_from_address(), but
15899         takes an IL offset instead of a machine address.
15900
15901 2003-04-23  Martin Baulig  <martin@ximian.com>
15902
15903         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
15904         `line' field; this is now computed by the debugger.
15905
15906 2003-04-23  Martin Baulig  <martin@ximian.com>
15907
15908         * mono-debug.[ch]: New files.  This is the new debugging interface.
15909
15910         * mono-debug-debugger.[ch]: New files.  Moved all code which
15911         interacts with the Mono Debugger here.
15912
15913 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
15914
15915         * domain.c (mono_init): initialize mono_defaults.monitor_class
15916
15917 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
15918
15919         * reflection.c (method_encode_code): Add a spicy exception to help
15920         future compiler authors.
15921
15922 2003-04-21  Martin Baulig  <martin@ximian.com>
15923
15924         * icall.c
15925         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15926         Make this work with relative pathnames; g_filename_to_uri() needs
15927         an absolute filename.
15928
15929 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
15930
15931         * icall.c: Track name changes in Object and ValueType.
15932
15933 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
15934
15935         * metadata.c (mono_type_stack_size): size should be a multiple of
15936         sizeof (gpointer)
15937
15938 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15939
15940         * gc.c:
15941         (internal_domain_finalize): moved into mono_domain_finalize. No need
15942         to create another thread because the finalizers will be run in the
15943         finalizer thread.
15944         
15945         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
15946         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
15947         to be run (MS does this too).
15948
15949 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
15950
15951         * object.c (mono_class_compute_gc_descriptor): Update comment.
15952
15953         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
15954
15955         * image.h: Add synchronized wrapper cache.
15956
15957         * image.c (do_mono_image_open): Initialize cache.
15958
15959         * reflection.c (create_dynamic_mono_image): Initialize cache.
15960
15961 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15962
15963         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
15964         ves_icall_System_Buffer_ByteLengthInternal.
15965
15966 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15967
15968         * reflection.c: setup klass->nested_in earlier. Allow
15969         a dash in the assembly name.
15970
15971 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
15972
15973         * metadata.c (mono_type_to_unmanaged): dont access
15974         type->data.klass for MONO_TYPE_OBJECT
15975         (mono_type_to_unmanaged): consider System.Delegate class
15976
15977 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
15978
15979         * class.c: just setup supertypes in the proper place instead of
15980         initializing the full element class for arrays.
15981
15982 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15983
15984         * class.c: ensure the element class of arrays is initialized.
15985         Setup the supertype info for array classes, too.
15986
15987 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
15988
15989         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
15990
15991 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15992
15993         * Makefile.am: re-added -m option when running cygpath. This way,
15994         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
15995         separator.
15996         * mono-config.c: same codepath for locating mono config file for WIN32
15997         and the rest.
15998         * assembly.c: if mono_assembly_setrootdir is called, don't override
15999         the value set.
16000
16001 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16002
16003         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
16004         MONO_ASSEMBLIES variable.
16005
16006 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
16007
16008         * icall.c: added Assembly::GetNamespaces() icall.
16009
16010 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16011
16012         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
16013
16014 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
16015
16016         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
16017         * object.c: fixed bug in the construction of vtable for proxies
16018
16019 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
16020
16021         * object.c (mono_array_new): Mark mono_array_new as an icall.
16022
16023 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16024
16025         * class.c: fixed test for public method when overriding interfaces.
16026         Closes bug #40970.
16027
16028 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16029
16030         * appdomain.h, domain.c: added mono_domain_foreach() to
16031         be able to access the currently loaded appdomains.
16032         * object.c: make string interning work across sppdomains.
16033         Mark some functions for use as icalls.
16034
16035 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
16036
16037         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
16038
16039         * reflection.h reflection.c: Allocate long living data using 
16040         GC_MALLOC_ATOMIC so the collector does not need to scan it.
16041
16042         * reflection.c: Double the allocation size in streams instead of
16043         increasing it, to prevent unneccesary copying on large assemblies.
16044         
16045         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
16046         creation if the assembly does not have the Run flag set.
16047
16048 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
16049
16050         * class.h: avoid the C++ keywords in header files (Jerome Laban
16051         spotted and fixed this).
16052
16053 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16054
16055         * object.c:
16056         (mono_unhandled_exception): fill in the arguments for the
16057         UnhandledException event. Only trigger that event for the default
16058         domain (as MS does).
16059
16060 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
16061
16062         * object.c: Improve typed allocation stuff based on suggestions from
16063         Paolo. Also turn it on if the GC library supports it.
16064
16065 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
16066
16067         * object.c object.h class.h: Added experimental typed allocation
16068         facility using the interfaces in gc_gcj.h.
16069
16070         * os/gc_wrapper.h: Added new include files.
16071         
16072 2003-04-03  Martin Baulig  <martin@ximian.com>
16073
16074         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
16075         which is not yet enabled by default.
16076
16077         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
16078         functions.
16079         (mono_gc_lock, mono_gc_unlock): New static functions.
16080
16081         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
16082         functions; stop/start the world for the garbage collector.  This
16083         is using the windows API; we need to complete the SuspendThread()/
16084         ResumeThread() implementation in the io-layer to make this work on Unix.
16085         (mono_gc_push_all_stacks): New public function; tells the garbage
16086         collector about the stack pointers from all managed threads.
16087
16088 2003-04-03  Martin Baulig  <martin@ximian.com>
16089
16090         * object.h (MonoThread): Added `gpointer stack_ptr'.
16091
16092         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
16093
16094 2003-04-03  Martin Baulig  <martin@ximian.com>
16095
16096         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
16097
16098 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
16099
16100         * reflection.c (typebuilder_setup_fields): Initialize field.first and
16101         field.last.
16102
16103 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
16104
16105         * loader.c (mono_lookup_internal_call): Report the corlib that is
16106         out of sync.
16107
16108 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
16109
16110         * icall.c (ves_icall_type_GetTypeCode): fixed check for
16111         System.DBNull (it's class not valuetype).
16112
16113 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16114
16115         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
16116         if the array method was already assigned a token (fixes bug#40646).
16117
16118 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
16119
16120         * reflection.c (mono_reflection_get_type): Attempt type resolve even
16121         if no assembly is given.
16122
16123 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
16124
16125         * metadata.h: Added the new tables.
16126
16127         * row-indexes.h: Added definitions for new tables.
16128
16129         * metadata.c: Add schemas for new tables, and add support for
16130         computing the sizes of them.
16131
16132         * class.c: Update for handling the new type cases.
16133
16134 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
16135
16136         * metadata.h (MONO_TYPE_IS_VOID): new macro
16137
16138 2003-03-31  Martin Baulig  <martin@ximian.com>
16139
16140         * threads.h (MonoThreadCallbacks): Added `thread_created'.
16141
16142         * threads.c (mono_thread_new_init): Call `thread_created' in the
16143         mono_thread_callbacks.
16144
16145 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
16146
16147         * loader.h: added marshalbyrefobject_class to mono_defaults
16148         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
16149         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
16150           generation of output parameters.
16151           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
16152         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
16153           contextbound and the target object belongs to the context of the caller.
16154         * object.h: added context and unwrapped_server variables in MonoRealProxy.
16155         * object.c: Implemented support for interfaces and abstract classes
16156           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
16157           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
16158
16159 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
16160
16161         * class.h class.c (mono_class_is_subclass_of): New function.
16162         
16163         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
16164         routines for most common case (calls from ArrayList::ToArray).
16165
16166         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
16167         routine so programs which call Environment::Exit() can be profiled.
16168
16169         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
16170         Added MONO_ARCH_SAVE_REGS.
16171
16172         * icall.c (ves_icall_type_is_subtype_of): Use new function.
16173
16174 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
16175
16176         * blob.h: Add a couple of new MonoType types definitions.
16177
16178         * tabledefs.h: Add a couple of new call convs.
16179
16180 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
16181
16182         * reflection.h (MonoReflectionDynamicAssembly): track changes in
16183         the layout of the class.
16184
16185         * reflection.c (alloc_table): double the size on overflow to avoid
16186         unnecessary copying.
16187
16188         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
16189         avoid filling out metadata tables and blobs. Also set mb->ilgen to
16190         null so it can be garbage collected.
16191         
16192 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
16193
16194         * reflection.c (mono_reflection_get_type): Return the resolved type
16195         only if it is in the assembly we searched.
16196
16197         * reflection.c (ensure_runtime_vtable): Initialize method slots.
16198
16199         * class.c (mono_class_setup_vtable): Set the slot of the overriding
16200         method.
16201
16202 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16203
16204         * appdomain.c:
16205         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
16206         the right one is 'file:///blah', but MS allows it.
16207         * assembly.c:
16208         (mono_assembly_open): allow 'file://blah'
16209
16210         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
16211
16212 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
16213
16214         * socket-io.c: fixes bug #40310.
16215
16216 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
16217
16218         * reflection.c (mono_reflection_parse_type): handle deeply nested
16219         types correctly.
16220
16221         * reflection.c (mono_image_create_token): Use unique token values
16222         since they will be put into a hash table.
16223
16224         * class.c (mono_class_setup_vtable): If a method occurs in more than
16225         one place in the vtable, and it gets overriden, then change the
16226         other occurances too.
16227
16228         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16229         object as return type.
16230
16231 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16232
16233         * icall.c: Deleted "ToString" implementation for double and float
16234         because they are full implemented in managed code.
16235
16236 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16237
16238         * reflection.c, reflection.h: implemented and exported functions
16239         to retrieve info about custom attributes.
16240
16241 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16242
16243         * appdomain.c: moved Uri handling to assembly.c
16244         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
16245         work when using a file Uri in *nix and windows.
16246
16247         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
16248         GetReferencedAssemblies.
16249
16250 2003-03-18  Dick Porter  <dick@ximian.com>
16251
16252         * icall.c: Rename a couple of internal calls
16253
16254         * threads.c: Set the thread state to Stopped when a thread exits.
16255         Fixes bug 39377.
16256
16257 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
16258
16259         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
16260         New icall.
16261
16262         * object.c (mono_class_vtable): fix warning.
16263
16264 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
16265
16266         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
16267
16268         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
16269         memory.
16270         (method_encode_clauses): Create exception info structures in the right
16271         order.
16272         (mono_reflection_setup_internal_class): Initialize supertypes field.
16273
16274         * class.c object.c: Handle interfaces which implement other interfaces 
16275         correctly.
16276
16277         * class.h class.c: Move the supertypes array initialization code into 
16278         a separate function so it can be used for dynamic types too. Also call
16279         it earlier, in mono_class_init(), since it can be used before the
16280         type is initialized.
16281
16282 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16283
16284         * Makefile.am:
16285         * assembly.c:
16286         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
16287
16288         * appdomain.c:
16289         * appdomain.h:
16290         * marshal.c:
16291         * object.c: remove warnings.
16292
16293 2003-03-13  Martin Baulig  <martin@ximian.com>
16294
16295         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
16296         (MonoDebugLexicalBlockEntry): New types.
16297
16298         * debug-mono-symfile.c
16299         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
16300
16301 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16302
16303         * process.c: ret can be any non-zero value accroding to MS doc.
16304
16305 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
16306
16307         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
16308         fixing a warning for a miss-used prototype, would have cause
16309         random memory corruption.
16310
16311 2003-03-07  Martin Baulig  <martin@ximian.com>
16312
16313         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
16314         getting really annoying ....
16315
16316 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
16317
16318         * reflection.c (fixup_method): added support for array methods.
16319
16320 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
16321
16322         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
16323         (pointed out by Michael Adams).
16324
16325 2003-03-04  Dick Porter  <dick@ximian.com>
16326
16327         * icall.c: Temporarily reverted the Double and Single ToString()
16328         change, because it broke nunit.
16329
16330 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
16331
16332         * object.h, threads.h: make include files compatible with C++
16333         (patch by Jerome Laban <jlaban@wanadoo.fr>).
16334
16335 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16336
16337         * icall.c: Erased ToString helper functions for Double and Single.
16338         Now, that implementations ar all in managed code (Double and Single
16339         Formatters).
16340
16341 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
16342
16343         * appdomain.c: Added method for initializing the default context of
16344         a domain. Added internal call for getting the default context.
16345         * appdomain.h: Added context variable in MonoDomain struct.
16346         * domain.c: mono_domain_set also sets the default context of the domain
16347         * icall.c: Mapped internal method InternalGetDefaultContext.
16348         * object.c: mono_object_get_virtual_method returns always a remoting
16349         wrapper if the object is a transparent proxy.
16350         mono_runtime_invoke_array: when creating an object by calling the
16351         constructor, if the created object is a proxy, then the constructor should
16352         be called using the a remoting wrapper.
16353
16354 2003-03-03  Dick Porter  <dick@ximian.com>
16355
16356         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
16357         variable so it compiles on solaris.  Problem spotted by
16358         Christopher Taylor <ct@cs.clemson.edu>
16359
16360 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16361
16362         * appdomain.c:
16363         (get_info_from_assembly_name): don't leak value.
16364
16365         * icall.c:
16366         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
16367         result.
16368
16369 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
16370
16371         * assembly.c: export mono_image_load_references ().
16372         * class.c: handle function pointers. mono_class_from_name() now
16373         supports nested type names directly.
16374
16375 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
16376
16377         * reflection.h reflection.c: Encode already created dynamic methods 
16378         and fields correctly as a DEF instead of a REF.
16379
16380         * reflection.c: Get rid of the force_ref argument to 
16381         mono_image_typedef_or_ref since it was wrong in the first place.
16382
16383         * string-icalls.c: add error checking to string constructors according
16384         to the MSDN docs.
16385
16386         * reflection.c: Emit types in the order their TypeBuilders were 
16387         created. Previously, a new table index was assigned to each type before
16388         the tables were emitted. This was wrong because the signature blob
16389         might already refer to a type by its original table index.
16390
16391 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
16392
16393         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
16394         change.
16395         
16396 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16397
16398         * Makefile.am: make assemblies dir have \ instead of / on windows.
16399
16400 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
16401
16402         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
16403         iterate over the NESTEDCLASS table using a linear search since the
16404         table is not guaranteed to be sorted by the secondary key.
16405
16406         * class.c (mono_class_create_from_typedef): fixed up call to
16407         mono_metadata_nesting_typedef.
16408         
16409 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
16410
16411         * marshal.c (mono_string_to_byvalstr): clear the memory as
16412         suggested by Jerome Laban <jlaban@wanadoo.fr>
16413
16414 2003-02-26  Dick Porter  <dick@ximian.com>
16415
16416         * process.c: Cope with padding in .rsrc blocks
16417
16418 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
16419
16420         * metadata.h: reverted the filter_len change, it breaks reflection
16421         
16422 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
16423
16424         * metadata.h: added a new field to store the filter_len
16425         
16426
16427 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
16428
16429         * reflection.c: handle custom attributes for types and members
16430         created with Reflection.Emit (bug#38422).
16431
16432 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
16433
16434         * reflection.c: define RTSpecialName automatically for constructors for
16435         compatibility with MS.NET.
16436
16437         * reflection.c (mono_reflection_create_runtime_class): initialize
16438         nested_in field of dynamically created classes.
16439
16440 2003-02-22  Martin Baulig  <martin@ximian.com>
16441
16442         * debug-mono-symfile.h: Incremented version number.
16443
16444 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16445
16446         * object.h icall.c process.c: fix warnings.
16447
16448 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16449
16450         * appdomain.h appdomain.c:
16451         (mono_domain_try_type_resolve): split the 
16452         name_or_tb argument into a name and a tb argument.
16453         (mono_domain_has_type_resolve): new function to check whenever the
16454         application has registered a TypeResolve event handler.
16455         
16456         * icall.c reflection.h reflection.c: move the type resolve logic into
16457         mono_reflection_get_type () so it will be invoked when 
16458         Assembly::GetType () is called.
16459
16460         * reflection.c:
16461         (mono_reflection_get_type): renamed to get_type_internal.
16462         (mono_reflection_get_type): fixed type name generation so it works 
16463         for nested types too.
16464         (mono_reflection_get_type): call has_type_resolve () to avoid the 
16465         costly type name generation if there is no resolve event handler.
16466
16467 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16468
16469         * class.c, image.c: load exported types from file references.
16470
16471 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
16472
16473         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
16474           used to cache the managed methods used to create proxies and make 
16475           remote invocation of methods.
16476         * class.h: Added in MonoVTable a flag to indicate that a class needs 
16477           to be remotely created.
16478         * object.c: Modified the method mono_class_vtable(). It now initializes 
16479           the remote flag of the vtable. Modified mono_object_new_specific(), 
16480           so now it checks the remote flag.
16481         * icall.c: Added a couple of internal methods, one for enabling instance 
16482           creation interception for a type, and one for creating objects bypassing
16483           the remote check.
16484
16485 2003-02-18  Martin Baulig  <martin@ximian.com>
16486
16487         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
16488         New interncall to get a method's metadata token.
16489
16490         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
16491         New interncall for the debugger.
16492
16493 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
16494
16495         * class.c (mono_class_setup_vtable): allocate supertype array
16496
16497 2003-02-18  Martin Baulig  <martin@ximian.com>
16498
16499         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
16500
16501 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16502
16503         * reflection.c:
16504         (assembly_name_to_aname): jump over unknown properties (i've found
16505         something like: 'type, assembly, version=xxx, custom=null, public...',
16506         so now will ignore custom=null and still get the rest of the values).
16507
16508 2003-02-17  Dick Porter  <dick@ximian.com>
16509
16510         * threads.c: Have Thread.Start() wait for a semaphore to signal
16511         that the thread has set up all its local data.  This fixes bug
16512         34323, where Abort() raced the new thread's TLS data.
16513
16514         Also removes the handle_store() call from start_wrapper, because
16515         threads are now always created suspended and there is no longer a
16516         race between the parent and child threads to store the info.
16517
16518 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
16519
16520         * image.c: explain the #- heap issue in a message, hopefully
16521         avoiding FAQs on mono-list.
16522
16523 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16524
16525         * icall.c:
16526         (GetEntryAssembly): if the domain has not invoked
16527         AppDomain.ExecuteAssembly yet, return the assembly of the default
16528         AppDomain.
16529
16530 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
16531
16532         * class.c (mono_ldtoken): make it work in dynamic assemblies.
16533
16534 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
16535
16536         * metadata.c, reflection.c: simple speedup to type hash
16537         and equals code.
16538
16539 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
16540
16541         * image.c, image.h, class.c, assembly.c: move module loading
16542         to MonoImage. When loading metadata, consider alignemnet from
16543         the start of metadata, not from the metadata address in memory.
16544
16545 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
16546
16547         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
16548         AssemblyBuilder objects. Factored out custom attribute creation into
16549         a separate function.
16550         (create_custom_attr): new function to create custom attributes.
16551
16552 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
16553
16554         * Makefile.am: Got tired of typing the full pathname to pedump.
16555         Until there is another option, am installing this.
16556
16557 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
16558
16559         * class.c (class_compute_field_layout): always set field->parent 
16560         (mono_ldtoken): use mono_defaults.fieldhandle_class;
16561
16562 2003-02-11  Dick Porter  <dick@ximian.com>
16563
16564         * threads-types.h:
16565         * monitor.c: Rewrote Monitor, making lock much faster and
16566         Pulse/Wait work as specified.  Also uses much fewer handles, and only
16567         creates them as needed.
16568
16569         * exception.c: Added SynchronizationLockException
16570
16571         * threads.c: Deleted old Monitor implementation.  The new one is
16572         in a new file.
16573
16574 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
16575
16576         * class.c: handled TypedReference type code. Set the correct size for
16577         class data. Setup interface_offsets for interface classes, too.
16578
16579 2003-02-09  Martin Baulig  <martin@ximian.com>
16580
16581         * debug-mono-symfile.h: Reflect latest symbol writer changes.
16582
16583 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
16584
16585         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
16586         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
16587         * object.c: fixed mono_object_get_virtual_method () for interfaces.
16588         * verify.c: check for code that runs after the end of the method.
16589
16590 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16591
16592         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
16593         "System.Math::Round2".
16594         * sysmath.h: Added Floor, Round and Round2 definitions.
16595         * sysmath.c: Modified certain functions that were not 100% compliant
16596         with MS.NET (math precision) and added the implementation of Floor,
16597         Round and Round2.
16598
16599 2003-02-07  Martin Baulig  <martin@ximian.com>
16600
16601         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
16602
16603 2003-02-07  Martin Baulig  <martin@ximian.com>
16604
16605         * debug-mono-symfile.c: Reflected latest symwriter changes.
16606         (mono_debug_create_mono_symbol_file): Removed.
16607         (mono_debug_open_mono_symbol_file): Take an argument which
16608         specifies whether to create a dynamic symbol file.
16609
16610 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
16611
16612         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
16613
16614 2003-02-05  Martin Baulig  <martin@ximian.com>
16615
16616         * reflection.c (mono_image_build_metadata): Make this public,
16617         protect it against being called multiple times, don't create
16618         resources and don't build the compressed metadata here.
16619         (mono_image_create_pefile): Do this here.
16620
16621         * icall.c
16622         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
16623
16624 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16625
16626         * socket-io.c: fixed bug #36322.
16627
16628 2003-02-06  Piers Haken <piersh@friskit.com>
16629
16630         * appdomain.[ch]:
16631         * class.h:
16632         * debug-mono-symfile.c:
16633         * icall.c:
16634         * loader.c:
16635         * mono-config.c:
16636         * monosn.c:
16637         * reflection.c:
16638         * socket-io.c: warning cleanups
16639
16640 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
16641
16642         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
16643         function. works like remoting invoke, but does a check for the Proxy first.
16644
16645 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
16646
16647         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
16648
16649 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
16650
16651         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
16652         array of pointers.
16653         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
16654         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
16655
16656         * object.c (mono_store_remote_field_new): used by the new jit
16657         instead of mono_store_remote_field
16658         (mono_load_remote_field_new): used by the new jit
16659         instead of mono_load_remote_field
16660
16661 2003-02-05  Patrik Torstensson
16662
16663         * appdomain.c: changed unload to take the domain id instead
16664         of domain
16665         
16666         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
16667
16668
16669 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16670
16671         * appdomain.c: don't look for assemblies in ApplicationBase if
16672         PrivateBinPathProbe is set.
16673
16674 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16675
16676         * object.c: make the first argument in main_args contain the absolute
16677         path to the assembly. Fixes bug #37511.
16678
16679 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16680
16681         * icall.c: get correct UTC offset for countries not using daylight
16682         time saving. Fixes bug #30030.
16683
16684 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16685
16686         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
16687         and 1 are the family).
16688
16689 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
16690
16691         * icall.c (ves_icall_InternalExecute): removed wrong assertion
16692
16693         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
16694
16695 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
16696
16697         * reflection.c: added support for SignatureHelper tokens, which is
16698         needed by the Calli opcode.
16699
16700         * reflection.h: track changes to SignatureHelper class.
16701
16702         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
16703
16704 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16705
16706         * appdomain.c: fixed loading assemblies from PrivateBinPath.
16707
16708 2003-02-03  Patrik Torstensson
16709         * appdomain.[c|h], domain.c : 
16710          - Added support for getting a domain via domain id
16711          - Support for setting and getting domain from System.AppDomain 
16712            (used in cross appdomain channel)
16713          - Added support for get/set for a MonoAppContext on a thread 
16714            (Context class in System.Runtime.Remoting.Contexts),
16715          - Removed hack in Get/SetData and ExecuteAssembly.
16716         
16717         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
16718         the managed world to get control when a proxy is created.
16719
16720         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
16721         
16722 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
16723
16724         * icall.c
16725         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16726         Populate the codebase field as well.
16727
16728 2003-02-02  Martin Baulig  <martin@ximian.com>
16729
16730         * debug-mono-symfile.c
16731         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
16732         (mono_debug_symfile_add_method): Allow interncalls.
16733
16734 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16735
16736         * icall.c: throw parse exception if strtod fails or the string is empty.
16737
16738 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16739
16740         * marshal.c: handle object type separately from defined
16741         class types.
16742
16743 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16744
16745         * marshal.c: handle NATIVE_LPSTR for strings when it's
16746         explicitly specified.
16747
16748 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16749
16750         * reflection.c, reflection.h, icall.c: setup the reflection
16751         handle cache for ModuleBuilders and AssemblyBuilders.
16752
16753 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16754
16755         * reflection.c (reflection_methodbuilder_to_mono_method): set
16756         pinvoke flag
16757
16758 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16759
16760         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16761
16762 2003-01-29  Dick Porter  <dick@ximian.com>
16763
16764         * threads.c: No need for the fake_thread kludge now that Thread
16765         doesn't run a class constructor
16766         
16767 2003-01-29  Dick Porter  <dick@ximian.com>
16768
16769         * threads.c: Use g_direct_hash instead of the rather bogus
16770         g_int_hash
16771
16772 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16773
16774         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16775         (fix pinvoke12.exe)
16776         (mono_marshal_get_struct_to_ptr): generate valid IL code
16777         (mono_marshal_get_ptr_to_struct): generate valid IL code
16778         (*): correctly set sig->pinvoke, we need to memdup the signature
16779         to do that
16780
16781 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16782
16783         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16784         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16785
16786 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16787
16788         * profiler.c: provide more callers information.
16789
16790 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16791
16792         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16793
16794         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16795
16796         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16797
16798 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16799
16800         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16801         exception instead of going into an infinite loop on dates which it 
16802         can't yet handle.
16803
16804         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16805         out-of-range exception if needed.
16806
16807         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16808         an implementation for an interface method and to override an inherited
16809         method at the same time. 
16810         Imagine a scenario when a virtual method is used to override a
16811         virtual abstract method in a parent class, and this same method 
16812         provides an implementation for an method inherited from an interface. 
16813         In this case, the interface resolution code will set im->slot, which 
16814         means that the virtual method override pass will skip this method 
16815         which means a pointer to the abstract method inherited from the parent
16816         will remain in the vtable of this non-abstract class.
16817
16818         * class.c: (mono_class_setup_vtable): continue search for a real 
16819         method if only an abstract method is found.     
16820
16821 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16822
16823         * reflection.c: add size to encoding for ByValStr and ByValArray
16824         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16825
16826 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16827
16828         * class.c (mono_class_setup_vtable): pass the override info as an
16829         argument.
16830
16831         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16832         correctly.
16833         
16834         * reflection.c (ensure_runtime_vtable); add support for method 
16835         overrides.
16836         
16837 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16838
16839         * reflection.c (resolution_scope_from_image): Hack to work to work with
16840         dynamic assemblies.
16841
16842         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16843         added a 'force_ref' argument to force this function to allways return 
16844         a TypeRef. This is needed by mono_image_get_memberref_token ().
16845         
16846 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16847
16848         * reflection.c (mono_image_get_type_info): interfaces really don't have
16849         a parent.
16850
16851         * reflection.c (mono_image_basic_init): fill out missing fields of
16852         image structure.
16853
16854         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16855         dynamic assemblies. This is required so dynamic assemblies show up in
16856         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16857         Type::GetType() etc. This is consistent with MS behaviour.
16858
16859         * image.c image.h reflection.c: add newly created classes to the name 
16860         cache so mono_class_get () will find them.      
16861
16862 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16863
16864         First part of changes to get IKVM.NET running under mono.
16865         
16866         * appdomain.h, appdomain.c: added new function 
16867         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16868         This function will call AppDomain::DoTypeResolve to do the actual work.
16869
16870         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16871         moved existing code dealing with dynamic tokens to a new function 
16872         called mono_reflection_lookup_dynamic_token (). This function will 
16873         raise TypeResolve events when appropriate. Since reflection.c is not 
16874         part of libmetadata, a new hook function called 
16875         mono_lookup_dynamic_token() is added to class.c which will call this.
16876
16877         * assembly.h assembly.c: make the invoke_load_hook function public,
16878         so it can be called for dynamic assemblies.
16879
16880         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16881
16882         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16883         type isn't found.
16884
16885         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16886         MonoGHashTable, since it contains pointers to objects which the GC 
16887         needs to track.
16888
16889         * assembly.c (search_loaded): remove unused variable.
16890         
16891 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16892
16893         * object.c: fixed issue exposed by gcc-generated IL programs
16894         that use RVA data for pointers.
16895
16896 2003-01-25  Martin Baulig  <martin@ximian.com>
16897
16898         * threads.c (start_wrapper): Moved the initialization of
16899         `start_func' above the mono_new_thread_init() call to which we
16900         pass it as argument.
16901
16902 2003-01-24  Martin Baulig  <martin@ximian.com>
16903
16904         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
16905         the MonoThread pointer.
16906
16907 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
16908
16909         * icall.c: Rename `PowImpl' to Pow.
16910
16911 2003-01-23  Dick Porter  <dick@ximian.com>
16912
16913         * threads.c (start_wrapper): Create a Thread object if needed, so
16914         the Main() thread can do the class initialisation in a subthread
16915         that has been set up to allow managed code execution.
16916
16917         Pass the thread ID instead of the MonoThread pointer to the thread
16918         start and attach callbacks.  This change is required, because the
16919         jit thread start callback must be called _before_ the Thread
16920         object can be created.
16921         
16922         (mono_thread_init): Removed much object creation code that is no
16923         longer needed.  No managed code is called from here now.
16924
16925         * object.c (mono_runtime_exec_managed_code): Create a subthread
16926         for Main, and call back to the runtime to use it.
16927         Set the exit code when Main exits.
16928
16929         * gc.c: Make sure domain finalisation happens in a subthread.
16930         Re-enable threaded GC, fixing bug 31333 (again).
16931
16932         * environment.c: System.Environment internall calls (so far just
16933         ExitCode is here, the others are still in icall.c)
16934
16935         * appdomain.c (mono_runtime_cleanup): All threads running managed
16936         code should have finished before mono_runtime_cleanup() is
16937         reached, so no need to clean up threads.
16938
16939 2003-01-22  Martin Baulig  <martin@ximian.com>
16940
16941         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
16942         `gpointer func' arguments.      
16943         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
16944         but added `MonoThread *thread' argument.
16945         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
16946
16947         * threads.c (mono_new_thread_init): Added `gpointer func' argument
16948         and pass it to the mono_thread_start_cb callback.
16949         (mono_install_thread_callbacks): New public function to install a
16950         set of callbacks which are set by the debugger.
16951         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
16952
16953 2003-01-22  Martin Baulig  <martin@ximian.com>
16954
16955         * Makefile.am: Install debug-mono-symfile.h.
16956
16957 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
16958
16959         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
16960
16961 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
16962
16963         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
16964         * class.c (mono_ptr_class_get): correctly set access levels of pointers
16965         (mono_array_class_get): correctly set access levels of arrays
16966
16967 2003-01-20      Patrik Torstensson
16968         * image.h (MonoAssemblyName): changed major, minor, build, revision
16969         from signed to unsigned.
16970
16971 2003-01-20  sean kasun <skasun@azstarnet.com>
16972
16973         * reflection.c (load_cattr_value): Now this handles
16974         MONO_TYPE_SZARRAY.  Fixes bug #35629
16975
16976 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
16977
16978         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
16979         integer value
16980
16981 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16982
16983         * decimal.c: fixed bug #26056.
16984
16985 2003-01-17  Martin Baulig  <martin@ximian.com>
16986
16987         * gc.c: Raise an ExecutionEngineException instead of using g_error().
16988
16989 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16990
16991         * exception.[ch]:
16992         (mono_get_exception_type_initialization): new function.
16993
16994         * object.c: throw a TypeInitializationException when an exception is
16995         thrown invoking the class constructor.
16996
16997 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16998
16999         * reflection.c: fixed attribute reading.
17000
17001 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17002
17003         * icall.c:
17004         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
17005         provided, look for the type in the calling assembly and then in
17006         mscorlib; if the assembly name is provided, only try that one.
17007
17008 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
17009
17010         * object.c: register the vtable before there is a chance it's
17011         queried again recursively.
17012
17013 2003-01-13  Duncan Mak  <duncan@ximian.com>
17014
17015         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
17016         gc-internal.h. 
17017         
17018 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
17019
17020         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
17021
17022 2003-01-11  Martin Baulig  <martin@ximian.com>
17023
17024         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
17025         this to 20 for the release.
17026
17027 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
17028
17029         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
17030
17031         * loader.c (mono_method_get_marshal_info): bug fix
17032
17033         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
17034         structures with explicit layout
17035
17036 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
17037
17038         * profiler.c: made the output more readable (and sorted). 
17039         Added caller information for the allocation profiler.
17040
17041 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
17042
17043         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
17044
17045 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17046
17047         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
17048         to get value types.
17049         
17050 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
17051
17052         * object.c, profiler.h, profiler.c, profiler-private.h:
17053         Added object allocation profiler.
17054
17055 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
17056
17057         * reflection.h, reflection.c: handle global methods.
17058         Compress blob entries.
17059
17060 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
17061
17062         * marshal.c: fix compilation.
17063
17064 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
17065
17066         * loader.c (mono_method_get_marshal_info): impl.
17067
17068         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
17069
17070 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17071
17072         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
17073         for reference types.
17074
17075 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
17076
17077         * loader.c: fixed off by one error in loaded parameter names.
17078
17079 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
17080
17081         * marshal.c (mono_marshal_get_icall_wrapper): like
17082         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
17083         instead of a MonoMethod.
17084
17085 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17086
17087         * decimal.c: fixed bug #36537.
17088
17089 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
17090
17091         * marshal.c: throw a missing method exception if a
17092         P/Invoke method is not found.
17093
17094 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
17095
17096         * icall.c: allow a null this for constructors.
17097
17098 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
17099
17100         * icall.c: raise the proper exceptions if the arguments to the
17101         internal Invoke are incorrect.
17102
17103 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
17104
17105         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
17106
17107 2003-01-03  Martin Baulig  <martin@ximian.com>
17108
17109         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
17110
17111 2002-12-31  Martin Baulig  <martin@ximian.com>
17112
17113         * debug-mono-symfile.c: Completely rewrote the type section.
17114         Instead of using individual malloc()ed fields, we use one big
17115         continuous memory area and offsets into this area.
17116         See the comments in the source code for details.
17117
17118 2002-12-30  Martin Baulig  <martin@ximian.com>
17119
17120         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
17121
17122 2002-12-30  Martin Baulig  <martin@ximian.com>
17123
17124         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
17125         line number table in this data blob instead of using an external
17126         pointer.
17127
17128 2002-12-28  Martin Baulig  <martin@ximian.com>
17129
17130         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
17131
17132 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
17133
17134         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
17135         as a boxed return type.
17136
17137 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
17138
17139         * appdomain.c
17140         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
17141         g_build_filename to properly get separators on the filename created.
17142
17143         * object.h: Small change, introduce MonoMarshalByRefObject to
17144         track the layout of that structure in the C# universe as we make
17145         changes there.
17146
17147 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
17148
17149         * object.c: removed assert to allow static fields on interfaces.
17150         * loader.c: a TypeSpec may be used for any type, not just arrays.
17151
17152 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
17153
17154         * class.c, class.h: added mono_class_array_element_size ().
17155         Ignore static methods in interfaces.
17156
17157 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17158
17159         * threads.c: fixed the build under cygwin.
17160
17161 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
17162
17163         * reflection.c: handle nullref constants. Allocate keys for
17164         reflection handles with the GC.
17165
17166 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17167
17168         * threads.c, threads.h: added mono_thread_get_abort_signal()
17169         to get a suitable signal for thread abort.
17170
17171 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17172
17173         * metadata.c: fix handling of ExportedType table.
17174
17175 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17176
17177         * icall.c: added WriteWindowsDebugString internal call.
17178
17179 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17180
17181         * reflection.h: added fields to match C# implementation.
17182
17183 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17184
17185         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
17186
17187 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
17188
17189         * gc.h, gc-internal.h: Rename header for GC internal calls to
17190         gc-internal.h from gc.h as to not clash with Boehm GC having its
17191         header installed as <gc.h> in outside include paths.
17192         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
17193         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
17194
17195 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17196
17197         * icall.c: assign minor, build and revision in FillName.
17198
17199 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
17200
17201         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
17202         Added support for running code generated by Reflection.Emit.
17203
17204 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17205
17206         * appdomain.c: check for NULL argument in LoadFrom.
17207
17208 2002-12-10  Dick Porter  <dick@ximian.com>
17209
17210         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
17211
17212 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17213
17214         * appdomain.c: fix buglet when building exe file name.  Handle full
17215         assembly name (needed after latest changes to AssemblyName).
17216         * image.c:
17217         (mono_image_close): free some hashtables.
17218
17219 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
17220
17221         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
17222         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
17223         on some systems (redhat 7.3) 
17224
17225 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
17226
17227         * threads.c: delete the critical section of a sync block,
17228         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
17229
17230 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
17231
17232         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
17233
17234 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17235
17236         * appdomain.[ch]: handle the assembly preload event to try loading the
17237         assemblies using the paths we have in the current domain.
17238
17239         * assembly.[ch]: created an assembly preload hook that is called to try
17240         loading the assembly by other means that the ones provided here.
17241
17242         * domain.c: initialize the domain search path.
17243
17244         From now on, assemblies (TODO: except corlib and System) are loaded
17245         according to these rules when using mono_assembly_load ():
17246
17247                 1. It tries to load the assembly from the ApplicationBase
17248                 of the current domain appending .dll and .exe (TODO: have to
17249                 try loading from name/name.dll and name/name.exe).
17250
17251                 2. It tries the search path specified in PrivateBinPath for the
17252                 current domain (if any).
17253
17254                 3. Previous behavior.
17255
17256 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
17257
17258         * icall.c: implemented GetInterfaceMap() related icall.
17259         * domain.c, loader.h: load MethodInfo in mono_defaults.
17260
17261 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
17262
17263         * gc.c: disable the finalizer thread for now, untill all the issues
17264         with it are resolved.
17265
17266 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17267
17268         * string-icalls.c: handle embedded nulls in string ctor when the
17269         length is specified.
17270
17271 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
17272
17273         * class.c: look for explicit interface implementation in parent
17274         classes, too.
17275
17276 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
17277
17278         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
17279
17280 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
17281
17282         * gc.c: protect handles with a critical section.
17283
17284 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17285
17286         * icall.c:
17287         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
17288         parameters. If no assembly specified, try getting the type from all
17289         the assemblies in the current domain, else, load the assembly and get
17290         the type from it.
17291
17292 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17293
17294         * marshal.c: applied patch from Aleksey Demakov that fixes
17295         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
17296
17297 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17298
17299         * icall.c: fixed get_location.
17300
17301 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
17302
17303         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
17304         declarations to make it work with older gcc. 
17305
17306         * loader.c (mono_get_method): set signature->pinvoke for native calls
17307
17308 2002-11-20  Dick Porter  <dick@ximian.com>
17309
17310         * threads.c (mono_thread_init): Set the main thread's handle
17311
17312 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
17313
17314         * gc.c: allow compilation without GC support. Changed to match the
17315         mono coding style.
17316
17317 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
17318
17319         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
17320
17321 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
17322
17323         * reflection.c: set a public key token on the core assemblies.
17324
17325 2002-11-18  Dick Porter  <dick@ximian.com>
17326
17327         * threads.c: Split out some thread initialisation so that other
17328         files can set the start callback function.
17329
17330         * gc.c: Run finalisers in a separate thread, to avoid stack
17331         overflow.  Fixes bug 31333.
17332
17333         * appdomain.c: Set up GC finalisation thread.
17334
17335         * reflection.c: 
17336         * object.c: 
17337         * domain.c: Use gc.h macros for GC_malloc
17338         
17339 2002-11-15  Dick Porter  <dick@ximian.com>
17340
17341         * threadpool.c: 
17342         * threads.c:
17343         * appdomain.c: Removed mono_runtime_init_with_attach(),
17344         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
17345         merging the extra parameter with the existing function.  Removed
17346         unneeded code in mono_thread_attach().
17347
17348 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
17349
17350         * image.c (mono_image_loaded_by_guid): a method to get loaded
17351         images by guid. 
17352         (load_metadata_ptrs): we store the guid as string.
17353
17354 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
17355
17356         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
17357
17358         * metadata.c (mono_guid_to_string): imported method form Zoltan
17359         Varga (slightly modified)
17360
17361         * assembly.c (mono_assembly_open): load precompiled code
17362
17363         * loader.h (MonoMethod): we store the method token for use in the
17364         aot compiler. 
17365
17366 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17367
17368         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
17369         the hook function called when an assembly is loaded.
17370         
17371         * domain.c: Modified file.
17372         (mono_domain_assembly_load): removed hash table insertion of assemblies.
17373
17374         Fixes bug #33196.
17375
17376 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
17377
17378         * reflection.c: Map PEFileKind to the value expected by the WinNT
17379         image loader. 
17380
17381 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17382
17383         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
17384         Read until the buffer is filled completely.
17385
17386 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17387
17388         * icall.c: implemented MonoType.InternalGetEvent ().
17389
17390 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17391
17392         * appdomain.c: implemented InitAppDomainSetup. Delayed
17393         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
17394         the entry_assembly.
17395
17396         * assembly.c: base_dir is now an absolute path ending with
17397         G_DIR_SEPARATOR.
17398
17399         * icall.c: modified get_location according to the above changes.
17400
17401         * object.c: init AppDomain.SetupInformation for the default domain after
17402         we have the entry assembly.
17403
17404         * domain.c: when unloading a domain, setup = NULL.
17405
17406 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
17407
17408         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
17409
17410 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
17411
17412         * object.h, object.c: introduced mono_object_get_virtual_method ()
17413         to lookup the method invoked on an object when a callvirt is done on
17414         a method.
17415         * icall.c: make MethodInfo::Invoke() always do a virtual call.
17416
17417 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17418
17419         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
17420         current domain when loaded an assembly and failed to load it.
17421
17422         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
17423
17424 2002-10-31  Dick Porter  <dick@ximian.com>
17425
17426         * icall.c: 
17427         * file-io.h: 
17428         * file-io.c: Return the error status in a parameter, as the
17429         GetLastError() value has long since been blown away if we try and
17430         look it up in a subsequent internal call invocation.  Delete the
17431         GetLastError() internal call, because it's useless.
17432
17433 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
17434
17435         * class.[ch]: added cast_class to fix bug 29517
17436
17437 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
17438
17439         * marshal.c: create valid IL code in the filter clause:
17440         the new JIT is less forgiving:-)
17441
17442 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17443
17444         * icall.c: removed get_property internal call.
17445
17446 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
17447
17448         * appdomain.h domain.c: Added an ID to appdomains.
17449         
17450         * threads.c threads.h icall.c: Implement icall
17451         Thread:GetDomainID(), and remove unused icall 
17452         CurrentThreadDomain_internal.
17453
17454 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17455
17456         * icall.c: Don't recurse through the base types in GetConstructor.
17457         Fixes bug #32063. 
17458
17459 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
17460
17461         * mempool.h, mempool.c: added mono_mempool_empty() and
17462         mono_mempool_stats().
17463
17464 2002-10-23  Dick Porter  <dick@ximian.com>
17465
17466         * file-io.c: 
17467         * file-io.h: 
17468         * icall.c: Added MonoIO.GetFileType internal call
17469
17470 2002-10-17  Dick Porter  <dick@ximian.com>
17471
17472         * appdomain.c (mono_runtime_cleanup): Don't signal the async
17473         delegate semaphore before waiting for all threads to finish,
17474         because new threads can also call async delegates.  Fixes bug
17475         32004.
17476
17477         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
17478         of 3 seconds, in case another async job is queued.  (This part is
17479         needed because the bug fix reintroduced the 3s exit lag.)  This
17480         makes the mono_runtime_shutdown flag superfluous.
17481
17482 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17483
17484         * reflection.c: include ehader size in method section headers.
17485         Really check for suplicated modules entries.
17486
17487 2002-10-17  Martin Baulig  <martin@gnome.org>
17488
17489         * debug-mono-symfile.c: Added back support for locals.
17490
17491 2002-10-14  Martin Baulig  <martin@gnome.org>
17492
17493         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
17494         MONO_TYPE_VOID.
17495
17496 2002-10-14  Martin Baulig  <martin@gnome.org>
17497
17498         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
17499         mono_class_get() instead of looking in the class cache. 
17500
17501 2002-10-13  Martin Baulig  <martin@gnome.org>
17502
17503         * debug-mono-symfile.c: Set version number to 28, include the
17504         signature in method names.
17505
17506 2002-10-13  Martin Baulig  <martin@gnome.org>
17507
17508         * debug-mono-symfile.h: Set version number to 27.
17509
17510 2002-10-11  Martin Baulig  <martin@gnome.org>
17511
17512         * gc.c: Don't register/unregister NULL pointers as disappearing links.
17513
17514 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17515
17516         * metadata.c, metadata.h: added helper function to allocate signatures.
17517
17518 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17519
17520         * icall.c: added internal call to get the location of machine.config.
17521
17522 2002-10-08  Martin Baulig  <martin@gnome.org>
17523
17524         * debug-mono-symfile.c: Ignore classes with a pending init for the
17525         moment.
17526
17527 2002-10-03  Dick Porter  <dick@ximian.com>
17528
17529         * threads.c: Freebsd pthread_t is a pointer
17530
17531 2002-10-03  Dick Porter  <dick@ximian.com>
17532
17533         * socket-io.c: Implemented GetHostName_internal
17534
17535 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17536
17537         * mono-config.c:
17538         (mono_config_parse_file): don't leak the text.
17539
17540 2002-10-02  Martin Baulig  <martin@gnome.org>
17541
17542         * debug-mono-symfile.c: Added support for methods.
17543
17544 2002-10-01  Martin Baulig  <martin@gnome.org>
17545
17546         * debug-mono-symfile.c: Don't emit methods and line numbers for
17547         the dynamic symbol file, just write the type table.  We can easily
17548         have an external helper program which creates a symbol file for an
17549         IL file.        
17550
17551 2002-10-01  Dick Porter  <dick@ximian.com>
17552
17553         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
17554         Only add the handle to the cleanup array when we're about to
17555         launch the thread.  Bug 31425 deadlocked when the test was run on
17556         mono under w32.
17557
17558 2002-10-01  Martin Baulig  <martin@gnome.org>
17559
17560         * debug-mono-symfile.c: Added support for properties.
17561
17562 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17563
17564         * reflection.c: unaligned store fix from Mark Crichton
17565         <crichton@gimp.org>.
17566
17567 2002-09-27  Martin Baulig  <martin@gnome.org>
17568
17569         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
17570         New interncall.
17571
17572 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17573
17574         * assembly.h, assembly.c: use a sane API to hook into the assembly
17575         loading process instead of a useless special-purpouse hack
17576         (ngen needs a hook, too, for example).
17577
17578 2002-09-27  Dick Porter  <dick@ximian.com>
17579
17580         * threads.c (mono_thread_init): Call GetCurrentProcess() so
17581         io-layer can set up some process handle info.  Not needed on w32,
17582         but doesn't hurt either.
17583
17584         * process.c: Pass the program name in the second parameter to
17585         CreateProcess, so the path is searched.  Include the working
17586         directory. Implemented process name, process enumeration, and some
17587         process detail internal calls.
17588         
17589         * icall.c: Added internal calls for process lookup, and some
17590         process details
17591
17592 2002-09-26  Martin Baulig  <martin@gnome.org>
17593
17594         * assembly.c (mono_install_open_assembly_hook): New global
17595         function to install a function to be invoked each time a new
17596         assembly is loaded.
17597         (mono_assembly_open): Run this callback function if set.
17598
17599         * debug-mono-symfile.c: Put back line numbers for the dynamic
17600         symbol file and also record the .il file as source file.  This
17601         allows us to install the temporary symbol file as `file.dbg' just
17602         like a compiler-generated one.
17603
17604 2002-09-26  Nick Zigarovich <nick@chemlab.org>
17605
17606         * Corrected typo in gc.c (BOHEM vs BOEHM).
17607
17608 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17609
17610         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
17611         GetProperties. Also avoid calling g_slist_length in GetProperties and
17612         GetMethods.
17613
17614 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17615
17616         * reflection.c: avoid unaligned stores (bug spotted by
17617         Mark Crichton  <crichton@gimp.org>).
17618
17619 2002-09-25  Martin Baulig  <martin@gnome.org>
17620
17621         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
17622         instead of guint64 for addresses and added prologue/epilogue info.
17623
17624 2002-09-25  Martin Baulig  <martin@gnome.org>
17625
17626         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
17627         store line number info.  For the dynamic symbol file, we only need
17628         to provide the JIT generated dynamic line number info for the dynamic
17629         symbol file.
17630
17631 2002-09-25  Martin Baulig  <martin@gnome.org>
17632
17633         * debug-mono-symfile.h: Incremented version number.
17634
17635 2002-09-24  Martin Baulig  <martin@gnome.org>
17636
17637         * class.c (mono_debugger_class_init_func): New global function
17638         pointer variable.
17639         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
17640         call it.
17641
17642         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
17643         function.  This is called via the mono_debugger_class_init_func
17644         hook to add all types to the dynamic type table.
17645         (ves_icall_MonoDebugger_GetType): New interncall to get a class
17646         from its metadata token.
17647
17648         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
17649         New interncall for the debugger.
17650
17651 2002-09-24  Nick Drochak <ndrochak@gol.com>
17652
17653         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
17654         before using it in case it is null.
17655         
17656 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17657
17658         * metadata.c: allow custom modifiers in local var signatures
17659         (bug spotted by Zoltan Varga).
17660
17661 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17662
17663         * class.c: deal with the <Module> class that may have a NULL vtable.
17664         Eliminate warnings.
17665
17666 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17667
17668         * image.c, image.h: more strong name helpers.
17669         * monosn.c: more work: convert pem keys to cryptoapi format.
17670
17671 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17672
17673         * string-icalls.c: speedup IndexOf.
17674
17675 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17676
17677         * icall.c: updates from Zoltan.2.Varga@nokia.com.
17678
17679 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17680
17681         * icall.c: cleanup: use mono_object_domain ().
17682
17683 2002-09-23  Martin Baulig  <martin@gnome.org>
17684
17685         * debug-mono-symfile.c: Improved type support.
17686
17687 2002-09-22  Martin Baulig  <martin@gnome.org>
17688
17689         * debug-mono-symfile.c: Added support for reference types and strings.
17690
17691 2002-09-22  Martin Baulig  <martin@gnome.org>
17692
17693         * debug-mono-symfile.c: Started to work on the type table.
17694
17695 2002-09-21  Martin Baulig  <martin@gnome.org>
17696
17697         * debug-mono-symfile.c: Largely reworked the symbol table format.
17698         The symbol table is now incrementally updated each time a new
17699         method is added.  We're now also using our own magic and version
17700         so that you don't need to recompile all your classes if the
17701         dynamic table changes.
17702         (mono_debug_update_mono_symbol_file): Removed.
17703         (mono_debug_symfile_add_method): New function to add a method.
17704
17705 2002-09-21  Martin Baulig  <martin@gnome.org>
17706
17707         * icall.c
17708         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
17709         New interncall.
17710
17711         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
17712         New interncall to get a method from its metadata token.
17713
17714 2002-09-21  Martin Baulig  <martin@gnome.org>
17715
17716         * debug-mono-symfile.c: Create type table.
17717
17718 2002-09-20  Martin Baulig  <martin@gnome.org>
17719
17720         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
17721
17722 2002-09-20  Martin Baulig  <martin@gnome.org>
17723
17724         * debug-mono-symfile.c: Provide information about params and locals.
17725
17726 2002-09-20  Martin Baulig  <martin@gnome.org>
17727
17728         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
17729         New interncall.
17730
17731         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
17732         interncall to get a method from its metadata token.
17733
17734 2002-09-20  Martin Baulig  <martin@gnome.org>
17735
17736         * debug-mono-symfile.c: Added a few checks for method->header
17737         being non-NULL.  This should never happen, but for the moment
17738         let's use a g_warning() rather than a g_assert().
17739
17740 2002-09-19  Mark Crichton  <crichton@gimp.org>
17741
17742         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17743         even if support for it isn't present.  Added an #ifdef to fix this.
17744
17745         * socket-io.c: Added checks back for Solaris support.
17746
17747 2002-09-19  Martin Baulig  <martin@gnome.org>
17748
17749         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17750         changes in the symbol file format.
17751
17752 2002-09-18  Martin Baulig  <martin@gnome.org>
17753
17754         * debug-mono-symfile.c: Set version number to 21.
17755
17756 2002-09-18  Dick Porter  <dick@ximian.com>
17757
17758         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17759         on netbsd.  Fixes bug 30051.
17760
17761 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17762
17763         * reflection.c:
17764         (set_version_from_string): little fix.
17765
17766 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17767
17768         * monosn.c, Makefile.am: added strong name utility.
17769         * reflection.h, reflection.c: implemented delayed signing,
17770         locale, version and hash id assembly attributes.
17771
17772 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17773
17774         * loader.c, metadata.c: load param attributes in signatures.
17775
17776 2002-09-16  Martin Baulig  <martin@gnome.org>
17777
17778         * debug-mono-symfile.c: Added string table with all method names.
17779
17780 2002-09-14  Martin Baulig  <martin@gnome.org>
17781
17782         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17783         fast method lookup.
17784
17785 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17786
17787         * reflection.c: record the public key token of referenced assemblies.
17788
17789 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17790
17791         * image.c, image.h: added functions to get the strong name and the
17792         public key of an assembly.
17793         * pedump.c: use them.
17794
17795 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17796
17797         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17798
17799 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17800
17801         * marshal.c (mono_marshal_get_managed_wrapper): Added
17802         MONO_TYPE_BOOLEAN 
17803
17804 2002-09-11  Martin Baulig  <martin@gnome.org>
17805
17806         * gc.c: Call GC_unregister_disappearing_link() on all links when
17807         finalizing them, this is necessary to aviod a crash in boehm's
17808         finalize handler.
17809
17810 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17811
17812         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17813         nick@chemlab.org.
17814
17815 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17816
17817         * icall.c: implemented MonoType::Module.
17818         * reflection.c, reflection.h: mono_module_get_object () from
17819         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17820
17821 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17822
17823         * icall.c: ignore overridden methods in GetMethods ().
17824         Fix for FieldInfo::SetValue().
17825         * object.c: handle float/double in runtime invoke.
17826
17827 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17828
17829         * object.c: allow a constructor to be called again on an object.
17830
17831 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17832
17833         * class.h, class.c: move field layout code to it's own function and
17834         export it. Get an interface id earlier. Move fields in MonoClass
17835         so they are more cache friendly and align the bitfields.
17836         * loader.c: temporary handle get_param_names() for a runtime method.
17837         * reflection.c, reflection.h: more code to handle runtime creation of
17838         types.
17839
17840 2002-09-09  Martin Baulig  <martin@gnome.org>
17841
17842         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17843         signature with the pinvoke field being set for the actual call.
17844
17845 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17846
17847         * icall.c: removed some unused icalls. Start of map of glib charsets
17848         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17849
17850 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17851
17852         * debug-helpers.c: break infinite loop (found and fixed by
17853         Holger Arnold <harnold@gmx.de>).
17854
17855 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17856
17857         * icall.c: target may be null in create_delegate.
17858
17859 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17860
17861         * marshal.c: handle a boolean return type.
17862
17863 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17864
17865         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17866
17867 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17868
17869         * gc.c: fix weakreferences.
17870
17871 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17872
17873         * icall.c: added icall to get default codepage.
17874
17875 2002-09-03  Dick Porter  <dick@ximian.com>
17876
17877         * threads.h: 
17878         * threads.c: Use MonoThread instead of MonoObject where
17879         apropriate.
17880
17881         Store running thread objects in a hash table, so that we have all
17882         the info to hand when waiting for them to finish
17883         (means we don't need OpenThread() any more, so mingw builds should
17884         be fully functional again.)
17885
17886         * verify.c:
17887         * object.h: Added thread ID to MonoThread
17888
17889 2002-09-03  Martin Baulig  <martin@gnome.org>
17890
17891         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17892
17893 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17894
17895         * icall.c: fixed leak in get_temp_path. Thanks lupus.
17896
17897 2002-09-03  Martin Baulig  <martin@gnome.org>
17898
17899         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17900         argument to store the end address of the disassembled instruction.
17901
17902         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
17903         here from debug-symfile.h.
17904         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
17905         JIT into this struct.
17906         (MonoSymbolFile): Added `char *image_file' field.
17907         (MonoDebugGetMethodFunc): Removed.
17908         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
17909         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
17910         (mono_debug_find_method): New method.
17911
17912         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
17913         create a full symbol file.
17914         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
17915         and static symbol files.
17916         (mono_debug_find_method): The symbol file keeps an internal method hash,
17917         call this to get a MonoDebugMethodInfo from a MonoMethod.
17918
17919         * debug-symfile.[ch]: Removed.
17920
17921 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
17922
17923         * image.c (do_mono_image_open): Remove linker version check.
17924
17925 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
17926
17927         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
17928         wrappers for instance methods.
17929         
17930 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17931
17932         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
17933
17934 2002-08-28  Dick Porter  <dick@ximian.com>
17935
17936         * Makefile.am: Export HOST_CC for w32 builds
17937
17938 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17939
17940         * file-io.c process.c: MonoString are null terminated, no
17941         need for mono_string_to_utf16() anymore.
17942
17943 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17944
17945         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
17946
17947 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
17948
17949         * icall.c, reflection.h: speedup System.MonoType.
17950
17951 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17952
17953         * reflection.c: allow null as the value of a string argument in
17954         custom attributes constructors.
17955
17956 2002-08-27  Martin Baulig  <martin@gnome.org>
17957
17958         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
17959         `trampoline_address' field.
17960
17961 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
17962
17963         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
17964         check (fixes bug #29486) 
17965
17966 2002-08-27  Martin Baulig  <martin@gnome.org>
17967
17968         * debug-mono-symfile.c: Changed the file format in a way that allows us
17969         open it read-only and to use a specially malloced area for all the
17970         dynamic data.  We can now also generate a symbol file on-the-fly if we're
17971         debugging IL code and there is no MCS generated symbol file for it.
17972
17973 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17974
17975         * object.c: added a define for a good string and array
17976         creation speedup (not enabled by default because we need to deal with
17977         the synch stuff).
17978
17979 2002-08-26  Martin Baulig  <martin@gnome.org>
17980
17981         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
17982         function to create a dynamic symbol file.  This is used by the
17983         debugger to create a symbol file for IL code on-the-fly.
17984
17985 2002-08-26  Martin Baulig  <martin@gnome.org>
17986
17987         * loader.c (mono_lookup_pinvoke_call): Include the error message
17988         from g_module_error() in the error message.
17989
17990 2002-08-24  Martin Baulig  <martin@gnome.org>
17991
17992         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
17993         function to update the symbol file.  The symbol file is mmap()ed
17994         writable, but private.  This allows us to install the symbol file
17995         together with the assembly.
17996
17997 2002-08-24  Martin Baulig  <martin@gnome.org>
17998
17999         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
18000         but they can read the new symbol file format which mcs is now creating.
18001
18002         * debug-symfile.c (mono_debug_find_source_location): Moved to
18003         debug-mono-symfile.c; this is now operating on the new symbol file.
18004
18005 2002-08-23  Martin Baulig  <martin@gnome.org>
18006
18007         * debug-helpers.c (mono_method_desc_from_method): New function to get
18008         a MonoMethodDesc from a MonoMethod.
18009
18010 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18011
18012         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
18013         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
18014
18015 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18016
18017         * string-icalls.[ch]: make helper methods static.
18018
18019 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18020
18021         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
18022         types to it and to SetValueInternal.
18023
18024         * object.c: Moved handle_enum label to its proper place. This was the
18025         f... bug! ;-)
18026
18027         This time i compiled mcs and gtk-sharp and they both work.
18028
18029 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18030
18031         * icall.c: reverted partially my previous patch until 
18032         object.c:set_value handles enums correcly.
18033
18034 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18035
18036         * icall.c:
18037         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
18038         (ves_icall_System_Environment_get_MachineName): removed warning when
18039         compiling under cygwin.
18040
18041 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18042
18043         * object.c: fixed field_get_value() for reference types.
18044
18045 2002-08-22  Dick Porter  <dick@ximian.com>
18046
18047         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
18048         Don't free a buffer while it's still needed.  Patch from Jonathan
18049         Liger <Jonathan.liger@wanadoo.fr>
18050
18051 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
18052
18053         * icall.c (ves_icall_System_Environment_get_Platform): Add new
18054         internal call.
18055
18056 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
18057
18058         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
18059         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
18060
18061         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
18062         we call unmanaged code which throws exceptions.
18063
18064 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18065
18066         * appdomain.h: added per-domain entry_assembly.
18067         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
18068         arguments.
18069         * icall.c: Assembly::GetEntryAssembly icall.
18070         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
18071         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
18072
18073 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18074
18075         * appdomain.h, gc.c: added mono_domain_finalize ().
18076
18077 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18078
18079         * object.c:
18080         (mono_print_unhandled_exception): changed g_warning by g_printerr
18081         because g_log has a 1024 characters limit (yeah, i got a big stack
18082         trace). Don't print exception name, that should be in ToString 
18083         returned string.
18084
18085 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18086
18087         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
18088         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
18089
18090 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18091
18092         * object.c:
18093         (mono_print_unhandled_exception): after previous commit, i realized
18094         that MS calls ToString on the exception. I changed this function to
18095         do that. This way we get stack_trace for free.
18096
18097 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18098
18099         * object.c:
18100         (mono_print_unhandled_exception): invoke Message property instead of
18101         getting 'message' field from Exception. Don't allocate memory for
18102         'trace' and 'message' if not needed.
18103
18104 2002-08-18  Dick Porter  <dick@ximian.com>
18105
18106         * unicode.c: Fix asserts to match Encoder.cs checks
18107
18108 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18109
18110         * marshal.c: fix unaligned store issue and a few wrong
18111         opcode argument types.
18112
18113 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18114
18115         * icall.c: added GetUninitializedObjectInternal internal call.
18116
18117 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
18118
18119         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
18120         to the right domain.
18121
18122 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
18123
18124         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
18125
18126         * class.c (class_compute_field_layout): set blittable to false for Strings
18127
18128         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
18129
18130 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18131
18132         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
18133         first chunk of code to create types at runtime. Code to
18134         handle ReflectedType/DeclaringType. Make reflection handles
18135         domain specific.
18136
18137 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18138
18139         * class.c: set correct name in arrays.
18140
18141 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
18142
18143         * appdomain.c (mono_domain_transfer_object): make it work with
18144         valuetypes. bug fixes.
18145
18146 2002-08-12  Dick Porter  <dick@ximian.com>
18147
18148         * object.h: Rename some parameters to avoid c++ keywords (Patch
18149         from Joseph Wenninger <kde@jowenn.at>)
18150
18151 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
18152
18153         * icall.c: added icall to implement Assembly.GetFile*.
18154
18155 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18156
18157         * reflection.h, reflection.c: code to embed managed resources.
18158
18159 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18160
18161         * class.c: move all the type size stuff into
18162         class_compute_field_layout().
18163
18164 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18165
18166         * class.c: ensure enums have always the correct instance size.
18167         * unicode.c: remove wrong assert.
18168
18169 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18170
18171         * assembly.c: fix mem corruption issue.
18172         * image.h, image.c: added mono_image_get_resource () to access
18173         managed resources.
18174         * icall.c: implemented Assembly.EntryPoint property and some
18175         Managed Resources related internalcalls.
18176
18177
18178 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18179
18180         * image.c, image.h: impemented mono_image_get_entry_point ().
18181         * appdomain.c: use mono_image_get_entry_point.
18182
18183 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18184
18185         * reflection.c: support the object type argument when loading
18186         custom attributes.
18187
18188 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
18189
18190         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
18191         String as return type.
18192
18193 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
18194
18195         * reflection.c: fix encoding of named args for custom attrs to match
18196         the ms implementation. Read them back when instantiating custom
18197         attributes.
18198
18199 2002-08-02  Radek Doulik  <rodo@ximian.com>
18200
18201         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
18202         by Dietmar as quick fix
18203         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
18204         16 as stack size, used on more places as quick fix before Dietmar
18205         will fix it properly
18206
18207 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18208
18209         * object.h, object.c: added accessors for fields and properties.
18210
18211 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18212
18213         * class.c, class.h: made mono_class_get_field_from_name ()
18214         loop on parent types.
18215         Added mono_class_get_property_from_name ().
18216
18217 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18218
18219         * class.c, class.h: move the code to setup the type vtable in its own
18220         function so that it can be reused also for types created at runtime.
18221         Eliminate the "class" identifier from the header file.
18222         * reflection.c: setup the vtable for enums so that we can create
18223         objects for use in SetConstant ().
18224
18225 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
18226
18227         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
18228         instead of the delegate itself as this pointer (bug #28383)
18229
18230 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
18231
18232         * marshal.c (mono_marshal_get_managed_wrapper): added return type
18233         conversions.
18234
18235 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18236
18237         * loader.c: don't set the pinvoke bit on icalls.
18238
18239 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
18240
18241         * debug-helpers.c (mono_method_full_name): only print a number to
18242         indicate wrapper type (so that the output is more readable in traces).
18243
18244 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
18245
18246         * class.c (mono_class_init): include method override patch from Paolo
18247
18248 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
18249
18250         * icall.c: fixed GetTypeCode().
18251
18252 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
18253
18254         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
18255         use real delegate invoke function to make it work with multicast
18256         delegates (fix bug# 28291).
18257
18258 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18259
18260         * object.c: load constant strings.
18261
18262 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18263
18264         * reflection.c: no magic numbers.
18265         * tabledefs.h: security action enum.
18266
18267 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18268
18269         * assembly.c: fix possible memory corruption.
18270
18271 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18272
18273         * reflection.h, reflection.c: added support for linking resources.
18274         * verify.c: check we have an updated corlib.
18275
18276 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
18277
18278         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
18279         string arrays.
18280         (mono_marshal_string_array): null terminate unmanaged string arrays.
18281         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
18282
18283 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18284
18285         * icall.c: Type.GetType () can now return also types from the
18286         calling assembly.
18287
18288 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
18289
18290         * loader.h, loader.c: stack walking support.
18291         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
18292         GetCallingAssembly.
18293
18294 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
18295
18296         * marshal.c: added optimisations for blittable types 
18297
18298         * class.c (mono_array_class_get): do not set blittable attribute on arrays
18299         (mono_class_setup_mono_type): set blittable attribute for single
18300         and double.
18301
18302         * marshal.c (mono_string_utf8_to_builder): impl.
18303         (mono_string_builder_to_utf8): impl.
18304         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
18305
18306 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
18307
18308         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
18309         (mono_marshal_get_managed_wrapper): impl. byref types
18310
18311 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18312
18313         * icall.c:
18314         (search_method): don't display debug message. 
18315
18316 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
18317
18318         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
18319
18320 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
18321
18322         * appdomain.c: set the missing filename when throwing exception.
18323
18324 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
18325
18326         * metadata.c (mono_type_size): code cleanup
18327         (mono_type_stack_size): removed some test code
18328
18329 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
18330
18331         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
18332         mono_get_exception_file_not_found now.
18333
18334         * exception.c (mono_exception_from_name_two_strings): New version
18335         that will call a constructor with two string arguments. 
18336         (mono_get_exception_file_not_found): New helper routine, used to
18337         report file-not-found errors.
18338
18339 2002-07-20  Dick Porter  <dick@ximian.com>
18340
18341         * process.h:
18342         * process.c: Pass file handles to CreateProcess
18343         
18344         * icall.c:
18345         * file-io.h:
18346         * file-io.c: Implemented CreatePipe
18347
18348 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
18349
18350         * metadata.c (mono_get_param_info): set alignment for value types
18351
18352 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18353
18354         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
18355         Constify mono_domain_assembly_open().
18356         * loader.c: handle null namespace in icalls.
18357
18358 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
18359
18360         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
18361         (emit_str_to_ptr_conv): marshal object as structs
18362
18363         * metadata.c (mono_type_to_unmanaged): marshal object as structs
18364
18365         * marshal.c (mono_marshal_get_runtime_invoke): support value types
18366
18367 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
18368
18369         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
18370         (mono_marshal_get_native_wrapper): we an now return value types
18371
18372 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18373
18374         * verify.c: more checks implemented.
18375
18376 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
18377
18378         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
18379         (fix bug #27695)
18380         (mono_marshal_get_native_wrapper): allow byref arguments
18381         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
18382         impl. PtrToStringXXX methods
18383         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
18384         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
18385         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
18386         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
18387         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
18388
18389 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18390
18391         * reflection.c: fix buglet in parsing an assembly name.
18392
18393 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
18394
18395         * marshal.c (emit_ptr_to_str_conv): first impl.
18396
18397 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18398
18399         * object.c, class.h: cache the vtable in the class as suggested by
18400         vargaz@freemail.hu (Zoltan Varga).
18401
18402 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18403
18404         * class.h, loader.c: added mono_field_from_token().
18405         * verify.c: first cut of type checking code.
18406
18407 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
18408
18409         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
18410
18411 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
18412
18413         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
18414         (fix bug #27782)
18415         (mono_marshal_get_remoting_invoke): impl.
18416         (mono_delegate_begin_invoke): impl.
18417         (mono_mb_emit_save_args): impl.
18418         (mono_delegate_end_invoke): impl.
18419         (mono_marshal_get_delegate_begin_invoke):
18420         (mono_marshal_get_delegate_end_invoke):
18421         (mono_marshal_get_delegate_invoke): generate a special name for
18422         those methods (including the signature) and associate them whith
18423         the delegate class. 
18424
18425 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
18426
18427         * reflection.[ch]: 
18428         (mono_reflection_type_from_name): now it has a MonoImage parameter
18429         which is used as the default image to search the type in. If the image
18430         is NULL or getting the type from it fails, it defaults to corlib.
18431
18432         * icall.c: changed 1 call to mono_reflection_type_from_name to match
18433         new parameter.
18434
18435 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18436
18437         * reflection.c: update the parameter table index.
18438
18439 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18440
18441         * domain.c: don't include the mark byte in the string hash.
18442
18443 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18444
18445         * icall.cs: icall for Type.GetTypeCode ().
18446         * verify: a couple of fixes and disabled local initialization checks.
18447
18448 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
18449
18450         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
18451
18452         * debug-helpers.c (mono_method_full_name): print the type of the
18453         runtime wrapper
18454
18455         * metadata.c (mono_signature_hash): a hash function for signatures
18456         (mono_signature_hash): better hash algorithm
18457
18458         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
18459
18460         * debug-helpers.c (mono_method_full_name): this can now generate
18461         method names with signatures
18462
18463         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
18464         method dont have this pointers.
18465
18466 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18467
18468         * reflection.c: fixup typebuilder tokens.
18469         * image.c: fix buglet.
18470         * marshal.h: remove whitespace.
18471         * metadata.h, metadata.c: reinstate code that was removed.
18472         * verify.c: handle catch directives and fix another couple of bugs.
18473
18474 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
18475
18476         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
18477         (mono_marshal_get_native_wrapper): make it comp. with the old code
18478         (mono_marshal_get_native_wrapper): support boolean
18479         (mono_marshal_get_managed_wrapper): support more types
18480
18481 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
18482
18483         * class.c (class_compute_field_layout): compute class->blittable attribute.
18484
18485 2002-07-09  Dick Porter  <dick@ximian.com>
18486
18487         * threads.c: Make the thread cleaning up cope with threads that
18488         call ExitThread()
18489
18490 2002-07-08  Radek Doulik  <rodo@ximian.com>
18491
18492         * reflection.c (method_encode_code): use non-translated values to
18493         compute finally_start, this fixes exception handling on ppc, yay!
18494
18495         * decimal.h (struct signscale): fix endianess
18496
18497 2002-07-07  Radek Doulik  <rodo@ximian.com>
18498
18499         * reflection.c: swap box_val and not val
18500
18501 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18502
18503         * reflection.c, reflection.h: handle full assembly info in type name.
18504         Handle Type arguments when loading custom attributes.
18505         * icall.c: updated to use new mono_reflection_type_from_name () method.
18506
18507 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18508
18509         * loader.c:
18510         (method_from_memberref): also print assembly name when method not found.
18511
18512 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18513
18514         * icall.c:
18515         (ves_icall_TypeGetProperties): fixed bug #27473. 
18516
18517 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18518
18519         * reflection.c: display image name and token when cannot find the
18520         .ctor for an attribute.
18521
18522 2002-07-05  Martin Baulig  <martin@gnome.org>
18523
18524         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18525
18526 2002-07-04  Dick Porter  <dick@ximian.com>
18527
18528         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
18529         compile on mingw.  This will cause mingw builds to not wait for
18530         subthreads to terminate after the main thread does.  I've lodged a
18531         bug with the mingw developers for them to wrap OpenThread().
18532
18533 2002-07-03  Dick Porter  <dick@ximian.com>
18534
18535         * threads.c: Store thread IDs instead of handles, because
18536         GetCurrentThread() returns a pseudohandle and therefore stores
18537         useless values.  mono_thread_cleanup() continues checking the
18538         array of threads until it is empty, to cope with subthreads
18539         spawning new threads after the main thread has finished.
18540
18541         * profiler.h:
18542         * profiler.c:
18543         * profiler-private.h: Pass the thread ID to thread profiler
18544         functions, instead of a handle
18545
18546 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18547
18548         * verify.c: fixes to make it more usable.
18549         * pedump.c: added --verify code to verify IL code in an assembly.
18550
18551 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18552
18553         * reflection.c: turn errors into warnings to allow compiling corlib.
18554
18555 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18556
18557         * reflection.c: add special cases to compile corlib.
18558
18559 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18560
18561         * reflection.c: handle properties with only a set method.
18562
18563 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18564
18565         * opcodes.h: add enum with opcodes in opval order.
18566
18567 2002-07-01  Dick Porter  <dick@ximian.com>
18568         
18569         * object.h:
18570         * object.c (mono_runtime_run_main): Removed unneeded argument
18571
18572 2002-06-28  Martin Baulig  <martin@gnome.org>
18573
18574         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18575
18576 2002-06-27  Dick Porter  <dick@ximian.com>
18577
18578         * threads.c: Store the handle in both the parent thread and in the
18579         subthread, to minimise the time between starting a new thread and
18580         storing its ID.
18581
18582 2002-06-26  Dick Porter  <dick@ximian.com>
18583
18584         * appdomain.c (mono_runtime_cleanup): Close the socket library
18585         after all the threads have finished, not before
18586
18587 2002-06-26  Martin Baulig  <martin@gnome.org>
18588
18589         * debug-symfile.c (mono_debug_find_source_location): Added
18590         `guint32 *line_number' argument.  If it's not NULL, store the line number
18591         there and return the file name without the line number.
18592
18593 2002-06-25  Dick Porter  <dick@ximian.com>
18594
18595         * icall.c:
18596         * process.h:
18597         * process.c: Process forking and other support functions
18598
18599 2002-06-25  Dick Porter  <dick@ximian.com>
18600
18601         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
18602         things dont happen when the image is closed.
18603         (mono_image_lookup_resource): Walk the resource section looking
18604         for a particular entry
18605
18606         * cil-coff.h: PE resource section decoding
18607
18608 2002-06-25  Dick Porter  <dick@ximian.com>
18609         
18610         * assembly.h:
18611         * assembly.c: 
18612         (mono_assembly_foreach): Accessor functions to walk the list of
18613         loaded assemblies
18614         (mono_assembly_set_main):
18615         (mono_assembly_get_main): Process methods need to know which
18616         assembly is the "main" one
18617
18618         * object.c (mono_runtime_run_main): Record the main assembly
18619
18620         * debug-helpers.c: Fix typo
18621
18622 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
18623
18624         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
18625         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
18626
18627 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18628
18629         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
18630
18631 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
18632
18633         * image.c (do_mono_image_open): Initialize reference count,
18634         otherwise we leak the MonoImage.
18635
18636 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18637
18638         * reflection.c: small tweak to handle self-hosting.
18639
18640 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18641
18642         * reflection.c: fix type name parse code.
18643
18644 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18645
18646         * reflection.c: break out of the loop.
18647         * image.c: special case corlib.
18648
18649 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18650
18651         * reflection.c: add all the custom attrs at the end to ensure the
18652         ctors have been properly initialized when the attributes are defined
18653         in the current assembly.
18654
18655 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18656
18657         * reflection.c: handle correctly multiple-nested types.
18658
18659 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18660
18661         * row-indexes.h: fix typos.
18662         * reflection.c: adjust for typos and fix method_def_or_ref
18663         encoding in MethodImpl table.
18664
18665 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18666
18667         * reflection.c: fix entry point patching (thanks Serge!).
18668
18669 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
18670
18671         * verify.c: add check for System.Exception
18672
18673 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18674
18675         * image.c, class.c: minifix for code just c&p'ed.
18676         * reflection.c: warning fix.
18677         * object.h, loader.h, domain.c: load also StringBuilder.
18678
18679 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18680
18681         * marshal.h, marshal.c: some support code to handle complex marshaling.
18682
18683 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18684
18685         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
18686         Better signatures with vtable error dump.
18687
18688 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
18689
18690         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
18691
18692 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
18693
18694         * icall.c (ves_icall_Type_GetField): impl.
18695
18696 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18697
18698         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
18699         to retrieve a marshal description blob for a field or param.
18700
18701 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18702
18703         * reflection.h, reflection.c: change order of nested type emission
18704         to avoid table corruption. The NestedTypes table is sorted.
18705         * icall.c: change order of GetConstructor results to workaround mcs bug.
18706
18707 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18708
18709         * reflection.h, reflection.c: handle field and param marshal
18710         information.
18711
18712 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18713
18714         * icall.c, marshal.c marshal.h: more Marshal class implementation.
18715
18716 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18717
18718         * reflection.c: fix call convention.
18719
18720 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18721
18722         * reflection.h, reflection.c: mono_image_get_memberref_token()
18723         takes a type instead of a class, now. Added
18724         mono_image_get_array_token() to create tokens for the special
18725         multi-dim array methods.
18726
18727 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18728
18729         * assembly.c: handle modules (no assembly table). Split
18730         loading references in its own function.
18731         * class.c: handle moduleref resolution scope.
18732         * image.c, image.h: cache module name in image.
18733
18734 2002-06-07  Martin Baulig  <martin@gnome.org>
18735
18736         * reflection.c (mono_image_get_type_info): Only add a class layout entry
18737         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18738
18739 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18740
18741         * icall.c: more signature fixes that used uint instead of int.
18742
18743 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18744
18745         * reflection.c: fixed signature of field refs.
18746
18747 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18748
18749         * class.c, reflection.c: handle typerefs of nested types
18750         (both on read and when writing files).
18751
18752 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18753
18754         * icall.c: fix method signatures that tried to workaround the previous
18755         typo, d'oh!
18756
18757 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18758
18759         * debug-helpers.c: fix typo.
18760
18761 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18762
18763         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18764         rewrote the PE/COFF writing code (our programs are understood by the
18765         ms runtime, now).
18766
18767 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18768
18769         * gc.c, gc.h, icall.c: weakreference support.
18770
18771 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18772
18773         * Makefile.am, mono-config.c: use $(sysconfdir).
18774
18775 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18776
18777         * icall.c: changed default precision of Double.ToString() to 15.
18778         Fixed memory leak. Unified with Single.ToString.
18779
18780 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18781
18782         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18783
18784 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18785
18786         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18787         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18788         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18789         and myself.
18790
18791 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18792
18793         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18794
18795 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18796
18797         * reflection.c, socket-io.c: more compilation fixes.
18798
18799 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18800
18801         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18802         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18803         unicode.c: warning and compiler compatibility fixes.
18804
18805 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18806
18807         * class.h, metadata.c: fixed warnings/compilation errors.
18808
18809 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18810
18811         * Makefile.am, mono-config.c, mono-config.h: configuration file
18812         support routines.
18813         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18814         config file. Export methods to insert and lookup mappings.
18815
18816 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18817
18818         * reflection.c: handle types and boxed objects in custom attr
18819         constructors.
18820
18821 2002-05-30  Martin Baulig  <martin@gnome.org>
18822
18823         * debug-symfile.c
18824         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18825
18826 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18827
18828         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18829         to lookup the implmap row for a P/Invoke method.
18830         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18831         P/Invoke method from the runtime on an as needed basis.
18832
18833 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18834
18835         * metadata.c (mono_metadata_parse_signature): impl.
18836
18837 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18838
18839         * class.c: handle .pack directive.
18840
18841 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18842
18843         * object.c: initialize static fields with RVA data.
18844
18845 2002-05-25  Martin Baulig  <martin@gnome.org>
18846
18847         * debug-symfile.c
18848         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18849
18850 2002-05-24  Martin Baulig  <martin@gnome.org>
18851
18852         * debug-symfile.c
18853         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18854         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18855         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18856
18857 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18858
18859         * object.c: special case string ctros in invoke.
18860         * gc.c: silly whitespace changes.
18861
18862 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18863
18864         * threadpool.[ch]: impl. a threadpool that can
18865         be used by mint and mono.
18866
18867 2002-05-22  Martin Baulig  <martin@gnome.org>
18868
18869         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18870         The first argument is now a `MonoReflectionModuleBuilder *', the return
18871         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18872         `methods' field to get the method builder.  The `token' argument is the
18873         unfixed token.
18874
18875         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18876         invalid characters instead of g_assert_not_reached()ing.  This seems
18877         to be the behaviour of mscorlib.
18878
18879 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18880
18881         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18882         Hestilow to fix bug #25104
18883
18884 2002-05-21  Martin Baulig  <martin@gnome.org>
18885
18886         * debug-symfile.c (mono_debug_find_source_location): New function.
18887         Looks up an IL offset in the line number table and returns the source
18888         location as a string.
18889
18890 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18891
18892         * icall.c:
18893         (mono_double_ToStringImpl): changed %f by %g until we have something
18894         better.
18895
18896 2002-05-21  Nick Drochak  <ndrochak@gol.com>
18897
18898         * icall.c : Use different name for Math.Pow's icall.  Needed to check
18899         parameters first in C#.
18900
18901 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18902
18903         * icall.c, reflection.h: added icall to get info about an event.
18904
18905 2002-05-20  Radek Doulik  <rodo@ximian.com>
18906
18907         * object.c (mono_value_box): don't use memcpy for boxing on BIG
18908         endian
18909         (mono_value_box): don't use memcpy for small sizes on
18910         architectures with unaligned access
18911
18912 2002-05-20  Martin Baulig  <martin@gnome.org>
18913
18914         * reflection.c (mono_reflection_setup_internal_class): Don't crash
18915         if `tb->parent == NULL'.
18916         (mono_reflection_create_internal_class): New function.  This is
18917         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
18918         for enum types.
18919
18920         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
18921         New interncall.
18922
18923 2002-05-19  Martin Baulig  <martin@gnome.org>
18924
18925         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
18926         argument to get the length, don't default to the array length.
18927
18928 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
18929
18930         * assembly.c (mono_assembly_setrootdir): New function used to
18931         override the MONO_ASSEMBLIES directory.
18932
18933 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18934
18935         * icall.c: ValueType_GetHashCode() initialize local var.
18936
18937 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18938
18939         * reflection.c: sort custom attributes table.
18940
18941 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18942
18943         * reflection.c: support named args in custom attributes (write support).
18944
18945 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18946
18947         * reflection.c: fix finally position calculation.
18948
18949 2002-05-15  Radek Doulik  <rodo@ximian.com>
18950
18951         * reflection.c: fixed endianess at many places
18952
18953         * icall.c (ves_icall_InitializeArray): comment out debug msg
18954
18955 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
18956
18957         * object.c (mono_unhandled_exception): new function to handle
18958         unhandled exceptions.
18959         (mono_unhandled_exception): call the UnhandledException event.
18960         (mono_runtime_delegate_invoke): impl.
18961
18962 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
18963
18964         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
18965         returns the RVA, not the direct pointer to the data. Handle the case
18966         when the class size is fixed.
18967
18968 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18969
18970         * reflection.c: fix some endianess issues.
18971
18972 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
18973
18974         * object.c (mono_runtime_invoke): is now able to catch exceptions.
18975
18976         * threads.c (mono_thread_init): added a callback which is invoked
18977         at thread start.
18978
18979 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18980         
18981         * icall.c: make GetHashCode return non-negative values.
18982
18983 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18984
18985         * object.c, icall.c, gc.c: revert to address-based hashcode.
18986
18987 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
18988
18989         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
18990
18991 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18992
18993         * icall.c, class.c: special case <Module>.
18994
18995 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
18996
18997         * icall.c: fix bug in GetNow().
18998
18999 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
19000
19001         * object.c (mono_runtime_class_init): make sure that we call all
19002         static class constructors.
19003
19004 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19005
19006         * reflection.c: sort methodsemantics table.
19007
19008 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19009
19010         * reflection.h, reflection.c: honour init locals setting.
19011
19012 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
19013
19014         * icall.c: copied Double ToStringImpl for Single ToStringImpl
19015
19016 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19017
19018         * reflection.c: support ContructorBuilders in attribute blob creation.
19019
19020 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19021
19022         * reflection.c: some changes to build a binary that can be run
19023         directly in windows.
19024
19025 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
19026
19027         * loader.c: print a big message when an icall can't be found.
19028
19029 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19030
19031         * string-icalls.c: fix bug 24248.
19032
19033 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19034
19035         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
19036         icall.c, reflection.h: separate assembly loading by pathname and by
19037         assembly name. Use the MONO_PATH env var to search for assemblies.
19038
19039 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19040
19041         * assembly.c, image.h: add some support for assemblies
19042         with multiple modules.
19043         * class.c, class.h: export mono_class_from_typeref().
19044         * loader.c: remove duplicated code and use mono_class_from_typeref(),
19045         instead.
19046
19047 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19048
19049         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
19050         documentation says (the ECMA one is correct).
19051
19052 2002-05-02  Dick Porter  <dick@ximian.com>
19053
19054         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
19055         Don't name the synchronisation mutex.
19056
19057 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
19058
19059         * rand.c
19060         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
19061         Make the prototypes match.
19062         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
19063         Same.
19064
19065         * icall.c
19066         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
19067         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
19068         all systems have tm.tm_zone, so use strftime() with %Z to print
19069         the timezone abreviation into a temp string.
19070
19071         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
19072         rather than mono_array_addr() on a MonoString on Big Endian
19073         machines.
19074
19075 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
19076
19077         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
19078         fix bug 24041
19079
19080 2002-04-30  Dick Porter  <dick@ximian.com>
19081
19082         * socket-io.c: Cope with SOCKET being an integer rather than a
19083         pointer now.
19084
19085         * threads.c: Added Thread_free_internal, to deal with thread
19086         handle cleanup.  Moved calls to handle_store() and handle_remove()
19087         to start_wrapper(), so each can only be called once.  Allocate
19088         synchronisation blocks with GC_malloc(), and use GC finalisation
19089         to close the handles.
19090
19091         * icall.c: added System.Threading.Thread::Thread_free_internal
19092
19093 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19094
19095         * icall.c: support Environment.Exit, CommandLineArgs().
19096
19097 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19098
19099         * object.c, object.h: added mono_runtime_run_main () and
19100         mono_runtime_get_main_args () for use in System.Environment.
19101
19102 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19103
19104         * gc.c: fix thinko, enable actual finalization since the jit is now
19105         fixed.
19106
19107 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19108
19109         * gc.c, object.c: take into account that an object may be offset wrt the address
19110         returned by GC_malloc().
19111
19112 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19113
19114         * image.c: handle files without entries in the assembly table (modules).
19115
19116 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
19117
19118         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
19119         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
19120         allowed to be null when it's System.Object class setup.
19121
19122 2002-04-27  Martin Baulig  <martin@gnome.org>
19123
19124         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
19125         if `tb->parent == NULL' rather than crashing.
19126
19127 2002-04-28  Nick Drochak  <ndrochak@gol.com>
19128
19129         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
19130         calling acos() where asin() should have been called.
19131
19132 2002-04-26  Martin Baulig  <martin@gnome.org>
19133
19134         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
19135         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
19136         there's a subdirectory called `System', but we don't want to read that
19137         subdirectory as an assembly.
19138
19139 2002-04-25  Martin Baulig  <martin@gnome.org>
19140
19141         * debug-symfile.c: Reflect latest MonoString changes.
19142
19143 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19144
19145         * rand.c, rand.h: instance method icalls need to have an explicit
19146         this pointer as first argument in the C implementation.
19147
19148 2002-04-25  Nick Drochak <ndrochak@gol.com>
19149
19150         * icall.c: Fix typo in map for GetNonZeroBytes
19151
19152 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19153
19154         * string-icalls.c : String does now passes unit tests without any 
19155         errors, the following changes has been made:
19156         
19157         Implemented replace methods.
19158         Renaming of methods to (try) follow the standard.
19159         Fixed compare ordinal
19160         Made all memory allocated directly to function instead of via icall function.
19161         Small performance fix in is_in_array function
19162                         
19163  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
19164
19165         c (mono_string_Internal_ctor_charp_int_int):
19166         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
19167         sindex < 0, throw ArgumentOutOfRangeException instead of
19168         ArgumentNullException.
19169
19170         Added new check for length == 0, however
19171         I need to make it return String.Empty from the C code.
19172         
19173         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
19174         that calculate the length for us here.
19175         
19176         (mono_string_Internal_ctor_sbytep_int_int): Replaced
19177         mono_string_new_utf16 with mono_string_new, since value is utf8.
19178
19179 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19180
19181         * object.c: register the object for finalization if needed.
19182         Allocate one more char in the string for the terminating 0 char.
19183
19184 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19185
19186         * class.c, class.h, image.c: check if a type implemenst a destructor.
19187         Use the proper key for array class lookups.
19188         * icall.c: register the icalls in the System.GC class.
19189         * gc.c, gc.h: GC-related functions and icalls.
19190
19191 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19192
19193         * icall.c:
19194         * socket-io.c:
19195         * unicode.c: free some strings gotten from mono_string_to_utf8 and
19196         changed a couple of free () by g_free ().
19197
19198         * decimal.c: one-liner in the comments for decimal2string ().
19199
19200 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19201
19202         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
19203
19204 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19205
19206         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
19207         * object.c (mono_runtime_invoke_array) : handle null in params
19208
19209 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19210
19211         * string-icalls.c: fixed bug in split (one off bug)
19212
19213 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19214
19215         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
19216         * icalls.c: added String::Equals as internal method
19217
19218 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19219
19220         * threads.c: fixed bug in the double interlocked functions
19221
19222 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
19223
19224         * threads.c: implemented all of the new interlocked icalls.
19225         * string-icalls.c: fix a bug in insert.
19226         * icalls.c: added the icalls for interlocked, removed old string functions.
19227         
19228 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19229
19230         * loader.c: fix off-by-one error when reading argument names.
19231
19232 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19233
19234         * profiler.c: win32 counter implementation (untested).
19235         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
19236         (the latter needs testing and more complete impl. from win32 folks).
19237
19238 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
19239
19240         * object.c: mono_array_new_full workaround mono_array_class_get
19241         problem.
19242
19243 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19244
19245         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
19246         * object.h (mono_string_chars): Changed casting type.
19247
19248 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19249
19250         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
19251                            method signatures to use gunichar2 instead of gint16.
19252
19253 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
19254
19255         * object.h, object.c: domain-specific versions of mono_object_new and
19256         mono_array_new.
19257
19258 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
19259
19260         * object.c: changed String layout
19261
19262         * string-icalls.c (mono_string_Internal_ctor_chara): added
19263         internal string constructors.
19264
19265 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
19266
19267         * threads.c: pass 'this' to the thread start routine.
19268
19269 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19270
19271         * string-icalls.c: fix IndexOf and LastIndexOf. Now
19272         InternalCompareStr don't call twice mono_string_cmp_char for the last
19273         character. Improved performance in mono_string_cmp_char.
19274
19275 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19276
19277         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
19278         code into its own library: libmonoruntime.
19279
19280 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
19281
19282         * object.h, object.c: changed array format so that szarrays do not
19283         require a bounds structure.
19284         * icall.c, appdomain.c: support for new szarray format.
19285
19286 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
19287
19288         * metadata.c: compare also the retuns type when comparing signatures:
19289         we didn't do this as an optimization since really overloaded methods
19290         must differ also in the arguments, but this doesn't work with
19291         low-level IL code (or when using explicit conversion operators: see
19292         bug#23498 for an example).
19293
19294 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19295
19296         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
19297
19298 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19299
19300         * icall.c: make MonoType::GetElementType its own icall.
19301
19302 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19303
19304         * icall.c: remove MonoMethod_get_Name().
19305         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
19306         object.
19307
19308 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19309
19310         * string-icalls.c: optimized a few methods.
19311
19312 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19313
19314         * icall.c: added all new string internal calls
19315         * string-icalls.c: added, new string internal call implementation.
19316         * object.c: added mono_string_new_size for allocating a string a size
19317
19318 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
19319
19320         * object.c (mono_object_isinst): use the same code as in the
19321         optimized x86 version.
19322
19323 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19324
19325         * profiler.c: TSC-based timer code (faster and more accurate).
19326         Not hooked up in configure, yet (set USE_X86TSC to 1).
19327
19328 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
19329
19330         * profiler.c, profiler.h: track time spent compiling methods.
19331         * threads.c: track thread creation/destruction.
19332
19333 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
19334
19335         * profiler.c, profiler.h, profiler-private.h: profiling interface
19336         and sample implementation. Moved here so that it can be used also by
19337         the jit.
19338
19339 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
19340
19341         * reflection.c, reflection.h: keep types and other handles separate in
19342         the hash tables for referred tokens. Add guid for modules.
19343
19344 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19345
19346         * assembly.c: fix bugs found with valgrind.
19347         * metadata.h, metadata.c: added mono_metadata_guid_heap().
19348
19349 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
19350
19351         * threads: added icall support for getting current domain for
19352                    the thread.
19353  
19354 2002-04-13  Martin Baulig  <martin@gnome.org>
19355
19356         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
19357         (MonoDebugVarInfo): Added `index' field for register based addresses.
19358         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
19359         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
19360         `MonoDebugVarInfo *params' and `guint32 this_offset' with
19361         `MonoDebugVarInfo *this_var'.
19362
19363         * debug-symfile.c (relocate_variable): New static function to write
19364         a location description for a local variable or method parameter.
19365
19366 2002-04-12  Martin Baulig  <martin@gnome.org>
19367
19368         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
19369         stack offset and begin/end scope address of a local variable.
19370         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
19371         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
19372         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
19373
19374         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
19375         Added new relocation types for start/end scope of a local variable.
19376
19377 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19378
19379         * object.h: add mono_object_domain() macro.
19380         * reflection.c: handle typespecs.
19381         * icall.c: MonoMethod::get_Name() implementation.
19382
19383 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19384
19385         * icall.c: String::GetHashCode() icall implementation.
19386
19387 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19388
19389         * icall.c: String::IndexOfAny icall.
19390         * object.c, object.h: make array->max_length more useful.
19391         Intrduced mono_object_class() and mono_string_length() macros.
19392
19393 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19394
19395         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
19396         instead of g_unichar_isdigit.
19397
19398 2002-04-11  Nick Drochak  <ndrochak@gol.com>
19399
19400         * icall.c: Implement a simple Double.ToString().
19401
19402 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19403
19404         * appdomain.h: only io-layer.h is supposed to be included.
19405         * icall.c: explicitly import environ. Fix warning.
19406
19407 2002-04-10  Nick Drochak  <ndrochak@gol.com>
19408
19409         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
19410                 return true even if it's not Daylight Savings time.
19411                 Only return false for the case where the function isn't
19412                 implemented for a plaform (read Windows).
19413
19414 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19415
19416         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
19417         data with a mutex.
19418
19419 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
19420
19421         * mempool.c (mono_mempool_alloc): only use g_malloc when
19422         absolutely necessary.
19423
19424 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
19425
19426         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
19427
19428         * class.c (mono_class_vtable): use domain mempool to allocate vtable
19429         (mono_class_proxy_vtable): use domain mempool
19430
19431 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19432
19433         * appdomain.h, appdomain.c: split initialization that requires the
19434         execution engine support into mono_runtime_init().
19435
19436 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
19437
19438         * class.c (mono_class_init): don't include vtable inside MonoClass
19439         to save some memory, gather some statistics.
19440         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
19441
19442 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19443
19444         * icall.c: internalcall implementation for ValueType.Equals().
19445
19446 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
19447
19448         * object.c (mono_message_init): moved 
19449         (mono_runtime_exec_main): new arch. independent impl.
19450         (mono_runtime_invoke_array): new method - like
19451         mono_runtime_invoke, but you can pass an array of objects.
19452         (mono_remoting_invoke): new arch. independent impl.
19453         (mono_message_invoke): new arch. independent impl.
19454         (mono_runtime_class_init): new arch. independent impl.
19455         (mono_runtime_object_init): new arch. independent impl.
19456
19457 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19458
19459         * metadata.c, object.c, reflection.c: documented the exported
19460         functions.
19461
19462 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19463
19464         * icall.c: simpler code to pass the assembly builder data to corlib.
19465         Implement GetNestedTypes() internalcall.
19466
19467 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19468
19469         * class.c: warn if a type can't be loaded.
19470
19471 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
19472
19473         * image.h: typedef MonoImageOpenStatus
19474         * types.h: removed unused file
19475         
19476 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
19477
19478         * icall.c: Enum_ToObject accepts enum value arguments.
19479
19480 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19481
19482         * class.c: move initialization of properties, events and nested
19483         classes, so that they happen for interfaces, too.
19484
19485 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19486
19487         * icall.c: cleanup some ugly casts in Array_SetValue*.
19488
19489 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19490
19491         * icall.c: the values array fro enums is of the correct type, now.
19492         Implement (correctly) getFullName instead of assQualifiedName for
19493         MonoType.
19494         * reflection.h, reflection.c: added mono_type_get_name ().
19495
19496 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19497
19498         * assembly.c, image.h: for each MonoImage, record from wich assembly
19499         it was loaded.
19500         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
19501         Make Type.Assembly work.
19502
19503 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
19504
19505         * debug-symfile.h: use char* instead of gpointer to avoid
19506         unnecessary casts.
19507
19508         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
19509
19510         * icall.c (ves_icall_InternalExecute): impl. FielSetter
19511         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
19512
19513 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
19514
19515         * icall.c (mono_message_init): impl. (code cleanup)
19516         (ves_icall_InternalExecute): impl. FieldGetter
19517
19518         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
19519         defined we call all (non-static)methods through the vtable. 
19520
19521 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
19522
19523         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
19524         finalizer even though the memory is still referenced (and the chunk of
19525         memory is not freed).
19526
19527 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19528
19529         * assembly.c: fix brokeness.
19530
19531 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
19532
19533         * class.c: kill some warnings. Check explicit interface method
19534         implementation also without considering the namespace.
19535         Load also literal strings in static class data.
19536
19537 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
19538
19539         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
19540         (default_assembly_name_resolver): Make the resolver take the
19541         "base" directory where the assembly was originally defined, so we
19542         can load DLLs that are in the same directory as the assembly that
19543         is being referenced.
19544
19545 2002-03-28  Dick Porter  <dick@ximian.com>
19546
19547         * file-io.h: 
19548         * file-io.c:
19549         * socket-io.c: 
19550         * unicode.h: 
19551         * unicode.c: Warning cleanups
19552
19553 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
19554
19555         * object.h, reflection.h: use the correct type instead of MonoObject.
19556
19557 2002-03-28  Martin Baulig  <martin@gnome.org>
19558
19559         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
19560         (mono_debug_update_symbol_file): Initialize classes if necessary.
19561
19562 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19563
19564         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
19565         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
19566
19567 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
19568
19569         * assembly.h: fix function prototype.
19570         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
19571         * mono-endian.h: use const cast.
19572
19573 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19574
19575         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
19576
19577 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19578
19579         * loader.c: don't assert when a typeref can't be loaded, give
19580         a chance to the runtime to trow an exception instead.
19581         * loader.h: fix warning.
19582
19583 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19584
19585         * class.c (mono_class_proxy_vtable): added proxy support
19586
19587 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
19588
19589         * icall.c: removed last of PAL calls, added System.Environment
19590         * file-io.h, file-io.c: MonoIO implementation
19591         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
19592
19593 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19594
19595         * appdomain.c: do not use the byte marker in ldstr table lookup.
19596         * debug-helpers.c: allow two ':' to separate class and method name.
19597         * object.c: allocate arrays bounds with the GC, too.
19598         * verify: add a few more checks.
19599
19600 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
19601
19602         * reflection.c: output also literal strings. Allocate parameter data
19603         with GC_malloc() (thanks, Martin, for catching this!).
19604
19605 2002-03-26  Martin Baulig  <martin@gnome.org>
19606
19607         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
19608         include the `this' offset in the `param_offsets'.
19609
19610 2002-03-25  Martin Baulig  <martin@gnome.org>
19611
19612         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
19613         mono_debug_get_class() function to get the classes. Added new
19614         relocation types for arrays and strings.
19615         (mono_debug_get_class): New static function to search in all
19616         referenced assemblies for a metadata token.
19617
19618         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
19619
19620 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19621
19622         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
19623         hold gc-allocated objects. Make the string heap a stream like the
19624         others. Removed duplicated code when writing stream info.
19625         Added asserts to catch possible buffer overflows. Set the sorted map
19626         for tables that need sorting. Added some documentation.
19627
19628 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
19629
19630         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
19631         for interned strings and vtables.
19632
19633 2002-03-24  Martin Baulig  <martin@gnome.org>
19634
19635         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
19636         it in the array since it was created with g_slist_prepend().
19637
19638 2002-03-24  Martin Baulig  <martin@gnome.org>
19639
19640         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
19641         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
19642         (mono_debug_method_from_token): Renamed to
19643         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
19644         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
19645
19646         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
19647         relocation types.
19648
19649         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
19650
19651 2002-03-24  Martin Baulig  <martin@gnome.org>
19652
19653         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
19654         (mono_debug_method_from_token): New func.
19655
19656         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
19657         New interncall, calls mono_debug_local_type_from_signature().
19658         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
19659         calls mono_debug_method_from_token().
19660
19661 2002-03-23  Martin Baulig  <martin@gnome.org>
19662
19663         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
19664         specifies the number of bytes to be converted, not the array size.
19665         Return the number of chars, not the number of bytes.
19666         (ves_icall_iconv_get_chars): The `byteCount' argument
19667         specifies the number of bytes to be converted, not the array size.
19668
19669 2002-03-23  Martin Baulig  <martin@gnome.org>
19670
19671         * reflection.h (MonoReflectionSigHelper): New type.
19672
19673         * reflection.c (mono_reflection_sighelper_get_signature_local),
19674         (mono_reflection_sighelper_get_signature_local): New functions.
19675
19676         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
19677         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
19678         interncalls.
19679
19680 2002-03-23  Martin Baulig  <martin@gnome.org>
19681
19682         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
19683         is_writeable is set.
19684         (mono_raw_buffer_update): New function to write the modified map
19685         back to disk.
19686
19687         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
19688
19689         * debug-symfile.c (mono_debug_update_symbol_file): Call
19690         mono_raw_buffer_update() when done writing.
19691
19692 2002-03-23  Martin Baulig  <martin@gnome.org>
19693
19694         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
19695
19696         * debug-symfile.c: Added support for arguments and local variables.
19697
19698 2002-03-23  Dick Porter  <dick@ximian.com>
19699
19700         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
19701         protected by ifdefs, hence breaking the w32 build.
19702
19703 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19704
19705         * object.c: implement is_interned() the right way.
19706
19707 2002-03-21  Martin Baulig  <martin@gnome.org>
19708
19709         * debug-symfile.[ch]: New files to handle debugging information
19710         files. There's also support to dynamically update these symbol
19711         files to include machine dependent information.
19712
19713 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
19714
19715         * threads.c (mono_thread_create): new function to create thread
19716         from C
19717
19718 2002-03-20  Martin Baulig  <martin@gnome.org>
19719
19720         * icall.c (ves_icall_InternalInvoke): Create a new object if the
19721         method is a constructor.
19722         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
19723         points to ves_icall_InternalInvoke().
19724
19725 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
19726
19727         * file-io.c: Flush shouldn't throw exceptions.
19728
19729 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
19730
19731         * file-io.c: FileStream flush support; FileSetLength now
19732         restores file pointer.
19733
19734 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19735
19736         * class.c: set image for pointer classes.
19737
19738 2002/03/19  Nick Drochak <ndrochak@gol.com>
19739
19740         * sysmath.c: Forgot one.
19741
19742 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19743
19744         * sysmath.c: Avoid redefining existing names.
19745
19746 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19747
19748         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19749         handled by runtime as icall rather than dllimport from libm.so
19750         * file-io.c, file-io.h: fixed handle argument type.
19751
19752 2002-03-18  Dick Porter  <dick@ximian.com>
19753
19754         * reflection.c (mono_image_get_type_info): rename interface to
19755         iface, because of "#define interface struct" on windows.
19756
19757 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19758
19759         * class.c, class.h: rename and export mono_ptr_class_get().
19760         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19761         * reflection.c, reflection.h, icall.c: better/saner type name
19762         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19763         method signatures.
19764
19765 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19766
19767         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19768
19769         * icall.c (ves_icall_InternalInvoke): impl.
19770
19771 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19772
19773         * reflection.c: output the interface map table, too.
19774
19775 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19776
19777         * class.c (class_compute_field_layout): separate computation of 
19778         static field layout
19779
19780 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19781
19782         * icall.c: added System.Buffer support.
19783         * file-io.c: moved file icalls from PAL to FileStream.
19784
19785 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19786
19787         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19788
19789 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19790
19791         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19792
19793 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19794
19795         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19796
19797 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19798
19799         * debug-helpers.{c,h}: moved here from monograph some useful functions
19800         to locate a method by name/signature in a class or image. Included
19801         also a small and flexible IL disassembler.
19802
19803 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19804
19805         * reflection.c: fixup tokens in methods with small header size, too.
19806
19807 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19808
19809         * object.c (mono_string_to_utf8): remove assert(!error), instead
19810         print a warning. 
19811
19812 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19813
19814         * icall.c: update to the new mono_Array_class_get interface.
19815
19816 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19817
19818         * appdomain.c, object.c: Boehm-GC enable.
19819         * icall.c: make get_data_chunk() support split data requests.
19820         Ensure a class is initialized in more cases. Return only the first
19821         property found in GetProperties() or the compiler gets confused. 
19822         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19823         * reflection.h, reflection.c: add fixup mechanism for field and method
19824         tokens. Initialize assembly->typeref in a single place. Output
19825         properties after events. Support custom attributes for events, too.
19826         Typo fix for paramter custom attrs.
19827
19828 2002-03-07  Martin Baulig  <martin@gnome.org>
19829
19830         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19831
19832 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19833
19834         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19835
19836 2002-03-06  Martin Baulig  <martin@gnome.org>
19837
19838         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19839         non-zero lower bounds. See testcases #F10-#F13.
19840
19841 2002-03-05  Martin Baulig  <martin@gnome.org>
19842
19843         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19844
19845         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19846         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19847         here.
19848         (ves_icall_System_Array_SetValue): Likewise.
19849         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19850         as argument and does the actual work. This function is used when copying a
19851         multi-dimensional array.
19852         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19853         now do all the widening conversions of value types.
19854         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19855
19856 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19857
19858         * class.c: remove some magic numbers and use the smbolic names,
19859         instead. Added init_events() to load event info at class init time.
19860         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19861         and mono_metadata_methods_from_event().
19862         * reflection.h, reflection.c: added support for writing out the evnets
19863         related information.
19864
19865 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19866
19867         * reflection.h, icall.c: use a different method (GetInterfaces)
19868         to gather interface info and add isbyref, isprimitive and
19869         ispointer to the ves_icall_get_type_info() return value.
19870
19871 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19872
19873         * class.h: stared adding support for events.
19874         * icall.c: split find_members implementation. Added debug icall to get
19875         the address of an object.
19876         * reflection.c: handle TypeBuilders in mono_type_get_object().
19877
19878 2002-03-01  Martin Baulig  <martin@gnome.org>
19879
19880         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19881         ArgumentOutOfRangeException(), not an ArgumentException().
19882         (ves_icall_System_Array_GetLowerBound): Likewise.
19883         (ves_icall_System_Array_GetValue): Improved argument checking.
19884         (ves_icall_System_Array_SetValue): Improved argument checking.
19885
19886 2002-03-01  Martin Baulig  <martin@gnome.org>
19887
19888         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19889         called with invalid arguments rather than just dying with g_assert().
19890         (ves_icall_System_Array_SetValue): Likewise.
19891         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19892         raise a NotImplementedException instead.
19893         (ves_icall_System_Array_GetLength): Added argument checking.
19894         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19895
19896 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
19897
19898         * object.h (mono_assert): new macros mono_assert and
19899         mono_assert_not_reached
19900
19901 2002-02-28  Martin Baulig  <martin@gnome.org>
19902
19903         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
19904         and "System::String::IsInterned" to "System::String::_IsInterned".
19905
19906 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
19907
19908         * icall.c: remove hacks for typebuilder. Added icall to create a
19909         modified type from a tybebuilder.
19910         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
19911         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
19912         to create a backing MonoClass for a TypeBuilder.
19913
19914 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19915
19916         * class.c, class.h: more refactoring of class init.
19917         Export mono_class_setup_mono_type() and mono_class_setup_parent().
19918
19919 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
19920
19921         * marshal.c, marshal.h: start of marshaling interface.
19922
19923 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19924
19925         * icall.c: fix order in assembly qualified name icall.
19926
19927 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19928
19929         * class.c: do not free str, since we store it in the hash table.
19930         * reflection.h: add label field to MonoILExceptionInfo.
19931         * reflection.c: handle references to more than one assembly. Handle
19932         case when there isn't a module created in the assembly.
19933
19934 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19935
19936         * class.c: Fix typo. Start refactoring of class init code.
19937
19938 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19939
19940         * appdomain.c: exit with 1 on error.
19941         * class.c: we already have the name in MonoClassField.
19942         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
19943         MonoStreamHeader instead of an offset of image->raw_metadata.
19944
19945 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
19946
19947         * appdomain.c (mono_init): Be even more descriptive about the error.
19948
19949 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
19950
19951         * appdomain.c: give the user an informative message when corlib can't
19952         be loaded.
19953
19954 2002-02-26  Martin Baulig  <martin@gnome.org>
19955
19956         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19957         New icall to get the time zone data.
19958
19959 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19960
19961         * reflection.c: set virtual and raw size of section correctly.
19962         * threads.c: transfer domain information to newly created threads.
19963
19964 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19965
19966         * class.c: when instancing a class in a domain, load the default
19967         vaules for static fields from the constant table. Fix System.Enum to
19968         not be an enum.
19969         * icall.c: implement Object::GetType() internalcall. Implemented
19970         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
19971         Fixed checking of binding flags in find_members().
19972         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
19973         * reflection.c: handle enumerations when writing to the constant
19974         table. Use a different object cache for types.
19975
19976
19977 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
19978
19979         * object.c (mono_object_isinst): fix for arrays
19980
19981         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
19982
19983 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19984
19985         * object.c: don't use mprotect ()  and fix intern pool hash table
19986         lookup for big endian systems.
19987
19988 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19989
19990         * icall.c: change type_is_subtype_of () signature.
19991
19992 2002-02-21  Mark Crichton  <crichton@gimp.org>
19993
19994         * rand.c, rand.h: Added random number generator for
19995         System.Security.Cryptography classes.
19996
19997         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
19998
19999         * icall.c: Added System.Security.Cryptography calls.
20000
20001 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
20002
20003         * class.c, icall.c, metadata.c: better support for pointer types.
20004         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
20005         * reflection.c: Add support for getting custom attrs for properties
20006         and simplify some code.
20007
20008 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20009
20010         * icall.c: change getToken () and add custom attribute GetBlob()helper
20011         method.
20012         * reflection.h: add custom attrs array to the reflection builder structures.
20013         * reflection.c: encode and emit custom attributes for all the relevant
20014         reflection objects. Cache fieldref and methodref tokens. Change
20015         mono_image_create_token() interface to take a MonoDynamicAssembly.
20016         More complete custom attributes decoder. Load custom attributes for
20017         Assembly, Field, Method and Constructor objects, too. Make the
20018         returned array an Attribute[] one, not object[]. Added
20019         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
20020         custom attribute constructor.
20021
20022 2002-02-20  Dick Porter  <dick@ximian.com>
20023
20024         * icall.c:
20025         * rawbuffer.c:
20026         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
20027         problem code out for now).
20028
20029 2002-02-19  Radek Doulik  <rodo@ximian.com>
20030
20031         * object.c (mono_ldstr): use hash table to avoid multiple swapping
20032
20033 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
20034
20035         * icall.c: register the GetCustomAttributes method.
20036         * object.c, object.h: add mono_string_new_len ().
20037         * reflection.h, reflection.c: added mono_runtime_invoke(),
20038         mono_install_runtime_invoke(). Added
20039         mono_reflection_get_custom_attrs () to load custom attributes and
20040         create the attribute objects.
20041
20042 2002-02-19  Dick Porter  <dick@ximian.com>
20043         * threads-dummy-types.c:
20044         * threads-dummy-types.h:
20045         * threads-dummy.c:
20046         * threads-dummy.h:
20047         * threads-pthread-types.c:
20048         * threads-pthread-types.h:
20049         * threads-pthread.c:
20050         * threads-pthread.h:  Deleted obsolete files
20051
20052 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
20053
20054         * class.c (mono_class_vtable): runtime init the class when we
20055         allocate static class data.
20056
20057         * icall.c (ves_icall_System_Array_SetValue): check for null values.
20058
20059         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
20060         and String - but we will need generic marshalling support in the
20061         future. 
20062         (mono_init): set the domain name in a ms compatible way
20063
20064         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
20065         String[].
20066
20067 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
20068
20069         * object.c (mono_array_clone): use alloca() instead of g_malloc  
20070         for sizes
20071
20072         * appdomain.c (mono_domain_unload): impl.
20073
20074 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20075
20076         * appdomain.c, object.c: fix intern pool implementation.
20077         * class.c: fix alignment code.
20078
20079 2002-02-16  Radek Doulik  <rodo@ximian.com>
20080
20081         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
20082         and s2 > s1, just copy lower bytes to be compatible with little
20083         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
20084         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
20085
20086         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
20087         force big_endian to be 1 for big endian machines 
20088         (ves_icall_iconv_new_decoder): ditto
20089
20090 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
20091
20092         * socket-io.c (convert_sockopt_level_and_name): If the system
20093         doesn't define SOL_IP or SOL_TCP, get them by hand using
20094         getprotobyname() and caching the values (because this could be a
20095         slow operation).
20096         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
20097         Use the appropriate struct when the system does support it. Ie,
20098         not all systems have struct ip_mreqn so use struct ip_mreq when
20099         appropriate.
20100
20101 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
20102
20103         * reflection.c: handle finally clauses.
20104
20105 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
20106
20107         * socket-io.c: use g_snprintf() instead of snprintf.
20108
20109 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
20110
20111         * reflection.c (mono_param_get_objects): Cast second argument to
20112         mono_method_get_param_names to a const char** to silence the
20113         compiler warning.
20114
20115         * appdomain.c (mono_domain_assembly_open): Put parens around the
20116         truth statement in the for-loop.
20117
20118         * unicode.c (iconv_convert): Got rid of a compiler warning about
20119         int i being unused when the system has a new iconv.
20120         (iconv_get_length): Same.
20121
20122         * image.c (load_class_names): Cast the second argument to
20123         g_hash_table_insert() to char* to hush compiler warnings about the
20124         arg being a const.
20125         (mono_image_open): Same here.
20126
20127         * socket-io.c: Don't conditionally include sys/filio.h or
20128         sys/sockio.h here anymore since we now get them from
20129         io-layer/io-layer.h
20130         (inet_pton): If the system doesn't support inet_aton, implement
20131         using inet_addr and also #define INADDR_NONE if it isn't defined
20132         by the system.
20133
20134 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
20135
20136         * metadata.c, metadata.h: added function to get packing and size info
20137         of a typedef.
20138         * reflection.h, reflection.c: handle field RVA data. Save info about
20139         the table layout if needed. Assign typedef indexes to all the types
20140         before dumping the info about them to avoid forward reference problems.
20141
20142 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
20143
20144         * socket-io.c (convert_sockopt_level_and_name): ifdef
20145         SO_ACCEPTCONN because it is not defined on my system (old debian)
20146
20147 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20148
20149         * opcode.c: use stddef.h to get NULL.
20150
20151 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
20152
20153         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
20154         for FIONBIO, FIONREAD and SIOCATMARK.
20155         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
20156         define INADDR_NONE and besides, inet_addr() is deprecated and
20157         should not be used. Use inet_pton() instead - it also has the
20158         added bonus that it can easily handle IPv6 addresses as well.
20159         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
20160
20161 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
20162
20163         * decimal.c: remove _MSC_VER conditional.
20164
20165 2002-02-13  Dick Porter  <dick@ximian.com>
20166
20167         * socket-io.c: 
20168         * icall.c: Internal calls for Blocking, Select, Shutdown,
20169         GetSocketOption and SetSocketOption
20170
20171 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20172
20173         * assembly.cs: better resolver: use it instead of some kludgy
20174         code.
20175
20176 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
20177
20178         * reflection.c: the best way to speed-up the compiler is to avoid
20179         infinite loops.
20180
20181 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
20182
20183         * class.c (mono_class_vtable): changed the object layout
20184         (obj->vtable->class). 
20185         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
20186
20187 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20188
20189         * assembly.c: look for assemblies in the assembly dir, too.
20190
20191 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20192
20193         * class.c: fix thinko in mono_class_from_type().
20194
20195 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20196
20197         * exception.h, exception.c: added TypeLoadException.
20198         * object.h, object.c: added mono_array_clone ().
20199         * icall.c: handle throwOnError in AssemblyGetType().
20200         Added Array.Clone().
20201         * opcode.h, opcode.c: use a single value for the opcode val.
20202         Compile fix for non-gcc compilers.
20203
20204 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
20205
20206         * opcodes.c, opcodes.h: export interesting info about opcodes.
20207
20208 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
20209
20210         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
20211         icalls. 
20212
20213         * class.c (class_compute_field_layout): set element_class for enums
20214         (mono_class_create_from_typedef): set element_class for normal classes
20215
20216         * icall.c (ves_icall_System_Enum_get_value): impl.
20217
20218         * class.c (mono_class_create_from_typedef): do not set valuetype
20219         flag for System.ValueType and System.Enum
20220
20221 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
20222
20223         * unicode.c (iconv_convert): fix big endian problem.
20224
20225 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20226
20227         * class.c: add asserts if we are ever going to scribble over memory.
20228         * socket-io.c: not all systems have AF_IRDA defined.
20229
20230 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
20231
20232         * class.c (class_compute_field_layout): do not consider static
20233         fields to compute alignment
20234
20235 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
20236
20237         * appdomain.c (mono_appdomain_get): impl.
20238         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
20239
20240 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
20241
20242         * icall.c: ignore "file://" prefix when loading an assembly.
20243
20244 2002-01-23  Dick Porter  <dick@ximian.com>
20245
20246         * socket-io.c:
20247         * icall.c:
20248         * Makefile.am: Added socket support
20249
20250 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
20251
20252         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
20253         code back.  This should return the assemblies that are loaded by
20254         the runtime on behalf of an application domain. 
20255
20256         The current implementation is still broken, it just returns every
20257         assembly loaded, but until we get real applications domain this
20258         will do.
20259
20260 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
20261
20262         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
20263         AppDomain object.
20264
20265 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
20266
20267         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
20268         the mono_class_from_name lookup.
20269         (ves_icall_get_parameter_info): ditto.
20270         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
20271         method.
20272         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
20273
20274 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
20275
20276         * class.c: load also nested classes on class init.
20277         System.ValueType instance methods gets passed boxed
20278         values, unless methods in derived classed that get a pointer to the
20279         data.
20280         * icall.c: use better name parsing code in GetType().
20281         * image.c, image.h: add mono_image_loaded ().
20282         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
20283         * reflection.c, reflection.h: added mono_reflection_parse_type().
20284
20285 2002-01-22  Veronica De Santis <veron78@interfree.it>
20286
20287         * icall.c : Added mapping of internal calls for Manual and Auto reset events
20288         * threads.c : Added the implementation of internal calls for events
20289         * threads.h : Added prototypes of internal calls for events
20290         
20291 2002-01-21  Radek Doulik  <rodo@ximian.com>
20292
20293         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
20294
20295 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
20296
20297         * class.c (mono_class_init): set min_align to 1 (instead of 0)
20298         (mono_class_value_size): use min_align
20299
20300 2002-01-20  Dick Porter  <dick@ximian.com>
20301
20302         * threads.h:
20303         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
20304         so it compiles on w32.
20305
20306 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
20307
20308         * metadata.c (mono_type_stack_size): impl.
20309
20310         * class.c (mono_class_get_field): impl. memberref token
20311
20312 2002-01-16 Veronica De Santis <veron78@@interfree.it>
20313
20314         * icall.h : Added the internal calls mapping for CreateMutex_internal
20315                     and ReleaseMutex_internal.
20316         * threads.h : Added the prototype of mutexes internal calls.
20317         * threads.c : Added the implementations of mutexes internal calls.
20318
20319 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
20320
20321         * metaparse.h: removed unused file.
20322         * reflection.c, reflection.h: added stream_data_align () function 
20323         to align data in streams and keep stream aligned. Add support for
20324         exception support in method headers.
20325
20326 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
20327
20328         * unicode.c: make iconv_convert () return the number of bytess written
20329         in the output buffer.
20330
20331 2002-01-15  Dick Porter  <dick@ximian.com>
20332         * threads.c: Make the runtime's idea of infinite timeouts coincide
20333         with the class library's
20334
20335         Fix a particularly egregious bug in mono_thread_cleanup(). That
20336         code was so utterly bogus it must have been written on a Monday.
20337
20338 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
20339
20340         * reflection.h: add subtypes field to TypeBuilder.
20341         * reflection.c: encode constants for literal fields.
20342         Handle subtypes. Fix user string token (and add a zero byte)
20343         at the end.
20344         
20345 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
20346
20347         * class.c (mono_class_init): bug fix: assign slot numbers for
20348         abstract methods.
20349
20350 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20351
20352         * reflection.c: don't try to output a code RVA for abstract methods.
20353         Small fixes for method header format. Output parameter info to the
20354         ParamDef table. Save method overriding info to MethodImpl table.
20355         Fix property support. Allow typedef.extends to be a type in the
20356         building assembly.
20357         * verify.c: fix off-by-one error.
20358
20359 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
20360
20361         * class.c: fix mono_class_from_mono_type () for szarray types.
20362         Remove unused cache check in mono_class_from_type_spec().
20363         * icall.c: *type_from_name () functions handle simple arrays and byref.
20364         * reflection.c: handle byref and szarray types. Handle methods without
20365         body (gets P/Invoke compilation working). Handle types and fields in
20366         get_token ().
20367         * reflection.h: add rank to MonoTypeInfo.
20368
20369 2002-01-10  Dick Porter  <dick@ximian.com>
20370
20371         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
20372         internal calls
20373
20374 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
20375
20376         * icall.c: initialize class in type_from_handle ().
20377         Loop also in parent classes for get_method ().
20378         * reflection.c: properly encode class and valuetype types.
20379         Start on encoding TypeBuilder types. Handle fieldrefs.
20380         Use correct length when registering a user string.
20381         Handle ConstructorBuilder and MonoMethod in get_token ().
20382         Make mono_type_get_object () aware of cached types.
20383         * object.c: back out change to mono_string_new ().
20384
20385 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
20386         * object.c: mono_string_new should return a NULL when the string 
20387         passed in is NULL -- not try to deference it.
20388         
20389 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20390
20391         * icall.c: hack to make IsSubType work for TypeBuilders.
20392         * reflection.c: emit constructors before methods.
20393         Retrieve param names in mono_param_get_objects().
20394
20395 2002/01/05  Nick Drochak  <ndrochak@gol.com>
20396
20397         * Makefile.am: fix list of headers and sources so automake 1.5
20398         doesn't complain. Removed \# at end of list.
20399
20400 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
20401
20402         * reflection.c: get token for a method ref. Set return type of
20403         constructor to void.
20404         * loader.c: debug message.
20405         * class.c: typo fix.
20406
20407 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
20408
20409         * icall.c: fix array init with rank > 1. FindMembers
20410         loops in parent class as well.
20411         * image.c: do not insert nested types in name cache.
20412         * reflection.c: warning fix.
20413         * reflection.h: add override method (for interface impl).
20414
20415 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
20416
20417         * metadata.c: fix customattr decoding.
20418
20419 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
20420
20421         * rawbuffer.cs: Added native Win32 implementation, avoids using
20422         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
20423
20424 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
20425
20426         * class.c: make the low-level routines handle the cache.
20427
20428 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
20429
20430         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
20431
20432 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
20433
20434         * class.c: fix mono_array_element_size() for objects.
20435         * class.h, class.c: add properties to MonoClass and load them
20436         at init time.
20437         * icall.c: check with isinst() when assigning a value to an array
20438         instead of requiring the classes to match exactly.
20439         Implemented icall for System.Type::GetType().
20440         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
20441         enums. Handle bindingflags when looking for methods and fields.
20442         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
20443         and mono_metadata_methods_from_property().
20444         * reflection.h, reflection.c: added structures for propreties,
20445         parameters and enums. Implemented mono_property_get_object() and
20446         mono_param_get_objects().
20447
20448 2001-12-18  Dick Porter  <dick@ximian.com>
20449
20450         * file-io.c: Use mono_string_to_utf16() instead of
20451         mono_string_chars()
20452
20453         * object.c: Added mono_string_to_utf16(), which copies the non
20454         NULL-terminated MonoString into a new double-null-terminated
20455         buffer.
20456
20457 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
20458
20459         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
20460
20461 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
20462
20463         * file-io.c: raise exceptions if handle is invalid.
20464
20465 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
20466
20467         * assembly.c: yet another check for mscorlib.
20468         * class.c, class.h: load nesting info for classes.
20469         * icall.c: many new functions to support the Reflection classes.
20470         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
20471         * reflection.h, reflection.c: mono_image_create_token(),
20472         mono_assembly_get_object(), mono_type_get_object(),
20473         mono_method_get_object(), mono_field_get_object(): methods to return
20474         objects that parallel the C representation of assemblies, types,
20475         methods, fields.
20476
20477 2001-12-11  Dick Porter  <dick@ximian.com>
20478
20479         * icall.c:
20480         * file-io.c: Internal calls for file IO.
20481
20482 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
20483
20484         * tabledefs.h: missing FileAttributes.
20485         * verify.h, verify.c: use is_valid_string () to simplify and check for
20486         valid strings more correctly. Fix warnings and speeling.
20487         Check more tables: Filed, File, ModuleRef, StandAloneSig.
20488         Check code: branches, maxstack, method calls.
20489
20490 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
20491
20492         * object.c (mono_object_allocate): removed static, so that the jit
20493         can allocate value types.
20494
20495         * icall.c (ves_icall_System_DateTime_GetNow): impl.
20496
20497 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20498
20499         * class.c: init enum types right away and register the
20500         token->MonoClass map in mono_class_create_from_typedef ().
20501         * verify.h, verify.c: first cut of the verifier.
20502         * pedump.c: add --verify switch to verify metadata tables.
20503         * tabledefs.h: add some missing enums.
20504
20505 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
20506
20507         * class.c (mono_install_runtime_class_init): impl.
20508         (mono_class_init): renamed mono_class_metadata_init to
20509         mono_class_init, also removed the metadata_inited flag
20510
20511         * object.c (mono_object_isinst): use faster algorithm
20512
20513 2001-11-30  Radek Doulik  <rodo@ximian.com>
20514
20515         * mono-endian.h: reverted last change
20516         added function prototypes
20517
20518         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
20519         add mono-endian.c back
20520
20521         * mono-endian.c: returned back, as Paolo pointed out, it's needed
20522         for unaligned access, I've mistaked it with endianess. I am
20523         sorry.
20524         (mono_read16): fix reverted endianess
20525         (mono_read64): ditto
20526         (mono_read32): ditto
20527
20528 2001-11-30  Dick Porter  <dick@ximian.com>
20529
20530         * exception.c: Implement mono_exception_from_name()
20531
20532 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20533
20534         * metadata.h, metadata.c: remove params_size and locals_size and their
20535         calculation from the metadata code: they are only usefult to the
20536         interp.
20537
20538 2001-11-29  Radek Doulik  <rodo@ximian.com>
20539
20540         * object.c (mono_ldstr): swap bytes here, it's probably not the
20541         best place, but works for me now, I'll redo it once I know mono
20542         better, also note that I add PROT_WRITE and don't reset back, also
20543         note that it's only affects big endians, so x86 should be OK
20544
20545         * mono-endian.h (read16): use just glib macros for both endians
20546
20547         * mono-endian.c: removed as glib macros are used in in
20548         mono-endian.h so we don't need to care about endianess for read
20549         macros as glib does that for us already
20550
20551 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
20552
20553         * class.h, class.h: take minimum alignment into consideration so
20554         that the fields of a class remain aligned also when in an array.
20555
20556 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20557
20558         * loader.h, loader.c: add mono_method_get_param_names().
20559         * class.c: 0-init class fields.
20560
20561 2001-11-26  Dick Porter  <dick@ximian.com>
20562
20563         * icall.c:
20564         * threads-types.h:
20565         * threads.c: New file that handles System.Threading on all platforms
20566
20567         * object.c: 
20568         * object.h: Remove the synchronisation struct from MonoObject,
20569         replace it with a pointer that gets initialised on demand
20570
20571         * Makefile.am: Replace all the system-specific threading code with
20572         a single file that uses the new wrapper library
20573
20574 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
20575
20576         * class.c, class.h: add mono_install_trampoline() so that the runtime
20577         can register a function to create a trampoline: removes the ugly
20578         requirement that a runtime needed to export arch_create_jit_trampoline.
20579         * object.h, object.c: added mono_install_handler() so that the runtime
20580         can install an handler for exceptions generated in C code (with
20581         mono_raise_exception()). Added C struct for System.Delegate.
20582         * pedump.c: removed arch_create_jit_trampoline.
20583         * reflection.c: some cleanups to allow registering user strings and
20584         later getting a token for methodrefs and fieldrefs before the assembly
20585         is built.
20586         * row-indexes.h: updates and fixes from the new ECMA specs.
20587
20588 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
20589
20590         * class.h, class.c: add enum_basetype field to MonoClass.
20591         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20592         to get index in the constant table reated to a field, param or
20593         property.
20594         * reflection.h, reflection.c: handle constructors. Set public-key and
20595         version number of the built assembly to 0.
20596         * row-indexes.h: update from new ECMA spec.
20597
20598 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20599
20600         * class.h, class.c: add a max_interface_id to MonoClass.
20601         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
20602         since it's used to do that. Added mono_type_type_from_obj().
20603         Make GetType() return NULL instead of segfaulting if the type was not
20604         found. Handle simple arrays in assQualifiedName.
20605         * object.h: add a struct to represent an Exception.
20606         * reflection.c: output call convention in method signature.
20607         Add code to support P/Invoke methods and fixed offsets for fields.
20608
20609 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
20610
20611         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
20612         the value.
20613         * icall.c: use mono_array_addr instead of array->vector: fixes the
20614         reflection image writing.
20615         * reflection.c: init call convention byte to 0 in method signature.
20616         Encode the property signature. Don't output property-related methods
20617         twice. Really process the properties for a type (don't cast a field to
20618         a property, my mom always told me that).
20619         Fix 64 bit issues in pointer alignment in a different and more
20620         readable way.
20621
20622 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
20623
20624         * loader.h: Removed type class from MonoDefaults, added monotype
20625
20626         * loader.c: Loaded MonoType, removed loading of Type
20627
20628         * icall.c (my_mono_new_object): Now returns a System.MonoType,
20629         and fills in System.Type._impl with a RuntimeTypeHandle rather
20630         than the actual MonoClass *
20631
20632         (ves_icall_type_from_handle): change from type_class to
20633         monotype_class
20634
20635         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
20636         implemented
20637
20638         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
20639         implemented
20640
20641         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
20642
20643         (ves_icall_System_Reflection_Assembly_GetType): implemented
20644
20645         (ves_icall_System_MonoType_assQualifiedName): implemented
20646
20647         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
20648
20649 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
20650
20651         * assembly.c (mono_assembly_open): Implement a cache for the
20652         assemblies. 
20653
20654         (mono_assembly_close): only destroy the assembly when the last
20655         reference is gone.
20656         
20657 2001-11-09  Dick Porter  <dick@ximian.com>
20658
20659         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
20660
20661 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
20662
20663         * class.c (mono_class_metadata_init): bug fix: compute the right slot
20664
20665 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20666
20667         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
20668         from Martin Weindel.
20669         * object.h: add mono_string_chars ().
20670
20671 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
20672
20673         * reflection.c (build_compressed_metadata): Eliminates warnings
20674         and uses 64-bit clean code.
20675
20676         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
20677         (mono_type_equal): Change signature to eliminate warnings.
20678
20679 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20680
20681         * icall.c, loader.c: remove the internalcall array constructors.
20682         Changes to match the new MonoArray structure.
20683         * object.h, object.c: an array object doesn't allocate an extra
20684         vector. Add mono_array_new_full () to create jagged arrays easily.
20685
20686 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20687
20688         * metadata.h, metadata.c: add mono_metadata_field_info () to
20689         retreive all the info about a field from vairous tables.
20690         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
20691         * class.h, class.c: augment MonoClassField with more info.
20692         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
20693         policy and load a field's RVA if needed.
20694
20695 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
20696
20697         * class.c (mono_class_metadata_init): create a trampoline for all
20698         virtual functions instead of actually compiling them.
20699
20700 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
20701
20702         * class.h, class.c: include name in MonoClassField.
20703         * class.c: fix fundamental type of System.Object and System.String.
20704         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
20705         tokens in ldtoken.
20706         * icall.c: remove internalcalls for the Reflection stuff that is now
20707         done in C# code.
20708         * loader.c: mono_field_from_memberref () implementation.
20709         * mono-endian.c: thinko (s/struct/union/g).
20710         * object.c, object.h: make the mono_string_* prototypes actually use
20711         MonoString instead of MonoObject.
20712         * reflection.c, reflection.h: updates for changes in the reflection
20713         code in corlib: we use C structures that map to the actual C# classes.
20714         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
20715         fat method header if needed and use the info from the ILGenerator for
20716         methods. Handle fields in types. Misc fixes.
20717
20718 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
20719
20720         * class.c (mono_class_metadata_init): bug fix: always allocate
20721         space for static class data
20722
20723 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
20724
20725         * class.c (mono_compute_relative_numbering): use relative
20726         numbering to support fast runtime type checks.
20727
20728 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
20729
20730         * class.c (mono_class_create_from_typeref): added debugging output
20731         to print class name when MonoDummy is returned instead of real class
20732
20733 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
20734
20735         * class.c (mono_class_metadata_init): interface offset table now
20736         contains pointers into the vtable - this is more efficient for the jit
20737
20738 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20739
20740         * class.c (mono_class_metadata_init): use a temporary vtable (the
20741         old algorithm only worked for the interpreter, but not for the jit)
20742
20743 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20744
20745         * loader.c (method_from_memberref): use mono_class_get to get the
20746         class of an array instead of using System.Array directly.
20747         (mono_get_method): also add MEMBERREF methods to the method cache
20748         which usefull for arrays.
20749
20750 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20751
20752         * pedump.c (arch_compile_method): added to compute vtable entry
20753
20754         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20755         number of interfaces.
20756         
20757         * class.h: merged MonoArrayClass into MonoClass
20758
20759         * class.c (mono_class_create_from_typedef): compute the vtable size and
20760         allocate space to include the vtable inside MonoClass
20761         (mono_class_metadata_init): initialize the vtable
20762
20763 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20764
20765         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20766         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20767         * image.c: endian fixes by Laurent Rioux.
20768         * object.h, object.c: rename MonoStringObject to MonoString and
20769         MonoArrayObject to MonoArray. Change some function names to conform to
20770         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20771         guint16* as first argument, so don't use char*.
20772         Provide macros to do the interesting things on arrays in a portable way.
20773         * threads-pthread.c: updates for the API changes and #include <sched.h>
20774         (required for sched_yield()).
20775         * icall.c: updates for the API changes above.
20776         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20777         platforms that need them.
20778
20779 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20780
20781         * class.c: set the correct type for all the fundamental
20782         type when loading the class.
20783
20784 2001-10-05  Dick Porter  <dick@ximian.com>
20785
20786         * threads-pthread.c (pthread_mutex_timedlock): Simple
20787         compatibility version for C libraries that lack this call.
20788
20789 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20790
20791         * class.c: MonoTypes stored in MonoClass are stored as
20792         fundamental MonoTypes when the class represents a
20793         fundamental type (System.Int32, ...).
20794         The TypeHandle return by ldtoken is a MonoType*.
20795         * icall.c: ves_icall_get_data_chunk () write out all the
20796         PE/COFF stuff. Implement ves_icall_define_method (),
20797         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20798         * image.c: properly skip unknown streams.
20799         * loader.h, loader.c: add type_class to mono_defaults.
20800         * metadata.c, metadata.h: export compute_size () as
20801         mono_metadata_compute_size () with a better interface.
20802         Typo and C&P fixes.
20803         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20804         * reflection.c, reflection.h: many cleanups, fixes, output method
20805         signatures and headers, typedef and typeref info, compress the metadata
20806         tables, output all the heap streams, cli header etc.
20807         * row-indexes.h: typo fixes.
20808
20809 2001-10-04  Dick Porter  <dick@ximian.com>
20810
20811         * object.h: Add a synchronisation mutex struct to MonoObject
20812
20813         * object.c (mono_new_object): Initialise the object
20814         synchronisation mutexes
20815
20816         * icall.c: System.Threading.Monitor internal calls
20817         
20818         * threads-pthread.h:
20819         * threads-pthread.c: System.Threading.Monitor internal calls
20820
20821         * threads-types.h: New file, includes the system-specific thread
20822         structures
20823         
20824         * threads-pthread-types.h:
20825         * threads-pthread-types.c: New files, handle pthread-specific
20826         synchronisation types
20827
20828         * threads-dummy-types.h: 
20829         * threads-dummy-types.c: New files of dummy support for
20830         thread-specific types
20831
20832         * metadata.c:
20833         * image.c:
20834         * pedump.c: include mono-endian.h not endian.h
20835         
20836         * Makefile.am: More threads files.
20837         Name mono-endian.h not endian.h
20838
20839 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20840
20841         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20842         stuff and implement a few more bits.
20843         * icall.c: a field needs to be dereferenced twice. Do not use the same
20844         name for two variables in the same scope.
20845         * image.c, image.h: cleanups.
20846
20847 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20848
20849         * class.c (mono_class_metadata_init): bug fix: compute the right size
20850
20851 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20852
20853         * icall.c: implemented some of the Reflection internalcalls.
20854         * image.c, image.h: start writing out the PE/COFF image.
20855         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20856         that does the reverse than decode_blob_size ().
20857         * object.c: use mono_metadata_encode_value (). Move here
20858         temporary implementation of mono_string_to_utf8 ().
20859         * rawbuffer.c: make malloc_map static.
20860
20861 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20862
20863         * metadata.c: fix type comparison for arrays.
20864         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20865         Added a couple of new classes to monodefaults.
20866         * icall.c: added a couple of Reflection-related internalcalls.
20867         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20868         Added a byval_arg MonoType to MonoClass.
20869
20870 2001-09-28  Dick Porter  <dick@ximian.com>
20871
20872         * icall.c:
20873         * threads-pthread.h: 
20874         * threads-pthread.c: Implemented internal calls for
20875         LocalDataStoreSlot operations.  Applied mutexes around all shared
20876         data.  Reworked the thread creation and Start() operations to
20877         avoid a race condition.
20878         
20879         * threads-dummy.h:
20880         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20881
20882 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20883
20884         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20885
20886 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20887
20888         * class.c, loader.c: warn and return NULL instead of erroring out.
20889         * icall.c: added System.AppDomain::getCurDomain().
20890         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20891
20892 2001-09-25  Dick Porter  <dick@ximian.com>
20893
20894         * threads-pthread.h:
20895         * threads-pthread.c: Implemented timed thread joining and added
20896         System.Threading.Thread::Join_internal internal call
20897
20898         * icall.c: Added System.Threading.Thread::Join_internal internal call
20899
20900         * threads-dummy.h:
20901         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
20902
20903 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
20904
20905         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
20906         mono_string_intern () to implement the semantics of the ldstr opcode
20907         and the interning of System.Strings.
20908         * icall.c: provide hooks to make String::IsIntern and String::Intern
20909         internalcalls.
20910
20911 2001-09-23  Dick Porter  <dick@ximian.com>
20912
20913         * threads-dummy.c: 
20914         * threads-dummy.h: New files of dummy threading routines
20915
20916         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
20917         support code based on system specifics
20918
20919         Rename PTHREAD_LIBS to THREAD_LIBS
20920         
20921 2001-09-23  Dick Porter  <dick@ximian.com>
20922
20923         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
20924         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
20925         internal calls.
20926         (mono_thread_init): Set up a Thread object instance to return when
20927         the main thread calls Thread.CurrentThread
20928         (mono_thread_cleanup): Wait for all subthreads to exit
20929
20930         * icall.c: New internal calls for System.Threading.Thread::Sleep
20931         (including Schedule) and CurrentThread
20932
20933         * threads.h: New file, to insulate thread-specific stuff from the
20934         rest of the code
20935
20936 2001-09-21  Dick Porter  <dick@ximian.com>
20937
20938         * threads-pthread.h: 
20939         * threads-pthread.c: New file, for handling pthreads-style
20940         threading support.  Start() now starts a new thread and executes
20941         the ThreadStart delegate instance.
20942
20943         * icall.c: Added the internalcall for
20944         System.Threading.Thread::Start_internal
20945
20946         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
20947
20948 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
20949
20950         * loader.c: work around the different signatures for delegates
20951         constructors csc generates in compiled code vs the ones compiled in mscorlib.
20952
20953 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20954
20955         * class.h, class.c: add mono_class_get_field_from_name ().
20956         * *: Fix C comments and other ANSI C issues.
20957
20958 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
20959
20960         * endian.h, assembly.c: fix some endianness issues.
20961
20962 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
20963
20964         * loader.h, load.c: add delegate_class to mono_defaults.
20965         Handle runtime provided methods in mono_get_method ().
20966
20967 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
20968
20969         * loader.c (mono_get_method): use pinvoke for internal call
20970
20971         * icall.c: use pinvoke for internal call
20972
20973         * loader.c (method_from_memberref): set the method name
20974
20975 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
20976
20977         * metadata.c: help the compiler generate better code for
20978         mono_class_from_mono_type ().
20979
20980 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
20981
20982         * class.c (mono_class_metadata_init): delayed computing of the
20983         class size to mono_class_metadata_init ()
20984
20985 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
20986
20987         * class.c, class.h: add an interfaces member to MonoClass.
20988         * image.c, image.h: add assembly_name field to MonoImage
20989         from the assembly table.
20990         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
20991
20992 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20993
20994         * class.c: Handle Array in mono_class_from_mono_type ().
20995         * metadata.c, pedump.c: some endian fixes.
20996
20997 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20998
20999         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
21000         * metadata.c: fix small problem introduced with the latest commit.
21001
21002 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
21003
21004         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
21005         We don't need a MonoMetadata pointer anymore to compare signatures in
21006         mono_metadata_signature_equal (), update callers.
21007         Reduced memory usage an number of allocations for MonoMethodHeader and
21008         MonoMethodSignature.
21009
21010 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
21011
21012         * metadata.c: added compare for szarray.
21013
21014 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
21015
21016         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
21017         and add a couple more types to it and mono_defaults. Give an hint on
21018         classes that need implementing in our corlib and are referenced
21019         in mscorlib.
21020
21021 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
21022
21023         * class.h, class.c: keep track if a class is also an Enum.
21024         * loader.c: Implement a couple more types for use in libffi
21025         marshalling. Gives better diagnostics when failing to dlopen
21026         a library. Set method->klass for P/Invoke methods, too.
21027
21028 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
21029
21030         * class.c, class.h: add a MonoType this_arg to MonoClass that
21031         represents a pointer to an object of the class' type that
21032         can be used by the interpreter and later the type cache.
21033         Add best guess alignment info for valuetype objects.
21034
21035 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
21036
21037         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
21038         into MonoType: one less level of indirection and allocation and
21039         simplifies quite a bit of code. Added cache for MonoTypes that are
21040         used frequently, so that we don't need to allocate them all the time.
21041
21042 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
21043
21044         * class.c (mono_class_create_from_typedef): System.Enum is also a
21045         value type, although it does not derive from System.ValueType
21046         (maybe a bug in the ms compiler?)
21047
21048         * metadata.c (mono_type_size): return the right size for value types
21049
21050         * loader.c (mono_get_method): only initialize method header if not abstract
21051
21052         * class.c (mono_class_from_mono_type): use mono_default values. 
21053
21054 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
21055
21056         * *: use MonoClass pointers instead of <type_tokens>
21057         
21058         * class.h: new flag: metadata_inited.
21059
21060         * class.c (mono_class_metadata_init): impl.
21061         (mono_class_instance_size): impl.
21062         (mono_class_data_size): impl.
21063
21064 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21065
21066         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
21067         MonoClass now has the name and name_space fields. 
21068         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
21069         mono_get_method () takes and optional MonoClass as argument.
21070         Removed mono_typedef_from_name() and added mono_class_token_from_name()
21071         instead that takes advantage of a map from class names to typedef
21072         tokens in MonoImage.
21073
21074 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
21075
21076         * metadata.c: zero is not a valid alignment boundary.
21077         Merge MONO_TYPE_VOID in default decoding code.
21078
21079 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
21080
21081         * image.h: merged MonoMetadata into MonoImage
21082
21083         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
21084         identify the type of elements.
21085
21086 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
21087
21088         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
21089         * cil-coff.h: split MonoMSDOSHeader and add size info.
21090         * image.c: add some consistency checks.
21091         * metadata.c: fix row size computation: one programmer
21092         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
21093         add explanation for the locator routine.
21094         Fix decoding of size in method header.
21095         
21096 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
21097
21098         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
21099         (g_concat_dir_and_file): Bring g_concat_dir_and_file
21100         function from gnome-libs.  This uses the right path separator
21101         based on the OS, and also works around a bug in some systems where
21102         a double slash is not allowed. 
21103         (default_assembly_name_resolver): Use g_concat_dir_and_file
21104         (mono_assembly_open): ditto.
21105
21106 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
21107
21108         * metadata.c (mono_metadata_signature_equal): impl.
21109
21110         * *: void is now a realy MonoType (instead of using NULL)
21111         
21112         * metadata.c (do_mono_metadata_parse_type): use
21113         mono_metadata_parse_type to parse void value.
21114
21115 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
21116
21117         * metadata.c, metadata.h: in the signature and method header store
21118         only the space required for holding the loca vars and incoming arguments.
21119
21120 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
21121
21122         * metadata.c (do_mono_metadata_parse_type): treat void like any
21123         other type (instead of assigning NULL);
21124
21125 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
21126
21127         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
21128
21129 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
21130
21131         * image.c (do_mono_image_open): added a cache for arrays.
21132
21133 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
21134
21135         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
21136         decode a single column from a row in a metadata table and changes
21137         to take advantage of it in the typedef locator (gives a nice speed up).
21138         Store offset info for function params.
21139
21140 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
21141
21142         * image.h (MONO_IMAGE_IS_CORLIB): removed 
21143
21144 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
21145
21146         * assembly.c: how could mono_assembly_close () had ever worked?
21147         * metadata.c, metadata.h: provide offset info for local vars.
21148         Implement mono_type_size () to take care of alignment as well
21149         as size (it was mono_field_type_size in cli/class.c before).
21150
21151 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
21152
21153         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
21154
21155         * assembly.h (CORLIB_NAME): set to corlib.dll
21156
21157         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
21158
21159 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
21160
21161         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
21162         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
21163         tokentype.h: massive namespace cleanup.
21164
21165 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
21166
21167         * metadata.h, metadata.c: decode exception clauses when parsing method header.
21168
21169 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
21170
21171         * metadata.c (mono_metadata_free_type): added check for type !=
21172         NULL (void) before calling mono_metadata_free_type()
21173
21174 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
21175
21176         * metadata.h, row_indexes.h: added header with enumerations to use
21177         to index in the columns from tables in metadata and to decode coded
21178         tokens: we should start using this instead of embedding magic numbers
21179         all over the code.
21180
21181 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
21182
21183         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
21184         Move metadata_t info from cli_image_info_t to MonoImage, where
21185         it's easily accessible. Changed all the uses accordingly.
21186         Added the method and class caches to MonoImage.
21187         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
21188         and mono_metadata_decode_value () signature to be more consistent
21189         with the other parse functions (and simplify code). Taken advantage
21190         of zero-length array allocation with GCC. Removed reduntant (and
21191         wrong) MonoFieldType struct and use MonoParam instead. Changed
21192         mono_metadata_parse_field_type () to use common code for parsing.
21193         Added mono_metadata_typedef_from_field () and
21194         mono_metadata_typedef_from_method () to lookup a typedef index from a
21195         field or method token.
21196         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
21197
21198 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
21199
21200         * metadata.c (mono_metadata_parse_field_type): Implement. 
21201         (do_mono_metadata_parse_type): Split engine from
21202         mono_metadata_parse_type, so that we can create smaller structures
21203         for things that just have one pointer to the MonoType (look at
21204         the MonoFieldType)
21205
21206 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
21207
21208         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
21209         as Jan Gray found out, it is incorrect. 
21210
21211 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
21212
21213         * assembly.c: Implement asssembly loading.  This loads an image
21214         and loads all the referenced assemblies.  Come to think of it, we
21215         could always do lazy loading of the assemblies. 
21216
21217         * image.c (mono_image_open): Keep loaded images in a hashtable.
21218
21219         * image.h (MonoImage): Add reference count.
21220
21221 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
21222
21223         * assembly.c (mono_assembly_open): Keep track of the file name in
21224         case the assembly has no ASSEMBLY table.
21225
21226         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
21227         from get.c here.
21228
21229 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
21230
21231         * metadata.c, metadata.h: decode local vars in method header
21232         parse function. Change callers accordingly.
21233
21234 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
21235
21236         * metadata.h, cil-coff.h: protect against multiple inclusion.
21237         Added some new structures to hold information decoded from metadata:
21238         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
21239         and relevant decoding/free functions.
21240         * metadata.c: implement decoding functions. Add warning for out of bounds
21241         index in mono_metadata_locate(). Implement mono_get_method () to retreive
21242         all the info about a method signature and invocation. Remove check on
21243         uninitialized local var in parse_mh() and fix memory leak.
21244
21245 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
21246
21247         * metadata.h: More macros.
21248
21249         * tokentype.h: New file.
21250
21251 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
21252
21253         * assembly.c: added a consistency check and initialize
21254         some structures with g_new0().
21255         * metadata.c: fixed a couple more bugs in table size computation
21256         and add other checks for out-of bound access to metadata.
21257
21258 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
21259
21260         * metatada.c: fix bugs computing table sizes. Spew a
21261         warning when index in string heap is out of bounds.
21262
21263 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
21264
21265         * metadata.h: Add a couple of macros to manipulate tokens. 
21266
21267 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
21268
21269         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
21270         cli_section_tables).
21271
21272 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
21273
21274         * metadata.c (mono_metadata_user_string): New function, provides
21275         access to the UserString heap. 
21276
21277 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
21278
21279         * metadata.c: Add inline documentation.
21280
21281 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
21282
21283         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
21284         files. 
21285
21286 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
21287
21288         * typeattr.h: New file, TypeAttribute flags. 
21289
21290 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
21291
21292         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
21293         mono_assembly_ensure_section): Section loading code.
21294         (load_section_tables): Load the sections.
21295
21296         * mono/metadata/metadata.c (mono_metadata_locate_token,
21297         mono_metadata_locate): Functions to locate the information
21298         definition given a token or a table and an index.
21299         (mono_metadata_compute_table_bases): New.
21300         (compute_size): New function to compute the sizes of the various
21301         tables.
21302
21303         * mono/metadata/metadata.h: Finish listing the different index
21304         types. 
21305
21306         * mono/metadata/pedump.c: Improve to dump new information.
21307
21308 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
21309
21310         * mono/metadata/metadata.c: Entered all the tables matching
21311         Beta2. 
21312
21313         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
21314
21315
21316