*verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
[mono.git] / mono / metadata / ChangeLog
1 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2
3         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
4         *verify.c: factored long ldarg forms to share code with short forms
5
6 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
7
8         *verify.c: fixed code formating factored some duplicate code
9         into a new function
10
11         *verify.h: fixed binary incompatibility introduced earlier
12
13         *pedump.c: fixed formating
14
15 2007-06-11  Raja R Harinath  <harinath@gmail.com>
16
17         Fix assertion when disassembling Mono.C5.dll
18         * loader.c (method_from_methodspec): Avoid inflating a method
19         twice with the same context.  If the methodref is inflated, use
20         the declaring method instead.
21
22         * class.c (mono_class_from_generic_parameter): Fix case similar to
23         bug #81830 handled below, but for method containers.
24
25 2007-06-10  Raja R Harinath  <harinath@gmail.com>
26
27         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
28         get_shared_generic_class.  Directly inflate the instance.
29         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
30         (inflate_generic_class): Delete.
31         (get_shared_generic_class): Delete.  Move setting of
32         'cached_class' and 'cached_context' ...
33         * metadata.c (mono_metadata_lookup_generic_class): ... here.
34
35         * metadata.c (mono_metadata_lookup_generic_class): Change
36         signature to take the components of a MonoGenericClass rather than
37         an allocated MonoGenericClass.  Change semantics to be intern-like.
38         * reflection.c (mono_class_bind_generic_parameters): Update to
39         changes.  Make locking region tighter.
40         * class.c (inflate_generic_class): Update to changes.
41         (get_shared_generic_class): Likewise.
42         * metadata-internals.h: Likewise.
43
44         * reflection.c (mono_class_bind_generic_parameters): Take and
45         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
46         (mono_reflection_bind_generic_parameters): Use
47         'mono_class_bind_generic_parameters' rather than duplicate the code.
48         * class.c (mono_bounded_array_class_get): Update to changes.
49         * object-internals.h: Likewise.
50
51         * reflection.c (mono_class_bind_generic_parameters): Only support
52         parameterizing generic type definitions.  Remove support for other
53         open types.
54
55 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
56
57         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
58
59         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
60         in the dynamic case.
61
62 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
63
64         * threads.c: When cleaning up thread, reset the Background bit.
65         Fixes bug #81720.
66
67 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
68
69        * metadata.c: Move variable declarations to top of scope.
70        * verify.c: Move variable declarations to top of scope.
71
72        Code is contributed under MIT/X11 license.
73
74 2007-06-08  Raja R Harinath  <rharinath@novell.com>
75
76         * reflection.c (mono_class_bind_generic_parameters): Replace
77         open-coded loop with mono_metadata_inflate_generic_inst.
78
79         * class.c (get_shared_generic_class): Don't call
80         mono_get_shared_generic_inst.  Use the container's own
81         'class_inst'.
82
83         * metadata.c (mono_metadata_load_generic_params): Move
84         initialization of 'context' field here from ...
85         * class.c (mono_class_create_from_typedef): ... here, and ...
86         * loader.c (mono_get_method_from_token): ... here.
87
88         * class.c (get_shared_generic_class): Rename from
89         mono_get_shared_generic_class and make static.
90         (mono_get_shared_generic_inst): Move to metadata.c.
91         * loader.c (mono_get_shared_generic_method): Likewise.
92         * class-internals.h, metadata-internals.h: Update to changes.
93
94         Fix #81830
95         * class.c (mono_class_from_generic_parameter): Don't assume a
96         generic container owner exists.  Generic containers from monodis
97         don't have any.
98
99 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
100
101         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
102         * verify.h: new typedefs to returns the non-verifiable status
103         * verify.c: initial implementation of generics, stack merging and object compatibility check
104
105 2007-06-06  Mark Probst  <mark.probst@gmail.com>
106
107         * class.c, image.c, class-internals.h (MonoImage): class_cache is
108         a MonoInternalHashTable again (fixed bug in internal hash table
109         code).
110
111 2007-06-06  Mark Probst  <mark.probst@gmail.com>
112
113         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
114         MonoInternalHashTable again (fixed bug in internal hash table
115         code).
116
117 2007-06-06  Mark Probst  <mark.probst@gmail.com>
118
119         * class.c, image.c, class-internals.h, domain.c,
120         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
121         changes.  Have to figure out what makes them break the SWF
122         regression.
123
124 2007-06-04  Mark Probst  <mark.probst@gmail.com>
125
126         * class.c, image.c, class-internals.h (MonoImage): class_cache is
127         a MonoInternalHashTable now.
128
129 2007-06-04  Mark Probst  <mark.probst@gmail.com>
130
131         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
132         MonoInternalHashTable now.
133
134 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
135
136         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
137         invoke_impl code.
138
139         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
140
141         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
142         dependent trampoline.
143
144         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
145
146         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
147
148 2007-05-29  Robert Jordan  <robertj@gmx.net>
149
150         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
151
152 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
153
154         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
155
156 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
157
158        * marshal.c: Fix interface lookup loops for
159        cominterop_get_com_slot_for_method and 
160        cominterop_get_method_interface. Only need to lookup
161        if type is a class, else use interface type method is on.
162
163        Code is contributed under MIT/X11 license.
164
165 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
166
167         * reflection.c: HasSecurity can be present even if no specially 
168         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
169         SecurityAttribute). Fix CAS regression tests on buildbot.
170
171 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
172
173        * appdomain.c: Add configure checks for header files.
174        * image.c: Add configure checks for header files.
175        * file-io.c: Add configure checks for header files.
176        * debug-mono-symfile.c: Add configure checks for header files.
177        * threadpool.c: Add configure checks for header files.
178        * console-io.c: Add configure checks for header files.
179        * profiler.c: Add configure checks for header files.
180        * rawbuffer.c: Add configure checks for header files.
181        * icall.c: Add configure checks for header files.
182        * rand.c: Add configure checks for header files.
183        * socket-io.c: Add configure checks for header files.
184
185        Code is contributed under MIT/X11 license.
186
187 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
188
189         * reflection.c (mono_custom_attrs_from_builders): Remove the 
190         assertion as it breaks the build.
191         
192         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
193
194         * reflection.c (lookup_custom_attr): Make a copy here too.
195
196         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
197         dynamic images.
198
199         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
200         images.
201
202         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
203         info.
204
205 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
206
207         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
208         (load_cattr_value): Ditto.
209
210 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
211
212         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
213
214 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
215
216         * threads.c: In "start_wrapper", set apartment_state to MTA if
217         apartment_state is Unknown and we're running on 2.0 profile or
218         higher.
219         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
220         to main method, then set apartment_state to Unknown on 1.0 profile,
221         and MTA on 2.0 profile.
222
223 2007-05-16  Jb Evain  <jb@nurv.fr>
224
225         * class-internals.h (MonoDefaults): Add an attribute_class and
226           customattribute_data_class.
227         * domain.c (mono_init_internal): Populate them.
228         * reflection.c: Use them to remove duplicates. Make a vew
229         MonoClass variables `static'.
230
231 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
232
233         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
234         step in implementing IMT, so that all isinst checks now can go
235         through the bitmap.
236         This was needed because vtables for TransparentProxy need to look
237         like the vtable of the "target" class, so they need to point to
238         its interface bitmap directly.
239
240         * object.c: inside "mono_class_create_runtime_vtable" and
241         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
242
243 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
244
245         * object-internals.h
246           culture-info.h : added territory field in MonoCulture and
247           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
248         * locales.c : fill territory field above too.
249         * culture-info-table.h : regenerated.
250
251 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
252
253         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
254         Fixes #81599.
255
256 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
257
258         * object.c: Always initialize apartment, even if 
259         there is no custom attributes on entry point.
260         
261         Code is contributed under MIT/X11 license.
262
263 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
264
265         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
266         * metadata.c: If no encoding is set, check for unicode
267         on class.
268         
269         Code is contributed under MIT/X11 license.
270
271 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
272
273         * threads.c: Handle if mono_thread_current returns NULL 
274         
275         Code is contributed under MIT/X11 license.
276
277 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
278
279         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
280         in start_wrapper. Added mono_thread_init_apartment_state and
281         mono_thread_cleanup_apartment_state.
282         * object.c: Initialize thread apartment state on main thread
283         by checking for STAThreadAttribute on entry point.
284         * object-internals.h: Add apartment_state field to MonoThread.
285         * threads-types.h: Add unmanaged definition of 
286         System.Threading.ApartmentState, MonoThreadApartmentState.
287         
288         Code is contributed under MIT/X11 license.
289         
290 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
291
292         * class.c: Fix windows build.
293         * class-internals.h: Fix windows build.
294         
295         Code is contributed under MIT/X11 license.
296
297 2007-05-08  Robert Jordan  <robertj@gmx.net>
298
299         * process.c (CreateProcess_internal):
300         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
301         .CreateNoWindow was specified. Fixes #81496.
302
303 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
304
305         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
306         step in implementing IMT, replaced it with two compact arrays
307         (interfaces_packed and interface_offsets_packed) and a bitmap that
308         is used for isinst checks (interface_bitmap).
309
310         * class.c: (compare_interface_ids): compare function to pass to
311         bsearch when looking for an interface with a given id.
312         (mono_class_interface_offset): reimplemented using bsearch on
313         interfaces_packed, getting the offset from interface_offsets_packed.
314         (print_implemented_interfaces): utility debugging function.
315         (setup_interface_offsets): reworked to initialize interfaces_packed,
316         interface_offsets_packed and interface_bitmap.
317
318         * object.c: replaced all accesses to "MonoClass.interface_offsets"
319         with uses of interfaces_packed and interface_offsets_packed.
320
321 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
322
323         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
324         mono_class_interface_offset prototype to wrap all accesses to
325         "MonoClass.interface_offsets".
326
327         * class.c: Implemented mono_class_interface_offset, and wrapped all
328         accesses to "MonoClass.interface_offsets".
329
330         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
331         "MonoClass.interface_offsets".
332
333 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
334
335         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
336         GetMethodFromHandle overloads (bug #78637).
337
338 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
339
340         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
341         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
342
343 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
344
345         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
346         #81498.
347
348         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
349         gracefully.
350         (mono_custom_attrs_from_index): Ditto.
351
352         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
353         Fixes #81501.
354
355 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
356
357         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
358         is now allocated from a mempool.
359
360 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
361
362         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
363         caller holds threads_lock, leading to deadlocks. Fixes #81476.
364
365 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
366
367         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
368         mono_loader_clear_error () too late. Fixes #81463.
369
370 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
371
372         * culture-info-table.h : regenerated.
373
374 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
375
376         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
377         is missing.
378
379 2007-04-25  Dick Porter  <dick@ximian.com>
380
381         * Makefile.am: Put the mingw enforced-optimisation back into the
382         PLATFORM_WIN32 section.
383
384 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
385
386         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
387         patch.
388
389         * image.c (mono_image_load_module): New API function to load a module reference.
390
391         * image.c (load_modules): Load modules lazily. Fixes #80812.
392
393         * class.c (mono_class_from_typeref): Use mono_image_load_module.
394         
395         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
396
397         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
398         to mono_image_load_module_dynamic.
399
400 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
401
402         * marshal.c: Fix calling convention for CCW on non-windows
403         platforms. STDCALL on windows, CDECL everywhere else to work 
404         with XPCOM and MainWin COM.
405         
406         Code is contributed under MIT/X11 license.
407
408 2007-04-23  Martin Baulig  <martin@ximian.com>
409
410         Fix #80969.
411
412         * loader.c
413         (method_from_memberref): Added `gboolean *used_context' argument.
414         (mono_get_method_from_token): Likewise.
415         (mono_get_method_full): Don't insert the method in the cache when
416         `used_context' is true.
417
418 2007-04-23  Raja R Harinath  <rharinath@novell.com>
419
420         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
421
422         * reflection.c (mono_reflection_bind_generic_parameters): Don't
423         create new MonoTypes for returned types.
424         * class.c (mono_generic_class_get_class): Export mono-internal.
425         * class-internals.h: Update to changes.
426
427 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
428
429         * threadpool.c, threadpool.h, icall-def.h: patch from
430         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
431
432 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
433
434         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
435         
436         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
437
438         * threads.c (mono_thread_get_stack_bounds): New helper function.
439
440         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
441         Correctly compute stack bounds when attaching. Fixes #81394.
442
443 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
444
445         * reflection.c: fix handling of doubles in custom attributes
446         for the arm-fpa format (bug #81368).
447
448 2007-04-18  Raja R Harinath  <rharinath@novell.com>
449
450         * reflection.c (assembly_add_win32_resources): Mildly relax an
451         bounds check to let the end pointer point just past the end of the
452         allocated buffer.  (may fix #81384)
453
454 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
455
456         * culture-info-table.h : regenerated.
457
458 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
459
460         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
461         the thread is aborted early.
462
463 2007-04-05  Dick Porter  <dick@ximian.com>
464
465         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
466         FindFirstFile()/FindNextFile() to find entries.  This lets the
467         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
468         81038.
469
470         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
471         the parameters of
472         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
473
474 2007-04-04  Martin Baulig  <martin@ximian.com>
475
476         * debug-helpers.c
477         (mono_method_desc_full_match): Add support for nested classes.
478
479 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
480
481         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
482
483 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
484
485         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
486         waiting for too many threads.
487
488 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
489
490         * environment.c: Fix return value check on uname so we can get the 
491         executing version on Solaris operating systems.
492
493 2007-03-28  Jb Evain  <jbevain@gmail.com>
494
495         * class.c (mono_type_get_name_recurse): Complete the
496         fix for the creation of assembly qualified names for
497         pointer types. Fixes #81208.
498
499 2007-03-27  Dick Porter  <dick@ximian.com>
500
501         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
502         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
503         changed.
504
505         * threads.c
506         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
507         the value of ReleaseMutex().
508
509 2007-03-27  Dick Porter  <dick@ximian.com>
510
511         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
512         in little-endian order, not network endian, so must be converted
513         to host endian here.  Fixes bug 80593.
514
515 2007-03-22  Jb Evain  <jbevain@gmail.com>
516
517         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
518         qualified names for pointer types. Fixes #81208.
519
520 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
521
522         * marshal.c: Add support for PreserveSigAttribute. 
523         
524         Code is contributed under MIT/X11 license.
525
526 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
527
528         * process.c: Fix endianness issues. Fixes #81126.
529
530         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
531         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
532
533         * image.c (mono_image_lookup_resource): Make this work on big-endian
534         machines.Change API contract so the caller needs to free the return value.
535         
536         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
537         API change.
538         
539 2007-03-14  Martin Baulig  <martin@ximian.com>
540
541         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
542         mono_type_get_desc() as well.
543
544 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
545
546         * icall.c:  Fix environ access in VS.  
547         
548 2007-03-13  Alp Toker  <alp@atoker.com>
549
550         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
551         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
552         #63841.
553
554 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
555
556         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
557         circular references among dynamic methods. Fixes #81091.
558
559         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
560
561 2007-03-09  Martin Baulig  <martin@ximian.com>
562
563         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
564
565 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
566
567         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
568         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
569         
570         Code is contributed under MIT/X11 license.
571         
572 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
573
574         * loader.c: Reapply patch for bug #79424.
575
576 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
577
578         * metadata.c (mono_type_to_unmanaged): Only convert object to
579         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
580
581 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
582
583         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
584         (and incorrectly set) is_reference field from MonoGenericInst.
585
586 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
587
588         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
589         a little earlier.
590
591         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
592
593         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
594
595 2007-03-05  Miguel de Icaza  <miguel@novell.com>
596
597         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
598         FileOptions.1 value to mean "temporary", map that to
599         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
600
601         Fixes 80688
602
603 2007-03-03  Marek Habersack  <mhabersack@novell.com>
604
605         * appdomain.c: implement MS .Net style shadow copying. Copies of
606         the assemblies are made in a subdirectory of the dynamic base
607         directory, the assembly names are preserved.
608         Copy .mdb and .config files along with the assemblies being shadowed.
609
610 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
611
612         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
613         (emit_marshal_handleref): Ditto.
614
615         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
616         on Visual C++. Fixes #80671.
617
618 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
619
620         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
621         for clone operations.
622
623 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
624
625         * marshal.c: Fix warnings.
626
627 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
628
629         * loader.c: allow case-insensitive matching of the dll name
630         in dllmap handling when prefixed with "i:".
631
632 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
633
634         * threads.c: Fix #ifdef for dummy_apc function for VS.
635
636 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
637
638         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
639
640 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
641         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
642         giving precedence to the methods with a fully qualified name
643         (InterfaceName.MethodName) when building the interface sections
644         of the vtable.
645
646 2007-02-16  Dick Porter  <dick@ximian.com>
647
648         * threadpool.c (append_job): Fix fast-path array handling, so it's
649         less likely the array will grow exponentially when the load is
650         heavy.
651
652 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
653
654         * metadata-internals.h, loader.c: fix dllmap lookup order
655         for non-function maps, too, and prepare for fallback code.
656
657 2007-02-12  Robert Jordan  <robertj@gmx.net>
658
659         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
660         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
661         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
662         GlobalFree. Fixes a part of bug #77075.
663
664 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
665
666         * loader.c: implemented typedef parent in field memberref.
667
668 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
669
670         * marshal.c: Fix warnings and remember to call Release on
671         IUnknown of RCW.
672         
673         Code is contributed under MIT/X11 license.
674
675 2007-02-10  Miguel de Icaza  <miguel@novell.com>
676
677         * class-internals.h: Add MonoHandleRef definition, and
678         handleref_class to mono_defaults. 
679
680         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
681         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
682
683         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
684         (do nothing on this stage)
685         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
686         (emit_marshal_handleref): New method, used for argument handling
687         of HandleRefs. 
688
689 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
690
691         * class.c (mono_class_setup_parent): Lazily init com types.
692         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
693         init com types.
694         * object.c (mono_remote_class_vtable): Lazily init com types.
695         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
696         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
697         * domain-internals.h: Expose mono_init_com_types.
698         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
699         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
700         Add support for COM Callable Wrapper marshalling.
701         * marshal.h: Add icall definitions.
702         * gc.c: Handle freeing of CCWs in finalizer code.
703         
704         Code is contributed under MIT/X11 license.
705
706 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
707
708         * reflection.c: changed all the signature encoding code to use
709         a variable-sized buffer.
710
711 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
712
713         * marshal.c: locking fixes: never take the loader lock
714         or other runtime locks when holding the marshal lock
715         (fixes bug#80664).
716
717 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
718
719         * marshal.c: make the delegate function pointer mapping
720         work for the moving GC.
721
722 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
723
724         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
725         for bug #80618.
726
727 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
728
729         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
730         gmodule.
731
732 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
733
734         * threadpool.c: made the code moving-GC safe.
735
736 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
737
738         * assembly.c, boehm-gc.c, class-internals.h, class.c,
739         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
740         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
741         warning cleanup.
742         * reflection.c: warning cleanup, some threading and moving GC fixes.
743
744 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
745
746         * class.c, loader.c: create the needed Set/Get/Address array methods
747         as well as the .ctors in mono_class_init (), fixes bug #80567.
748
749 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
750
751         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
752         we doesn't decrease its alignment. Should fix the sparc build.
753
754 2007-01-24  Dick Porter  <dick@ximian.com>
755
756         * socket-io.c
757         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
758         Create the returned object if we need to ignore an unsupported
759         socket option.  Fixes a segfault reported by Atsushi.
760
761 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
762
763         * class.c, object.c: restrict GC-tracked fields to
764         UIntPtr fields used inside corlib, so we provide better
765         type info to the GC and also allow broken packing as in
766         bug #80580.
767
768 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
769
770         * sgen-gc.c: removed duplicated function.
771
772 2007-01-19  Miguel de Icaza  <miguel@novell.com>
773
774         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
775         value that means that the value is not supported, but that we
776         should not return a failure, but instead report this as a
777         successful operation.
778
779 2007-01-19  Raja R Harinath  <rharinath@novell.com>
780
781         Fix tests/bug79956.2.il
782         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
783         (mono_generic_class_get_class): If the generic definition in an
784         enum, copy over other fields related to it.
785
786 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
787
788         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
789         genericinst enums (bug #79215).
790
791 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
792         * class.c: Fix bug 80307.
793
794 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
795
796         * image.c: if the file table is not present, try to load
797         all the modules, since we don't have info about them
798         having or not metadata (bug #80517).
799         * assembly.c: allow mono_assembly_load_references () to
800         work for netmodules.
801
802 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
803
804         * image.c, metadata-internals.h, object.c: execute module
805         cctors when running on the 2 runtime if present (bug #80487).
806
807 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
808
809         * icall.c: optimized InitializeArray() on bigendian.
810
811 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
812
813         * icall.c: fix for the broken ARM FPA double format.
814
815 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
816
817         * icall.c: handle endian issues for r4 and r8 types, too, in
818         the InitializeArray() icall.
819
820 2007-01-15  Miguel de Icaza  <miguel@novell.com>
821
822         * loader.c (mono_loader_error_prepare_exception): Clear the error
823         once we have extracted the information from it, do this before we
824         call into the JIT's class loading mechanisms.
825
826         * object.c (mono_class_create_runtime_vtable): Do not clear the
827         loader error before calling mono_class_get_exception_for_failure
828         as the loader error is needed inside
829         mono_class_get_exception_for_failure to throw the error (thinko).
830
831         Fixes #80521
832         
833 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
834
835         * reflection.c: align fields rva data so it's faster to load at
836         runtime.
837
838 2007-01-12  Raja R Harinath  <rharinath@novell.com>
839
840         Prepare to simplify GenericMethod handling.
841         * class-internals.h (mono_method_get_context): New accessor function.
842         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
843         rather than directly accessing '->context' field.
844
845         * class-internals.h (_MonoGenericParam.method): Move ...
846         (_MonoGenericContainer): ... here.  Add into union with klass field.
847         * class.c, icall.c, loader.c, metadata.c, reflection.c:
848         Update to changes.
849
850 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
851
852         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
853         the wrapper type enum and reduce relocations.
854
855 2007-01-12  Raja R Harinath  <rharinath@novell.com>
856
857         * reflection.c (inflate_mono_method): Reuse method instantiation
858         from the generic method, if available.
859
860 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
861
862         * marshal.c (emit_marshal_variant): Fix conv_arg
863         type in last commit, based on whether parameter is byref.
864         
865 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
866
867         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
868         marshalling.
869         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
870         MONO_TYPE_OBJECT back for VARIANT support.
871
872 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
873
874         * marshal.c, marshal.h, icall-def.h: Implement 
875         Marshal.ReAllocCoTaskMem.
876
877 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
878
879         * marshal.c: memory retention fixes: use the proper
880         image cache for runtime_invoke method lookups.
881
882 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
883
884         * mempool.c: added code to help debug mempool allocations.
885
886 2007-01-11  Dick Porter  <dick@ximian.com>
887
888         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
889         support (experimenting with faking it with IP_MTU_DISCOVER for
890         systems that don't have IP_DONTFRAGMENT.)
891         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
892         icall.
893
894         * icall-def.h: new System.Net.Sockets.Disconnect icall.
895
896         * socket-io.h: Add new fields to MonoSocketAsyncResult
897         corresponding to the new ones in Socket.cs.
898
899 2007-01-11  Raja R Harinath  <rharinath@novell.com>
900
901         Fix IronPython regression mentioned in #80249
902         * metadata.c (do_mono_metadata_parse_generic_class): Clear
903         'cached_context' field, since it may have been initialized as a
904         side-effect of metadata parsing.
905
906         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
907         (_MonoGenericClass.cached_class): Move here and rename from lone
908         remaining field of ...
909         (_MonoInflatedGenericClass): ... this.  Remove.
910         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
911         to changes.
912
913         Fix mcs/tests/test-128.cs regression.
914         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
915         2007-01-10 change below.
916         [MONO_TYPE_OBJECT]: Recurse into array case.
917
918 2007-01-11  Raja R Harinath  <harinath@gmail.com>
919
920         * class-internals.h (mono_get_inflated_generic_class): Remove.
921         * class.c (mono_get_inflated_generic_class): Remove.
922         (mono_generic_class_get_class): Rename from
923         mono_class_create_generic.
924         (mono_class_from_mono_type) [GENERICINST]: Use it.
925         * reflection.c, metadata.c: Update to changes.  Use
926         'mono_class_from_mono_type'.
927
928 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
929
930         * reflection.c: use passed type when encoding an array element
931         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
932
933 2007-01-09  Robert Jordan  <robertj@gmx.net>
934
935         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
936         result arguments (someDelegate.EndInvoke (unrelatedAres)).
937         Fixes bug #80392.
938
939 2007-01-09  Raja R Harinath  <rharinath@novell.com>
940
941         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
942
943         * object.c (set_value): Avoid aliasing between type->data.klass
944         and type->data.generic_class.
945
946         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
947
948 2007-01-08  Raja R Harinath  <rharinath@novell.com>
949
950         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
951         between type->data.klass and type->data.generic_class.
952
953 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
954
955         * marshal.c: In MS.NET, StringBuilder objects are not copied by
956         value in out parameters.
957
958 2007-01-08  Raja R Harinath  <rharinath@novell.com>
959
960         Simplify invariant for MonoGenericClass::klass field.
961         * class.c (mono_class_create_generic): Verify 'klass' is null.
962         * metadata.c (do_mono_metadata_parse_generic_class): Don't
963         initialize 'klass' field.
964
965 2007-01-05  Raja R Harinath  <rharinath@novell.com>
966
967         Ongoing work to avoid redundant data and simplify invariants.
968         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
969         'generic_class', and change type to a GenericInst.
970         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
971         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
972
973 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
974
975         * class.c : skip io-layer under PLATFORM_WIN32.
976
977 2007-01-03  Tor Lillqvist  <tml@novell.com>
978
979         Fix #80305: In a bundled executable, look in the bundled exe
980         assembly to determine the runtime version. Add the possibility to
981         bundle also the machine.config file.
982         
983         * assembly.c (mono_assembly_open_from_bundle): Make
984         non-static. Allow being called even if we have no bundled
985         assemblies, and return NULL right away in that case.
986
987         * domain-internals.h: Declare mono_assembly_open_from_bundle()
988         here.
989
990         * domain.c (app_config_parse): Take an assembly exe file name as
991         parameter instead of a config file name. Check for a bundled
992         config file for that assembly by calling
993         mono_config_string_for_assembly_file() (see below) before looking
994         for one in the file system.
995         (get_runtimes_from_exe): Corrsponding change to call of
996         app_config_parse().
997         (get_runtimes_from_exe): Check for bundled assembly exe file first
998         by calling mono_assembly_open_from_bundle(). If no bundled
999         assembly exe file is found, call mono_image_open() as before to
1000         look it up in the file system.
1001
1002         * mono-config.c: Add variable bundled_machinec_onfig.
1003         (mono_config_string_for_assembly_file): New function.
1004         (mono_config_for_assembly): Move code snippet that looks for a
1005         bundled assembly .config file into the above new function. Call
1006         it.
1007         (mono_register_machine_config, mono_get_machine_config): New
1008         functions to set and retrieve
1009
1010         * assembly.h: Declare mono_register_machine_config().
1011
1012         * mono-config.h: Declare mono_get_machine_config() and
1013         mono_config_string_for_assembly_file().
1014
1015         * icall.c: No declaration of environ necessary on Win32. It is
1016         declared (as a macro expanding to a function call) in stdlib.h.
1017         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
1018         New internal mono function. Returns the value of
1019         mono_get_machine_config() as a Mono string.
1020
1021         * icall-def.h: Add get_bundled_machine_config().
1022
1023 2007-01-04  Raja R Harinath  <rharinath@novell.com>
1024
1025         Remove redundant field
1026         * class-internals.h (_MonoGenericContext.container): Remove field.
1027         * loader.c (mono_method_get_signature_full): Don't parse a
1028         "container" for a signature parse when the signature is inflated
1029         immediately.
1030         (method_from_methodspec): Likewise, for a generic_inst.
1031         * class.c, metadata.c, reflection.c: Update to changes.
1032
1033 2006-01-04  Raja R Harinath  <rharinath@novell.com>
1034
1035         * class-internals.h (_MonoGenericClass): Rename 'context' field to
1036         'cached_context', and change semantics -- it starts off NULL, and
1037         is initialized on demand.
1038         * class.c (mono_generic_class_get_context): New accessor to
1039         replace 'context' field accesses.
1040         (mono_class_get_context): New helper.
1041         (*): Update to changes.
1042         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
1043
1044 2007-01-03  Miguel de Icaza  <miguel@novell.com>
1045
1046         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
1047         before the memcpy.   Fixes Marshal2 regression.
1048
1049 2007-01-02  Jb Evain  <jbevain@gmail.com>
1050
1051         * blob.h: add a MONO_TYPE_ENUM definition
1052         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
1053         fix the encoding of arrays of enums in custom attributes.
1054
1055         Fixes #79666.
1056
1057 2007-01-01  Miguel de Icaza  <miguel@novell.com>
1058
1059         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
1060         string is null terminated, but only cut the string short if it
1061         overflows the buffer.   
1062         
1063         (mono_string_to_byvalstr): Also fix this routine.   The code here
1064         was not properly terminating a string (it was only terminated
1065         because of the previous catch-all memset). 
1066
1067         I left the memset, because I do not know if applications expect
1068         the runtime to clear this region. 
1069
1070         Fixes #79944.
1071
1072         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
1073         Clear the error before returning to unmanaged code to prevent the
1074         runtime from being confused later on (fixes  80420).
1075         (ves_icall_type_from_name): Always call mono_loader_clear_error
1076         after parsing a type that could have failed.
1077         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
1078
1079         * loader.c (mono_loader_clear_error): Fix indentation.
1080
1081 2006-12-28  Martin Baulig  <martin@ximian.com>
1082
1083         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
1084
1085 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
1086
1087         * reflection.c: patch from Rolf Bjarne Kvinge to fix
1088         getting a token for an EnumBuilder.
1089
1090 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
1091
1092         * reflection.c: be more careful in case resource generation
1093         fails to create the data array.
1094
1095 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
1096
1097         * sgen-gc.c: write barrier for clone and fix unregister handles.
1098
1099 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
1100
1101         * reflection.c: some fixes needed in the generics code for the moving GC.
1102
1103 2006-12-22  Robert Jordan  <robertj@gmx.net>
1104
1105         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
1106         account. Fixes bug #80299.
1107
1108 2006-12-21  Raja R Harinath  <rharinath@novell.com>
1109
1110         Fix WaitHandle usage in delegates.
1111         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
1112         * object.c (mono_wait_handle_new): Use the property set method to
1113         initialize the handle.
1114         (mono_wait_handle_get_handle): New.
1115         * threadpool.c (mono_async_invoke): Use it.
1116         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
1117         Likewise.
1118         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
1119
1120 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
1121
1122         * marshal.c (emit_marshal): Call emit_marshal_variant and
1123         emit_marshal_com_interface when applicable.
1124         (emit_marshal_variant, emit_marshal_com_interface): Add
1125         methods for this case and remove if's from emit_marshal_object.
1126         
1127 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
1128
1129         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
1130
1131 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
1132
1133         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
1134         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
1135         and GlobalFree on Windows. Remove FIXME.
1136
1137 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
1138
1139         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
1140         implementation for managed objects.
1141
1142 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
1143
1144         * object.c: implemented code to be used for checking
1145         that no reference field overlaps with non-references.
1146
1147 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1148
1149         * threadpool.c: fix queue code to be compatible with the
1150         moving GC.
1151
1152 2006-12-18  Miguel de Icaza  <miguel@novell.com>
1153
1154         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
1155         in structures by throwing ArgumentNullException.
1156
1157         (emit_marshal_safehandle): Also when they are null parameters.
1158
1159         (emit_marshal_safehandle): Add support for ref
1160         SafeHandles parameters
1161
1162 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1163
1164         * profiler.c: updated to use the mono-dl API instead of
1165         gmodule.
1166
1167 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1168
1169         * profiler.c: updated to use the mono-dl dynamic loading
1170         API instead of gmodule.
1171
1172 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
1173
1174         * profiler.c: use readlink, older versions of glib don't have
1175         g_file_read_link ().
1176
1177 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1178
1179         * profiler.c: try to detect the path to mono if libc fails to provide
1180         a useful name (bug #80286).
1181
1182 2006-12-16  Raja R Harinath  <rharinath@novell.com>
1183
1184         Fix #80242
1185         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
1186         instance, use the generic type definition instead.
1187         (ves_icall_Type_GetNestedTypes): Likewise.
1188         * class.c (mono_class_create_generic): Always set the
1189         nested_classes of a generic instance to NULL, even if the generic
1190         type definition has nested types.
1191
1192 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
1193
1194         * marshal.c (mono_string_from_bstr): Revert previous Windows change
1195         and fix on Linux.
1196         
1197 2006-12-15  Miguel de Icaza  <miguel@novell.com>
1198
1199         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
1200         my arguments were in the wrong order.   I also fixed the Windows
1201         version which seems to have had the same issue.
1202
1203         (mono_free_bstr): On Unix, this is g_free.
1204         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
1205         conversions (for the tests in corlib to pass).
1206
1207 2006-12-14  Miguel de Icaza  <miguel@novell.com>
1208
1209         * marshal.c (emit_ptr_to_object_conv): For now, ignore
1210         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
1211         exception if a ref SafeHandle in a struct has changed).
1212         
1213         (emit_struct_conv): Do not perform layout checks for classes
1214         derived from SafeHandle, as those are specially handled. 
1215
1216         (emit_object_to_ptr_conv): Add support for
1217         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
1218
1219         (emit_marshal_safehandle): Implement conversion of return values
1220         of safehandles (MARSHAL_ACTION_CONV_RESULT).
1221         
1222         * threads.c: WaitHandle now is compiled with two different handles
1223         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
1224         for 2.0.
1225         
1226         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
1227         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
1228         these routines to cope with both kinds of fields.
1229
1230 2006-12-12  Miguel de Icaza  <miguel@novell.com>
1231
1232         * metadata.c (mono_type_to_unmanaged): Handle the case where
1233         type->data.klass is a SafeHandle, and in that case, return the
1234         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
1235         MONO_MARSHAL_CONV_SAFEHANDLE. 
1236
1237 2006-12-11  Miguel de Icaza  <miguel@novell.com>
1238
1239         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
1240         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
1241         calling emit_marshal_object.
1242
1243         (emit_marshal_safehandle): Implement marshalling of
1244         SafeHandle parameters (no ref support yet).
1245
1246         (MarshalAction): Document the defines as I implement
1247         them for SafeHandle.
1248
1249         (emit_marshal_object): indentation police.
1250
1251         * class-internals.h: Define MonoSafeHandle.
1252         Add safehandle_class to MonoDefaults type.
1253
1254         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
1255         list of classes to check for fields. 
1256
1257         * domain.c (mono_init_internal): Add SafeHandle to the list of
1258         mono_defaults loaded.
1259
1260 2006-12-15  Raja R Harinath  <rharinath@novell.com>
1261
1262         Fix #80253
1263         * reflection.c (mono_reflection_bind_generic_parameters): If the
1264         generic type definition is a type builder, ensure that it is fully
1265         initialized before instantiating it.  Kill some dead code.
1266
1267 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
1268
1269         * object.c: clear the loader_error () before loading
1270         more metadata stuff (bug #80258).
1271
1272 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
1273
1274         * icall.c, icall-defs.h: type modifiers icalls for
1275         parameters and properties.
1276
1277 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
1278
1279         * object.c, icall.c: fixed warnings.
1280
1281 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
1282
1283         * marshal.c: fixed a couple of leaks and coding style in a few places.
1284
1285 2006-12-08  Dick Porter  <dick@ximian.com>
1286
1287         * process.c: Cope with NULL ProcessStartInfo arguments on windows
1288         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
1289         80173.
1290
1291 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
1292
1293         * process.c: ProcessStartInfo may have only filename set and
1294         arguments can be NULL.
1295
1296 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1297
1298         * icall.c: fix leak found by Robert Jordan.
1299
1300 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
1301
1302         * marshal.c, marshal.h: generate managed method to access an element
1303         of a multi-dimensional array.
1304
1305 2006-11-30  Paolo Molaro (lupus@ximian.com)
1306
1307         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
1308
1309 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1310
1311         * icall.c: back out GetFields () fix until the serialization code is
1312         fixed to not depend on the incorrect behaviour.
1313
1314 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
1315
1316         * profiler.c: provide defaults if none are set.
1317
1318 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
1319
1320         * Makefile.am, attrdefs.h: new public header file with
1321         constants for attributes for use by embedders.
1322
1323 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
1324
1325         * icall.c: GetFields () fix for bug #80064.
1326
1327 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
1328
1329         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
1330         removed long unused icalls.
1331
1332 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
1333   
1334         * marshal.c: 
1335                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
1336                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
1337                 can be generated without a delegate class.
1338                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
1339         
1340         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
1341
1342 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1343
1344         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
1345         #80069.
1346
1347 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1348
1349         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
1350         icall-def.h: added icalls needed by System.GC.
1351
1352 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
1353
1354         * loader.c: ensure the class in catch clauses is handled
1355         correctly for generics methods (fixes bug#79980).
1356
1357 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
1358
1359         * monitor.h, monitor.c: added mono_locks_dump () function
1360         to help debug deadlocks involving managed locks.
1361
1362 2006-11-13  Dick Porter  <dick@ximian.com>
1363
1364         * file-io.c (get_file_attributes): If the file is a symlink try
1365         and get the stat data for the target, but also add the
1366         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
1367         the specs for the windows symlink support, but will probably have
1368         to be reworked when I have test data from a vista machine.  Fixes
1369         bug 79887.
1370
1371 2006-11-13  Dick Porter  <dick@ximian.com>
1372
1373         * gc.c (mono_domain_finalize): 
1374         * marshal.c (mono_delegate_begin_invoke): 
1375         * threadpool.c (socket_io_init, mono_thread_pool_init)
1376         (mono_thread_pool_finish): 
1377         * monitor.c (mono_monitor_try_enter_internal): 
1378         * threads.c (mono_thread_resume, mono_thread_init)
1379         (mono_thread_suspend_all_other_threads)
1380         (mono_thread_execute_interruption): 
1381         * appdomain.c (mono_domain_unload): Check for NULL error returns
1382         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
1383         75733.
1384
1385 2006-11-11  Miguel de Icaza  <miguel@novell.com>
1386
1387         * process.c
1388         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
1389         Only close the handle if the value of the handle is not
1390         INVALID_HANDLE_VALUE.  This just makes the process a bit more
1391         robust.
1392
1393         Improvement for #75733, so that we do not run into this problem. 
1394
1395         
1396         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
1397         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
1398         internal variables.  Fixes #79462 
1399         
1400
1401 2006-11-09  Dick Porter  <dick@ximian.com>
1402
1403         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
1404         Use poll() not select().  Fixes bug 79397.
1405
1406 2006-11-09  Raja R Harinath  <rharinath@novell.com>
1407
1408         Fix #79872
1409         * assembly.c (mono_assembly_load_from_full): Check that the given
1410         image has an assembly manifest.
1411
1412 2006-11-09  Ankit Jain  <jankit@novell.com>
1413
1414         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
1415         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
1416         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
1417
1418 2006-11-07  Dick Porter  <dick@ximian.com>
1419
1420         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
1421         Put the old resolver behaviour back for pre-2.0 profiles.
1422
1423 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
1424
1425         * threadpool.c: precise GC and locking fixes.
1426
1427 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
1428
1429         * class.c: don't load types that have an explicit unaligned
1430         managed reference. Provide better info in the TypeLoad exception.
1431         Part of the fix for bug #79744.
1432         * object.c: use the correct check for class type load issues.
1433
1434 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
1435
1436         * class.c: enforce alignment of fields with managed references
1437         even when Pack=1 is forced by the user (bug #77788).
1438
1439 2006-11-03  Dick Porter  <dick@ximian.com>
1440
1441         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
1442         If the address reverse lookup fails, return it as the hostname
1443         anyway.  Fixes bug 79721.
1444
1445 2006-11-03  Dick Porter  <dick@ximian.com>
1446
1447         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
1448         Fix build on Windows.
1449
1450 2006-11-02  Dick Porter  <dick@ximian.com>
1451
1452         * icall-def.h: 
1453         * object-internals.h: 
1454         * exception.c (mono_get_exception_thread_interrupted): 
1455         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
1456         Fixes bug 74525.
1457
1458         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
1459         Check for pending Thread.Interrupt.
1460
1461 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
1462         * loader.c: Fixed bug 79684.
1463
1464 2006-10-27  Dick Porter  <dick@ximian.com>
1465
1466         * file-io.c (get_file_attributes): Force symlinks to directories
1467         to be returned as a regular file.  Fixes bug 79733.
1468 2006-10-26  Dick Porter  <dick@ximian.com>
1469
1470         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
1471         CreateFile to open a directory then we need to set the
1472         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
1473
1474 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
1475
1476         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
1477         friends.
1478
1479 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1480
1481         * sgengc.c: small cleanup of timer code.
1482
1483 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
1484
1485         * sgen-gc.c: fix some warnings and start adding support for
1486         complete object removal on domain unload.
1487
1488 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
1489
1490         * assembly.c: build_assembly_name should not consider a version
1491         number without build or revision number invalid. Fixes bug #79715.
1492
1493 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
1494
1495         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
1496         call kernel32 function OutputDebugString directly.
1497         
1498         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
1499         
1500 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
1501
1502         * reflection.c: small cleanup, using a function to insert a MonoString
1503         in the string heap.
1504
1505 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
1506
1507         * reflection.c: moving GC fixes.
1508
1509 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
1510
1511         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
1512         all the objects with finalizers belonging to an unloading appdomain.
1513
1514 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
1515
1516         * sgen-gc.c: added ability to allocate even when the nursery is fully
1517         pinned and fixed a couple of bugs.
1518
1519 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
1520
1521         * threads.h: Revert the last change for now.
1522
1523         * threads.h (mono_thread_get_pending_exception): Rename this to
1524         mono_thread_get_undeniable_exception ().
1525
1526 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
1527
1528         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
1529         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
1530         when fname does not refer to valid assembly. This result in a more
1531         meaningful error message.
1532         * exception.c: added mono_get_exception_bad_image_format2 which 
1533         constructs a BadImageFormatException using the ctor taking a custom
1534         message and the file name. Passing in a NULL msg results in a default
1535         message.
1536         * exception.h: define mono_get_exception_bad_image_format2 function.
1537         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
1538         when file name pointed to an invalid IL image. Use 
1539         mono_get_exception_file_not_found2 to construct FileNotFoundException,
1540         as this results in a more meaningful error message.
1541
1542 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
1543
1544         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
1545         #79465.
1546
1547 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
1548
1549         * metadata.c (mono_type_size): Change the align parameter to guint32 for
1550         consistency with the other _size functions.
1551         (mono_type_stack_size): Ditto.
1552
1553         * class.c object.c icall.c: Fix warnings caused by the above change.
1554
1555         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
1556
1557         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
1558
1559         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
1560
1561 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1562
1563         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
1564         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
1565         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
1566         threadpool.h, threads-types.h: mark more internal functions.
1567
1568 2006-10-11  Dick Porter  <dick@ximian.com>
1569
1570         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
1571         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
1572         reproduce the bug even before applying the fix.)
1573
1574 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
1575
1576         * reflection.c: allow retrieving attributes for arguments in generic
1577         methods (bug #79241).
1578
1579 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
1580
1581         * debug-mono-symfile.c: properly check fopen () result (found by
1582         coverity).
1583
1584 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
1585
1586         * reflection.c: make error message clearer and fixed two
1587         issuelets found by Coverity.
1588
1589 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
1590
1591         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
1592
1593 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
1594
1595         * object-internals.h, gc-internal.h, profiler-private.h:
1596         mark internal functions.
1597
1598 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
1599
1600         * reflection.c: put data in the text section.
1601         * icall.c: recognize more types in type_from_typename ().
1602         * process.c, marshal.c: added some GC FIXMEs.
1603
1604 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1605
1606         * loader.c: check for NULL before initializing.
1607
1608 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
1609
1610         * gc.c (finalizer_thread): Use a non-alertable wait here.
1611
1612         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
1613         until the correct solution is found.
1614
1615 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1616
1617         * reflection.c (mono_module_get_object): Avoid an assert when operating on
1618         modules with no metadata. Fixes #79596.
1619
1620         * image.c (load_metadata_ptrs): Put back the error message when
1621         the #- heap is encountered since the support is not complete yet.
1622
1623 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1624
1625         * gc.c: do not allow the user to SuppressFinalize () a
1626         delegate because it would leak the trampoline if present.
1627
1628 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1629
1630         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
1631         PropertyPtr table.
1632
1633 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
1634
1635         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
1636
1637         * metadata.c (mono_metadata_get_param_attrs): Ditto.
1638
1639         * row-indexes.h: Add definitions for *Ptr tables.
1640
1641         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
1642
1643         * metadata.c (mono_metadata_translate_token_index): New helper function to
1644         translate table indexes used in uncompressed metadata.
1645         (mono_metadata_decode_table_row): Ditto.
1646         (mono_metadata_decode_table_row_col): Ditto.
1647
1648         * metadata.c: Add table schema for *Ptr tables.
1649
1650         * class.c loader.c: Use the new helper function to access the affected metadata
1651         tables.
1652         
1653         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
1654         #38532.
1655         
1656 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
1657
1658         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
1659         sequences which can be unbounded in size. Fixes #79583.
1660
1661 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
1662
1663         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
1664         static initialization.
1665
1666         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
1667
1668         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
1669
1670         * domain.c (mono_domain_free): Free up type_init_exception_hash.
1671
1672         * object.c (mono_runtime_class_init): Implement correct semantics when a static
1673         ctor fails, i.e. throw the same exception on subsequent accesses.
1674         
1675 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
1676
1677         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
1678         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
1679         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
1680         Handle marshalling of interfaces and VARIANTs contained in structs.
1681         
1682         Code is contributed under MIT/X11 license.
1683         
1684 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
1685
1686         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
1687         
1688         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
1689         mempool.
1690
1691 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1692
1693         * console-io.c: ignore previous SIGINT handler.
1694
1695 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
1696
1697         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
1698         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
1699         #79460, #79461, #79485.
1700
1701         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
1702
1703         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
1704         #79217.
1705
1706 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1707
1708         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
1709         could be generated from it.
1710
1711 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
1712
1713         * rand.c: fix read loop to correctly handle EINTR.
1714
1715 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1716
1717         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
1718         internal calls are defined to keep methods closer to the declaring
1719         type and allow a significant reduction in runtime relocations and
1720         memory usage.
1721
1722 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
1723
1724         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
1725         exception message to have FileNotFoundException use the default
1726         assembly load error message. Fixes bug #79426.
1727         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
1728
1729 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1730
1731         * threadpool.c: (start_thread_or_queue) use the root domain when
1732         creating the thread instead of the async object one.
1733
1734 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
1735
1736         * class.c, object.c, class-internals.h, reflection.c:
1737         for arrays, store element_size inside MonoClass (speedup
1738         for array object creation).
1739
1740 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
1741
1742         * icall.c: fixed CodeBase to use the file name and not the module
1743         name (bug #79365).
1744
1745 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1746
1747         * mono-debug.c, mono-debug.h: export find_method as
1748         mono_debug_find_method ().
1749
1750 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1751
1752         * debug-helpers.c, class-internals.h: added a few functions useful
1753         when debugging under gdb.
1754
1755 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1756
1757         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
1758         characters that need special handling.
1759
1760 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
1761
1762         * mono-config.c: make the os/cpu specification more flexible,
1763         allowing lists and negation.
1764
1765 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
1766
1767         * marshal.c: COM Interop fixes. Handle case where method->klass.
1768         is interface. Handle BSTR/MonoString when null. Use CDECL as 
1769         calling convention on non-windows platforms. This is for
1770         compatibility with XPCOM and MainWin COM.
1771         
1772         Code is contributed under MIT/X11 license.
1773         
1774
1775 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
1776
1777         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
1778         correctly. Fixes #79217.
1779
1780         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
1781
1782 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
1783
1784         * mono-config.c: allow both an os and cpu attribute for dllmap
1785         and dllentry elemnets to enable a single config file to be used
1786         for multiple architectures.
1787
1788 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
1789
1790         * loader.c: MonoLoaderError was cleared too soon on load failure.
1791         Fixes bug #79424.
1792
1793 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
1794
1795         * icall.c: use the defining class vtable when accessing a
1796         static field, not a pobblibly derived class.
1797
1798 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
1799
1800         * icall.c string-icalls.c: Remove references to unicode.h.
1801
1802         * unicode.h unicode.c Makefile.am: Remove these unused source files.
1803
1804         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
1805
1806         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
1807         indicating the image where custom marshaller types should be looked up.
1808         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
1809         custom marshallers, instead of corlib. Fixes #79425.
1810
1811 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
1812
1813         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
1814
1815 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
1816
1817         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
1818         Implement Environment.ProcessorCount.
1819         
1820         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
1821         Implement Environment.ProcessorCount.
1822         
1823         * icall.c: 
1824         Add Environment.ProcessorCount icall.
1825         
1826         Patch by Jason McFall.
1827
1828 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1829
1830         * assembly.c: don't append .exe/.dll when the filename already contains
1831         one of those extensions.
1832
1833 2006-09-12  Martin Baulig  <martin@ximian.com>
1834
1835         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
1836         to array interfaces.
1837
1838 2006-09-11  Martin Baulig  <martin@ximian.com>
1839
1840         * reflection.c (mono_image_build_metadata): Create the
1841         MethodImpl's after emitting all types and methods, so we don't
1842         need another fixup pass for them.
1843
1844 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1845
1846         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1847         change.
1848
1849 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1850
1851         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1852         unload.
1853
1854 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1855
1856         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1857         args is not set. Fixes #78926.
1858
1859 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1860
1861         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1862
1863         * image.c (load_class_names): Move this to class.c, and rename it to 
1864         'mono_image_init_name_cache'.
1865         (load_modules): Fix a warning.
1866
1867         * class.c icall.c image.c: Initialize image->name_cache lazily.
1868
1869         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1870         on its name using information in the AOT file.
1871
1872         * class.c (mono_class_from_name): Use the new hook function.
1873
1874 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1875
1876         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1877         correctly.
1878
1879         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1880         Fixes #79289.
1881         
1882 2006-09-06  Martin Baulig  <martin@ximian.com>
1883
1884         * icall.c (mono_lookup_internal_call): Small fix.
1885
1886 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1887
1888         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1889         double g_free.
1890
1891 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1892
1893         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1894         when --debug is specified.
1895
1896 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1897
1898         * class.c (setup_generic_array_ifaces): Fix a warning.
1899
1900 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1901
1902         * Temporarily remove the patch to assemly.c that checks the
1903         assembly versions as it breaks our gacutil.
1904
1905 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1906
1907         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1908
1909         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1910         a net 1.0 runtime.
1911
1912         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1913         created using the default ctor. Fixes #79152.
1914         (mono_string_builder_to_utf16): Ditto.
1915
1916 2006-09-01  Martin Baulig  <martin@ximian.com>
1917
1918         Fix handling of the generic array interfaces.
1919
1920         * class-internals.h
1921         (MonoDefaults): Removed `generic_array_class' and added
1922         `generic_ilist' class.
1923
1924         * class.c
1925         (mono_bounded_array_class_get): Add the new generic array interfaces.
1926         (setup_generic_array_ifaces): New static method; create vtable
1927         entries for each method in the generic array interfaces.
1928
1929         * metadata.c
1930         (select_container): Allow "parent-less" generic methods.
1931
1932         * marshal.c
1933         (mono_marshal_get_generic_array_helper): New public method.
1934
1935         * icall.c
1936         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1937         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1938         moved the interncall into System.Array.
1939
1940 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1941
1942         A few more cases of avoiding work on types with ->byref set.
1943         Has the real fix for #79238
1944         * icall.c (is_generic_parameter): New helper.
1945         (ves_icall_Type_GetGenericParameterPosition): Use it.
1946         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1947         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1948         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1949         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1950         reference types.
1951         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1952         reference types.
1953         (ves_icall_Type_get_IsGenericInstance): Likewise.
1954         (ves_icall_Type_get_IsGenericType): Likewise.
1955
1956 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1957
1958         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1959         class if possible.
1960
1961         * mempool.h (mono_mempool_get_allocated): New helper function.
1962
1963         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1964         change.
1965
1966         * mempool.c: Fix warnings and the calculation of stats.
1967
1968         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1969
1970         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1971
1972         * loader.c (mono_get_method_from_token): Update method_count stat.
1973
1974         * class-internals.h (MonoStats): Add some stats.
1975
1976 2006-08-31 Robert Jordan  <robertj@gmx.net>
1977
1978         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1979         with managed variants.
1980         All code is contributed under the MIT/X11 license.
1981         
1982 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1983
1984         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1985         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1986
1987         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1988
1989         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1990         with cycles in classes.
1991
1992         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1993
1994         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1995         missing a [MarshalAs] directive. Fixes #79203.
1996
1997         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1998         klass->marshal_info. Fixes #79217.
1999
2000 2006-08-30  Martin Baulig  <martin@ximian.com>
2001
2002         Committing a patch from Joachim Ante <joe@otee.dk>:
2003         Add support for binary data symbol stores.
2004
2005         * debug-mono-symfile.c
2006         (mono_debug_open_mono_symbol_file): Renamed into
2007         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
2008         arguments.
2009
2010         * mono-debug.c
2011         (mono_debug_open_image): Added `raw_contents' and `size' args.
2012         (mono_debug_init_2_memory): New public function.
2013
2014 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
2015
2016         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
2017
2018 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2019
2020         * appdomain.c: implement support for ShadowCopyFiles.
2021
2022 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
2023
2024         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
2025         when value is NULL (and should remove CID #51).
2026
2027 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2028
2029         * image.c: moved 2 functions to ../utils.
2030
2031 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
2032
2033         * gc.c: cope with the target object of a GC handle being NULL
2034         (bug #78877).
2035
2036 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
2037
2038         * class.c: recursively check parent's explicit implementations
2039         of interface methods (fixes bug #79125).
2040
2041 2006-08-19  Miguel de Icaza  <miguel@novell.com>
2042
2043         * filewatcher.c: Avoid warnings when building, do not redefine
2044         constants that are defined.
2045
2046         Remove warnings.
2047
2048 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2049
2050         * image.c: don't fail when the link points to an absolute path.
2051
2052 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
2053
2054         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
2055         Fix CID #3.
2056
2057 2006-08-17  Miguel de Icaza  <miguel@novell.com>
2058
2059         * image.c (full_path): A new method used to obtain the actual path
2060         of an assembly even in the presence of symbolic links.  
2061
2062         This is necessary for the case where we are running a binary that
2063         has been GACed, but we are using the "published" path name
2064         ($prefix/mono/1.0/blah.exe) which happens to point to the real
2065         file in the GAC.
2066
2067         This was the source of the failure for the `xsp' command with the
2068         recent AppDomain changes, as far as the runtime was concerned,
2069         there were two different assemblies: $prefix/mono/1.0/blah.exe and
2070         $prefix/mono/gac/blah/version/blah.exe.
2071
2072         (do_mono_image_open): use full path
2073
2074 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2075
2076         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
2077
2078 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
2079
2080         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
2081         domain_id is supplied. Fix CID #241 and corlib's unit tests.
2082
2083 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2084
2085         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
2086         small structures. Fixes #78990.
2087
2088 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2089
2090         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
2091
2092         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
2093
2094 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2095
2096         * appdomain.c:
2097         * marshal.c: don't load all the assemblies from a domain into newly
2098         created ones. The new domains might have different rules and load
2099         assemblies from different locations. Fixes bug #76757.
2100
2101         Patch by Lluis. Conflicts resolved by Brian Crowell.
2102
2103 2006-08-16  Alp Toker  <alp@atoker.com>
2104
2105         * socket-io.c: First half of the fix for #79084.
2106         Set sa_size to the length of the content, not that of the struct.
2107         Don't add NULL suffix to the content, this should be done in
2108         managed code if needed.
2109
2110 2006-08-14  Raja R Harinath  <rharinath@novell.com>
2111
2112         Fix part of #79012
2113         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
2114         mono_metadata_parse_type returns NULL.
2115
2116 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
2117
2118         * normalization-tables.h : new file for string normalization data.
2119         * locales.c, locales.h, icall.c :
2120           added load_normalization_resource() for string normalization,
2121           and icall as well.
2122         * Makefile.am : added normalization-tables.h to the sources.
2123
2124 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
2125
2126         * marshal.c: Add more helper functions to reduce code duplication and use them
2127         everywhere.
2128
2129 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
2130
2131         * marshal.c: Fix non-x86 stdcall warnings.
2132         
2133         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
2134         them everywhere.
2135
2136 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
2137
2138         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
2139         type check on multi-dimensional arrays. Fixes #79000.
2140
2141 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
2142
2143         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
2144         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
2145         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
2146         * class-internals.h: add is_com_object to class structure.
2147         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
2148         null checks to COM object marshalling. Fix .ctor call on RCW.
2149         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
2150         
2151         All code is contributed under the MIT/X11 license.
2152
2153 2006-08-09  Dick Porter  <dick@ximian.com>
2154
2155         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
2156         racing mono_monitor_allocator_lock() somewhere, so don't delete
2157         the critical section for now.  Found by running and exiting
2158         monodevelop.
2159
2160 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
2161
2162         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
2163         (ves_icall_System_ComObject_FindInterface): Ditto.
2164         (ves_icall_System_ComObject_CacheInterface): Ditto.
2165
2166         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
2167         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
2168
2169 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2170
2171         * threadpool.c: treat pipes from process asynchronous reads as sockets
2172         when reading from them, so we get select/poll or epoll to wait for
2173         data.
2174
2175 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
2176
2177         * loader.c: Fix a typo (CID #233) in the null check.
2178
2179 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
2180
2181         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
2182         Hopefully fixes #78949.
2183         
2184         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
2185         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
2186         bytes. Fixes #78972.
2187
2188 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2189
2190         * filewatcher.c: we need to set errno here.
2191
2192 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2193
2194         * filewatcher.c: let Win32Exception get the error value.
2195
2196 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2197
2198         * filewatcher.c: translate errno into win32 errors for Win32Exception
2199         to know what happened.
2200
2201 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
2202
2203         * threadpool.c: Fix more warnings.
2204
2205         * assembly.c (search_loaded): Fix warnings.
2206
2207         * threadpool.c (mono_thread_pool_finish): Fix warnings.
2208         (mono_async_invoke): Ditto.
2209
2210 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
2211
2212         * object.c (mono_remote_class_vtable): Need to create proxy vtable
2213         entries for __ComObject type in addition to ComImport types.
2214         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
2215         about hash table.
2216         
2217         All code is contributed under the MIT/X11 license.
2218
2219 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2220
2221         * image.c: avoid tentative loading of modulerefs that contain
2222         no metadata (P/Invoke library names).
2223
2224 2006-07-28  Dick Porter  <dick@ximian.com>
2225
2226         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
2227         mono_loader_lock() somewhere, so don't delete the critical section
2228         for now.  Found by running and exiting monodevelop.
2229
2230 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2231
2232         * filewatcher.c: define the inotify syscalls when we're building on
2233         linux and have sys/syscall.h. The build system might not have support
2234         for inotify but the target system might have it.
2235
2236 2006-07-26  Miguel de Icaza  <miguel@novell.com>
2237
2238         * domain.c: Documentation updates.
2239
2240         * loader.c (mono_free_method): Do not release the method
2241         information if we are being profiled, as profilers will use this
2242         information at shut down to present some data to the user.
2243
2244         This is needed so that the profiler does not crash, as the
2245         profiler tends to keep MonoMethods around, and they might become
2246         invalid if we free these.
2247
2248         (mono_get_method_constrained): Return the original CIL stream
2249         method as well, so verification can be performed against it.
2250
2251 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2252
2253         * filewatcher.[ch]: support for inotify file system watcher.
2254         * icall.c: add new internal calls for the inotify file system watcher.
2255
2256 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2257
2258         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
2259         #78888.
2260
2261 2006-07-20  Dick Porter  <dick@ximian.com>
2262
2263         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
2264         warning.
2265
2266 2006-07-20  Dick Porter  <dick@ximian.com>
2267
2268         * threads.c (start_wrapper): Do the thread cleanup while we still
2269         hold a reference to its object.  Fixes bug 78123.
2270
2271 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
2272
2273         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
2274         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
2275           "managed-to-managed".
2276         * icall.c: Redirect string constructors that take sbyte* to
2277           ves_icall_System_String_ctor_RedirectToCreateString.
2278         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
2279           to CreateString () methods with matching signature.
2280         * reflection.c: Use original security informations for
2281           MONO_WRAPPER_MANAGED_TO_MANAGED.
2282         * security-manager.c: Use original security informations for
2283           MONO_WRAPPER_MANAGED_TO_MANAGED.
2284         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
2285           that is a placeholder and only its address should be used.
2286         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
2287           that is a placeholder and only its address should be used.
2288
2289 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
2290
2291         Begin implementing COM Interop.
2292         * appdomain.c: Increment corlib version.
2293         * class.c: Set ComImport classes' parent to __ComObject.
2294         * loader.c: Mark cominterop methods as such.
2295         * domain.c: Add __ComObject class to MonoDefaults structure.
2296         * image.c: Add 2 hashtables to the image for COM Interop related methods
2297         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
2298         using the mempool allocator
2299         
2300         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
2301         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
2302         declaration for mono_metadata_type_dup_mp.
2303         
2304         * debug-helpers.c: Added strings for two additional wrapper types
2305         * object.c: Create proxy objects for ComImport classes
2306         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
2307         and added __ComObject class to MonoDefaults structure.
2308         
2309         * object-internals.h: Finish MonoRealProxy definition, and add definition of
2310         MonoComInteropProxy and MonoComObject.
2311         
2312         * marshal.c: Added support for COM Interop
2313         (signature_cominterop): Converts managed signature to corresponding
2314         unmanaged COM signature.
2315         (cominterop_get_function_pointer): gets unmanaged function pointer via
2316         COM object vtable
2317         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
2318         (cominterop_get_method_interface): returns interface type that method is defined on
2319         (mono_mb_emit_cominterop_call): emits native call to function pointer
2320         gotten from vtable
2321         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
2322         that matches signature of unmanaged function.
2323         (cominterop_get_native_wrapper): wrapper around adjusted method call.
2324         (cominterop_get_invoke): forwards call from proxy to __ComObject
2325         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
2326         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
2327         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
2328         
2329         * marshal.h: Added Marshal icall declarations.
2330         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
2331         so we can access them in finalizer
2332         
2333 2006-07-14  Dick Porter  <dick@ximian.com>
2334
2335         * object.c (mono_type_initialization_cleanup): Fix a race
2336         condition by temporarily commenting out the critical section
2337         deletion.
2338
2339 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
2340
2341         * reflection.c (create_custom_attr): Fix some warnings.
2342         (create_custom_attr_data): Ditto.
2343         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
2344         types. Fixes #78855.
2345
2346 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
2347
2348         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
2349
2350         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
2351
2352 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
2353
2354         * reflection.c (resolve_object): Add support for DynamicMethod.
2355
2356         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
2357         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
2358
2359 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
2360
2361         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
2362         don't leak GPtrArray's pdata has we have no use (nor free) for it.
2363
2364 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
2365
2366         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
2367         Fixes #77888.
2368
2369 2006-06-30  Raja R Harinath  <rharinath@novell.com>
2370
2371         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
2372         slightly: remove a shadow local variable.
2373
2374 2006-06-29  Raja R Harinath  <rharinath@novell.com>
2375
2376         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
2377         definition that introduces the virtual function slot.
2378         Also fix Coverity #105.
2379
2380 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
2381
2382         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
2383         for dynamic assemblies. Fixes #78724.
2384
2385 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
2386
2387         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
2388         Fixes #78722.
2389
2390 2006-06-21  Martin Baulig  <martin@ximian.com>
2391
2392         * reflection.c
2393         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
2394         fixes #76484.
2395
2396 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
2397
2398         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
2399
2400 2006-06-20  Raja R Harinath  <rharinath@novell.com>
2401
2402         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
2403         nor TYPEREFs.
2404         * class.c (mono_class_create_from_typespec): Add 'context' argument.
2405         Inflate result if necessary.
2406         (mono_class_get_full): Remove old version.  Rename from
2407         'mono_class_get' and add 'context' argument.  Pass it to
2408         ..._create_from_typespec.
2409         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
2410         (mono_ldtoken): Revert change below.
2411
2412 2006-06-20  Martin Baulig  <martin@ximian.com>
2413
2414         * class.c (mono_ldtoken): Don't pass the generic context to
2415         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
2416
2417 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
2418
2419         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
2420         and later freeing it. Fixes #78638.
2421
2422 2006-06-15  Miguel de Icaza  <miguel@novell.com>
2423
2424         * icall.c (mono_class_get_throw): Revert over-zealous error
2425         throwing, the caller for mono_class_get_throw will cope with
2426         errors when classes are not properly initialized already.
2427
2428         The code still copes with loader exceptions though.
2429
2430         Fixes the regression in reftype1 and reftype3 from the CAS tests.
2431         
2432 2006-06-14  Miguel de Icaza  <miguel@novell.com>
2433
2434         Fixes the `make run1' version of RuntimeAbort (to be commited,
2435         source is in Bugzilla).
2436         
2437         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
2438         FALSE on class loading failure instead of returning true.
2439
2440         * class.c (mono_class_create_from_typedef): It is possible for
2441         mono_metadata_interfaces_from_typedef_full to fail if a class is
2442         not found, cope with this.
2443         
2444
2445 2006-06-14  Dick Porter  <dick@ximian.com>
2446
2447         * socket-io.c: 
2448         * process.c: Fix a bunch of signed/unsigned warnings from gcc
2449         4.1.1
2450
2451 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
2452
2453         * culture-info-table.h : oops, forgot to make it nsync with r61548.
2454
2455 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
2456
2457         * icall.c: Another fix for building mono in Visual Studio.
2458
2459 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
2460
2461         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
2462         
2463 2006-06-09  Martin Baulig  <martin@ximian.com>
2464
2465         * debug-mono-symfile.c: Put this back and really fix it this
2466         time. Sorry for all the trouble.
2467
2468 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
2469
2470         * icall.c (mono_class_get_throw): Fix a warning.
2471         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
2472         ReflectionTypeLoadException if needed. Fixes #78606.
2473
2474         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
2475         (mono_class_init): Ditto.
2476
2477         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
2478         ref_only exceptions.
2479         (mono_loader_clear_error): Make this work even if there is no error.
2480
2481 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
2482
2483         * object-internals.h marshal.c marshal.h icall.c: Implement method 
2484         Marshal.GetComSlotForMethodInfo using internal call.
2485
2486 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
2487
2488         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
2489         a function for signalling it.
2490
2491         * class.c (mono_class_from_typeref): Use the new kind of loader error when
2492         a referenced assembly is not found.
2493
2494         * loader.c (mono_loader_error_prepare_exception): Add support for 
2495         LOADER_ERROR_ASSEMBLY. Fix formatting.
2496
2497 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
2498
2499         * domain.c appdomain.c class-internals.h marshal.c: Add support 
2500         for VARIANT marshalling on windows and increment corlib version
2501         since Variant struct was added.
2502
2503 2006-06-03  Miguel de Icaza  <miguel@novell.com>
2504
2505         * debug-mono-symfile.c: Revert Martin's previous patch which broke
2506         stack trace line information:
2507
2508         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
2509         (Martin) when looking up B which is between A and C, return A not C.
2510
2511         Bug is #78573.
2512
2513         Thanks to Alexander Olk for tracking this down.
2514
2515 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
2516
2517         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
2518         
2519         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
2520         avoid clobbering its value.
2521         (mono_string_to_lpstr): Fix a warning on windows.
2522
2523 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
2524
2525         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
2526
2527         * reflection.c loader.c: Removed references to 'dummy' flag.
2528
2529         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
2530
2531         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
2532         it gets GC tracking.
2533
2534         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
2535         GC tracking.
2536         
2537         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
2538
2539         * marshal.c threadpool.c: Update callers of mono_async_result_new.
2540
2541         * appdomain.c: Bump corlib version.
2542
2543 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2544
2545         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2546         CEE_STIND_REF when working with object references.
2547
2548 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
2549
2550         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
2551         Fixes #78539.
2552
2553 2006-05-30  Miguel de Icaza  <miguel@novell.com>
2554
2555         * loader.c (method_from_memberref): Fix argument value for
2556         mono_loader_set_error_method_load (I was passing the MonoClass
2557         instead of the class name char *).
2558
2559 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2560
2561         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2562         CEE_STIND_REF when working with object references.
2563
2564 2006-05-30  Martin Baulig  <martin@ximian.com>
2565
2566         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
2567         mono_method_full_name() change and replace the ':' with a '.'
2568         here.
2569
2570 2006-05-30  Martin Baulig  <martin@ximian.com>
2571
2572         * debug-mono-symfile.c
2573         (mono_debug_symfile_lookup_location): Fix the algorithm:
2574         when looking up B which is between A and C, return A not C.
2575
2576 2006-05-29  Martin Baulig  <martin@ximian.com>
2577
2578         * mono-debug.h
2579         (MonoDebugMethodInfo): Make the typedef public.
2580         (MonoDebugSourceLocation): New public struct.
2581
2582         * mono-debug.c
2583         (mono_debug_source_location_from_address): Removed.
2584         (mono_debug_source_location_from_il_offset): Removed.
2585         (mono_debug_il_offset_from_address): Removed.
2586         (mono_debug_address_from_il_offset): Removed.
2587         (mono_debug_lookup_method): New public function.
2588         (mono_debug_lookup_source_location): New public function; replaces
2589         the old mono_debug_source_location_from_*() functions; see the
2590         inline documentation.
2591         (mono_debug_free_source_location): New public function.
2592         (mono_debug_print_stack_frame): New public function; see the
2593         inline documentation.
2594
2595         * debug-mono-symfile.c
2596         (mono_debug_find_source_location): Renamed into
2597         mono_debug_symfile_lookup_location(); only take a
2598         `MonoDebugMethodInfo *' and an `offset' argument; added inline
2599         documentation.
2600         (mono_debug_find_method): Renamed into
2601         mono_debug_symfile_lookup_method().
2602
2603 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
2604
2605         * assembly.c (mono_assembly_open_full): Dont overwrite the status
2606         returned by mono_image_open_full ().
2607
2608         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
2609         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
2610         #78517.
2611
2612         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
2613         #78518.
2614
2615 2006-05-27  Miguel de Icaza  <miguel@novell.com>
2616
2617         * class.c (mono_class_from_typeref): handle missing images
2618         earlier, deals with bug #78418.   Refactor code; 
2619
2620         Fix a warning introduced in my previous commit (some stale code
2621         from before I revisited my patch).
2622
2623         * class.c (mono_class_create_from_typedef): On failure, remove the
2624         class from the MonoImage->class_cache as the class is not
2625         initialized;   Fixes the leak pointed out by Paolo.
2626
2627 2006-05-25  Dick Porter  <dick@ximian.com>
2628
2629         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
2630         DeleteCriticalSections until I figure out which one may still be
2631         sometimes locked when mono_thread_cleanup is called.
2632
2633 2006-05-24  Dick Porter  <dick@ximian.com>
2634
2635         * threads.c (mono_thread_cleanup): Move the threading cleanup out
2636         of mono_thread_manage and back into its own function, so it can be
2637         called after the finalizer thread has finished.
2638
2639         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
2640
2641 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
2642
2643         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
2644         Fixes #78495.
2645
2646         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
2647         with non-blittable elements.
2648         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
2649
2650 2006-05-24  Martin Baulig  <martin@ximian.com>
2651
2652         * mono-debug-debugger.h (MonoDebuggerEvent): Added
2653         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
2654
2655         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
2656         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
2657         `mono_debugger_event_handler' to NULL.
2658
2659 2006-05-24  Martin Baulig  <martin@ximian.com>
2660
2661         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
2662
2663 2006-05-24  Martin Baulig  <martin@ximian.com>
2664
2665         * mono-debug-debugger.h
2666         (mono_debugger_create_notification_function): Added
2667         `MonoCodeManager *' argument.
2668
2669 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
2670
2671         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
2672
2673 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
2674
2675         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
2676         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
2677         implementation.
2678
2679 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
2680
2681         * icall.c: precise GC support: objects can't be stored in unmanaged
2682         memory anymore, even if they are kept alive by other references: since
2683         they can move the GC needs to be able to always find them.
2684
2685 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2686
2687         * object.c: precise GC support for static fields. Support
2688         for moving GCs: write barriers and pinned allocation for interned
2689         strings.
2690
2691 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2692
2693         * domain.c, domain-internals.h: precise GC support for the MonoDomain
2694         structure.
2695
2696 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2697
2698         * class.c, gc.c: sgen and precise GC updates.
2699
2700 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
2701
2702         * marshal.h, marshal.c: added write barrier wrapper and precise type
2703         fixes.
2704
2705 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
2706
2707         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
2708         support.
2709
2710 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2711
2712         * reflection.c: precise and sgen GC updates.
2713
2714 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
2715
2716         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
2717
2718 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
2719
2720         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
2721
2722 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
2723
2724         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
2725         MONO_TYPE_OBJECT. Fixes #78462.
2726
2727 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
2728
2729         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
2730         and blittable types.
2731
2732 2006-05-17  Miguel de Icaza  <miguel@novell.com>
2733
2734         * class.c (mono_class_get_exception_for_failure): Implement parts
2735         of a TODO: if the loader error is set (instead of the class
2736         error), we return a Loader exception that can be properly thrown
2737         elsewhere.
2738
2739         This was exposed by some Winforms 2.0 code that I tried to run
2740         (Atsushi pointed me to it).
2741
2742 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
2743
2744         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
2745         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
2746         
2747         * marshal.c (emit_marshal_vtype): Add limited support for 
2748         UnmanagedType.LPStruct. Fixes #78427.
2749
2750         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
2751         Applied a patch from kangaroo to fix #77523.
2752
2753 2006-05-17  Martin Baulig  <martin@ximian.com>
2754
2755         * threads.c
2756         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
2757         (debugger_thread_created): Removed.
2758         (debugger_thread_exited): Removed.
2759
2760 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
2761
2762         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2763
2764         * object-internals.h (MonoReflectionResource): Sync with managed version.
2765
2766 2006-05-12  Wade Berrier <wberrier@novell.com>
2767
2768         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
2769
2770 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
2771
2772         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
2773         functions try to allocate from the image mempool.
2774
2775 2006-05-12  Dick Porter  <dick@ximian.com>
2776
2777         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
2778
2779 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
2780
2781         * object.c: The FieldGetter and FieldSetter methods require the full
2782         name of the class, not only the name. Fixes bug #78277.
2783
2784 2006-05-11  Miguel de Icaza  <miguel@novell.com>
2785
2786         * loader.c (method_from_memberref): Do not pass the NULL klass to
2787         mono_loader_set_error_() methods.  Pass the non-NULL value
2788         (class). 
2789
2790 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
2791
2792         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
2793         (mono_assembly_close): Null out assembly->image->references after freeing it.
2794
2795         * image.c (mono_image_close): Free image->references.
2796         
2797         * reflection.c (mono_image_basic_init): Fix a small memory leak.
2798
2799 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2800
2801         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
2802         before checking if it's NULL (g_assert).
2803
2804 2006-05-10  Martin Baulig  <martin@ximian.com>
2805
2806         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
2807         I thought I already killed that two months ago, but now it somehow reappeared.
2808
2809 2006-05-10  Martin Baulig  <martin@ximian.com>
2810
2811         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
2812
2813 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
2814
2815         * reflection.c: Allocate memory for dynamically created methods in the image
2816         mempools.
2817
2818 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2819
2820         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
2821         don't use the ad pointer before checking if it's NULL (g_assert).
2822
2823 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
2824
2825         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
2826         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
2827
2828         * marshal.c: Allocate all signatures from mempools.
2829
2830         * marshal.c: Allocate some more signatures from mempools.
2831
2832 2006-05-09  Miguel de Icaza  <miguel@novell.com>
2833
2834         * object.c (mono_load_remote_field): The code used to provide a
2835         temporary variable for returning results if the user did not
2836         provide a result pointer.  But our temporary variable was allocted
2837         on the satck.
2838
2839         Fix calling code to always pass a result area.   Coverity ID 103.
2840
2841 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2842
2843         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2844         value, not the old. Fixes #78312.
2845         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2846
2847         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2848         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2849         per-image cache.
2850
2851         * assembly.c (mono_assembly_close): Free image->references.
2852
2853         * assembly.c (mono_assembly_names_equal): Fix a warning.
2854         (mono_assemblies_cleanup): Cleanup more global data.
2855
2856         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2857
2858         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2859         ptr_cache and image->modules.
2860
2861         * image.c (mono_image_init): Allocate array_cache lazily.
2862         
2863 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2864
2865         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2866         behavior was changed recently and has bad side effects.
2867
2868 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2869
2870         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2871         
2872         * assembly.c (mono_assembly_close): Remove a debug printf.
2873
2874         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2875
2876         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2877         to also allow for temporary references between mono_image_open ()/close ().
2878
2879         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2880
2881 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2882
2883         * marshal.c: Fix support for dynamic methods.
2884
2885         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2886
2887         * marshal.c (mono_marshal_cleanup): New cleanup function.
2888
2889         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2890         image mempools.
2891
2892         * class.c (mono_class_init): Fix leaking class->nested_classes.
2893
2894         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2895
2896         * image.c (mono_image_init): Initialize the new cashes.
2897
2898         * image.c (mono_image_close): Destroy the new cashes.
2899
2900         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2901
2902         * mempool.c (mono_mempool_strdup): New helper function.
2903
2904         * class-internals.h: Add prototype for mono_loader_unlock ().
2905
2906         * domain.c (mono_jit_info_table_find): Fix a warning.
2907         (mono_debugger_check_runtime_version): Ditto.
2908
2909         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2910         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2911         functions to these modules.
2912
2913         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2914         metadata modules.
2915         
2916         * marshal.c (mono_free_bstr): Fix a warning.
2917
2918         * assembly.c (mono_assembly_open_full): Fix another small leak.
2919
2920         * object.c: Fix some unload leaks in the remoting code.
2921
2922         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2923         function.
2924
2925         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2926
2927         * reflection.c: Fix some unload leaks in dynamic assemblies.
2928
2929 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2930
2931         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2932         * marshal.h: Add BSTR support on Win32
2933         * icall.c: Add BSTR icalls
2934         * metadata.h: Add BSTR enums
2935
2936 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2937
2938         Work to catch the crash from #76795 and turn it into an
2939         exception.   As I stubbed out pieces of the VisualBasic support,
2940         I found a number of places where the code was failing and I added
2941         checks to those places. 
2942         
2943         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2944         function return a status code.  If we fail to parse the signature
2945         from mono_metadata_parse_generic_inst, return FALSE.
2946
2947         * loader.c (mono_get_method_from_token): If we fail to load the
2948         method (mono_class_get) return NULL.   
2949
2950         * (method_from_memberref): Return NULL if we are unable to parse
2951         the method signature
2952
2953         (mono_loader_error_prepare_exception): Since we now use the
2954         loader_error flag internally to stop processing, and obtaining
2955         exceptions that might be thrown will walk this code path the
2956         proper way of going from a MonoLoaderError into a
2957         MonoException was convoluted.   This new routine encapsulates the
2958         process of turning the error into an exception and *clearing* the
2959         error afterwards.
2960         
2961 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2962
2963         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2964         with missing assemblies), and to cope with:
2965
2966                 * Missing fieldref from a non-existing assembly.
2967                 * Missing methodref from a non-existing assembly.
2968
2969         The first batch of work to address *some* of the issues from 76661.
2970         
2971         * object.c (mono_class_create_runtime_vtable): If we fail to
2972         initialize the class raise the exception here. 
2973
2974         * metadata.c (mono_class_get_overrides_full): If any methods fail
2975         to load return the failure to the caller.
2976
2977         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2978         flagging assemblies that failed to load.   
2979
2980         Do not crash if we are unable to load the assembly.
2981
2982         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2983         assemblies. 
2984
2985         * loader.c (mono_loader_set_error_type_load): Change the
2986         convention to always pass unallocated strings, so we make our own
2987         copies (I know our own code had duplicated strings before, but
2988         this keeps the normal conventions).
2989         (method_from_memberref): Call mono_loader_set_error_method_load
2990         for all possible failures of loading the class. 
2991         Remove assert, turn into a loader error.
2992
2993         (mono_loader_error_to_exception): Move this routine from mini
2994         (mini_loader_error_to_exception) there was no need to have that in
2995         mini. 
2996
2997         * class.c (mono_class_from_typeref): If we were not able to load
2998         the assembly with mono_assembly_load_reference, call the
2999         mono_loader_set_error_type_load to register the problem.
3000
3001         (mono_class_setup_fields): If we fail to load the type from
3002         mono_metadata_parse_type_full, call mono_class_set_failure and
3003         break from the loop.
3004
3005         If class->exception_type is set, we do not layout the fields as
3006         that might crash the runtime, and instead return (from breaking
3007         from the previous loop).
3008
3009         (mono_class_setup_vtable): This now returns a boolean indicating
3010         whether the table was properly setup.   The decision is driven by
3011         mono_class_get_overrides_full which might run into non-existing
3012         methods. 
3013         
3014         (mono_class_init): Returns TRUE on success or FALSE if there was a
3015         problem in loading the type (incorrect assemblies, missing
3016         assemblies, methods, etc).
3017
3018         When we call mono_class_setup_fields we also check for a potential
3019         error inside this call (either a class exception or a general
3020         loader exception).
3021
3022         (mono_class_create_from_typedef): If the parent fails to load
3023         (calling mono_class_get_full) return NULL.
3024         
3025         ** Important **
3026
3027         calls to mono_metadata_parse_type_full should be checked
3028         everywhere and set the mono_class_set_failure
3029         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
3030
3031         The current patch checks the places where my manually constructed
3032         tests show the errors are showing up, but we should do it
3033         everywhere. 
3034
3035         ** Important2 **
3036
3037         mono_class_init return values should be tested everywhere, like
3038         the previous case this is something that we should audit
3039         everywhere and not only on the cases exposed by the tests I
3040         created. 
3041
3042 2006-04-26  Miguel de Icaza  <miguel@novell.com>
3043
3044         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
3045         boolean parameter and instead pass the information on `options'
3046         parameter (FileOptions).
3047
3048         * icall.c: Register the new signature for MonoIO.Open.
3049
3050         * debug-helpers.c (dis_one): Trying to understand how coverity
3051         works.  Fix Run 5, item 78.
3052
3053 2006-04-26  Dick Porter  <dick@ximian.com>
3054
3055         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
3056         dereference.
3057
3058 2006-04-25  Martin Baulig  <martin@ximian.com>
3059
3060         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
3061
3062         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
3063         debugger_thread_created().
3064         (debugger_gc_push_all_stacks): Don't handle the main thread in any
3065         special way.
3066         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
3067         (mono_debugger_finalize_threads): New function; undo the effects
3068         of mono_debugger_init_threads().
3069         (mono_debugger_create_all_threads): Removed.
3070
3071 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
3072
3073         * image.c (mono_image_close): Tidy up trace messages.
3074
3075         * assembly.c (mono_assembly_close): Ditto.
3076
3077         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
3078         no longer references an already freed assembly. Fixes #78168.
3079
3080 2006-04-21  Dick Porter  <dick@ximian.com>
3081
3082         * threads.c (mono_thread_detach): Fix reference counting when
3083         detaching threads.
3084
3085 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
3086
3087         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
3088         #78155.
3089
3090 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
3091
3092         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
3093         (mono_type_to_stind): Ditto.
3094
3095         * marshal.c: Use the new helper functions to simplify code.
3096
3097         * image.c (mono_image_close): Add some code for help debug assembly unloading
3098         problems.
3099
3100         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
3101         image mempool.
3102
3103         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
3104         assembly was already loaded in another appdomain. Fixes #78083.
3105
3106 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
3107
3108         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
3109         referenced assemblies.
3110         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
3111
3112         * domain.c (mono_domain_free): Add a trace message.
3113
3114         * appdomain.c (add_assemblies_to_domain): Ditto.        
3115
3116         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
3117         field.  
3118
3119 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
3120
3121         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
3122
3123 2006-04-12  Martin Baulig  <martin@ximian.com>
3124
3125         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
3126         `USE_INCLUDED_LIBGC'.   
3127
3128 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
3129
3130         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
3131         the patch contains ../ and a small directory name later. Hopefully fixes
3132         #78035.
3133
3134 2006-04-10  Martin Baulig  <martin@ximian.com>
3135
3136         Clean up the debugger's thread-handling code.
3137
3138         The debugger's thread-handling code has been moved from
3139         ../mini/debug-debugger.c to threads.c.  We now iterate directly
3140         over the `threads' hash, keep track of exiting threads and also
3141         use proper locking.
3142
3143         We can now debug XSP and XSP based applications with the debugger.
3144
3145         * object-internals.h (MonoThread): Added `gpointer end_stack'.
3146
3147         * threads.h
3148         (MonoThreadCallbacks): Removed; this was only used by the debugger.
3149         (mono_install_thread_callbacks): Likewise.      
3150
3151         * threads.c (mono_thread_callbacks): Removed.
3152         (debugger_thread_created, debugger_thread_exited): New static functions.
3153         (start_wrapper): Call debugger_thread_created().
3154         (thread_cleanup): Call debugger_thread_exited().
3155         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
3156         (mono_debugger_init_threads): New public function.
3157         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
3158         iterate directly over the `threads' hash and also use proper locking.
3159
3160         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
3161
3162         * mono-debug-debugger.h
3163         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
3164
3165 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
3166
3167         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
3168         argument type=array. Fixes #78057.
3169
3170 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
3171
3172         * culture-info-table.h : regenerated. Fixed bug #69652.
3173
3174 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
3175
3176         * loader.c metadata.c: Reapply a variant r59116.
3177         
3178         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
3179
3180         * class.c (mono_class_setup_interface_offsets): New internal function.
3181
3182         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
3183         interfaces too. Fixes #77398.
3184
3185         * reflection.c (encode_cattr_value): Add support for 
3186         parameter type=object, argument type=array.
3187         (load_cattr_value): Ditto. Fixes #77916.
3188
3189         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
3190         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
3191
3192         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
3193         a byval char array and CharSet is Ansi.
3194
3195         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
3196
3197 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
3198
3199         * metadata.c: Add some locking comments.
3200         
3201         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
3202         mempool.
3203         (mono_metadata_free_method_signature): Don't free the signature itself.
3204
3205         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
3206
3207         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
3208         reference the same MonoImage.
3209         (mono_assembly_load_from_full): Add an assert.
3210
3211 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
3212
3213         * image.c (mono_image_close): Don't put the image we are about to free into the
3214         loaded_images_guid_hash.
3215
3216         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
3217         to reduce code duplication.
3218
3219         * marshal.c: Register the native functions called by this module as icalls, to
3220         somewhat centralize the creation of MonoMethodSignature's.
3221
3222         * loader.c (mono_method_signature): Add a cache for method signatures.
3223
3224         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
3225         the parameter attributes of a method.
3226         (mono_metadata_parse_method_signature_full): Refactored the computation of
3227         parameter attributes into a separate function. Also avoid one allocation in
3228         most cases.
3229
3230         * assembly.c (mono_assembly_close): Ditto.
3231
3232         * image.c (mono_image_close): Log trace messages with INFO level.
3233
3234         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
3235
3236         * image.c reflection.c: Correct reference counting of image modules.
3237         
3238         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
3239         of this function from the image mempool.
3240         
3241         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
3242         to allow more cached types to be used.
3243
3244         * mono-debug.c (mono_debug_add_method): Appled patch from
3245         David S. Miller  <davem@sunset.davemloft.net>: Access 
3246         minfo->lexical_blocks[] entry elements using read32().
3247
3248 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
3249
3250         * loader.c (mono_free_method): No longer free the method header for non-dynamic
3251         methods as it is allocated from the mempool.
3252
3253         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
3254         image mempool.
3255
3256         * metadata-internals.h: Add comments describing the reference counting scheme
3257         used for MonoImage and MonoAssembly.
3258
3259         * image.c assembly.c reflection.c: Rework reference counting of images and 
3260         assemblies so they are freed when the runtime is shut down. Free some 
3261         additional memory structures when an image is unloaded.
3262         
3263 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
3264
3265         * class.c loader.c reflection.c: Allocate more data structures in
3266         the image mempool.
3267
3268 2006-03-31  Miguel de Icaza  <miguel@novell.com>
3269
3270         * icall.c
3271         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
3272         build on pre glib 2.4 systems.
3273
3274 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
3275
3276         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
3277
3278         * icall.c: Fix some warnings.
3279
3280 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
3281
3282         * culture-info-table.h : regenerated.
3283
3284 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
3285
3286         * threads.c, object-internals.h, verify.c: changed the culture caching
3287         code to use a normal MonoArray for storage so the GC can keep track of
3288         them easily. Fixed bits of the cache logic, too and simplified the
3289         code.
3290
3291 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
3292
3293         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
3294         thread for non-Boehm GCs.
3295
3296 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3297
3298         * domain.c, object.c, domain-internals.h: reduce the amount of memory
3299         needed to keep track of the data for static fields.
3300
3301 2006-03-29  Raja R Harinath  <rharinath@novell.com>
3302
3303         Fix #75172
3304         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
3305         for interface classes.  Use 'num_methods' instead.
3306         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
3307         before using '->vtable_size' field.
3308
3309 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
3310
3311         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
3312         doesn't contain managed pointers, so use a normal hashtable.
3313
3314 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
3315
3316         * reflection.c, class-internals.h, domain.c: fixed handling of types
3317         used as values for objects in custom attributes (bug #77915):
3318
3319 2006-03-24  Martin Baulig  <martin@ximian.com>
3320
3321         * class.c (mono_class_setup_fields): Added support for generic
3322         instances; fixes #77580.
3323
3324 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3325
3326         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
3327
3328 2006-03-24  Dick Porter  <dick@ximian.com>
3329
3330         * file-io.c (get_file_attributes): More stat macro breakage.
3331         Fixes bug 77759.
3332
3333 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
3334
3335         * profiler.c: added the file=filename option in the default profiler
3336         to output the profile data to filename.
3337
3338 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3339
3340         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
3341         bug #77877.
3342
3343 2006-03-22  Martin Baulig  <martin@ximian.com>
3344
3345         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
3346         allocated `MonoClassField *' in `fb->handle'.
3347
3348 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3349
3350         * class.c, image.c, metadata-internals.h: implemented new mechanism to
3351         allocate interface ID to save memory and allow better ID reuse on
3352         appdomain unload. setup_generic_vtable () removal from Martin.
3353
3354 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
3355
3356         * object.h, appdomain.c, domain.c, exception.c, icall.c,
3357         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
3358         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
3359         write barriers for reference stores with managed objects accessed with
3360         C structures in the runtime and in embedding programs.
3361
3362 2006-03-20  Raja R Harinath  <rharinath@novell.com>
3363
3364         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
3365         'interface_id' and 'max_interface_id' fields of MonoClasses
3366         representing open generic types.
3367
3368 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
3369
3370         * object.h, object.c, icall.c: added functions to deal with
3371         storing valuetypes that contain references in managed objects.
3372         * reflection.c, string-icalls.c, threads.c, marshal.c: small
3373         fixes and comments around uses of mono_array_addr ().
3374
3375 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
3376
3377         * object.h, icall.c, monitor.c: object.GetHashCode ()
3378         implementation that supports the moving garbage collector.
3379
3380 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
3381
3382         * icall.c, threads-types.h, threads.c: implemented finalizer for
3383         LocalDataStoreSlot.
3384
3385 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
3386
3387         * metadata.c (mono_type_size): Add a fixme.
3388         (mono_type_stack_size): Ditto.
3389
3390         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
3391         'type_forwarders' field.
3392
3393         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
3394         attribute from net 2.0.
3395
3396         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
3397         from class.c.
3398
3399         * class.c (mono_class_setup_fields): Fix a warning.
3400         
3401         * class.c (mono_class_from_name): Add support for assemblyref entries
3402         in the EXPORTEDTYPE table.
3403
3404         * reflection.c: Add support for handling type forwarders under net 2.0.
3405
3406         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
3407         
3408 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
3409
3410         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
3411         overwriting entries in ModuleBuild->types, also clean up the code
3412         a little. Fixes #77774.
3413
3414 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
3415
3416         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
3417         load friend assembly info when present.
3418
3419 2006-03-14  Raja R Harinath  <rharinath@novell.com>
3420
3421         Fix crasher on gtest-158.cs.
3422         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
3423         the return value if the MonoClass we want is yet in an
3424         inconsistent state.
3425         * class.c (mono_class_create_from_typedef): Add an comment
3426         explaining an order dependency between mono_class_setup_parent and
3427         mono_class_setup_mono_type.
3428
3429 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
3430
3431         * class.c: documentation updates and events bug fix.
3432
3433 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
3434
3435         * class.c: some cleanup, locking fixes.
3436
3437 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
3438
3439         * class.c: fix the generics code to setup nested
3440         type info to the instantiated type (bug #77770).
3441
3442 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
3443
3444         * marshal.c: fixed a few type correctness issues.
3445
3446 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3447
3448         * loader.c: the Set/Get/Addrtess array methods should be public.
3449
3450 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
3451
3452         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
3453         
3454         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
3455         info->wrapper.
3456
3457 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
3458
3459         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
3460
3461         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
3462
3463         * mempool.c (mono_mempool_alloc): Speed this up a bit.
3464         (mono_mempool_alloc0): Ditto.
3465
3466 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3467
3468         * socket-io.c:
3469         (create_object_from_sockaddr): it was allocating 4 extra bytes
3470         for the AF_UNIX data. Fixes bug #77747.
3471
3472 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
3473
3474         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
3475
3476 2006-03-09  Dick Porter  <dick@ximian.com>
3477
3478         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
3479         Fixes bug 76966 again.
3480
3481 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
3482
3483         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
3484         names from r57532
3485         * appdomain.c: Bumped corlib version to 48 (due to r57532)
3486
3487 2006-03-07  Martin Baulig  <martin@ximian.com>
3488
3489         * object.c
3490         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
3491
3492 2006-03-07  Martin Baulig  <martin@ximian.com>
3493
3494         * class.c
3495         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
3496         regression introduced in r56970; see gtest-252.cs.
3497
3498         * loader.c (mono_get_method_constrained): Correctly handle generic
3499         methods; see gtest-253.cs.
3500
3501 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
3502
3503         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
3504
3505 2006-03-04  Martin Baulig  <martin@ximian.com>
3506
3507         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
3508         compute the parent type at runtime, just like we're already doing
3509         it for interfaces.
3510
3511         * reflection.c
3512         (mono_reflection_bind_generic_parameters): Don't compute the
3513         parent type anymore.
3514
3515         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
3516
3517 2006-03-04  Martin Baulig  <martin@ximian.com>
3518
3519         * mono-debug-debugger.h
3520         (mono_debugger_create_notification_function): Allocate memory at
3521         runtime and return a pointer to it.
3522
3523 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
3524
3525         * assembly.c: Fix windows build.
3526         
3527         * assembly.c: Fix build.
3528
3529         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
3530
3531         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
3532         
3533 2006-03-03  Dick Porter  <dick@ximian.com>
3534
3535         * process.c
3536         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3537         Check parameters before dereferencing them.  Fixes Aaron's part of
3538         bug 77393.
3539
3540 2006-03-03  Raja R Harinath  <rharinath@novell.com>
3541
3542         Fix performance regression.
3543         * loader.c (find_method_in_class): Add 'from_class' argument.
3544         Rename 'klass' argument to 'in_class'.  The signature is compared
3545         against the method in 'in_class', and the corresponding method is
3546         returned from 'from_class'.
3547         (find_method): Walk both 'in_class' and 'from_class' in parallel.
3548         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
3549         type definition and generic instantiation in parallel.
3550         (mono_get_method_constrained): Update to changes.
3551
3552 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
3553
3554         * threads.c: make sure the domain is correct, too when doing
3555         mono_thread_attach ().
3556
3557 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
3558
3559         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
3560         windows. Fixes #77683.
3561
3562 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
3563
3564         * object.h, *: introduced specific way to set elements of an array
3565         of references to be used as write barrier. Still need to audit the
3566         uses of mono_array_addr.
3567
3568 2006-03-01  Miguel de Icaza  <miguel@novell.com>
3569
3570         * object-internals.h: New field to cache the assmebly name, patch
3571         from Tambet Ingo (tambet@ximian.com)
3572
3573 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
3574
3575         * decimal.h, class-internals.h, metadata-internals.h,
3576         file-io.h: mark a few function declarations as internal, to
3577         reduce the number of PLT entries.
3578
3579 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3580
3581         * file-io.c: fix typo in warning message.
3582
3583 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
3584
3585         * loader.c: on unix, lookup the "*A" version of a function
3586         if charset is auto as a second option before failing.
3587
3588 2006-02-28  Raja R Harinath  <rharinath@novell.com>
3589
3590         * class.h (mono_class_inflate_generic_method): Revert to two
3591         argument version.
3592         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
3593         (mono_class_inflate_generic_method_full): Add.
3594         * class.c (mono_class_inflate_generic_method_full): Rename from
3595         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
3596         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
3597         * loader.c, reflection.c: Update to changes.
3598
3599 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
3600
3601         * icall.c: const fixes and small improvements.
3602
3603 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3604
3605         * threadpool.c: for asynchronous connect(), enable the same workaround
3606         for BSD 6 as for the Mac. Fixes bug #77637.
3607
3608 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
3609
3610         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
3611         formatted classes. Fixes #77524.
3612
3613 2006-02-24  Raja R Harinath  <rharinath@novell.com>
3614
3615         * class.c (inflate_generic_type): Add a couple more
3616         micro-optimizations.
3617         (inflate_generic_context): Don't use the 'gmethod' from
3618         'inflate_with'.
3619         (mono_class_inflate_generic_method): If the method has generic
3620         parameters, but the passed-in context doesn't have a 'gmethod',
3621         create one.  Use the possibly simplified generic instantiation
3622         from the declaring class instead of the one passed in.
3623
3624 2006-02-24  Raja R Harinath  <harinath@gmail.com>
3625
3626         Make generic method signature and method header handling lazy.
3627         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
3628         (inflate_generic_header): Likewise.
3629         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
3630         parameter to avoid inflating types.
3631         (mono_get_inflated_method): Empty out.
3632         * class.h (mono_class_inflate_generic_method): Update to changes.
3633         * loader.c (mono_get_method_from_token): Don't parse signature for
3634         generic methods, nor methods of generic classes.
3635         (mono_method_signature): Rename from 'mono_method_signature'.
3636         Inflate signature on demand.
3637         (mono_method_get_header): Inflate method header on demand.
3638         * reflection.c: Update to changes.
3639
3640 2006-02-23  Raja R Harinath  <rharinath@novell.com>
3641
3642         * metadata.c (mono_metadata_inflate_generic_inst): If the
3643         instantiation is closed, don't bother expanding it in the new
3644         context.
3645         * class.c (inflate_generic_class): If the generic instantiation
3646         doesn't change after inflation, return the argument itself.
3647         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
3648         Add bounds checks.
3649         (inflate_generic_context): If neither the generic class nor the
3650         generic method instantiations change, return the original context.
3651         * reflection.c (mono_method_get_object): Do
3652         'mono_get_inflated_method' before accessing the ->klass field.
3653         (inflate_mono_method): Don't create a MonoGenericMethod unless
3654         necessary.
3655         (inflate_method): Don't pass a constructed type as the declaring
3656         type of a methodbuilder.
3657
3658 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
3659
3660         * object.c: fix memory overwrite.
3661
3662 2006-02-22  Dick Porter  <dick@ximian.com>
3663
3664         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
3665         it doesn't work any more.
3666         (mono_threads_request_thread_dump): Fix unused variable warnings.
3667
3668 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3669
3670         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
3671         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
3672         the public header file.
3673
3674 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
3675
3676         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
3677
3678 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
3679
3680         * class-internals.h, object.c: reduce the size of MonoVTable
3681         and store the interface_offsets array at negative offsets.
3682
3683 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
3684
3685         * metadata.c: tweak table descriptors data structures to reduce
3686         size and runtime relocations.
3687
3688 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3689
3690         * marshal.c: fix some types and opcodes to be type-safe
3691         in marshaling wrappers.
3692
3693 2006-02-21  Ankit Jain  <jankit@novell.com>
3694
3695         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
3696
3697 2006-02-21  Raja R Harinath  <rharinath@novell.com>
3698
3699         * metadata.c (get_constraints): Relax debugging checks for monodis.
3700
3701 2006-02-21  Ankit Jain  <jankit@novell.com>
3702
3703         * metadata.c (mono_metadata_load_generic_params): Move the code
3704         checking for ambiguous generic params from here to mono/dis/get.c
3705         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
3706
3707 2006-02-21  Raja R Harinath  <harinath@gmail.com>
3708
3709         Fix assertion triggered when compiling nemerle.
3710         * class.c (mono_get_shared_generic_inst): Rename from
3711         get_shared_inst and make non-static.
3712         * loader.c (mono_get_shared_generic_method): New.  Used to create
3713         the MonoGenericContext-equivalent of a MonoGenericContainer.
3714         (mono_get_method_from_token): Initialize the 'context' field of
3715         the created MonoGenericContainer.
3716         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
3717         * metadata.c (get_constraints): Add sanity check.
3718         * class-internals.h: Add new internal methods.
3719
3720         * reflection.c (verify_safe_for_managed_space): New sanity check.
3721         Currently checks that owner-less generic parameters aren't allowed
3722         in managed space.
3723         (mono_type_get_object): Use it.
3724         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
3725         that are now in mono_type_get_object.
3726         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
3727
3728 2006-02-19  Raja R Harinath  <harinath@gmail.com>
3729
3730         * metadata.c (mono_type_create_from_typespec): Rename from
3731         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
3732         argument and caching of types in the generic container.
3733         (unwrap_arrays, find_generic_param): Remove.
3734         * metadata-internals.h: Update.
3735         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
3736
3737 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
3738
3739         * class.c (mono_class_get_exception_for_failure): Fix a warning.
3740
3741         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
3742         return values. Fixes #77581.
3743
3744         * class.c (mono_fnptr_class_get): Switch name and name_space.
3745
3746         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
3747         classes and add support for [In, Out] attributes.
3748         (mono_marshal_free_asany): Ditto. Fixes #77524.
3749
3750 2006-02-18  Raja R Harinath  <harinath@gmail.com>
3751
3752         * class.c (mono_class_from_generic_parameter): Make more robust to
3753         incomplete MonoGenericContainers from monodis.
3754
3755 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3756
3757         * class-internals.h: added some more exception types.
3758         * class.c, metadata.c: added a few checks to handle missing
3759         types.
3760
3761 2006-02-17  Raja R Harinath  <rharinath@novell.com>
3762
3763         Use owner-less generic-params some more.
3764         * class.c (my_mono_class_from_generic_parameter): Remove.
3765         (mono_class_from_generic_parameter): Handle null image,
3766         param->name and param->owner.
3767         (mono_class_from_mono_type): Update.
3768         (mono_class_create_from_typespec): Remove 'container' parameter.
3769         If that parameter is non-null, the result is always inflated by
3770         'mono_class_get_full' anyway.
3771         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
3772         parameter.
3773         (mono_class_get_full): Update.
3774
3775         * class.c (inflate_generic_type) [GENERICINST]: If the generic
3776         instance is not open, don't bother inflating.
3777         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
3778         parse metadata for inflated classes.
3779         (_mono_class_get): Change GenericContext* parameter to
3780         GenericContainer*.
3781         (mono_class_create_from_typespec): Likewise.  Simplify, and
3782         implement trivially.  All the cases are handled in
3783         mono_class_from_mono_type.  Don't inflate returned class.
3784         (mono_class_get_full): Delegate GENERICINST optimization to
3785         inflate_generic_type.
3786         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
3787
3788 2006-02-16  Dick Porter  <dick@ximian.com>
3789
3790         * socket-io.c (create_object_from_sockaddr): Fix typo.
3791         (create_sockaddr_from_object): Check array lengths before
3792         potentially accessing items off the end.
3793         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
3794         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
3795         (ves_icall_System_Net_Sockets_Socket_Send_internal)
3796         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
3797         length checks to avoid wraparound overflows.
3798         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
3799         contents of the array of sockets
3800         (hostent_to_IPHostEntry2)
3801         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
3802         Check return value of inet_ntop ().
3803         (addrinfo_to_IPHostEntry): Fix typo
3804
3805 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3806
3807         Type metadata parsing doesn't use generic-instantiation information.
3808         * metadata.c (mono_metadata_parse_array_full): Change
3809         MonoGenericContext* parameter to MonoGenericContainer*.
3810         (mono_metadata_parse_type_full): Likewise.
3811         (mono_type_create_from_typespec_full): Likewise.
3812         (mono_metadata_parse_mh_full): Likewise.
3813         (mono_metadata_parse_generic_inst): Likewise.
3814         (do_mono_metadata_parse_generic_class): Likewise.
3815         (do_mono_metadata_parse_type): Likewise.
3816         * metadata-internals.h: Update to changes.
3817         * class.c (mono_class_find_enum_basetype): Likewise.
3818         (mono_class_setup_fields): Likewise.
3819         (mono_class_create_from_typespec): Likewise.
3820         * loader.c (method_from_methodspec): Likewise.
3821         (mono_get_method_from_token): Likewise.
3822         (mono_method_get_header): Likewise.
3823
3824 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3825
3826         * marshal.c: handle additional GENERICINST case (patch from
3827         Thong Nguyen <tum@veridicus.com>).
3828         Fix a few cases where LDIND_I/STIND_I was used for references.
3829
3830 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3831
3832         * reflection.c (mono_reflection_get_token): Remove unused variable.
3833
3834 2006-02-16  Martin Baulig  <martin@ximian.com>
3835
3836         * reflection.c (mono_reflection_get_token): Add support for fields
3837         in instantiated generic types.
3838
3839         * icall.c
3840         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3841
3842 2006-02-15  Martin Baulig  <martin@ximian.com>
3843
3844         * icall.c
3845         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3846         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3847         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3848         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3849
3850 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3851
3852         * class.c, metadata.c, metadata.h, object.c, icall.c,
3853         marshal.c: changed mono_type_get_underlying_type () to do
3854         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3855         Fixed handling of instantiated generic valuetypes (bug #75479).
3856
3857 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3858
3859         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3860         Delegate to mono_metadata_decode_value, and work on the returned value.
3861
3862         * icall.c (ves_icall_MonoType_GetGenericArguments):
3863         Add consistency check here too.
3864         
3865 2006-02-15  Ankit Jain  <jankit@novell.com>
3866
3867         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3868         char/short etc.
3869
3870 2006-02-15  Ankit Jain  <jankit@novell.com>
3871
3872         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3873         signed values, used only for representing lower bounds of arrays.
3874         (mono_metadata_parse_array_full): Use new
3875         mono_metadata_decode_signed_value to decode lower bounds.
3876
3877 2006-02-14  Martin Baulig  <martin@ximian.com>
3878
3879         * reflection.c
3880         (mono_reflection_get_token): Support "MonoGenericMethod" and
3881         "MonoGenericCMethod" and allow generic instances / methods.
3882
3883 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3884
3885         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3886         to obtain the terminal size using an ioctl.
3887
3888         * object.c (mono_nullable_init): Revert this as nullable reference
3889         types are not valid.
3890         (mono_nullable_box): Ditto.
3891
3892 2006-02-09  Dick Porter  <dick@ximian.com>
3893
3894         * threads.c (mono_thread_detach): Drop a reference to the thread
3895         we're detaching.
3896
3897 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3898
3899         * object.c (mono_nullable_init): Handle nullable reference types.
3900         (mono_nullable_box): Ditto. Fixes #77446.
3901
3902 2006-02-07  Martin Baulig  <martin@ximian.com>
3903
3904         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3905
3906 2006-02-07  Ankit Jain  <jankit@novell.com>
3907
3908         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3909         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3910         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3911         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3912         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3913         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3914
3915 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3916
3917         * class.c (mono_class_create_generic): Set type_token as well.
3918
3919         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3920         compatible with MS.
3921
3922 2006-02-02  Martin Baulig  <martin@ximian.com>
3923
3924         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3925         has never been used so far.
3926
3927 2006-02-02  Martin Baulig  <martin@ximian.com>
3928
3929         * mono-debug-debugger.h: Changed comment at the top of this file;
3930         the header is not installed, but it's safe to #include it from
3931         within the JIT.
3932
3933         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3934         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3935
3936 2006-02-02  Martin Baulig  <martin@ximian.com>
3937
3938         * mono-debug.h
3939         (MonoSymbolTable): Removed the `metadata_info' field.
3940
3941         * mono-debug.c
3942         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3943
3944         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3945         (mono_debugger_add_builtin_types): Removed.
3946         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3947         (mono_debugger_create_notification_function): We now operate on a
3948         pre-allocated area; take a `gpointer' and return `void'.
3949
3950         * mono-debug-debugger.c
3951         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3952         (mono_debugger_add_builtin_types): Removed.
3953
3954 2006-02-02  Martin Baulig  <martin@ximian.com>
3955
3956         * threads.c (mono_debugger_create_all_threads): New public method.
3957
3958 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3959
3960         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3961         breaks on several platforms.
3962
3963 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3964
3965         * assembly.c: the VS.NET build doesn't supply default values for
3966         MONO_ASSEMBLIES and MONO_CFG_DIR.
3967
3968 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3969
3970         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3971         helper function.
3972
3973         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3974
3975         * loader.c (method_from_memberref): Fix a warning.
3976
3977         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3978
3979         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3980         with explicit layout. Fixes #77433.
3981
3982 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3983
3984         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3985         max_interface_id is initialized before using it. Fixes #77398.
3986         (ves_icall_Type_GetInterfaces): Ditto.
3987
3988 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3989
3990         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3991         allocate memory for parameter attributes when parsing memberref
3992         signatures.
3993         * loader.c (mono_loader_set_error_method_load): Don't warn.
3994         (method_from_memberref): Ensure MissingMethodException gets thrown
3995         if method is not found.  Make warning more informative.
3996
3997 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3998
3999         Fix #77397
4000         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
4001         return true if is byref.
4002         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
4003         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
4004         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
4005
4006 2006-01-27  Raja R Harinath  <rharinath@novell.com>
4007
4008         Fix tests/find-method.2.il
4009         * loader.c (find_method, find_method_in_class): Remove is_inflated
4010         argument.  Revert 2006-01-18 change.
4011         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
4012         is generic, search for method in its generic definition.
4013         * class.c (mono_class_setup_vtable_general): Print generic
4014         arguments of generic types in debugging printf.
4015
4016 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
4017
4018         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
4019
4020         * threads.c (mono_threads_request_thread_dump): New helper function.
4021
4022 2006-01-25  Raja R Harinath  <rharinath@novell.com>
4023
4024         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
4025
4026 2006-01-25  Ankit Jain  <jankit@novell.com>
4027
4028         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
4029         move definition to ..
4030         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
4031         
4032 2006-01-25  Ankit Jain  <jankit@novell.com>
4033             Raja R Harinath  <rharinath@novell.com>
4034
4035         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
4036         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
4037         as necessary.
4038
4039 2006-01-25  Martin Baulig  <martin@ximian.com>
4040
4041         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
4042         `MonoDebuggerThread' into debug-debugger.c.
4043
4044 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
4045
4046         * profiler.c: fix printing of data.
4047
4048 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
4049
4050         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
4051           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
4052
4053 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
4054
4055         * object.c: fix deadlock related to string interning.
4056
4057 2006-01-23  Martin Baulig  <martin@ximian.com>
4058
4059         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
4060
4061         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
4062
4063 2006-01-23  Martin Baulig  <martin@ximian.com>
4064
4065         * mono-debug.h: Moved the prototypes of some functions which are
4066         used by the JIT here from mono-debug-debugger.h.
4067
4068 2006-01-21  Martin Baulig  <martin@ximian.com>
4069
4070         * Makefile.am: Don't install mono-debug-debugger.h.
4071
4072 2006-01-21  Martin Baulig  <martin@ximian.com>
4073
4074         * mono-debug-debugger.h: Enforce the private status of this header
4075         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
4076         Moved some stuff from mono-debugger-jit-wrapper.h here.
4077
4078 2006-01-20  Raja R Harinath  <rharinath@novell.com>
4079
4080         * class.c (mono_class_from_typeref): Add a sanity test to help
4081         catch lack of assembly load/search hooks.
4082
4083 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
4084
4085         * marshal.c (emit_struct_conv): Relax the fields with same offset
4086         check even more. Fixes #77230.
4087
4088 2006-01-18  Martin Baulig  <martin@ximian.com>
4089
4090         * loader.c (find_method_in_class): Added `gboolean is_inflated'
4091         argument; if false, we compare the uninstantiated signatures.
4092         (method_from_memberref): Compare the uninstantiated signatures;
4093         fixes #76417.
4094
4095 2006-01-18  Robert Jordan  <robertj@gmx.net>
4096
4097         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
4098         Clear the weak link. Fixes bug #77170.
4099
4100         * gc.c (mono_gchandle_free):
4101         Reflect *-gc.c changes (tiny optimization).
4102
4103 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
4104
4105         * metadata.c (mono_metadata_signature_dup): Applied patch from
4106         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
4107         Fixes #77288.
4108
4109 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
4110
4111         * marshal.c (emit_struct_conv): Allow fields with the same offset when
4112         marshalling from native to managed code. Fixes #77230.
4113
4114 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4115
4116         * threadpool.c: fix problem (Mac only) when more than one asynchronous
4117         connect. Fixes bug #77020.
4118
4119 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
4120
4121         * class.c: fixed id assignement for nested interfaces (bug #77275).
4122         Added also better info for --print-vtable debugging.
4123
4124 2006-01-12  Martin Baulig  <martin@ximian.com>
4125
4126         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
4127         interfaces on-the-fly; fixes #76625.
4128
4129         * class-internals.h
4130         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
4131         don't need that anymore.
4132
4133 2006-01-12  Miguel de Icaza  <miguel@novell.com>
4134
4135         * socket-io.c
4136         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4137         To avoid initing the nested_classes when not needed I turned the
4138         PeerCredData as a toplevel internal class, as it has to be shared
4139         anyways. 
4140
4141         Fixes the CASA issue.
4142
4143 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
4144
4145         * domain.c: Accessors for MonoJitInfo
4146
4147         * profiler-private.h: Add jitinfo to the end jit hook
4148
4149         * profiler.[ch]: Define new hooks, called after jitting which give
4150         the MonoJitInfo that was compiled
4151
4152 2006-01-10  Martin Baulig  <martin@ximian.com>
4153
4154         * class.c (mono_class_setup_events): Add support for generic
4155         classes; fixes #76440.
4156
4157 2006-01-06  Raja R Harinath  <rharinath@novell.com>
4158
4159         Fix #77160.
4160         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
4161         on passed-in method.
4162
4163 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
4164
4165         * object.c (mono_runtime_invoke_array): Add Nullable support.
4166
4167         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
4168
4169 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
4170
4171         * file-io.c: Don't consider sockets as directory and avoid an endless
4172         loop. Fix bug #76966.
4173
4174 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
4175
4176         * object.c (mono_nullable_init): New helper function.
4177         (mono_nullable_box): Ditto.
4178
4179         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
4180
4181         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
4182
4183         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
4184         
4185 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
4186
4187         * class.c (mono_class_is_assignable_from): Make T assignable to 
4188         Nullable<T>.
4189
4190 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
4191
4192         * appdomain.c: Bump corlib version to 46.
4193         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
4194         serialization purpose) and changed ves_icall_System_Reflection_
4195         Assembly_get_code_base signature to accept a boolean (to escape, or 
4196         not, the assembly code base).
4197
4198 2005-12-23  Dick Porter  <dick@ximian.com>
4199
4200         * icall.c: 
4201         * threads-types.h: 
4202         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
4203         CreateEvent icall now returns "created" boolean parameter.
4204
4205 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
4206
4207         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
4208         #76967.
4209
4210         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
4211         when attr_klass is an interface. Fixes #77045.
4212
4213 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
4214
4215         * marshal.c (emit_struct_conv): Fix previous patch.
4216         
4217         * marshal.c (emit_struct_conv): Add a check for fields with the same
4218         offset.
4219
4220 2005-12-20  Raja R Harinath  <rharinath@novell.com>
4221
4222         Fix regression in Mono.C5.
4223         * class.c (mono_class_create_generic): If 'klass' is an interface
4224         set up the interface offsets.
4225         (mono_class_is_assignable_from): Don't throw away generic arguments.
4226
4227 2005-12-19  Raja R Harinath  <rharinath@novell.com>
4228
4229         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
4230         type parameters.
4231
4232 2005-12-15  Raja R Harinath  <rharinath@novell.com>
4233
4234         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
4235         dead store.
4236         (do_mono_metadata_parse_generic_class): Don't pass the current
4237         generic context when parsing the type being instantiated: it
4238         cannot use it, anyway.
4239
4240         * loader.c (method_from_memberref): Don't inflate a signature if
4241         it doesn't contain any type parameters.
4242
4243 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
4244
4245         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
4246
4247 2005-12-14  Martin Baulig  <martin@ximian.com>
4248
4249         * class.c
4250         (mono_type_get_name_recurse): Don't return null for type
4251         parameters and open generic classes.
4252         (mono_class_setup_methods): Don't exclude generic instances.
4253         (mono_get_unique_iid): Use different IDs for different
4254         instantiations of the same generic type.
4255         (mono_class_setup_vtable): Only use setup_generic_vtable() for
4256         open generic instances; create a normal vtable for closed generic
4257         instances.
4258         (mono_class_setup_vtable_general): We're now also called for
4259         closed generic instances.
4260
4261         * reflection.c
4262         (mono_reflection_bind_generic_parameters): Correctly use
4263         mono_metadata_lookup_generic_inst() everywhere.
4264
4265 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
4266
4267         * object.c (mono_class_create_runtime_vtable): Call 
4268         mono_class_setup_vtable ().
4269
4270         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
4271         function.
4272         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
4273         #76959.
4274
4275         * loader.c (mono_loader_set_error_type_load): Print the type load
4276         warnings to the console so they are more visible to the user.
4277         (mono_loader_set_error_method_load): Ditto.
4278
4279         * reflection.c (ensure_runtime_vtable): Revert the last change as it
4280         is still broken.
4281         
4282         * reflection.c (ensure_runtime_vtable): Fix build.
4283
4284         * reflection.c (ensure_runtime_vtable): Disable an optimization which
4285         doesn't work in all cases.
4286
4287 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
4288
4289         * object.c (mono_array_new_full): Treat a single dimensional array
4290         with 0 lower bounds as an szarray. Fixes #76973.
4291
4292         * reflection.c (custom_attr_visible): Really fix this.
4293
4294 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
4295
4296         * reflection.c (custom_attr_visible): Allow nested public attributes
4297         as well.
4298
4299         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
4300         interface check.
4301
4302 2005-12-12  Raja R Harinath  <harinath@gmail.com>
4303
4304         * class.c (set_generic_param_owner): Delete.
4305         (mono_class_create_from_typedef): Don't set ->owner field of
4306         generic parameters to "param containers" of enclosing classes.
4307         * reflection.c (mono_reflection_initialize_generic_parameter):
4308         Likewise.
4309
4310 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
4311
4312         * reflection.c (custom_attr_visible): Fix build.
4313
4314 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
4315
4316         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
4317         private attributes.
4318         
4319         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
4320         handling of null parameter defaults.
4321
4322 2005-12-09  Raja R Harinath  <rharinath@novell.com>
4323
4324         * class.c (mono_class_from_generic_parameter): Don't set
4325         klass->generic_container.
4326         (my_mono_class_from_generic_parameter): Likewise.
4327
4328 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
4329
4330         * reflection.c (load_public_key): Fix a warning.
4331         (method_encode_code): Fix unaligned accesses.
4332
4333 2005-12-07  Martin Baulig  <martin@ximian.com>
4334
4335         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
4336
4337         * reflection.c
4338         (write_generic_param_entry): Encode our custom attrs.
4339
4340         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
4341
4342 2005-12-07  Martin Baulig  <martin@ximian.com>
4343
4344         * reflection.c (encode_new_constraint): Removed; we don't use the
4345         `NewConstraintAttribute' anymore.
4346
4347 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
4348
4349         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
4350         not fire a TypeResolve event when Assembly.GetType () is called.
4351
4352 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
4353
4354         Beginning of support for nullable types in the runtime. Parts of
4355         this patch are from Martin.
4356
4357         * appdomain.c (MONO_CORLIB_VERSION): Bump
4358
4359         * domain.c (mono_init_internal): get the nullable type
4360
4361         * class.c (mono_class_is_nullable): New method
4362         (mono_class_get_nullable_param): New mehod
4363         (mono_class_create_generic): In types T? set cast_class to T
4364
4365         * class-internals.h (MonoDefaults): new nullable default class
4366         (mono_class_get_nullable_param, mono_class_get_nullable_param):
4367         new methods.
4368
4369 2005-12-05  Raja R Harinath  <rharinath@novell.com>
4370
4371         * metadata.c (select_container): New.  Refactor code to select the
4372         appropriate GenericContainer given the type of generic parameter
4373         we are looking for.
4374         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
4375         not a MonoGenericContext.  Use select_container.  Update parameters.
4376         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
4377         and MONO_TYPE_MVAR.
4378         (unwrap_arrays): Remove duplicate tests.
4379         (find_generic_param): Rename from 'has_same_context'.  Now walks a
4380         generic instantiated class to find any arguments that are generic
4381         parameters.
4382         (mono_type_create_from_typespec_full): Use find_generic_param to
4383         avoid evicting some generic instantiations from the typespec
4384         cache.
4385
4386 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
4387
4388         * reflection.c: fixed writing of doubles on ARM FPA.
4389
4390 2005-12-02  Robert Jordan  <robertj@gmx.net>
4391
4392         * icall.c: Fixed EventInfo.ReflectedType (#76829).
4393
4394 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4395
4396         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
4397         least on SUSE 10 they are not the same (on debian, they are just the
4398         same thing).
4399
4400 2005-12-01  Raja R Harinath  <rharinath@novell.com>
4401
4402         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
4403         DeclaringType for VARs and MVARs.
4404         * class.c (set_generic_param_owner): Fix initialization of owner
4405         fields.
4406
4407 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
4408
4409         * icall.c: fixed Enum.ToObject() to correctly convert the values.
4410
4411 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4412
4413         * threadpool.c: workaround for a bug that shows up on the Mac:
4414         select()+connect() on a blocking socket is not like it should
4415         be, so we proceed to connect() in that case, wasting the I/O
4416         threadpool thread until connect succeedes. Fixes bug #75436.
4417
4418 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4419
4420         * threadpool.c: fix typo when setting file descriptor states.
4421
4422 2005-11-28  Raja R Harinath  <rharinath@novell.com>
4423
4424         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
4425         * metadata.c (mono_metadata_parse_method_signature_full): Don't
4426         create a temporary signature container.
4427         (mono_metadata_parse_generic_param): Update to changes.
4428         (mono_type_create_from_typespec_full): Update to changes.
4429         * loader.c (method_from_memberref): Don't use a
4430         MonoGenericContainer while parsing a memberref signature.
4431         (method_from_methodspec): Remove dead-store of the 'container'
4432         variable.  It's overwritten before use.
4433
4434         * metadata.c (mono_type_create_from_typespec_full): Make debugging
4435         checks tighter.
4436         (mono_metadata_parse_generic_param): Likewise.
4437         * loader.c (find_method_in_class): Does not need a
4438         MonoGenericContainer.  Use 'mono_method_signature' rather than
4439         'mono_method_signature_full'.
4440         (find_method, mono_get_method_constrained, method_from_memberref):
4441         Update to changes.
4442
4443         * metadata.c (mono_type_create_from_typespec_full): Ensure that
4444         owner-less generic-parameters are never evicted from the typespec
4445         cache.
4446
4447         * loader.c (method_from_memberref): Don't use the current context
4448         when parsing signatures.
4449         (method_from_methodspec, mono_get_method_from_token): Update to changes.
4450
4451         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
4452         side-effects in g_assert.
4453         * loader.c (mono_get_method_from_token): Resolve klass earlier so
4454         that we don't potentially lose information.
4455
4456 2005-11-26  Dick Porter  <dick@ximian.com>
4457
4458         * icall.c:
4459         * threads.c: icalls to implement basic (ie, not named)
4460         System.Threading.Semaphore.
4461
4462 2005-11-24  Dick Porter  <dick@ximian.com>
4463
4464         * process.c
4465         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4466         Use GetProcessId() if it's available.
4467
4468 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
4469
4470         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
4471
4472 2005-11-23  Raja R Harinath  <rharinath@novell.com>
4473             Ankit Jain  <jankit@novell.com>
4474
4475         * loader.c (mono_get_method_from_token): Initialize 'method' field
4476         of all generic parameters before parsing the signature.  Remove
4477         code that "fixed"-up MVAR references.
4478
4479 2005-11-23  Ankit Jain  <jankit@novell.com>
4480
4481         * metadata.c (mono_metadata_has_generic_params):
4482         (mono_metadata_load_generic_param_constraints):
4483         (mono_metadata_load_generic_params): Move duplicate code ...
4484         (mono_metadata_get_generic_param_row): ... here. Returns the
4485         first row-id in GenericParam table for a given owner (token).
4486         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
4487         prototype.
4488
4489 2005-11-23  Raja R Harinath  <rharinath@novell.com>
4490             Ankit Jain  <jankit@novell.com>
4491
4492         * metadata.c (mono_metadata_class_equal): Pass signature_only when
4493         comparing VARs too.
4494         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
4495         type->data.generic_param only if the type is an MVAR.
4496         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
4497         leak owner-less VARs and MVARs into managed space.
4498
4499 2005-11-21  Martin Baulig  <martin@ximian.com>
4500
4501         * class-internals.h
4502         (MonoMethod): Moved the `generic_container' here from
4503         `MonoMethodNormal' since we now also need it for
4504         `MonoMethodPInvoke';
4505         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
4506         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
4507         an union containing both `MonoMethodNormal' and
4508         `MonoMethodPInvoke'.
4509
4510         * loader.c
4511         (mono_get_method_from_token): Allow implementing generic methods
4512         as interncalls.
4513
4514         * threads.c
4515         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
4516         icall.
4517
4518 2005-11-17  Dick Porter  <dick@ximian.com>
4519
4520         * icall.c: 
4521         * process.h: 
4522         * process.c: Split the Process Start_internal icall into
4523         ShellExecuteEx_internal and CreateProcess_internal, which are
4524         called depending on whether UseShellExecute is true.  Fixes bug
4525         76670.
4526
4527         * appdomain.c (MONO_CORLIB_VERSION): Incremented
4528
4529 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
4530
4531         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
4532         'msize' parameters, use the information in 'mspec' instead.
4533         (emit_object_to_ptr_conv): Ditto.
4534
4535         * marshal.c (emit_struct_conv): Handle explicit layout structs with
4536         fields out of order. Fixes #76733.
4537
4538 2005-11-17  Ankit Jain  <jankit@novell.com>
4539
4540         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
4541
4542 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
4543
4544         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
4545           bug #76575.
4546
4547 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4548
4549         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
4550         for types with non-auto layout. Fixes #76717.
4551
4552 2005-11-16  Ankit Jain  <jankit@novell.com>
4553
4554         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
4555         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
4556         if generic_context is null.
4557           (mono_metadata_generic_param_equal): param->owner can be null.
4558           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
4559         null.
4560
4561 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4562
4563         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
4564         the correct value.
4565
4566 2005-11-15  Martin Baulig  <martin@ximian.com>
4567
4568         * object.c (set_value): Use mono_class_from_mono_type() instead of
4569         the hack for generic instances; fixes #76136.
4570
4571 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
4572
4573         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
4574         fields.
4575
4576         * image.c (load_metadata_ptrs): Initialize the new fields.
4577
4578         * reflection.c (create_dynamic_mono_image): Ditto.
4579
4580         * reflection.c (build_compressed_metadata): Use the new fields.
4581
4582         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
4583         icall.
4584
4585         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
4586         icall.
4587         
4588 2005-11-15  Ankit Jain  <jankit@novell.com>
4589             Raja R Harinath  <harinath@gmail.com>
4590
4591         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
4592         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
4593         new per-generic_container cache if the cached MonoType's context matches
4594         the current context.
4595           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
4596         to the expected context.
4597           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
4598
4599 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4600
4601         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
4602         we changed the signature of an icall.
4603         * icall.c: Modify to mono_double_ParseImpl return true/false 
4604         depending on the success, instead of throwing the exception. This will
4605         help us in Double.TryParse methods.
4606         
4607 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
4608
4609         * marshal.c (emit_marshal_object): Throw an exception when
4610         marshalling 'object' instead of crashing. Fixes #76696.
4611
4612 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4613
4614         * class-internals.h: Add prototype for mono_type_get_full_name ().
4615
4616 2005-11-11  Dick Porter  <dick@ximian.com>
4617
4618         * threads.c (mono_thread_manage): Make sure the main thread has
4619         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
4620
4621 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4622
4623         * loader.c (mono_loader_set_error_type_load): Log a warning to the
4624         console about the missing type.
4625         (mono_loader_set_error_method_load): Ditto.
4626
4627 2005-11-09  Miguel de Icaza  <miguel@novell.com>
4628
4629         * mono-config.c (mono_get_config_dir): Set the system defaults if
4630         none is specified.
4631
4632         * assembly.c (mono_set_dirs): New API entry point to set the
4633         assembly and the config directory in one call
4634
4635 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
4636
4637         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
4638         the ftnptr was created from a delegate in a domain other than the
4639         current domain. Fixes #75377.
4640
4641         * exception.h exception.c: Add mono_get_exception_not_supported ().
4642
4643 2005-11-08  Martin Baulig  <martin@ximian.com>
4644
4645         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
4646
4647 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
4648
4649         * security-manager.h: Added definitions to deal with strongname key 
4650         pairs bigger (and smaller) than 1024 bits.
4651         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
4652         adjust wrt the public key length being used.
4653
4654 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4655
4656         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
4657           Windows build (r51396-51397).
4658
4659 2005-11-03  Martin Baulig  <martin@ximian.com>
4660
4661         * class.c (mono_class_setup_vtable_general): Also add generic
4662         methods to the vtable; fixes #76581.
4663
4664 2005-11-01  Miguel de Icaza  <miguel@novell.com>
4665
4666         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
4667         sure that we lookup GetString method from the System.Text.Encoding
4668         class, not the derived class or we get an empty method.
4669
4670         Fixed class #76612.
4671
4672 2005-10-25  Miguel de Icaza  <miguel@novell.com>
4673
4674         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
4675         if it has been previously set (embedders). 
4676
4677         Make mono_set_rootdir available also on Unix.
4678
4679 005-10-24  Robert Jordan  <robertj@gmx.net>
4680
4681         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
4682
4683 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
4684
4685         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
4686         only calls which are made to native code use this flag.
4687
4688         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
4689
4690 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
4691
4692         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
4693         Add support for FieldBuilders.
4694
4695 2005-10-29  Martin Baulig  <martin@ximian.com>
4696
4697         * mono-debug.c
4698         (mono_debug_using_mono_debugger): New public method; returns
4699         whether we're running inside the debugger.
4700
4701 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
4702
4703         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
4704         for Method/Constructor/FieldBuilders.
4705
4706 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
4707
4708         * reflection.c (module_add_cattrs): Save custom attributes for global methods
4709         and fields as well.
4710
4711 2005-10-26  Martin Baulig  <martin@ximian.com>
4712
4713         * mono-debug-debugger.c
4714         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
4715
4716 2005-10-24  Raja R Harinath  <harinath@gmail.com>
4717
4718         * icall.c (base64_to_byte_array): Don't pass an out-of-range
4719         integer to isspace.
4720
4721 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
4722
4723         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
4724         when passing valuetypes byref. Fixes #76502.
4725
4726 2005-10-19  Jackson Harper  <jackson@ximian.com>
4727
4728         * profiler.c: Don't put a . in front of types that are not in a
4729         namespace.
4730
4731 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
4732
4733         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
4734
4735 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
4736
4737         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
4738         #76436.
4739         (mono_marshal_get_ldflda_wrapper): Fix a warning.
4740
4741 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4742
4743         * assembly.c metadata-internals.h icall.c: Define an additional
4744         parameter for mono_assembly_name_parse_full, so we can avoid creating
4745         S.R.AssemblyName.Version when no version info wasn't passed.
4746         
4747 2005-10-09  Miguel de Icaza  <miguel@novell.com>
4748
4749         * class.c (mono_type_get_full_name): Reimplement method that was
4750         removed. 
4751
4752         * image.c: Some docs
4753
4754 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
4755
4756         * profiler.c (output_newobj_profile): Fix printing of Total memory
4757         on x86.
4758
4759 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4760
4761         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
4762
4763 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
4764
4765         * threads.c: remove debug output.
4766
4767 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4768
4769         * threads.c (mono_thread_manage): Fix crashes if more than 64
4770         threads need to be aborted. Hopefully fixes #75899.
4771
4772         * assembly.c (mono_stringify_assembly_name): New helper function.
4773
4774         * class.c: Use mono_stringify_assembly_name instead of the similar
4775         static function.
4776
4777         * assembly.h assembly.c: Add support for calling a postload search 
4778         hook if an assembly cannot be loaded.
4779
4780         * appdomain.c: Register new search hooks which call the AssemblyResolve
4781         events in AppDomain. Fixes #75231
4782
4783 2005-10-07  Martin Baulig  <martin@ximian.com>
4784
4785         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
4786         methods without debug info.
4787
4788 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
4789
4790         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
4791         wrappers.
4792
4793 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4794
4795         * file-io.c: now that we return symlinks, use lstat and, when the file
4796         is a symbolic link, stat, to get the file attributes. Also avoid the
4797         conversion to/from utf16/external.
4798
4799 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
4800
4801         * class.c (mono_class_layout_fields): Compute klass->has_references
4802         correctly if an embedded valuetype is not yet initialized. Fixes
4803         #76331.
4804
4805 2005-10-04  Martin Baulig  <martin@ximian.com>
4806
4807         * metadata.c
4808         (mono_metadata_load_generic_param_constraints): New public
4809         function; splitted the constraints loading out from
4810         mono_metadata_load_generic_params().
4811
4812         * class.c (mono_class_create_from_typedef): Call
4813         mono_metadata_load_generic_param_constraints() after setting up
4814         the type and creating our parent; fixes #75329.
4815
4816 2005-10-04  Martin Baulig  <martin@ximian.com>
4817
4818         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
4819         non-dynamic parent classes.
4820
4821 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4822
4823         * file-io.c : win32 build fix (ETXTBSY seems not found).
4824
4825 2005-10-04  Martin Baulig  <martin@ximian.com>
4826
4827         * reflection.c
4828         (mono_image_get_methodspec_token): Make the cache actually work;
4829         fixes #75974.
4830
4831 2005-10-04  Martin Baulig  <martin@ximian.com>
4832
4833         * class.c (mono_class_name_from_token): Removed the unneccessary
4834         `MonoGenericContext *' argument.
4835
4836 2005-10-04  Martin Baulig  <martin@ximian.com>
4837
4838         * loader.c
4839         (method_from_methodspec): Make the caching work again; fixes the
4840         performance regression from #76262.
4841
4842 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4843
4844         * file-io.c:
4845         * file-io.h:
4846         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4847         GetFileSystemEntries that performs the same work but without going
4848         into io-layer, locking, etc.
4849
4850 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4851
4852         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4853         ThreadState_Stopped as well. Fixes #76047.
4854
4855 2005-09-29  Martin Baulig  <martin@ximian.com>
4856
4857         * class.c
4858         (inflate_generic_context): If the new context has a `gmethod', set
4859         its `container' that that gmethod's `container'.
4860
4861         * metadata.c
4862         (mono_metadata_parse_generic_param): Simplify things;
4863         `generic_container = generic_context->container;' is just fine.
4864
4865         * loader.c (method_from_methodspec): Code cleanups.
4866
4867 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4868
4869         * decimal.c: fix warning (and let gcc generate correct
4870         code on ARM with optimizations).
4871
4872 2005-09-28  Martin Baulig  <martin@ximian.com>
4873
4874         * loader.c
4875         (method_from_memberref): Added `MonoGenericContext *class_context'
4876         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4877         (method_from_methodspec): If we're a memberref, use the enclosing
4878         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4879
4880 2005-09-28  Martin Baulig  <martin@ximian.com>
4881
4882         * object.c (mono_runtime_invoke_array): Added support for
4883         MONO_TYPE_GENERICINST; fixes #75917.
4884
4885 2005-09-27  Martin Baulig  <martin@ximian.com>
4886
4887         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4888         `k->byval_arg.type' to determine the actual type.
4889
4890         * loader.c (method_from_methodspec): Removed some hacks.
4891
4892 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4893
4894         * class-internals.h (mono_field_is_deleted): Do the test for
4895         rtspecialname before we check the actual name of the field. This
4896         prevents us from dereferencing a pointer into the string table,
4897         saving us from accessing a few pages
4898
4899         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4900         macros. This will allow a deadlock debugger to easily be plugged
4901         in.
4902
4903 2005-09-27  Martin Baulig  <martin@ximian.com>
4904
4905         * loader.c (method_from_methodspec): Create a "signature"
4906         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4907
4908 2005-09-27  Martin Baulig  <martin@ximian.com>
4909
4910         * class.c
4911         (inflate_generic_class): Correctly set the new context's
4912         container.
4913
4914         * loader.c
4915         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4916         instead of a `MonoGenericContext *'.
4917         (mono_method_signature_full): Take a `MonoGenericContainer *'
4918         instead of a `MonoGenericContext *'.
4919
4920         * metadata.c
4921         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4922         instead of a `MonoGenericContext *'.
4923         (mono_metadata_parse_method_signature_full): Likewise.
4924
4925 2005-09-26  Martin Baulig  <martin@ximian.com>
4926
4927         * class.c
4928         (mono_class_from_generic_parameter): Set `klass->generic_container'
4929         (mono_class_from_generic_parameter): Likewise.
4930         (mono_bounded_array_class_get): We inherit the generic container
4931         from the element class.
4932
4933         * loader.c
4934         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4935         argument rather than computing it here.
4936         (method_from_memberref): Correctly set the generic context before
4937         parsing the signature.  Fixes #75681.
4938
4939 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4940
4941         * object.c (mono_class_has_special_static_fields): Fix warnings.
4942
4943 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4944
4945         * assembly.c: Add parse_public_key function, to
4946         par the public keys. Also added mono_assembly_name_parse_full,
4947         to define it the parsed key should be freed or not.
4948         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4949         to parse a long format assembly name.
4950         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4951         private, since calling it to preserve the key requires
4952         freeing it manually.
4953         
4954 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4955
4956         * locales.c : removed HAVE_ICU part.
4957
4958 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4959
4960         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4961         field_is_special_static if the klass has no special static fields.
4962
4963         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4964         (MonoCachedClassInfo): Likewise.
4965
4966         * object.c (mono_class_has_special_static_fields): New helper function.
4967
4968 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4969
4970         * class.c (mono_class_create_from_typedef): Don't call 
4971         interfaces_from_typedef_full for enums.
4972         (mono_class_create_from_typedef): Compute the base types of enums directly
4973         without calling mono_class_setup_fields ().
4974         (mono_class_find_enum_basetype): New helper function.
4975
4976         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4977         one place inside the string heap.
4978         
4979 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4980
4981         * class.c: locking fixes, code cleanups, some docs added.
4982         Allocate some data structures in the image mempool.
4983
4984 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4985
4986         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4987         the example code.
4988         
4989 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4990
4991         * class-internals.h, class.c, reflection.c: reduce memory taken by
4992         MonoClass.
4993
4994 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4995
4996         * metadata.c, metadata.h, loader.h: documentation updates, code and
4997         API cleanups.
4998
4999 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
5000
5001         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
5002         the example code.
5003
5004         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
5005         page faults caused by the runtime while reading metadata.
5006
5007 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5008
5009         * socket-io.c: the field names were changed 3 months ago and no one
5010         realized until bug #76077 got filed!
5011
5012 2005-09-20  Martin Baulig  <martin@ximian.com>
5013
5014         * icall.c (assembly_icalls): Removed some unused debugger icalls.
5015
5016 2005-09-20  Martin Baulig  <martin@ximian.com>
5017
5018         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
5019         write the rank into the class entry.
5020
5021 2005-09-20  Martin Baulig  <martin@ximian.com>
5022
5023         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
5024
5025 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
5026
5027         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5028
5029         * icall.c (custom_attrs_defined_internal): New icall.
5030
5031         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
5032         function.
5033         (mono_custom_attrs_construct_by_type): New helper function.
5034
5035 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
5036
5037         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
5038         terminate the resulting string. Fixes #76123.
5039
5040 2005-09-16  Martin Baulig  <martin@ximian.com>
5041
5042         * mono-debug.c
5043         (mono_debug_add_method): Ignore inflated methods for the moment.
5044
5045 2005-09-14  Martin Baulig  <martin@ximian.com>
5046
5047         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
5048
5049 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
5050
5051         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
5052         return a success/failure indication.
5053         (mono_metadata_interfaces_from_typedef_full): Ditto.
5054         (get_constraints): Ditto.
5055
5056 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
5057
5058         * marshal.c (emit_marshal_array): Fix handling of null arrays.
5059         
5060         * marshal.c (emit_marshal_array): Add support for returning string
5061         arrays from delegates. Fixes #76063.
5062
5063         * marshal.c: Use the emit_ldloc/stloc macros where possible.
5064
5065 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
5066
5067         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
5068         icall.
5069
5070 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
5071
5072         * reflection.c icall.c: Fix after mono_get_exception_type_load
5073         signature change.
5074
5075         * assembly.c (mono_assembly_get_assemblyref): New helper function.
5076         (mono_assembly_load_reference): Use the new helper.
5077
5078         * class-internals.h (MonoLoaderError): New structure containing 
5079         information about type loading errors.
5080
5081         * class-internals.h loader.c: Add APIs to store per-thread loader
5082         error information.
5083
5084         * loader.c class.c: Set the loader error if needed.
5085
5086         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
5087
5088 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
5089
5090         * decimal.c: fixed to handle the broken ARM fp format.
5091
5092 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
5093
5094         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
5095         broken.
5096
5097 2005-09-06  Martin Baulig  <martin@ximian.com>
5098
5099         * domain.c (supported_runtimes): Added v2.0.50727.
5100
5101 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
5102
5103         * culture-info.h: reduce the size of some structures.
5104
5105 2005-09-05  Martin Baulig  <martin@ximian.com>
5106
5107         Reflect latest API changes in the August CTP.
5108
5109         * icall.c
5110         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
5111         ("MonoType.HasGenericArguments"): Removed.
5112         ("MonoMethod.BindGenericParameters"): Renamed to
5113         "MakeGenericMethod".
5114         ("MethodBuilder.BindGenericParameters"): Renamed to
5115         "MakeGenericMethod".    
5116
5117 2005-09-05  Martin Baulig  <martin@ximian.com>
5118
5119         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
5120
5121 2005-09-05  Martin Baulig  <martin@ximian.com>
5122
5123         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5124
5125         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
5126         generic_container is non-NULL.
5127
5128 2005-09-05  Martin Baulig  <martin@ximian.com>
5129
5130         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5131
5132         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
5133
5134 2005-08-29  Michal Moskal  <malekith@nemerle.org>
5135
5136         * reflection.c (encode_locals,
5137         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
5138         for large generic types.
5139
5140 2005-09-05  Martin Baulig  <martin@ximian.com>
5141
5142         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5143
5144         * class.c (mono_dup_array_type): New public method.
5145         (mono_metadata_signature_deep_dup): New public method.
5146         (dup_type): Correctly duplicate array and function types.
5147
5148 2005-09-05  Martin Baulig  <martin@ximian.com>
5149
5150         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5151
5152         * reflection.c (get_default_param_value_blobs): Handle generic types
5153         and generic methods.
5154
5155 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
5156
5157         * class.c: Fixed error reporting (method/class were inversed) for 
5158         inheritance demands.
5159         * security-manager.c|h: Added the AppDomain when calling the managed
5160         System.Security.SecurityManager.InheritanceDemand method.
5161
5162 2005-09-01  Raja R Harinath  <rharinath@novell.com>
5163
5164         * reflection.c (encode_marshal_blob): 'marshaltype' and
5165         'marshaltyperef' are alternate sources for the custom marshaler
5166         name.
5167
5168 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
5169
5170         * class.c: fix creation of array classes with rank == 1
5171         (patch by Ankit Jain <jankit@novell.com>).
5172
5173 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
5174
5175         * object.c: fix check for creating the bound data for arrays vs
5176         szarrays.
5177
5178 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5179
5180         * object.c: configuration file name is now based on the executable name,
5181         not the image name. Fixes bug #75931.
5182
5183 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
5184
5185         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
5186         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
5187
5188 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
5189
5190         * rand.c: Use wincrypt.h instead of WinCrypt.h.
5191
5192 2005-08-24  Ankit Jain  <jankit@novell.com>
5193             Raja R Harinath  <rharinath@novell.com>
5194
5195         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
5196           called by it recursively.
5197           (mono_class_init): Remove special case in pending_init handling, since it's
5198           superseded by the fix to mono_class_from_typeref.
5199
5200 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
5201
5202         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
5203         BROKEN_THREAD_START stuff.
5204
5205 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
5206
5207         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
5208         trampoline.
5209
5210         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
5211         
5212         * object.c (mono_delegate_ctor): Replace the original function address with
5213         a delegate trampoline.
5214
5215 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
5216
5217         * icall.c: add boolean argument to base64_to_byte_array and 
5218         InternalFromBase64String to control whether a whitespace-only string
5219         is allowed (or should casue a FormatException to be thrown). We need
5220         this as the behavior has changed between MS.NET 1.x and 2.0, and we
5221         to match the MS behaviour in both profiles.
5222         * appdomain.c: Bump corlib version.
5223
5224 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5225
5226         This patch implements a big portion of publisher policy
5227         support, used to bind assembly versions and redirect
5228         one assembly from version A to version B.
5229
5230         * assembly.c:
5231         New GSList loaded_assembly_bindings, for storing the cached
5232         assembly bindings.
5233         (assembly_binding_maps_name): New static function for checking if a 
5234         assembly binding information maps an assembly name.
5235         (mono_assembly_binding_info_free): New function for freeing
5236         assembly binding information resources.
5237         (get_publisher_policy_info): New static function for retrieving 
5238         assembly binding information from a MonoImage.
5239         (compare_versions): New static function for comparing an assembly
5240         binding information data and the version of an assembly name.
5241         (check_policy_versions): New static function for checking if an
5242         assembly binding info mapping an assembly name is valid for it.
5243         (mono_assembly_load_publisher_policy): New static function for
5244         loading the 'policy.major.minor.MyAssembly' image for an assembly
5245         with an assembly name 'aname'.
5246         (mono_assembly_bind_version): New static function for updating
5247         assembly redirection.
5248         (mono_assembly_apply_binding): New static function for applying
5249         assembly binding.
5250         (search_binding_loaded): New static function for searching 
5251         loaded assembly binding infos in the cache domain.
5252         (mono_assembly_load_full): Don't apply assembly binding for
5253         reflection only assemblies.
5254
5255         * metadata-internals.h: Add MonoAssemblyBindingInfo,
5256         which contains information about assembly binding. Also
5257         declare signature for mono_config_parse_publisher_policy ()
5258         function, used to retrieve pub policy info.
5259         
5260         * mono-config.c:
5261         (publisher_policy_start): New static function used to parse publisher 
5262         policy config files.
5263         (publisher_policy_parser): New static MonoParseHandler containing 
5264         the functions used when parsing config files.
5265         (mono_config_parse_publisher_policy): New function for parsing
5266         publisher policy files.
5267         
5268 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
5269
5270         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
5271
5272         * marshal.c (mono_delegate_free_ftnptr): Ditto.
5273
5274         * object.c (mono_get_addr_from_ftnptr): New helper function.
5275
5276         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
5277
5278         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5279
5280 2005-08-19  Dick Porter  <dick@ximian.com>
5281
5282         * threads.c, threads.h, appdomain.c, appdomain.h,
5283         profiler-private.h, monitor.c, object.c, object-internals.h,
5284         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
5285         store the thread ID, so it can hold a 64 bit value if needed.
5286
5287 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
5288
5289         * reflection.c (mono_reflection_create_dynamic_method): Store the
5290         handle class into the method references as well so ldtoken works in
5291         dynamic methods.
5292
5293         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
5294         types.
5295
5296 2005-08-19  Ankit Jain <jankit@novell.com>
5297
5298         Fix #75847.
5299         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
5300           here rather than using the method signature of a arbitrary function
5301           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
5302           two arguments.
5303           Hack done with Harinath.
5304
5305 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5306
5307         * threadpool.c: disable printing stack traces when we get a exception
5308         in a threadpool thread. I need to do more testing to figure out which
5309         cases actually print this. Fixes bug #75828.
5310
5311 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5312
5313         * icall.c: there might be ignored whitespace after the last '='. This
5314         fixes length computation and bug #75840.
5315
5316 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
5317
5318         * assembly.c (mono_assembly_load_full): Consider .exe extension as
5319         well. Fixes #75809.
5320
5321         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
5322         #75784.
5323         
5324         * reflection.c (create_custom_attr_data): Ditto.
5325
5326 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
5327
5328         * locales.c, culture-info.h : removed RegionLCIDMap.
5329         * culture-info-tables.h : regenerated.
5330
5331 2005-08-16  Martin Baulig  <martin@ximian.com>
5332
5333         * class.c (mono_type_get_name_recurse): Small fix.
5334
5335 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
5336
5337         * locales.c : indentation fixie.
5338
5339 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
5340
5341         * object-internals.h,
5342           locales.h,
5343           locales.c,
5344           culture-info.h,
5345           icall.c : added RegionInfo table support.
5346         * culture-info-table.h : regenerated for region support.
5347
5348 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
5349
5350         * reflection.c (resolve_object): handle all kinds of MonoMethod
5351         including generic ones
5352
5353 2005-08-12  Ankit Jain <jankit@novell.com>
5354
5355         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
5356           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
5357
5358 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
5359
5360         * process.c: Don't close a thread handle when it's NULL. This is a
5361         workaround for bug #75733.
5362
5363 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
5364
5365         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
5366
5367 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
5368
5369         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
5370
5371 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5372
5373         * threadpool.c: if a work item in the thread pool has a callback that
5374         catches a exception, don't propagate it after invoking the callback.
5375         Fixes bug #75336.
5376
5377 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
5378
5379         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
5380
5381         * class-internals.h (MonoCachedClassInfo): Add some new fields.
5382
5383         * class.c (mono_class_init): Load field info lazily in the AOT case.    
5384
5385         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
5386
5387 2005-08-03  Ankit Jain  <jankit@novell.com>
5388
5389         Fix #75683.
5390         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
5391           PInvoke calling convention is 0.
5392
5393 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
5394
5395         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
5396         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
5397
5398 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
5399
5400         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
5401         to handle threads not started by the GC (patch by Michael Meeks
5402         <michael.meeks@novell.com>).
5403
5404 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
5405
5406         * reflection.c: Make buffer used in emitting types larger for some
5407         big generic types (patch by Michal Moskal).
5408
5409 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
5410
5411         * mono-debug.c: Fix some (not all) alignment problems.
5412
5413 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5414
5415         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
5416         Invoke mono_image_load_from_data_full passing the refonly
5417         parameter.
5418
5419         * assembly.c
5420         (mono_assembly_open_from_bundle): Add the refonly argument, 
5421         in order to pass it to other methods it calls to.
5422         (do_mono_assembly_open): Add the refonly argument, in order 
5423         to pass it to other methods it calls to.
5424         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
5425         the refonly parameter to it.
5426
5427         * image.c: Add loaded_images_refonly_hash and
5428         loaded_images_refonly_guid_hash to cache the reflection
5429         only loaded images.
5430         (mono_images_init): Initialize the hash tables used for
5431         caching the reflection only images.
5432         (load_modules): Invoke mono_image_open_full passing the refonly
5433         parameter to load the modules the correct way.
5434         (build_guid_table): Add the refonly argument, to re-build the 
5435         correct hash table.
5436         (do_mono_image_open): Added the refonly argument, in order to
5437         define it for the loaded image.
5438         (mono_image_loaded_full): New function, which receives an
5439         additional parameter to look for the image in the refonly or
5440         non-refonly section.
5441         (mono_image_loaded): Updated, using mono_image_loaded_full.
5442         (mono_image_loaded_by_guid_full): The same case that happens
5443         with mono_image_loaded_full.
5444         (mono_image_loaded_by_guid): Likewise.
5445         (register_image): Use the ref_only variable inside MonoImage
5446         to decide in which hash table store the current image.
5447         (mono_image_open_from_data_full): Rename
5448         mono_image_open_from_data to mono_image_open_from_data_full,
5449         adding the refonly argument, to define the ref_only variable 
5450         inside MonoImage.
5451         (mono_image_open_from_data): Return 
5452         mono_image_open_from_data_full.
5453         (mono_image_open_full): Rename mono_image_open to
5454         mono_image_open_full, receiving the new refonly argument,
5455         to pass it to inner methods.
5456         (mono_pe_file_open): Update this function, to open
5457         a MonoImage as a non-refonly image.
5458         (mono_image_close): Use the refonly variable inside
5459         MonoImage to remove the image from the correct caches.
5460
5461         * image.h: Add the signatures of mono_image_open_full,
5462         mono_image_open_from_data_full, mono_image_loaded_full,
5463         mono_image_loaded_by_guid_full.
5464
5465         * metadata-internals.h: Add the ref_only field to 
5466         MonoImage.
5467         
5468 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5469
5470         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
5471         Fix the last behavior, which used to load the assemblies and
5472         extract MonoReflectionAssemblyName information, instead of
5473         extract it from the metadata tables. Needed for Reflection
5474         Only assemblies.
5475         
5476 2005-07-29  Martin Baulig  <martin@ximian.com>
5477
5478         * mono-debug-debugger.c
5479         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
5480         not initialized.
5481
5482         * mono-debug.c
5483         (mono_debug_address_from_il_offset): Check whether we have
5484         debugging support before attempting to take the lock.
5485         (mono_debug_source_location_from_address): Likewise.
5486         (mono_debug_source_location_from_il_offset): Likewise.
5487         (mono_debug_il_offset_from_address): Likewise.
5488         (mono_debug_address_from_il_offset): Likewise.
5489
5490 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
5491
5492         * class.c (mono_class_from_name_case): Add support for dynamic images.
5493         Fixes #75650.
5494
5495         * object.c (mono_class_compute_gc_descriptor): Add a workaround
5496         for #75479.
5497
5498 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
5499         
5500         * reflection.c (mono_method_get_object): Fix warning.
5501
5502 2005-07-28  Martin Baulig  <martin@ximian.com>
5503
5504         * mono-debug.c
5505         (mono_debug_add_wrapper): Also write the wrapper type.
5506
5507 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
5508
5509         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
5510         
5511         * class.c (mono_class_init): Avoid reading nested classes if the AOT
5512         data indicates the class has none.
5513
5514 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
5515
5516         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
5517         loader lock with the debugger lock. Prevents deadlocks for beagle.
5518
5519         Beagle can now run on an smp box for a weekend without any
5520         issues. Woohoo!
5521
5522 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
5523
5524         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
5525         in a module. Fixes #75629.
5526
5527 2005-07-26  Martin Baulig  <martin@ximian.com>
5528
5529         * mono-debug.c (mono_debug_add_wrapper): New static method.
5530         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
5531         interncall or a wrapper.
5532
5533         * mono-debug.h (MonoDebugWrapperData): New public typedef.
5534         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
5535         (MONO_DEBUGGER_VERSION): Bump to 51.
5536
5537         * mono-debug-debugger.c
5538         (mono_debugger_add_type): Removed this empty function.
5539         (mono_debugger_add_method): Likewise.
5540
5541 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
5542
5543         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
5544         before accessing method->slot.
5545
5546 2005-07-21  Jb Evain  <jbevain@gmail.com>
5547
5548         * reflection.c (method_encode_clauses/class): Handle filters clauses.
5549         Fixes #75010.
5550
5551 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
5552
5553         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
5554         #75587.
5555
5556 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
5557
5558         * image.h image.c: Add mono_image_get_guid () API function.
5559
5560 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
5561
5562         There were issues when multiple threads tried to load
5563         assemblies. A deadlock was created between assemblies_mutex and
5564         mono_domain_assemblies_lock. This fixes the issue by making the
5565         assembly ref counting be lock free. See bug 75586.
5566         
5567         * image.c (mono_image_close): The add ref function here was using
5568         Interlocked operations while the unref was using a mutex and a
5569         --. I don't think this was ever a bug that would be exposed in a
5570         non-pendantic way (ie, by an embedder doing a ref on one thread
5571         and an unref on another), but for the sake of correctness, this is
5572         now Interlocked.
5573
5574         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
5575         (mono_assembly_load_reference): Call mono_assembly_addref rather
5576         than touching the refcount ourselves.
5577         (mono_assembly_close): Use InterlockedDecrement to unref the
5578         assembly. Don't acquire the lock unless it is actually needed.
5579
5580 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5581
5582         * class.c (mono_class_layout_fields): Fix calculation of has_references
5583         for generic types.
5584
5585 2005-07-12  Martin Baulig  <martin@ximian.com>
5586
5587         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5588
5589         * metadata.c
5590         (mono_type_hash): Provide better hashing for generic instances.
5591         (mono_generic_inst_hash): Improve hashing.
5592         (mono_generic_class_hash): Likewise.
5593
5594         * reflection.c (mymono_metadata_type_hash): Improve hashing for
5595         generic instances.
5596
5597 2005-07-12  Martin Baulig  <martin@ximian.com>
5598
5599         * reflection.c (mono_reflection_create_runtime_class): Remove the
5600         hack for generic type definitions and non-`Run' assemblies.
5601         (mono_reflection_bind_generic_parameters): Also use
5602         `klass->wastypebuilder' to check for TypeBuilders.
5603
5604 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5605
5606         * class.c (mono_class_layout_fields): Fix calculation of has_references
5607         for generic types.
5608
5609         * class.c (inflate_generic_class): Fix a leak.
5610         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
5611         for generic types.
5612
5613 2005-07-11  Martin Baulig  <martin@ximian.com>
5614
5615         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
5616         on error.
5617
5618 2005-07-11  Martin Baulig  <martin@ximian.com>
5619
5620         * loader.c (find_method): Also lookup in
5621         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
5622
5623 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5624
5625         * appdomain.c (mono_domain_unload): Don't free the error message
5626         before passing it to mono_get_exception_...
5627
5628         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
5629         
5630 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
5631
5632         * threads.c: try to better guess an available RT signal (bug #75387).
5633
5634 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5635
5636         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
5637         and CACHE_OBJECT.
5638
5639 2005-07-07  Martin Baulig  <martin@ximian.com>
5640
5641         * class.c (mono_type_get_name_full): Return NULL for
5642         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
5643         fixes #75408.
5644
5645 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5646
5647         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
5648         exit the appdomain as well being aborted.
5649
5650         * threadpool.c: Create all threadpool threads inside the root appdomain, and
5651         change back to the root domain after calling managed code. This enables
5652         appdomains using threadpools to be unloaded.
5653
5654 2005-07-07  Martin Baulig  <martin@ximian.com>
5655
5656         * class-internals.h
5657         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
5658         into `MonoDynamicGenericClass' since we only need it for dynamic
5659         types.
5660
5661         * reflection.c (mono_class_bind_generic_parameters): We don't need
5662         to compute the `parent' here.
5663
5664 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
5665
5666         * culture-info-table.h : regenerated.
5667
5668 2005-07-06  Martin Baulig  <martin@ximian.com>
5669
5670         * icall.c
5671         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
5672
5673         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
5674
5675 2005-07-06  Martin Baulig  <martin@ximian.com>
5676
5677         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
5678         we're doing a signature-only comparision; fixes #74945.
5679
5680 2005-07-06  Martin Baulig  <martin@ximian.com>
5681
5682         * class-internals.h (MonoGenericClass): Moved some things out into
5683         a new `MonoInflatedGenericClass' type.  
5684         (MonoInflatedGenericClass): New type; the `klass' of a
5685         `MonoGenericClass' is now computed lazyly in
5686         mono_get_inflated_generic_class().      
5687
5688         * class.c (mono_get_inflated_generic_class): New public function.
5689         (mono_class_inflate_generic_method): Removed the unused
5690         `MonoClass *' argument.
5691         (setup_generic_vtable): Don't call mono_get_inflated_method() on
5692         all the methods.
5693         (mono_class_create_generic): Make this static and merge it with
5694         mono_class_create_generic_2(); we're now called automatically from
5695         mono_get_inflated_generic_class().
5696
5697         * loader.c (mono_method_signature): Call
5698         mono_get_inflated_method() here.
5699
5700 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
5701
5702         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
5703         type of fields with RVA.
5704
5705         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
5706         for this pseudo class.
5707         (my_mono_class_from_generic_parameter): Likewise.
5708         (mono_class_init): Allow interfaces to have cctors.
5709
5710 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5711
5712         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
5713         lazily for AOT methods.
5714
5715 2005-07-05  Martin Baulig  <martin@ximian.com>
5716
5717         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
5718         returns FALSE for a successful match, not TRUE.
5719
5720 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5721
5722         * loader.c (mono_method_get_index): Optimize this a bit.
5723
5724 2005-07-04  Martin Baulig  <martin@ximian.com>
5725
5726         * class.c
5727         (class_compute_field_layout): Move the check for generic type
5728         definitions into mono_class_layout_fields().  Fixes #74684.
5729         (mono_class_from_generic_parameter): Correctly compute
5730         `klass->parent'; fixes #75457.
5731
5732         * reflection.c (register_assembly, register_module): Make sure
5733         `domain->rejobject_hash' is already created.
5734
5735 2005-07-02  Martin Baulig  <martin@ximian.com>
5736
5737         * class-internals.h
5738         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
5739         `MonoDynamicGenericClass'.      
5740
5741 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
5742
5743         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
5744         returned by a field getter is null, since null is a valid value.
5745
5746 2005-07-01  Martin Baulig  <martin@ximian.com>
5747
5748         * reflection.c (mono_reflection_generic_class_initialize): Update
5749         the `dgclass->fields [i].parent' to the correct class.
5750         (mono_image_get_fieldref_token): Use the declaring type, not the
5751         reflected type.
5752
5753 2005-07-01  Martin Baulig  <martin@ximian.com>
5754
5755         * loader.c (find_method): Also look in the interfaces; fixes #75429.
5756
5757 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
5758
5759         * threads.c (thread_cleanup): assert that thread != NULL
5760         (wait_for_tids_or_state_change): We were using the wrong variable
5761         when accessing wait->threads. `i' was always out of the bounds of
5762         the array.
5763
5764 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5765
5766         * loader.c: map user32 and kernel32 to libMonoSupportW
5767
5768 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
5769
5770         * appdomain.c (unload_thread_main): Mark this as WINAPI.
5771
5772 2005-06-28  Martin Baulig  <martin@ximian.com>
5773
5774         * loader.c (method_from_methodspec): Fix #75334.
5775
5776 2005-06-28  Martin Baulig  <martin@ximian.com>
5777
5778         Fix #74953 - Arrays now implement the generic IList<T> interface
5779         on the 2.0 platform.
5780
5781         * class-internals.h (MonoDefaults): Added `generic_array_class'.
5782
5783         * reflection.c (mono_class_bind_generic_parameters): New public
5784         function; similar to mono_reflection_bind_generic_parameters(),
5785         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
5786
5787         * domain.c (mono_init_internal): Try to initialize.
5788         `mono_defaults.generic_array_class' here; this'll only succeed if
5789         we're using the 2.0 corlib.
5790
5791         * icall.c
5792         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
5793         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
5794         (mono_lookup_internal_call): Added support for nested classes.
5795
5796         * loader.c
5797         (mono_get_method_from_token): Set `result->signature->pinvoke' if
5798         we're an interncall and have generic arguments.
5799
5800         * class.c
5801         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
5802         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
5803         instance of System.Array.InternalArray<T> for arrays, so they
5804         implement the generic IList<T> interface.
5805
5806 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
5807
5808         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
5809         (chastamar@yahoo.com). Fixes #75374.    
5810
5811 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
5812
5813         * culture-info-table.h: regenerated.
5814
5815 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5816
5817         * icall.c: handle spaces correctly for base64 strings.
5818
5819 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
5820
5821         * *.c: Kill some warnings.
5822
5823 2005-06-23  Duncan Mak  <duncan@novell.com>
5824
5825         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
5826         that this builds on Solaris 10 (x86).
5827
5828 2005-06-23  Martin Baulig  <martin@ximian.com>
5829
5830         * class.c
5831         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
5832         generic type definitions.
5833
5834 2005-06-23  Martin Baulig  <martin@ximian.com>
5835
5836         Fix #75331.
5837
5838         * metadata.c (mono_class_get_overrides): Renamed to
5839         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5840         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5841         pass it to mono_get_method_full().
5842
5843 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5844
5845         * reflection.c (mono_reflection_create_runtime_class): take the
5846         mono_domain_lock in this method. Prevents deadlocks
5847
5848 2005-06-22  Martin Baulig  <martin@ximian.com>
5849
5850         * loader.c (method_from_methodspec): Fix #75330.
5851
5852 2005-06-22  Martin Baulig  <martin@ximian.com>
5853
5854         * reflection.c (type_get_qualified_name): Use
5855         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5856         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5857         argument; use it if we don't have an assembly name.
5858
5859 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5860
5861         * object.c: In mono_message_init, set "copy out" flag for in
5862         parameters with the [Out] flag.
5863
5864 2005-06-21  Martin Baulig  <martin@ximian.com>
5865
5866         * class.c
5867         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5868         and MONO_TYPE_PTR.
5869
5870 2005-06-21  Martin Baulig  <martin@ximian.com>
5871
5872         * class.c (mono_class_init): Don't initialize `class->fields' for
5873         generic instances since they're initialized again in
5874         compute_field_layout(). 
5875         (compute_field_layout): Set the field's `generic_info' here; fix
5876         #75320. 
5877
5878 2005-06-21  Martin Baulig  <martin@ximian.com>
5879
5880         * class-internals.h
5881         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5882
5883         * metadata.c (mono_metadata_generic_method_equal): Also
5884         distinguish the `generic_class'; fixes #75334.
5885
5886 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5887
5888         * domain.c:
5889         * appdomain.c:
5890         * domain-internals.h:
5891         * reflection.c: 'domain_assemblies' field is now protected by its own
5892         lock. Don't call into managed code to run the AssemblyLoad event if we
5893         now there are no registered delegates for it.
5894
5895 2005-06-20  Martin Baulig  <martin@ximian.com>
5896
5897         * class.c (mono_class_is_assignable_from): Use a custom version of
5898         mono_class_has_parent() to make things work for generic instances;
5899         fix #75300.
5900
5901 2005-06-20  Martin Baulig  <martin@ximian.com>
5902
5903         * loader.c (method_from_methodspec): Apply a patch from
5904         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5905
5906 2005-06-20  Martin Baulig  <martin@ximian.com>
5907
5908         * class.c (mono_class_init): Reverted Zoltan's last change; it
5909         breaks generics.
5910
5911 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5912
5913         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5914
5915 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5916
5917         * socket-io.c: fix the index in the socket array for writable/error
5918         sockets. Fixes bug #75306.
5919
5920 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5921
5922         * class.c (mono_class_init): Allow interfaces to have static ctors.
5923
5924 2005-06-17  Martin Baulig  <martin@ximian.com>
5925
5926         * loader.c (method_from_methodspec): Use `context->container' when
5927         parsing the `gmethod->inst'.
5928
5929 2005-06-17  Martin Baulig  <martin@ximian.com>
5930
5931         * class.c (mono_type_get_name_recurse): Don't add the assembly
5932         name for type arguments.
5933
5934 2005-06-15  Martin Baulig  <martin@ximian.com>
5935
5936         * reflection.c (mono_image_get_inflated_method_token): Encode
5937         correct klass; fixes #75260.
5938
5939 2005-06-13 Michal Moskal <malekith@nemerle.org>
5940
5941         * icall.c: Make GetCorrespondingMethod/Constructor take
5942         MonoReflectionMethod method not MonoMethod. Removed
5943         MonoType.GetCorrespondingField, and make
5944         MonoGenericType.GetCorrespondingField take name not
5945         MonoClassField.
5946
5947 2005-06-13  Michal Moskal <malekith@nemerle.org>
5948
5949         * reflection.c (field_encode_signature, encode_locals):
5950          Make sizes of buffers for types larger (for big generic types).
5951          (create_generic_typespec,
5952          mono_reflection_sighelper_get_signature_local,
5953          mono_reflection_sighelper_get_signature_field):
5954          Add asserts for too small buffers.
5955
5956 2005-06-15  Martin Baulig  <martin@ximian.com>
5957
5958         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5959         if our parent is not a dynamic type.
5960
5961 2005-06-15  Martin Baulig  <martin@ximian.com>
5962
5963         * class-internals.h (MonoTypeNameFormat): New enum.
5964
5965         * class.c
5966         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5967         (mono_type_get_full_name): Removed.
5968         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5969         argument instead of the boolean's.
5970
5971         * icall.c (ves_icall_System_MonoType_getFullName):
5972         Added `gboolean assembly_qualified'.    
5973
5974         * reflection.h
5975         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5976
5977         * reflection.c (mono_reflection_parse_type): Parse the new type
5978         name format.
5979
5980 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5981
5982         * icall.c: no need to convert from utf16 to utf8 and then back again
5983         after the call to GetLogicalDrives.
5984
5985 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5986
5987         * icall.c: frombase64. Fix problems exposed by new tests.
5988
5989 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5990
5991         * icall.c: added internal calls for converting char [] and strings in
5992         base64 into byte [].
5993
5994 2005-06-10  Martin Baulig  <martin@ximian.com>
5995
5996         * class.c (mono_class_create_generic_2): Read the nested classes
5997         from the metadata rather than from `gklass->nested_classes' since
5998         `gklass' might not be initialized yet.
5999
6000 2005-06-09  Duncan Mak  <duncan@novell.com>
6001
6002         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
6003         all public headers. Fixes #74919.
6004
6005 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
6006
6007         * domain.c: The key for proxy_vtable_hash is now a pointer
6008         array. Added new GHashFunc and GCompareFunc functions for this.
6009
6010         * class.h: The list of interfaces in MonoRemoteClass is known in
6011         advance and can't grow (we create a new MonoRemoteClass if needed),
6012         so now the interface array can be allocated together with
6013         MonoRemoteClass.
6014         
6015         * object.c: Added a new method create_remote_class_key.
6016         Fixed mono_remote_class so it does not depend on
6017         mono_upgrade_remote_class.
6018         Removed extend_interface_array.
6019         Added new method clone_remote_class(), which makes a copy of a remote
6020         class and adds a new interface or class to it.
6021         mono_upgrade_remote_class() now creates a new remote class (or gets
6022         it from the cache) if an vtable upgrade is needed. In this way
6023         we make sure that other objects sharing the same remote class
6024         don't get the new vtable with unwanted interfaces.
6025         
6026         * object-internals.h:
6027         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
6028         
6029         * marshal.c: Track changes in mono_upgrade_remote_class().
6030
6031 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
6032         * icall.c: Add runtime methods for obtaining members of inflated
6033         class, which were created from supplied non-inflated members. It
6034         is used in internal Get{Method,Constructor,Field} methods in
6035         System.Type
6036
6037 2005-06-09  Martin Baulig  <martin@ximian.com>
6038
6039         * reflection.c
6040         (mono_reflection_bind_generic_method_parameters): Fix #75169.
6041
6042 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6043         * reflection.c (mono_image_basic_init): Define
6044         Version in MonoDynamicAssembly. 
6045         
6046 2005-06-08  Martin Baulig  <martin@ximian.com>
6047
6048         Fix #75136.
6049
6050         * loader.c
6051         (mono_method_signature_full): New public method; takes a
6052         `MonoGenericContext *'.
6053         (find_method): Use mono_method_signature_full() and pass the
6054         klass'es context to it.
6055
6056         * class.c (mono_class_is_inflated_method): Use
6057         mono_method_signature_full() and pass the context to it.
6058
6059 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
6060
6061         * object.c: add proper locking in mono_remote_class_vtable(),
6062         fixes possible memory corruption.
6063
6064 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
6065
6066         * marshal.c (mono_remoting_marshal_init): set
6067         initialized after initialization.
6068
6069 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
6070
6071         * locales.c : hush.
6072
6073 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
6074
6075         * object.c (extend_interface_array): fix really silly
6076         memory corrupting / comparison bug.
6077
6078 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6079
6080         * reflection.c: Functions added to support the creation
6081         of CustomAttributeData, which includes Attribute data
6082         used by ReflectionOnly methods.
6083
6084         * reflection.h:  mono_reflection_get_custom_attrs_data and
6085          mono_custom_attrs_data_construct added (functions exposed).
6086
6087          * icall.c: Added mono_reflection_get_custom_attrs_data
6088          as icall.
6089         
6090 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
6091
6092         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
6093         lupus's request.
6094
6095 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
6096
6097         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
6098
6099         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
6100         dynamic DllImportAttribute.
6101
6102         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
6103         dynamic DllImportAttribute.
6104
6105         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
6106         Fixes #75162.
6107
6108 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6109
6110         * threads.c: avoid segfault when an unstarted thread is aborted.
6111
6112 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
6113
6114         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
6115         Returns the name and version of the runtime for reporting.
6116
6117 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6118
6119         * appdomain.c: bump corlib version.
6120         * object-internals.h: new field in MonoReflectionAssembly.
6121
6122 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6123
6124         * object-internals.h: Carlos forgot to add this field.
6125
6126 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6127
6128         * icall.c: Added create_version to create instances
6129         of Version of MonoReflectionAssemblyName. This change helps
6130         the AssemblyName tests to keep running fine.
6131         
6132 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
6133   
6134         * object.c (mono_method_return_message_restore): A somehow less
6135         intrusive fix for #75138.
6136
6137 2005-06-03  Raja R Harinath  <rharinath@novell.com>
6138
6139         * object.c (mono_method_return_message_restore): Fix computation
6140         of expected number of out args.
6141
6142 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
6143
6144         * reflection.c (mono_image_get_method_info): Fix the case when the
6145         charset is empty.
6146
6147 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
6148
6149         * object.c: Added missing null check in
6150           mono_method_return_message_restore.
6151
6152 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
6153
6154         * reflection.c (mono_image_get_method_info): Handle the case when
6155         dllentry is empty.
6156
6157 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
6158
6159         * object.c: When creating the vtable for a proxy, take into account
6160         all inherited interfaces, not only the ones registered in
6161         iclass->interfaces. This fixs bug #74996.
6162         Also, in mono_method_return_message_restore, verify that the array
6163         of out args has the expected lengh.
6164
6165 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6166
6167         * socket-io.c: update the timeout in Poll when the call is interrupte.
6168
6169 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6170
6171         * socket-io.c: support abort/suspend in Select_internal after last
6172         change.
6173
6174 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6175
6176         * threadpool.c: remove warning.
6177
6178 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6179
6180         * icall.c:
6181         * socket-io.[ch]: Select_internal uses poll() now when available, thus
6182         removing the 1024 limit from select(). Runtime part of the fix for
6183         bug #71203.
6184
6185 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6186
6187         * socket-io.c: when resolving the addresses for the same
6188         host returned by gethostname(), get the local IPs from the interface
6189         list. Loopback addresses are discarded if the are interfaces up with
6190         non-loopback ones. Fixes bug #63265.
6191
6192 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
6193
6194         * appdomain.c, verify.c, object-internals.h, reflection.c:
6195         bumped corlib number to 36, and added new extra_flags field
6196         to ReflectionMethodBuilder and friends.  Fixes #75060.
6197
6198 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
6199
6200         * gc.c: register a new weak link only if the object is non-null
6201         (fixes bug#75047).
6202
6203 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
6204
6205         * culture-info.h : short time pattern too.
6206
6207 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
6208
6209         * culture-info.h : expand long time pattern string length.
6210
6211 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
6212
6213         * culture-info-table.h : update (more French date format; #72788).
6214
6215 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
6216
6217         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
6218         the method is static. Fixes #75029.
6219
6220 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
6221
6222         * reflection.c: Update the table_idx field of method builders after
6223         saving the module, since it can change. This is a workaround for
6224         bug #74914. 
6225
6226 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
6227
6228         * culture-info-table.h : update (additional French date format).
6229
6230 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
6231
6232         * icall.c (ves_icall_type_Equals): Revert last change.
6233         
6234         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
6235
6236         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
6237
6238 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
6239
6240         * class-internals.h: Added executioncontext_class field to 
6241         MonoDefaults structure.
6242         * domain.c: Cache System.Threading.ExecutionContext class in 
6243         mono_defaults.
6244         * object.c: Capture the ExecutionContext for asynchroneous calls in
6245          mono_async_result_new.
6246         * object-internals.h: Added execution_context and original_context 
6247         fields to MonoAsyncResult. Added execution_context to MonoThread.
6248         * security-manager.c|.h: Added mono_get_context_capture_method to 
6249         return the capture method (if required by the security manager or by
6250         the framework version used).
6251         * threadpool.c: Apply capture (if present) ExecutionContext in 
6252         mono_async_invoke and revert to original context after it completes.
6253
6254 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
6255
6256         * culture-info-table.h : updated (real hacky solution for zh-CHT).
6257
6258 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
6259
6260         * culture-info-table.h : zh-CHT related workaround.
6261
6262 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
6263
6264         * marshal.c (emit_marshal_custom): Add some error checking and call the
6265         methods in the ICustomMarshaler interface. Fixes #74875.
6266         
6267         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
6268         native->managed wrappers.
6269
6270 2005-05-12  Martin Baulig  <martin@ximian.com>
6271
6272         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
6273         here and use the loader lock.
6274
6275         * mono-debug.c: Properly lock when the debugger is not attached.
6276         (mono_debug_init): Release the initial lock if we're not running
6277         in the debugger.
6278
6279 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
6280
6281         * marshal.c (emit_marshal_custom): Pass through NULL values without
6282         calling the custom marshalling routines.
6283
6284         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
6285         conversion in structures. Fixes #74882.
6286
6287 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
6288
6289         * culture-info-table.h : zh-* cultures were missing.
6290
6291 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
6292
6293         * threads.c: Added a new event background_change_event which is signaled
6294         when a thread changes its background mode.
6295         Moved here several checks previously done in managed code. The checks
6296         require the thread lock, and using the thread lock in managed code
6297         can result in deadlocks.
6298         Merged Start_internal and Thread_internal into a single method. Now 
6299         Thread_internal does all work of creating and starting a thread.
6300         Added icalls for setting and getting the state of the object. Moved from
6301         managed code to avoid locking there.
6302         Added wait_for_tids_or_state_change() which is called instad of
6303         wait_for_tids when waiting for non-backround threads to end. This method
6304         will return if one of the threads ends or the background_change_event
6305         is signaled.
6306         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
6307         the background mode. This method signals the background_change_event
6308         event.
6309         * icall.c:
6310         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
6311         removed Start_internal.
6312         
6313 2005-05-11  Martin Baulig  <martin@ximian.com>
6314
6315         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
6316         to order of some fields to get proper alignment on 64-bit machines.
6317
6318 2005-05-11  Martin Baulig  <martin@ximian.com>
6319
6320         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
6321         changes as they're broken and completely fuck up the debugger.
6322
6323         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
6324
6325 2005-05-10  Martin Baulig  <martin@ximian.com>
6326
6327         * reflection.c (mono_reflection_generic_class_initialize): Don't
6328         call mono_class_setup_parent() here.
6329
6330 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6331
6332         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
6333         send/receive timeout use an integer in milliseconds. We were using a
6334         struct timeval.
6335
6336 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6337
6338         * locales.c:
6339         (internal_get_cultures): reserve the first slot of the array for the
6340         InvariantCulture, which will be filled in managed code.
6341
6342 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
6343
6344         * reflection.c (mono_image_fill_module_table): Initialize the
6345         GENERATION field as well.
6346
6347 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6348
6349         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
6350         Monitor.Enter on the object.
6351
6352 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
6353
6354         * threads.c: Enable the wait for running threads when exiting.
6355         * icall.c: Suspend all threads before exiting.
6356
6357 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
6358
6359         * assembly.c (mono_assembly_load_reference): Fix warning.
6360
6361 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6362
6363         * threadpool.c: changed the default number of threads per cpu. From now
6364         on, the default will be 20 + (5 * number of cpus) instead of 50.
6365
6366 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
6367
6368         * loader.c (mono_method_get_signature_full): Add locking here.
6369
6370 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
6371
6372         * appdomain.c: Moved methods for parsing and freeing assembly
6373         names to assembly.c.
6374         * assembly.c, domain-internals.h: Created public methods for parsing
6375         assembly names. Fixed mono_assembly_load_with_partial_name:
6376         it now finds the best match, taking into account the version,
6377         token and culture specified in the partial name. Also return
6378         the latest version if no version information is specified.
6379
6380 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
6381
6382         * threadpool.c: replace check for SocketAsyncCall class.
6383
6384 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6385
6386         * threadpool-internals.h:
6387         * Makefile.am: added threadpool-internals.h
6388
6389         * threadpool.c: call mono_unhandled_exception on exceptions not handled
6390         that happen in threadpool threads (tested on MS).
6391         (mono_thread_pool_remove_socket): new function that dispatch any pending
6392         AIO call on a socket that is closing. By now only epoll really needs it,
6393         as select/poll wake up when the socket closes.
6394
6395
6396         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
6397
6398 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
6399
6400         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
6401
6402 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
6403
6404         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
6405
6406 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
6407
6408         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
6409         has an abort request, convert it into a suspend request.
6410
6411 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
6412
6413         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
6414         warning for the usage of `UnmanagedFunctionPointerAttribute' which
6415         is not supported yet.
6416
6417 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6418
6419         * image.c: register assemblies loaded from data (bundles) in the loaded
6420         assemblies hash. Fixes bug #74772.
6421
6422 2005-04-29  Martin Baulig  <martin@ximian.com>
6423
6424         * class.c (mono_type_get_name_recurse): Update to the new naming
6425         schema from the latest .NET 2.x beta2.
6426         (mono_class_setup_vtable_general): If we're a generic instance,
6427         copy the vtable from our generic type definition and inflate all
6428         the methods in it.
6429
6430         * loader.c (find_method): Update to the new naming schema from the
6431         latest .NET 2.x beta2.
6432
6433 2005-04-29  Raja R Harinath  <harinath@gmail.com>
6434
6435         * class.c (mono_class_init): Add a mono_loader_unlock to the
6436         #74734 fix.
6437
6438 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
6439
6440         * icall.c (ves_icall_System_Environment_Exit): Remove the 
6441         suspend_all_other_threads () call for the time being, since it can hang.
6442
6443         * threads.c (mono_thread_manage): Similarly, disable the waiting for
6444         the background threads to exit, since it can also hang.
6445
6446         * class.c (mono_class_init): Applied patch from Ankit Jain 
6447         (radical@gmail.com). Avoid pending init errors when a field refers
6448         to a nested class using a typeref. Fixes #74734.
6449
6450         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
6451         this for dynamic modules.
6452
6453 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6454
6455         * threads.c: don't wait for threads that are in the process of aborting
6456         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
6457         and waiting for background threads to finish. This makes xsp and
6458         mod-mono-server exit without random length delays and/or hangs.
6459
6460 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6461
6462         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
6463
6464 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
6465
6466         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
6467         dynamic types to prevent infinite loops. Fixes #74727.
6468
6469         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
6470         ..._is_assignable_to.
6471
6472 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
6473
6474         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
6475
6476 2005-04-25  Martin Baulig  <martin@ximian.com>
6477
6478         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
6479
6480         * domain.c
6481         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
6482
6483         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
6484
6485         * reflection.c (build_compressed_metadata): Set metadata header
6486         version to 2.0.
6487
6488 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
6489
6490         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
6491         number into an integral and a decimal part. Fixes #70473.
6492
6493         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
6494
6495 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
6496
6497         * culture-info-table.h : reflected the latest locale-builder output.
6498
6499 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6500
6501         * threadpool.c: check for SuspendRequested too when deciding if
6502         mono_thread_interruption_checkpoint should be called.
6503
6504 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6505
6506         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
6507         * threads.c: remove interruption_mutex and use Interlocked instead. When
6508         suspending all the threads, wait for all the suspended events at once.
6509         If we're shutting down and get an APC that is going to be queued,
6510         call mono_thread_execute_interruption immediately, as the thread might
6511         be sleeping on a pthread condition or mutex.
6512
6513         * icall.c: call mono_runtime_set_shutting_down before suspending the
6514         threads.
6515
6516         Fixes bug #74693. And now xsp is happier when exiting.
6517
6518 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
6519
6520         * loader.c (mono_stack_walk): Fix #74690.
6521
6522 2005-04-22  Martin Baulig  <martin@ximian.com>
6523
6524         * mono-debug.h (MonoDebugMethodJitInfo): Added
6525         `MonoDebugMethodJitInfo *jit'.
6526
6527         * mono-debug.c (mono_debug_read_method): Cache the
6528         MonoDebugMethodJitInfo in `address->jit'.
6529         (mono_debug_free_method_jit_info): New public method.
6530
6531 2005-04-22  Martin Baulig  <martin@ximian.com>
6532
6533         * class.c (mono_class_is_assignable_from): Disallow
6534         type parameter -> interface.
6535
6536 2005-04-21  Dick Porter  <dick@ximian.com>
6537
6538         * threads.c (mono_thread_create): Turn an assertion into an error.
6539
6540 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
6541
6542         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
6543         
6544         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
6545         Fix some gcc 4.0 warnings.
6546
6547 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
6548
6549         * file-io.c: fix alt dir separator char on unix systems
6550         and cleanup (fixes bug #71214).
6551
6552 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
6553
6554         * marshal.c: Use CALLVIRT instead of CALL when dispatching
6555         a call to a remote domain, since the method may be an
6556         interface method in the client domain. This fixes bug #74192.
6557
6558 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6559
6560         * threadpool.c: recv/send are now performed before going back to managed
6561         code to save one transition.
6562
6563 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6564
6565         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
6566
6567         * metadata/threadpool.c: removed hack to workaround the bug above.
6568
6569         Fixes bug #74618.
6570
6571 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
6572
6573         * reflection.c reflection.h: Fix handling of parameter defaults in
6574         dynamic methods. Also fixes handling of parameter attributes.
6575         Fixes #74609.
6576
6577         * mono-debug.c (mono_debug_close_image): Fix warning.
6578
6579 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6580
6581         * socket-io.h: replaced old unused field with new 'blocking'.
6582         * threadpool.c: restore socket blocking state on windows(tm).
6583
6584 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
6585
6586         * icall.c: don't return the codebase in the AssemblyName[] returned by
6587         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
6588         * object-internals.h: Removed FIXME (fields were presents) and fixed
6589         versioncompat declaration.
6590
6591 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6592
6593         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
6594         not closed, so don't cleanup when it happens.
6595
6596 2005-04-13  Chris Toshok  <toshok@ximian.com>
6597
6598         * mono-debug-debugger.h: change prototype for
6599         mono_debugger_lookup_type.
6600
6601         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
6602         this function, although it should probably be named
6603         mono_debugger_init_type.
6604
6605 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6606
6607         * threadpool.c: fix non-AIO case.
6608
6609 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
6610
6611         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
6612         the built-in profiler to measure just JIT compilation times.
6613
6614 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6615
6616         * threadpool.c: the epollfd might be closed by another thread at
6617         any time, so ignore EBADF at treat it as a "we're closing" sign.
6618
6619 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6620
6621         * threadpool.c: release the semaphores with a count equals to the number
6622         of working threads in both IO and regular pools. Fixed typo that messed
6623         up the count of IO pool threads. Don't initialize the pipe handles if
6624         we're using epoll.
6625
6626 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6627
6628         * threadpool.c: some systems don't like a NULL when deleting the socket
6629         from epoll.
6630
6631 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6632
6633         * threadpool.c: fix semaphore allocation.
6634
6635 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6636
6637         * threadpool.c: added epoll() based implementation for asynchronous IO
6638         that is used instead of the default poll() when available.
6639         It can be disabled by setting MONO_DISABLE_AIO.
6640
6641 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6642
6643         * threadpool.c: windows needs 'closesocket' and instead of returning
6644         0 when the stream is closed while in select, it returns -1. Fixes bug
6645         #74573.
6646
6647 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
6648
6649         * class.c (class_compute_field_layout): Fix the regression caused by
6650         the previous try.
6651
6652 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6653
6654         * threadpool.c: separate pool for socket async. IO.
6655         * threadpool.h: mono_max_worker_threads is not a global any more.
6656
6657 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
6658
6659         * class.c (class_compute_field_layout): Fix #74549.
6660
6661 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6662
6663         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
6664         use 2 connected sockets instead.
6665
6666 2005-04-08  Miguel de Icaza  <miguel@novell.com>
6667
6668         * mono-config.c: Add new entry point for mkbundle
6669         mono_config_parse_memory. 
6670
6671 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6672
6673         * threadpool.c: removed another unused function.
6674
6675 2005-04-08  Ankit Jain  <radical@corewars.org>
6676
6677         * reflection.c (get_default_param_value_blobs): Add 'types'
6678         parameter to get the types encoded in the constant table.
6679         (mono_param_get_objects): Use the type from the constant table,
6680         not the type of the parameter, when creating default values.
6681         Handle null default values correctly.
6682
6683 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6684
6685         * file-io.c:
6686         * file-io.h:
6687         * threadpool.c:
6688         * threadpool.h:
6689         * icall.c:
6690         * socket-io.c: removed dead code for async IO.
6691
6692 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6693
6694         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
6695
6696         * threadpool.c: intercept socket async. calls and pass them to a thread
6697         that is polling and dispatching the job items to the threadpool as
6698         socket become ready. Fixes bugs #71217, #71933.
6699
6700         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
6701         between char and short/ushort arrays.
6702
6703         * socket-io.c: remove dead code.
6704
6705 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6706
6707         * locales.c,
6708           icall.c : removed InternalToUpper_Comp() and
6709           InternalToLower_Comp().
6710
6711 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6712
6713         * char-conversions.h : The tables were incorrectly generated. Should
6714           be generated against invariant culture.
6715
6716 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
6717
6718         * object.c (mono_runtime_invoke_array): Fix return value when 
6719         passing pre-created valuetype objects to ctors.
6720
6721         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
6722         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
6723         Fixes #74338.
6724
6725 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
6726
6727         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
6728         only used with --security and hides the wrong corlib version error.
6729
6730 2005-03-30  Joshua Tauberer  <tauberer@for.net>
6731
6732         * class.c: Changed mono_class_name_from_token so that types
6733         outside of a namespace don't have an initial period.  Improved
6734         the g_warning message used in _mono_class_get when loading
6735         fails.
6736         * assembly.c: In mono_assembly_load_reference, when an assembly
6737         can't be found, "No such file or directory" is misleading and
6738         unhelpful because a few paths were checked for the presence of
6739         the assembly.  When that happens (ENOENT), display a nicer
6740         message indicating the directories that were searched.  In all
6741         cases, the warning is made easier to read for non-hackers.
6742
6743 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
6744
6745         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
6746         project/solution.
6747         * appdomain.h|domain.c: Removed inline from functions.
6748         * appdomain.c: Reduced warnings when compiling on windows.
6749         * icall.c: Fixed output_debug declaration to gunichar2*.
6750         * mono-config.c: Reduced warnings when compiling on windows.
6751         * rand.c: Added missing "windows.h". Added missing return value.
6752         * rawbuffer.c: Added missing winsock2.h for windows.
6753         * sysmath.h: Added mono-compiler.h header to allow/ease 
6754         compilation with non-GCC compilers.
6755         * threads.c: Fixed declarations to compile with VS.NET C compiler.
6756         Removed cast warnings.
6757
6758         Adapted from the work of J Lothian (for VC6).
6759
6760 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
6761
6762         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
6763         from default_path.
6764
6765 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
6766
6767         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
6768         the 2.0 profile.
6769
6770 2005-03-27  Raja R Harinath  <harinath@gmail.com>
6771
6772         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
6773         has to be in $(exec_prefix).  $(prefix) is for arch-independent
6774         stuff, and it would probably use $(prefix)/share rather than
6775         $(prefix)/lib.
6776
6777 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6778
6779         * console-io.c: added 2 includes that might be missing.
6780
6781 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
6782
6783         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
6784         profile.
6785
6786         * reflection.c (create_custom_attr): Allocate the params array using
6787         alloca so it gets GC tracking.
6788
6789 2005-03-23  Chris Toshok  <toshok@ximian.com>
6790
6791         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
6792         out some spew.
6793
6794 2005-03-24  Raja R Harinath  <rharinath@novell.com>
6795
6796         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
6797         changes to pick up any changes in prefix, etc.
6798
6799 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6800
6801         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
6802         
6803         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
6804         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
6805
6806 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6807
6808         * class-internals.h object-internals.h class.c reflection.c: Extend the
6809         mono_lookup_dynamic_token () function to return the class of the
6810         token as well. 
6811
6812         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
6813         well. Fixes #73848.
6814
6815 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
6816
6817         * security-manager.c: Skip inheritance checks for intra-corlib
6818         class inheritance and method overrides. This skips a lot of checks
6819         and (anyway) permissions cannot work until corlib is loaded.
6820
6821 2005-03-23  Martin Baulig  <martin@ximian.com>
6822
6823         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
6824         MONO_TYPE_GENERICINST.  
6825
6826 2005-03-23  Martin Baulig  <martin@ximian.com>
6827
6828         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
6829
6830 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6831
6832         * class.c: added locking comments to some functions.
6833         Cache the interface offsets arrays (saves about 20 KB
6834         of runtime memory in a typical app).
6835         Reduce the time overhead in mono_class_setup_supertypes ().
6836
6837 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6838
6839         * icall.c: speedup and fix leaks in GetMethodsByName and
6840         GetPropertiesByName.
6841
6842 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6843
6844         * reflection.c: some locking fixes.
6845
6846 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6847
6848         * metadata.c: added missing break in case statement.
6849
6850 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6851
6852         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6853         typedbyref return values. Fixes #73941.
6854
6855 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6856
6857         * security-manager.c|h: Added demandunmanaged method and 
6858         suppressunmanagedcodesecurity class to MonoSecurityManager.
6859         Renamed aptc class to allowpartiallytrustedcallers.
6860
6861 2005-03-17  Martin Baulig  <martin@ximian.com>
6862
6863         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6864
6865 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6866
6867         * file-io.c: disabled file async. IO using aio_*. It uses the
6868         threadpool now. Workaround for bug #73718.
6869
6870 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6871
6872         * assembly.h, mono-config.c: added code to deal with bundled configs
6873         for bundled assemblies.
6874
6875 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6876
6877         * *.c, private.h: cleanup, removing old private.h header file.
6878
6879 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6880
6881         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6882         and throw_on_unmappable_char attributes.
6883
6884 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6885
6886         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6887         _ProcessName_internal.
6888
6889 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6890
6891         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6892         #73631.
6893
6894         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6895         are no longer used.
6896
6897 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6898
6899         * object.c (compute_class_bitmap): Add support for generics. Fixes
6900         #73527.
6901
6902 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6903
6904         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6905
6906 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6907
6908         * filewatcher.c: commented out the code for windows watcher, as we don't
6909         use it (we use the managed implementation instead).
6910
6911 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6912
6913         * object-internals.h (MonoThread): Remove 'unused1' field.
6914
6915         * appdomain.c: Bump corlib version.
6916
6917         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6918
6919         * reflection.c (mono_reflection_create_runtime_class): Remove the
6920         AssemblyBuilder.Save optimization since it causes too many problems.
6921
6922 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6923
6924         * exception.c|h: Added mono_get_exception_reflection_type_load to
6925         create a ReflectionTypeLoadException object.
6926         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6927         to return NULL is a InheritanceDemand fails during reflection. Updated
6928         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6929         ReflectionTypeLoadException if an InheritanceDemand fails during 
6930         reflection. Added icall mapping for GetLinkDemandSecurity.
6931         * security-manager.c|h: Added ves_icall_System_Security_
6932         SecurityManager_GetLinkDemandSecurity internal call to return the
6933         class and methods permissions set for a LinkDemand. Removed unused
6934         fields in MonoSecurityManager.
6935
6936 2005-03-10  Martin Baulig  <martin@ximian.com>
6937
6938         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6939         it's a generic instance.
6940
6941 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6942
6943         * reflection.c (mono_get_object_from_blob): Applied patch from
6944         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6945
6946         * class.c (mono_class_is_assignable_from): Another try at fixing 
6947         #73469 without breaking anything.
6948
6949 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6950
6951         * class.c: (mono_class_is_assignable_from): Revert the last changes
6952         since they don't work with generics.
6953         
6954         * class.c (mono_class_is_assignable_from): Fix build bustage.
6955
6956         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6957         the managed IsAssignableFrom method. Fixes #73469.
6958
6959         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6960         function.
6961
6962 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6963
6964         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6965         memory when the remoting callback does not sets the out arguments.
6966         Fixes #73007.
6967
6968         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6969         by mistake.
6970
6971         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6972
6973         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6974
6975         * appdomain.c: Bump corlib version.
6976
6977 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6978
6979         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6980         function.
6981
6982         * threads.c (mono_thread_attach): Detect threads which are not started
6983         by the GC pthread wrappers.
6984
6985 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6986
6987         * icall.c: Added new icall for RNG.
6988         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6989         single handle on Linux to access /dev/urandom and fix #73183.
6990
6991 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6992
6993         * object.c: setting the new vtable in a transparent proxy object must
6994         not change the GC descriptor.
6995
6996 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6997
6998         * object.c: fixed compilation without GCJ support.
6999         * reflection.c: for runtime-created types ensure klass->has_references
7000         is correct (bug #73215).
7001
7002 2005-03-02  Martin Baulig  <martin@ximian.com>
7003
7004         * class.c (mono_class_is_assignable_from): Make this work if
7005         `oklass' is a generic instance; fixes #72831.
7006
7007 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
7008
7009         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
7010         with hasthis set.
7011         
7012         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
7013
7014         * marshal.c: Reorganize native->managed marshalling code to also use
7015         the emit_marshal_... functions.
7016
7017 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
7018
7019         * object.c: typed allocs have issues with bitmap sizes > 30,
7020         so check for max_set >= 30.
7021
7022 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
7023
7024         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
7025         managed code. Fixes #73012.
7026
7027         * metadata.h (MonoMarshalSpec): Add elem_mult field.
7028
7029         * metadata.c reflection.c: Load/Emit elem_mult as well.
7030         
7031         * metadata.h (MonoMarshalSpec): Add comment.
7032
7033         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
7034
7035         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
7036         num_elem to -1 if not given.
7037
7038         * object-internals.h (MonoReflectionMarshal): Add has_size field.
7039
7040         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
7041         given values.
7042
7043 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
7044
7045         * null-gc.c (mono_gc_free_fixed): Was not compilable.
7046
7047 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
7048
7049         * reflection.c (encode_marshal_blob): Encode param_num field as well.
7050
7051         * object-internals.h (MonoReflectionMarshal): Add param_num field.
7052
7053 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
7054
7055         * object.c: generalized the reference bitmap creation
7056         and added hooks for the new GC.
7057         * class-internals.c: removed the gc_bitmap field from MonoClass.
7058
7059 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7060
7061         * domain.c: help the compiler to produce better code
7062         in mono_jit_info_table_find ().
7063
7064 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
7065
7066         * object.c: make all allocations look typed.
7067
7068 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7069
7070         * socket-io.c: load Mono.Posix if it's not loaded already
7071         (fixes bug#73033).
7072
7073 2005-02-24  Martin Baulig  <martin@ximian.com>
7074
7075         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
7076         * reflection.c (dup_type): Likewise.
7077
7078 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
7079
7080         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
7081         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
7082
7083 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7084
7085         * domain.c, threads.c, object-internals.h: make the critical thread
7086         local vars use the fast access mode (even when we're compiled in
7087         a lib). Provide accessors to be used by the jit during codegen.
7088
7089 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7090
7091         * appdomain.c: Changed hook functios behavior to include
7092         support for the reflection only assemblies. Some icalls were changed
7093         to support the mentioned assemblies too. Signatures of static methods
7094         try_assembly_resolve and real_load now have an additional parameter:
7095         refonly.
7096
7097         * assembly.c: General changes to mono_assembly_ methods to support
7098         reflection only api. Functions mono_assembly_open, mono_assembly_load,
7099         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
7100         suffix, to support an additional gbool parameter to specify whether
7101         the assembli is reflection only or not. Created some new hook functions 
7102         to add support for reflection only assemblies. Signatures of static 
7103         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
7104         have now an additional parameter: refonly.
7105
7106         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
7107         indicating whether the assembly is reflection only or not.
7108
7109         * exception.c: Add mono_get_exception_invalid_operation.
7110
7111         * icall.c: Throw an InvalidOperationException when trying to invoke
7112         a property/method/event, or trying to set/get the value of a field.
7113         Also add an icall to retrieve the ref_only flag to the
7114         MonoReflectionAssembly.
7115
7116 2005-02-23  Chris Toshok  <toshok@ximian.com>
7117
7118         Part of fix for #72827.
7119         * mono-debug.c (mono_debug_add_method): add lexical block data to
7120         the info we write.  Kind of a hack at the moment - we copy the
7121         lexical block info from the MonoDebugMethodInfo to the
7122         MonoDebugMethodJitInfo here, before writing it.
7123         (mono_debug_read_method): read the lexical block info.
7124
7125         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
7126
7127         * debug-mono-symfile.h: add lexical block support.
7128
7129         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
7130         support.
7131
7132 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
7133
7134         * loader.c (mono_lookup_pinvoke_call): Fix warning.
7135
7136         * object.c (mono_runtime_free_method): Call mono_free_method () and
7137         put the TODOs there.
7138
7139         * loader.c (mono_free_method): Free up most memory allocated for 
7140         dynamic methods.
7141
7142 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7143
7144         * reflection.c: properly flag a Type argument to a
7145         named custom attr value (bug #72248).
7146
7147 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7148
7149         * reflection.c: reduce code duplication in named custom
7150         attribute encoding.
7151
7152 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
7153
7154         * reflection.c: properly encode custom attrs of type object
7155         (bug #72649).
7156
7157 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
7158
7159         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
7160
7161 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
7162
7163         * socket-io.c: load System.dll if it's not loaded already
7164         (bug #72850 and #70477).
7165
7166 2005-02-21  Martin Baulig  <martin@ximian.com>
7167
7168         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7169         generic instances.
7170
7171 2005-02-21  Martin Baulig  <martin@ximian.com>
7172
7173         * reflection.c (mono_image_build_metadata): We also need to
7174         "fixup" the MethodImpl table after we computed the final method
7175         indices.  Call fixup_methodimpl() to do that.
7176         (fixup_methodimpl): New private method.
7177
7178 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
7179
7180         * assembly.c: special case mscorlib.dll (bug#72536),
7181         patch from Carlos Alberto Cortez.
7182
7183 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
7184
7185         * threads-types.h threads.c: Fix build bustage.
7186
7187         * threads.c: Use a union for long<->double conversions.
7188
7189         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
7190         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
7191
7192         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
7193         containing the checkpoint call with NOT_TAKEN.
7194         
7195         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
7196         checkpoint before pushing the arguments, so they won't have to be
7197         spilled to stack.
7198
7199 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7200
7201         * domain.c, assembly.c, domain-internals.h: make some data
7202         const and relocation-free.
7203
7204 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
7205
7206         * object.c, appdomain.c, class-internals.h: introduce the
7207         MonoClassRuntimeInfo structure to hold the info needed to
7208         use a class at runtime. Made mono_class_vtable() lock-free
7209         for all the appdomains.
7210
7211 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
7212
7213         * metadata-internals.h, image.c: introduce a per-image mempool to
7214         be used for memory that has the same lifetime as the image.
7215
7216 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
7217
7218         * domain.c: In mono_init_internal(), instead of selecting the first
7219         runtime version supported by an executable, get a list of all
7220         supported versions and select the one for which an mscorlib exists
7221         (since even if the runtime supports a given version, it doesn't mean
7222         that the framework for that version is installed).
7223         Modified get_runtimes_from_exe to support this behavior.
7224         In supported_runtimes, added information about additional system
7225         assembly versions.
7226         
7227         * assembly.c: Added support for more than one system assembly version
7228         per runtime version. Updated the assembly list.
7229         In mono_assembly_remap_version, removed the initial version check,
7230         since we don't know to which version we need to compare until we
7231         get the version set on which the assembly is based.
7232         Moved the code for loading corlib into the new method
7233         mono_assembly_load_corlib(), so it can be used by the initialization
7234         code.
7235         
7236         * domain-internals.h: Updated data structures and added declaration
7237         for mono_assembly_load_corlib.
7238
7239 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
7240
7241         * reflection.c (resolve_object): Fix the creation of the signature in 
7242         the SignatureHelper case.
7243
7244         * assembly.c (mono_assembly_remap_version): Fix binary search.
7245         
7246 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
7247  
7248         * class.c: Added inheritance check when a method is overloaded (from a
7249         virtual method or when implementing an interface) and when a class is
7250         inherited. Added functions to set a failure for a class and to 
7251         retreive the exception from a failure.
7252         * class-internals.h: Added fields to MonoClass to keep the exception
7253         information status for inheritance (or other exceptions) to be thrown
7254         later (i.e. not at load time).
7255         * object.c: Throw the inheritance SecurityException when a type is to 
7256         be created with either class or method inheritance violations.
7257         * reflection.c|h: Fix when getting declsec from a class. Removed 
7258         unrequired code for class. Improved sanity in parameter naming.
7259         * security-manager.c|h: Added functions to check for class and method
7260         inheritance.
7261
7262 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
7263
7264         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
7265         and has_finalize in dynamic types as well.
7266
7267 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
7268
7269         * culture-info-table.h : fixed currency format for en-GB (and so on).
7270
7271 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
7272
7273         * gc.c: ensure the GC handles never have 0 as a value.
7274
7275 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
7276
7277         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
7278         a pointer to a struct to unmanaged code. Fixes #72625.
7279
7280 2005-02-16  Martin Baulig  <martin@ximian.com>
7281
7282         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
7283
7284 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
7285
7286         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
7287
7288 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
7289
7290         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
7291
7292         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
7293         UnmanagedFunctionPointerAttribute, use it for determining calling convention
7294         etc. Fixes #71471.
7295
7296         * reflection.c (mono_custom_attrs_get_attr): New helper function.
7297
7298         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
7299
7300 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
7301
7302         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
7303         changes to make the current context a field in MonoThread.
7304
7305 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
7306
7307         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
7308         the last change.
7309         
7310         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
7311         extracted from mono_marshal_get_native_wrapper.
7312
7313         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
7314         to create wrappers around native functions.
7315
7316         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
7317         delegates for arbitrary function pointers. Fixes #71472.
7318
7319 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7320
7321         * threads.c: cleaned up the code a little.
7322
7323 2005-02-15  Martin Baulig  <martin@ximian.com>
7324
7325         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
7326         the data table.
7327
7328         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
7329         allocate larger chunks if needed.
7330
7331 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
7332
7333         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
7334         in by mistake.
7335
7336 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
7337
7338         * domain.c: keep the domains in an array and ensure the domain ids
7339         are kept small, so they can be used as indexes to domain-specific data
7340         with a small memory overhead.
7341
7342 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
7343
7344         * icall.c: Handle byref types in Type icalls. Fixes #72544.
7345
7346 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
7347
7348         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
7349
7350 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
7351
7352         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
7353
7354         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
7355         values.
7356
7357         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
7358         
7359 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
7360
7361         * domain-internals.h: add the hashtable here.
7362
7363         * class-internals.h: Remove `info' from MonoMethod
7364
7365         * domain.c: Add a new hashtable, jit_trampoline_hash
7366
7367 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7368
7369         * object.c: don't set the value of static fields
7370         (fixes bug#72494).
7371
7372 2005-02-11  Martin Baulig  <martin@ximian.com>
7373
7374         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
7375         (mono_debug_add_method): Silently ignore the method if it's too big.
7376         (mono_debug_add_type): Likewise.
7377
7378 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
7379
7380         * threads.c, appdomain.c: remove #ifdefs from the code.
7381
7382 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
7383
7384         * metadata-internals.h: Added flags to MonoAssembly to cache the most
7385         common security informations. This allows us to stay in unmanaged code
7386         when doing LinkDemand and it's special cases (except for the first 
7387         time for initialization). The flags a very much used with --security.
7388         * reflection.c|h: Added code to get declarative security attributes 
7389         for LinkDemand and InheritanceDemand. This required to refactor the
7390         existing code for Demand.
7391         * security-manager.c|h: Added new method fields for the special cases
7392         of LinkDemand.
7393
7394 2005-02-10  Martin Baulig  <martin@ximian.com>
7395
7396         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
7397         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
7398
7399 2005-02-10  Martin Baulig  <martin@ximian.com>
7400
7401         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
7402         debugging code; this is almost a complete rewrite.
7403
7404         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
7405
7406 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7407
7408         * domain.c, object.h: expose mono_string_equal () and 
7409         mono_string_hash ().
7410         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
7411         it's implemented in managed code.
7412
7413 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7414
7415         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
7416         lo leak objects between appdomains.
7417
7418 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7419
7420         * assembly.c: old compilers compilation fix from 
7421         robertj@gmx.net (Robert Jordan).
7422
7423 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
7424
7425         * class-internals.h: Little reminder for the future.
7426
7427         * debug-helpers.c: Fix up wrapper_type_names
7428
7429 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7430
7431         * image.c, metadata-internals.h: when loading an image from a file,
7432         mmap all of it and use the same codepaths as when using a
7433         in-memory image: the code is simpler and we use less memory
7434         (both writable and readonly).
7435
7436 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
7437
7438         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
7439         API to alloc runtime data structures that need to be tracked by the
7440         GC and contain pointers.
7441         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
7442         make the code more readable and eventually use a different GC.
7443
7444 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
7445
7446         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
7447         for out arguments.
7448         
7449 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
7450
7451         * object.c: In release_type_locks(), don't release the cctor lock
7452         if it has already been released. This fixes a crash in the
7453         thread5 test.
7454
7455 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7456
7457         * gc.c, marshal.c, icall.c: register a delegate for finalization
7458         only when the native function pointer has been allocated for it.
7459
7460 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7461
7462         * object.c: cleaned up some code, allocate objects that are
7463         pointer free with the atomic malloc variant. Allocate memory
7464         for static data from the mempool if it's pointer-free.
7465         Allocate the bounds array at the end of the array data, when needed.
7466         * object-internals.h, object.h: move a private function in a private
7467         header.
7468         * class.c: handle missing case in tracking references in fields.
7469
7470 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
7471
7472         * class.c, class-internals.h: keep track if a type has
7473         reference fields in either the instance or static fields.
7474
7475 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
7476
7477         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
7478         and renamed to MonoRuntimeInfo. Added fields to store the expected
7479         framework assembly version. Changed mono_get_framework_version and
7480         mono_get_runtime_version for a single mono_get_runtime_info method.
7481         
7482         * assembly.c: Added method to remap system assembly versions to the
7483         current executing runtime version. Removed old mapping code.
7484         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
7485         
7486         * icall.c, reflection.c: Track api changes.
7487
7488 2005-02-06  Miguel de Icaza  <miguel@novell.com>
7489
7490         * loader.c (method_from_memberref): Improve error reporting,
7491         produce the class name instead of the typeref/typedef index. 
7492
7493 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
7494
7495         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
7496
7497 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7498
7499         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
7500         stdcall and charset name mangling.  Reorganize the code and add
7501         some tracing stuff.
7502
7503 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
7504
7505         * monodiet.c: More iters!
7506
7507         * marshal.c: Iter usage.
7508
7509         * icall.c: Iter usage.
7510
7511         * object.c: Use iters.
7512
7513         * debug-helpers.c: More iters
7514
7515 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7516
7517         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
7518         under win32.
7519
7520 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
7521
7522         * mono-debug-debugger.c: use iters
7523
7524         * class.c, class-internals.h: mono_class_setup_events is static
7525         now
7526
7527         * All callers: use iters
7528
7529 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7530
7531         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
7532         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
7533
7534 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7535
7536         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
7537
7538         * marshal.h: Add prototypes for ldfld/stfld_remote.
7539
7540         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
7541         this is called during startup.
7542         
7543 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
7544
7545         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
7546         MonoThreadsSync struct private in monitor.c. Changed the way
7547         MonoThreadsSync is allocated so it's faster and there is no
7548         need to keep track of it with a finalizer and it uses less memory.
7549         This also finally allows us to allocate mono objects as ptrfree when
7550         there are no reference fields.
7551
7552 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
7553
7554         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
7555         disappearing link to the GC interface and use them to simplify
7556         the gchandles code.
7557
7558 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7559
7560         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
7561         stfld_remote which call mono_load/store_field_new. This allows methods
7562         calling ldfld/stfld wrappers to be AOTed.
7563
7564         * console-io.c: Include sys/filio.h under solaris.
7565         
7566         * console-io.c: Include curses.h if needed correctly.
7567
7568 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7569         
7570         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
7571         method->klass as well.
7572
7573         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
7574
7575         * class.c (mono_class_init): Switch on lazy initialization of 
7576         methods.
7577
7578         * class.c (mono_class_get_finalizer): Handle the case when the 
7579         finalizer is inherited.
7580
7581 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7582
7583         * console-io.c: <curses.h> is needed by term.h on solaris.
7584
7585 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
7586
7587         * icall.c, class-internals.h, monodiet.c, class.c: Remove
7588         mono_class_setup_properties where possible. Remove this ftn from
7589         the header file, and make it static.
7590
7591 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7592
7593         * loader.c: Add missing setup_... call.
7594
7595         * class.c: Add missing setup_... calls.
7596
7597         * class.c (mono_class_init): Switch on lazy initialization of 
7598         the generic vtable.
7599         
7600         * class.c (mono_class_init): Fix generics broken by the recent changes.
7601
7602         * monodiet.c (handle_type): Add missing setup_... calls.
7603
7604         * class.c: Back out garbage in previous patch.
7605         
7606         * class.c: Add missing setup_... calls.
7607
7608         * class.c (mono_class_get_method_from_name_flags): Avoid calling
7609         mono_class_setup_methods () if possible.
7610
7611         * class-internals.h (MonoClass): Add 'has_cctor' flag.
7612
7613         * class-internals.h (MonoCachedClassInfo): New structure.
7614
7615         * class.c: Initialize properties and events fields of MonoClass lazily.
7616
7617         * class.c: Add infrastructure for lazily initializing the methods and
7618         vtable fields of MonoClass. Not yet used.
7619
7620         * class.c (mono_class_get_finalizer): New helper function.
7621
7622         * class.c: Add infrastructure for loading some class related data from
7623         an AOT file.
7624
7625         * object.c: Add infrastructure for initializing the vtable from data
7626         in the AOT file.
7627
7628         * gc.c (run_finalize): Use mono_class_get_finalizer ().
7629
7630         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
7631         appropriate initialization function before accessing parts of the
7632         MonoClass structure.
7633
7634         * marshal.c: Fix warnings.
7635         
7636         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
7637
7638         * mono-debug-debugger.c (get_exception_message): Use 
7639         mono_class_get_method_from_name_flags ().
7640
7641 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
7642
7643         * reflection.c, appdomain.c: Replace a few manual searches that
7644         Zoltan missed. (Paolo approved this part of my initial patch).
7645
7646 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
7647
7648         * profiler.c: disable recording statistical events at report time.
7649
7650 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7651
7652         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
7653         to byteswap arrays of enum values, too (bug #72080).
7654
7655 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
7656
7657         * appdomain.c (set_domain_search_path): Allow this to be called if
7658         domain->setup is not yet set.
7659
7660         * loader.c (mono_method_get_index): New helper function.
7661
7662         * loader.c reflection.c: Use mono_method_get_index ().
7663
7664         * class.c (mono_class_get_method_from_name_flags): New helper method.
7665
7666         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
7667         this.
7668
7669         * class.c (mono_class_get_cctor): New helper method.
7670
7671         * string-icalls.c object.c class.c marshal.c reflection.c: Use
7672         mono_class_get_method () to look up methods.
7673
7674 2005-02-01  Miguel de Icaza  <miguel@novell.com>
7675
7676         * console-io.c: Fix the build, this should work on Windows.
7677
7678 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
7679
7680         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
7681         be set to null to keep things valid
7682
7683 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7684
7685         * icall.c: added Console 2.0 icalls.
7686         * Makefile.am: added console-io.[ch]
7687         * console-io.[ch]: internal calls for Console 2.0 API.
7688
7689 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7690
7691         * class.c: make sure we consider all the interfaces
7692         when calculating max_interface_id (bug found by
7693         Jeroen Frijters running ikvm).
7694
7695 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
7696
7697         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
7698         valuetype fields to null.
7699
7700         * object.c (set_value): Ditto. Fixes #71669.    
7701
7702 2005-01-31  Martin Baulig  <martin@ximian.com>
7703
7704         * metadata.c (mono_metadata_has_generic_params): New public
7705         function; checks whether something is a generic method.
7706
7707 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
7708
7709         * appdomain.c: fix infinite recursion when adding assemblies.
7710
7711 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
7712
7713         * object.c: Fix small typo to return all items for Environment.
7714         GetCommandLineArgs.
7715
7716 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7717
7718         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
7719         reflection.c: more domain and assembly-unload related fixes
7720         and memory leaks plugs.
7721
7722 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
7723
7724         * 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.
7725
7726 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
7727
7728         * loader.c (mono_method_signature): Make this method lazy
7729         (mono_get_method_from_token): Don't computate the signature here.
7730
7731         Doing this saves quite a bit of memory. I got 90 kb on starting up
7732         monodoc. It should also save some disk reads on startup.
7733
7734         * *: MonoMethod->signature might be NULL now. You *MUST* use
7735         mono_method_signature.
7736
7737 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
7738
7739         * object.c (mono_runtime_get_main_args): Return an array from the
7740         current domain here. Fixes #71938.
7741
7742 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
7743
7744         * monitor.c: formatting changes to comply with the
7745         mono coding style and remove #ifdefs from the code.
7746
7747 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7748
7749         * metadata.c, private.h: remove some unneeded data
7750         and use a more compact representation for table schemas.
7751
7752 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
7753
7754         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
7755         to get a better distribution in hash tables.
7756         * *.c: use mono_aligned_addr_hash() where appropriate.
7757         * assembly.c: make var static.
7758
7759 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
7760
7761         * domain-internals.h: Put MonoJitInfo on a diet.
7762
7763         * domain.c: Fix a warning.
7764
7765 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7766
7767         * gc.c: rework the gc handles code to reuse handles
7768         when freed.
7769
7770 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7771
7772         * domain.c: fixed long standing bug in mono_string_equal() which
7773         was brought to light with the ldstr changes.
7774
7775 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
7776
7777         * reflection.c: Remove warning by adding missing include for marshal.h
7778
7779 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7780
7781         * domain.c, object.c: change the ldstr_table to hold
7782         MonoString* as keys: makes the runtime isinterned lookup
7783         faster and simplifies memory management.
7784
7785 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
7786  
7787         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
7788         possible to add imperative security checks before calling the icall.
7789         * reflection.c: Return security attributes on the original MonoMethod
7790         (and not the wrapped one). This fix permissions on icalls.
7791
7792 2005-01-25  Dick Porter  <dick@ximian.com>
7793
7794         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
7795         the check for mktime() support actually test the mktime() return
7796         value.  "Fixes" bug 71682, though the output is still different to
7797         MS.
7798
7799 2005-01-25  Martin Baulig  <martin@ximian.com>
7800
7801         * class.c (mono_class_is_assignable_from): Make this work for
7802         generic instances.
7803
7804 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
7805
7806         * marshal.c (mono_string_utf8_to_builder)
7807         (mono_string_builder_to_utf16): We might not have ownership of the
7808         string. In thise case, we need to create a new buffer.
7809
7810         * object-internals.h (mono_stringbuilder_capacity): sb->str might
7811         be null, in which case, use the default capacity.
7812
7813 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7814
7815         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
7816         GC events to the profiler.
7817
7818 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7819
7820         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
7821         if you don't want the GC to run.
7822
7823 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
7824
7825         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
7826         start providing a GC API and keeping different implementations in
7827         their own file.
7828         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
7829
7830 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
7831
7832         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
7833         mmap rather than allocating a huge buffer.
7834         (mono_debug_close_mono_symbol_file): Free the buffer allocated
7835         above.
7836
7837 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
7838
7839         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7840         and CheckExecutionRights.
7841         * reflection.c|h: Keep the index of the declarative security to be 
7842         used, instead of the pointer, when AOT compiler is used. Also add 
7843         class initialization when requesting demands.
7844         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7845         CheckExecutionRights. Both properties are now FALSE by default, and
7846         unmodifiable, unless the --security option is used.
7847
7848 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7849
7850         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7851         reflection.c: properly refcount images and assemblies, many leaks fixed.
7852
7853 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7854
7855         * threadpool.c: increase the timeout for threads in the thread pool to
7856         10s.  Fixes bug #67159.
7857
7858 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7859
7860         * class-internals.h: Sun's compiler insists on explicit
7861         signed on bit fields to handle then correctly.
7862
7863 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7864
7865         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7866         Make the size of the array fit only the number of invalid path
7867         chars that we have.
7868
7869         * class.c (_mono_class_get): Improve the error reporting when a
7870         class referenced is not found, to assist debugging. 
7871
7872 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7873
7874         * threads.c: fix off-by-one error.
7875         * domain.c: free data allocated in the domain.
7876
7877 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7878
7879         * reflection.c (mono_method_body_get_object): Fill out exception info
7880         as well.
7881
7882         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7883         structure.
7884         
7885 2005-01-19  Martin Baulig  <martin@ximian.com>
7886
7887         * loader.c (mono_get_method_constrained): Make this work again.
7888
7889 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7890
7891         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7892         guint16 to match the managed side.
7893
7894         * reflection.c (mono_reflection_body_get_object): Fill out local
7895         variables array.
7896
7897         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7898         as well.
7899
7900         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7901         'local_var_sig_token'.
7902
7903 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7904
7905         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7906         System.Drawing.
7907
7908         * reflection.c (mono_method_body_get_object): Handle abstract and
7909         runtime methods.
7910
7911 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7912
7913         * marshal.c, loader.c, class-internals.h, reflection.c:
7914         store the emthod data for a wrapper in an array instead of a list.
7915
7916 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7917
7918         * marshal.c: change the code to allocate memory more
7919         conservatively for method wrappers.
7920
7921 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7922
7923         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7924         fields from MonoClass to the marshal info structure where they belong.
7925
7926 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7927
7928         * class.c, object.c, class-internals.h, marshal.c: rearrange
7929         some fields and tweak some types to lower memory usage.
7930
7931 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7932
7933         * threads.c (signal_thread_state_change): Handle the case when the
7934         target thread is the current thread.
7935
7936         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7937
7938         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7939         emit_ptr_to_object_conv. 
7940
7941         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7942         marshalling. Fixes #71352.
7943
7944 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7945
7946         * metadata.h, blob.h: move table enum to blob.h so it can be included
7947         in any header.
7948         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7949         cut the size of MonoImage/MonoDynamicImage.
7950
7951 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7952
7953         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7954
7955 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7956
7957         * reflection.c, reflection.h, icall.c: add a function to check
7958         if an attribute type is defined for a metadata object.
7959
7960 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7961
7962         * object-internals.h: Added some needed fields from StringBuilder class.
7963         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7964
7965 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7966
7967         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7968         threads before shutting down the runtime.
7969
7970         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7971
7972 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7973
7974         * object-internal.h, threads.c: implement stacksize and 
7975         parameterized thread start functionality (requires
7976         matching corlib). Marked broken code for later removal.
7977
7978 2005-01-12  Martin Baulig  <martin@ximian.com>
7979
7980         * class-internals.h (MonoGenericClass): Moved the `initialized'
7981         flag to MonoDynamicGenericClass, removed `init_pending'.
7982         (MonoGenericInst): Added `is_reference' flag.
7983
7984 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7985
7986         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7987         inside the MSDOS header. Fixes #71201.
7988
7989         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7990         gc thread.
7991         (mono_domain_finalize): Ditto.
7992
7993 2005-01-12  Martin Baulig  <martin@ximian.com>
7994
7995         * class.c (mono_get_shared_generic_class): Use the cache for
7996         non-dynamic generic classes.
7997
7998         * class-internals.h (mono_class_create_generic_2): Removed
7999         function prototype, this function is now static inside class.c.
8000
8001         * class.c (mono_class_create_generic_2): Made this static, only
8002         call it from mono_class_init() and mono_class_setup_parent().
8003         (collect_implemented_interfaces_aux): Call mono_class_init() on
8004         the interfaces we collect.
8005         (mono_class_setup_vtable): Call mono_class_init (class->parent).
8006
8007 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
8008
8009         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
8010         it a real thread handle.
8011
8012         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
8013         MonoJitExceptionInfo, since each catch clause needs its own variable.
8014         
8015 2005-01-11  Dick Porter  <dick@ximian.com>
8016
8017         * image.c (mono_pe_file_open): New variant on mono_image_open()
8018         that does not set up the CLI metadata; used for FileVersionInfo so
8019         it can get the data for windows binaries too.
8020         
8021         * process.c (process_read_string_block): Don't read off the end of
8022         the StringTable block.
8023
8024         These both fix bug 70766.
8025
8026 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
8027
8028         * gc.c: set some fields to NULL at GC cleanup time.
8029         * threads.c: if we quit the main thread, call exit ().
8030
8031 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
8032
8033         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
8034
8035 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
8036
8037         * threads.h, threads.c, object.c: added accessor and settor for
8038         main_thread. Handle it specially when exiting from it: wait
8039         for other foreground threads to exit.
8040
8041 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
8042
8043         * process.c, verify.c: remove some bloat.
8044
8045 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
8046
8047         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
8048         the calling convention to cdecl under win32.
8049
8050 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
8051
8052         * object.c (mono_object_get_size): New function to get the size of
8053         an object instance.
8054
8055         * profiler.c (simple_allocation): Use above.
8056
8057 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
8058
8059         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
8060         ves_icall_System_AppDomain_getRootDomain (as it's not required to
8061         get an appdomain by it's id and we can't assume the root's id is 0).
8062         * domain-internals.h: Change the function prototype to match.
8063         * icall.c: Change the icall table for AppDomain.
8064
8065 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
8066
8067         * locales.c (string_invariant_compare_char): Only compute
8068         GUnicodeTypes in the case where we need them.  Test for ordinality
8069         first and return if so.
8070
8071         From the commit:
8072
8073                 /*
8074                  * FIXME: here we must use the information from c1type and c2type
8075                  * to find out the proper collation, even on the InvariantCulture, the
8076                  * sorting is not done by computing the unicode values, but their
8077                  * actual sort order.
8078                  */
8079
8080 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8081
8082         * loader.c: for P/Invoke methods, allow the "Internal" shared
8083         library name to refer to the calling process symbol namespace.
8084
8085 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
8086
8087         * Makefile.am: Add the security manager to the build.
8088         * security-manager.c|h: New. Initialization of the security manager.
8089
8090 2005-01-07  Dick Porter  <dick@ximian.com>
8091
8092         * threads.c: 
8093         * monitor.c: Update thread state during Monitor and WaitHandle
8094         waits.  Fixes bug 71031.
8095
8096 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
8097
8098         * reflection.c (property_encode_signature): Correctly handle when the
8099         property has no methods.
8100
8101 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
8102
8103         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
8104         
8105         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
8106         fields from mb, not rmb. Fixes #71017.
8107
8108         * marshal.c (emit_ptr_to_str_conv): Add support for 
8109         ByValTStr -> string conversion. Fixes #71015.
8110
8111         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
8112
8113         * mempool.c (mono_mempool_contains_addr): New helper function.
8114
8115 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8116
8117         * metadata.c (mono_metadata_compute_size): Fix size calculation of
8118         HasSematics encoded fields.
8119         
8120         * metadata.c (mono_type_to_unmanaged): Improve error message for 
8121         invalid string marshalling.
8122
8123         * metadata.c: Fix warnings.
8124         
8125 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8126
8127         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
8128         profiler support.
8129
8130 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8131
8132         * domain.c object.c domain-internals.h: Revert part of r38077 since the
8133         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
8134         tests.
8135
8136 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
8137
8138         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
8139         so methods containing these can be AOTed.
8140
8141 2005-01-03  Martin Baulig  <martin@ximian.com>
8142
8143         * loader.c (find_method): Removed the hack for generic instances.
8144         (method_from_memberref): If our parent is a generic instance, pass
8145         its generic type definition to find_method() and then inflate the
8146         method.
8147         (mono_get_method_constrained): Pass the generic type definition to
8148         find_method() and inflate the method later.
8149
8150         * class-internals.h (MonoStats): Added `generic_class_count'.
8151
8152         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
8153         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
8154
8155         * reflection.c (mono_custom_attrs_from_params): Don't ignore
8156         generic type definitions.
8157
8158 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
8159
8160         * loader.c icall.c: Fix warnings.
8161
8162 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
8163
8164         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
8165         blittable types. Fixes #70864.
8166
8167 2004-12-29  Martin Baulig  <martin@ximian.com>
8168
8169         * icall.c
8170         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
8171
8172         * reflection.c (mono_method_get_object): Create a
8173         "System.Reflection.MonoGenericMethod" for inflated methods; don't
8174         call mono_get_inflated_method().
8175
8176         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
8177
8178 2004-12-27  Martin Baulig  <martin@ximian.com>
8179
8180         * class-internals.h (MonoMethod): Added `is_inflated' flag.
8181         (MonoMethodInflated): Added `inflated' field.
8182
8183         * class.c (mono_class_inflate_generic_method): Don't really
8184         inflate the method here; just set the `is_inflated' flag in the
8185         MonoMethod.
8186         (mono_class_get_inflated_method): Actually inflate the method here
8187         if it's not already inflated; we use the MonoMethodInflated's new
8188         `inflated' field as a cache.
8189
8190 2004-12-26  Martin Baulig  <martin@ximian.com>
8191
8192         * class.c
8193         (inflate_generic_class): Moved some code out of inflate_generic_type().
8194         (mono_class_inflate_generic_method): If we're already inflated,
8195         inflate the context and use the declaring method; ie. make sure
8196         the declaring method of an inflated method is always the generic
8197         method definition.
8198         (mono_class_create_from_typedef): Create
8199         `class->generic_container->context->gclass'.
8200
8201 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
8202
8203         * metadata-internals.h, marshal.c, reflection.c: More
8204         MonoGHashTable->GHashTable.
8205
8206         * domain-internals.h, class.c: Change MonoGHashTable's into
8207         GHashTables for some cases where no gc stuff is used
8208
8209         All users: update apis
8210
8211 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
8212
8213         * metadata.c (builtin_types): Make this `const'. Makes this get
8214         put into the shareable section.
8215         (mono_metadata_init): Casts to make gcc happy.
8216
8217 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
8218
8219         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
8220
8221 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
8222
8223         * icall.c: Added an internal call to retrieve the position and length
8224         of assembly-level declarative security attributes (RequestMinimum, 
8225         RequestOptional and RequestRefuse). This is used by the Assembly class
8226         to re-create the corresponding permission sets.
8227
8228 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
8229
8230         * marshal.c: fix the stelemref wrapper to be type correct
8231         (and faster).
8232
8233 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
8234
8235         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
8236         to do key & 0x7fffffff. Hashtable already does this. It just
8237         results in longer code.
8238
8239 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
8240
8241         * appdomain.c: Bump corlib version.
8242         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
8243         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
8244         * reflection.c|h: Add functions to get declarative security infos
8245         (blob position and length) for assemblies, classes and methods.
8246
8247 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
8248
8249         * reflection.c: sort the constant table (bug #70693).
8250
8251 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
8252
8253         * object-internals.h, threads.c, domain.c: add accessors for
8254         the MonoThread and MonoDomain tls keys.
8255
8256 2004-12-18  Martin Baulig  <martin@ximian.com>
8257
8258         * class.c (inflate_generic_type): If we're inflating a generic
8259         instance, set `ngclass->context->container = context->container';
8260         ie. the container we inflated into.
8261
8262         * metadata.c (mono_metadata_parse_generic_param): Reflect above
8263         inflate_generic_type() changes.
8264
8265 2004-12-17  Martin Baulig  <martin@ximian.com>
8266
8267         * class-internals.h
8268         (MonoGenericClass): Replaced `MonoType *generic_type' with
8269         `MonoClass *generic_class'.  Removed `dynamic_info'; if
8270         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
8271         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
8272
8273 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
8274
8275         * exception.c (mono_exception_from_token): New helper function.
8276
8277 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
8278
8279         * assembly.c (mono_assembly_load_with_partial_name): Call 
8280         mono_assembly_loaded before invoking the preload hooks. Fixes
8281         #70564.
8282
8283         * object-internals.h (MonoThread): Change culture_info and 
8284         ui_culture_info into an array.
8285
8286         * threads.c: Cache culture info objects from more than one appdomain.
8287
8288         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
8289         current UI culture.
8290
8291 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
8292
8293         * threads.h threads.c appdomain.c: Clear the culture_info field of
8294         all threads during unloading if they point to an object in the dying
8295         appdomain.
8296
8297 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
8298
8299         * culture-info.h (TextInfoEntry): New struct
8300         * object-internals.h: sync with managed
8301         * locales.c: fill the `text_info_data' field
8302         * culture-info-tables.h: update
8303
8304 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
8305
8306         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
8307         collector.
8308
8309 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
8310
8311         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
8312         (ves_icall_ModuleBuilder_getMethodToken): Ditto
8313
8314 2004-12-12  Martin Baulig  <martin@ximian.com>
8315
8316         * mono-debug-debugger.c (write_type): If we're an enum and the
8317         builtin types have already been initialized, call mono_class_init().
8318
8319 2004-12-11  Martin Baulig  <martin@ximian.com>
8320
8321         * metadata.c (mono_metadata_load_generic_params): Added
8322         `MonoGenericContainer *parent_container' argument; automatically
8323         compute `container->is_method'; pass the correct owner to
8324         get_constraints().      
8325
8326         * reflection.c (compare_genericparam): Sort the GenericParam table
8327         according to increasing owners. 
8328
8329 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
8330
8331         * profiler.c: allow disabling the default profiler.
8332
8333 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
8334
8335         * decimal.c, icall.c: allow disabling System.Decimal support.
8336
8337 2004-12-09  Marek Safar <marek.safar@seznam.cz>
8338
8339         * reflection.c: Add support for null attribute arguments.
8340
8341 2004-12-09  Martin Baulig  <martin@ximian.com>
8342
8343         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
8344         names to get rid of compiler warnings.
8345
8346 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
8347
8348         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
8349         mono_marshal_load_type_info (). Fixes #69625.
8350         (mono_marshal_get_ptr_to_struct): Likewise.
8351
8352 2004-12-08  Martin Baulig  <martin@ximian.com>
8353
8354         * mono-debug.h: Bumped version number to 47.
8355
8356         * mono-debug-debugger.c
8357         (mono_debugger_event_handler, mono_debugger_event): Take two
8358         guint64 arguments insteed of a gpointer and a guint32.  
8359
8360 2004-12-08  Martin Baulig  <martin@ximian.com>
8361
8362         * debug-mono-symfile.h
8363         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
8364         `address' to `native_offset'.
8365
8366 2004-12-08  Martin Baulig  <martin@ximian.com>
8367
8368         * class.c (mono_class_create_from_typespec): Only inflate if we
8369         either have `context->gclass' or `context->gmethod'.
8370
8371 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
8372
8373         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
8374
8375         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
8376
8377         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
8378
8379         * reflection.c (mono_assembly_get_object): Remove the workaround put
8380         in for the release.
8381         
8382         * appdomain.c: Use the corlib_internal field from MonoAssembly.
8383
8384         * appdomain.c: Bump corlib version.
8385
8386         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
8387         be visible in other appdomains.
8388
8389 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
8390
8391         * threads.c: Interlocked inc and dec for longs were messed up,
8392         use a KISS based impl for this. Fixes 70234
8393
8394 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
8395
8396         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
8397
8398 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
8399
8400         * icall.c: fix to follow policy not to allow struct
8401         arguments in icalls.
8402
8403 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8404
8405         * process.c: make the patch that handles spaces in file paths work
8406         on mono/windows too.
8407
8408 2004-12-06  Martin Baulig  <martin@ximian.com>
8409
8410         * class.c (mono_class_create_generic): Call
8411         mono_class_setup_supertypes() if we're dynamic.
8412         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
8413
8414 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
8415
8416         * object-internals.h: Add new fields to MonoThread.
8417
8418         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8419
8420         * icall.c threads-types.h threads.c: Add new icalls.
8421
8422         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
8423
8424         * object-internals.h (MonoReflectionAssembly): Sync object layout with
8425         managed side.
8426
8427         * appdomain.c: Bump corlib version.
8428
8429         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
8430         internal assemblies. Fixes #69181.
8431
8432 2004-12-05  Martin Baulig  <martin@ximian.com>
8433
8434         * class.c (mono_class_inflate_generic_signature): Make this a
8435         no-op if `context' is NULL or we don't have any type parameters;
8436         also copy `sentinelpos'.        
8437
8438 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
8439
8440         * image.c: Add unbox_wrapper_cache.
8441
8442         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
8443
8444         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
8445         function generator.
8446         
8447         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
8448         Fixes #70173.
8449
8450         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
8451         
8452 2004-12-04  Martin Baulig  <martin@ximian.com>
8453
8454         * loader.c (mono_method_get_signature_full): New public function;
8455         like mono_method_get_signature(), but with an additional
8456         `MonoGenericContext *' argument.
8457
8458         * class.c (mono_class_inflate_generic_signature): Formerly known
8459         as inflate_generic_signature(); make this public.
8460
8461 2004-12-04  Martin Baulig  <martin@ximian.com>
8462
8463         * metadata.c
8464         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
8465         instead of a `MonoGenericContainer *'.  
8466         (mono_metadata_parse_array_full): Likewise.
8467         (mono_metadata_parse_signature_full): Likewise.
8468         (mono_metadata_parse_method_signature_full): Likewise.
8469         (mono_metadata_parse_generic_inst): Likewise.
8470         (mono_metadata_parse_generic_param): Likewise.
8471         (mono_metadata_parse_mh_full): Likewise.
8472         (mono_type_create_from_typespec_full): Likewise.
8473
8474 2004-12-03  Martin Baulig  <martin@ximian.com>
8475
8476         * class-internals.h (MonoGenericContainer): Replaced the
8477         `MonoGenericContext * pointer with a `MonoGenericContext'
8478         structure and made it the first element.
8479
8480 2004-12-03  Martin Baulig  <martin@ximian.com>
8481
8482         * class.c
8483         (inflate_generic_type): Set the `context->container' when creating
8484         a new MonoGenericContext.
8485         (mono_class_inflate_generic_method): Likewise.
8486         (mono_class_create_from_typespec): Just use `context->container'
8487         to get the container.
8488
8489         * loader.c (method_from_methodspec): Set `context->parent' from
8490         `context->container' - and if that's a method container, use its
8491         parent.  Also set the `context->container' when creating a new
8492         MonoGenericContext.
8493         (mono_get_method_from_token): Use just `context->container' to get
8494         the container.
8495
8496         * metadata.c (do_mono_metadata_parse_generic_class): Also set
8497         `gclass->context->container'.
8498
8499         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
8500         the `context->container' when creating a new MonoGenericContext.
8501
8502 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
8503
8504         * reflection.c (compare_genericparam): Sort params with identical
8505         owner by their number. Fixes gen-111 on sparc.
8506
8507 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8508
8509         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
8510         around the domain changes.
8511
8512         * appdomain.c (mono_domain_unload): Handle the case when the thread
8513         calling Unload is itself being aborted during unloading. Fixes #70022.
8514
8515         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
8516
8517         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
8518         checkpoint_func as an icall so it gets a wrapper.
8519         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
8520         in the cross-appdomain wrappers too.
8521
8522         * threads.c (mono_thread_has_appdomain_ref): Make this public.
8523
8524         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
8525
8526         * reflection.c: Fix some memory leaks.
8527         
8528 2004-12-02  Martin Baulig  <martin@ximian.com>
8529
8530         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
8531
8532         * metadata.c (generic_class_cache): New static hashtable.
8533         (mono_metadata_lookup_generic_class): New public method.
8534
8535 2004-12-02  Martin Baulig  <martin@ximian.com>
8536
8537         * class.c (mono_class_create_from_typedef): Call
8538         mono_class_setup_parent() and mono_class_create_mono_type() before
8539         parsing the interfaces.
8540
8541 2004-12-02  Martin Baulig  <martin@ximian.com>
8542
8543         * metadata.c (generic_inst_cache): New static hashtable.
8544         (mono_metadata_lookup_generic_inst): New public function.
8545         (mono_metadata_inflate_generic_inst): New public function.
8546         (mono_metadata_parse_generic_inst): New public function.
8547         (do_mono_metadata_parse_generic_class): Use the new
8548         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
8549         since this'll also use the cache.
8550
8551         * reflection.c (mono_reflection_bind_generic_method_parameters):
8552         Use mono_metadata_lookup_generic_inst() to use the new cache.
8553
8554         * class.c (inflate_mono_type): Use
8555         mono_metadata_inflate_generic_inst() to inflate a generic
8556         instance; this'll also use the new cache.
8557
8558         * loader.c (method_from_methodspec): Use
8559         mono_metadata_parse_generic_inst() and
8560         mono_metadata_inflate_generic_inst() rather than parsing it
8561         manually, so we can use the new cache.
8562
8563 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8564
8565         * threads.c (wait_for_tids): Do not incorrectly free threads when 
8566         the wait times out.
8567
8568 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
8569
8570         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
8571         iter->args based on whether parameters are passed in registers (i.e.
8572         MONO_ARCH_REGPARMS is defined)
8573
8574 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
8575
8576         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
8577         the exception message. Fixes #70070.
8578         (method_from_methodspec): Fix warnings.
8579
8580 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8581
8582         * process.c: (complete_path) return the path quoted
8583
8584 2004-12-01  Martin Baulig  <martin@ximian.com>
8585
8586         * class-internals.h (MonoGenericInst): New structure.
8587         (MonoGenericClass): Replaced `type_argc', `type_argv' and
8588         `is_open' with `MonoGenericInst *inst'.
8589         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
8590         `is_open' with `MonoGenericInst *inst'.
8591
8592 2004-11-30  Martin Baulig  <martin@ximian.com>
8593
8594         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
8595
8596         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
8597         to `generic_class_cache'.
8598
8599         * metadata.c
8600         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
8601         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
8602         (mono_generic_inst_is_valuetype): Renamed to
8603         mono_generic_class_is_valuetype().
8604
8605         * class-internals.h
8606         (MonoGenericInst): Renamed to MonoGenericClass.
8607         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
8608         (MonoClass): Renamed `generic_inst' to `generic_class'.
8609         (MonoGenericContext): Renamed `ginst' to `gclass'.
8610
8611         * object-internals.h
8612         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
8613
8614         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
8615         mono_reflection_generic_class_initialize().
8616
8617         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
8618         now known as "System.Reflection.MonoGenericClass".
8619         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
8620
8621 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
8622
8623         * class-internals.h: Added a flag field to MonoClass to cache the
8624         declarative security attributes actions associated with the class.
8625         * domain-internals.h: Added booleans to MonoJitInfo to cache the
8626         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
8627         applicable to the JITted method.
8628         * reflection.c|h: Added functions to extract (as flags) which security
8629         actions are available (declaratively) for a method, class or assembly.
8630         * metadata.c|h: Added functions to search the declarative security
8631         table in the metadata.
8632         
8633 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
8634
8635         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
8636         EXPORTEDTYPES are already in the class name cache, so there is no
8637         need to add extra code here to look at them. Just removes a bit of
8638         cruft.
8639
8640         (ves_icall_System_Environment_get_TickCount): No need for #if
8641         WINDOWS. We already have the code in io-layer.
8642
8643 2004-11-28  Martin Baulig  <martin@ximian.com>
8644
8645         * loader.c
8646         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
8647         Fixes gen-112.cs.
8648
8649 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
8650
8651         * assembly.c (do_mono_assembly_open): Instead of having a
8652         conditional WITH_BUNDLE, incorporate support for bundles here, by
8653         having a global `bundles' variable holding a pointer to the actual
8654         bundles. 
8655
8656         (mono_register_bundled_assemblies): New API call used by the
8657         bundle code. 
8658
8659         See mkbundle.1 for details.
8660         
8661 2004-11-27  Martin Baulig  <martin@ximian.com>
8662
8663         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
8664         the vtable for generic methods.
8665
8666 2004-11-26  Martin Baulig  <martin@ximian.com>
8667
8668         * metadata.c
8669         (mono_metadata_generic_method_hash): New public function.
8670         (mono_metadata_generic_method_equal): Likewise.
8671
8672         * class-internals.h
8673         (MonoGenericContainer): Added `GHashTable *method_hash'.
8674
8675         * reflection.c (ReflectionMethodBuilder): Added
8676         `MonoGenericContainer *generic_container'.
8677         (reflection_methodbuilder_to_mono_method): Don't create a new
8678         MonoGenericContainer each time we're called.
8679         (mono_reflection_bind_generic_method_parameters): Use
8680         `container->method_hash' to cache the results so we don't create a
8681         different method if we're called several times with the same
8682         arguments.
8683
8684         * loader.c (method_from_methodspec): Use the new
8685         `container->method_hash' here, too.
8686
8687 2004-11-26  Martin Baulig  <martin@ximian.com>
8688
8689         * class.c (inflate_generic_signature): Correctly compute
8690         `res->has_type_parameters'.
8691         (mono_class_vtable): Use the `has_type_parameters' flag to
8692         determine whether we're a generic method.
8693
8694         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
8695
8696 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
8697
8698         * object.c (mono_runtime_run_main): Fix a small memory leak.
8699
8700 2004-11-25  Martin Baulig  <martin@ximian.com>
8701
8702         * class.c (set_generic_param_owner): Fixed the loop.
8703
8704 2004-11-25  Martin Baulig  <martin@ximian.com>
8705
8706         * object.c (mono_class_vtable): Don't create any JIT wrappers for
8707         generic methods.
8708
8709 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
8710
8711         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
8712         names. Fixes #69787.
8713
8714 2004-11-24  Martin Baulig  <martin@ximian.com>
8715
8716         * class.c (mono_class_create_generic_2): If we don't have a
8717         `ginst->parent', inflate `gklass->parent' to get our parent.
8718
8719 2004-11-24  Martin Baulig  <martin@ximian.com>
8720
8721         * reflection.c (compare_genericparam): Correctly sort the
8722         GenericParam table; fixes #69779.
8723
8724 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
8725
8726         * reflection.c: When writing a PE file, don't create a huge
8727         buffer in memory. Just write the arrays we have to the file.
8728         This reduces memory usage.
8729
8730         * metadata-internals.h: MonoDynamicStream pefile is no longer used
8731         globally.
8732
8733 2004-11-17  Martin Baulig  <martin@ximian.com>
8734
8735         * class.c (mono_class_init): Don't setup `class->parent' for
8736         dynamic instances; moved this to mono_class_generic_2().
8737         (mono_class_create_generic): Also set `klass->inited' for dynamic
8738         generic instances.
8739         (mono_class_create_generic_2): Don't do anything for dynamic
8740         generic instances.  Set `klass->parent' here and also call
8741         mono_class_setup_parent() here. 
8742
8743         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
8744         `MonoType *parent' argument; set `ginst->parent' before calling
8745         mono_class_create_generic_2(), so we set the correct parent.
8746
8747 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
8748
8749         * reflection.c: allow getting attributes from ModuleBuilder
8750         (used by ikvm).
8751
8752 2004-11-17  Martin Baulig  <martin@ximian.com>
8753
8754         * class.c (mono_class_create_from_typedef): If a type parameter is
8755         inherited from an outer class, set its owner to that class.
8756
8757 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
8758
8759         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
8760           for (int*) written size. This fixes bug #69592.
8761
8762 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
8763
8764         * icall.c: Added IsAuthenticodePresnet internal call.
8765         * image.c|h: New function that check a MonoImage for an Authenticode
8766         signature in the certificate PE data directory.
8767         * security.c|h: New internal call to ask the runtime if an 
8768         Authenticode signature seems referenced in the PE header.
8769
8770 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
8771
8772         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
8773
8774         * reflection.c (mono_image_create_pefile): Free the assembly streams
8775         after writing out the assembly file.
8776
8777         * object.c (mono_runtime_run_main): Fix small memory leak.
8778
8779         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
8780         property access modifiers. Fixes #69389.
8781
8782 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
8783
8784         * domain.c, object.c, object-internals.h, domain-internals.h,
8785         object.h, marshal.c: keep dynamic code info per domain.
8786
8787 2004-11-15  Martin Baulig  <martin@ximian.com>
8788
8789         * class.c (mono_type_get_name_recurse): Put type arguments in
8790         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
8791         see bug #68387.
8792
8793 2004-11-15  Martin Baulig  <martin@ximian.com>
8794
8795         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
8796         (mono_class_setup_vtable): When computing `the_cname' for a
8797         generic instance, don't include the namespace since we'd otherwise
8798         add it twice.
8799
8800 2004-11-15  Martin Baulig  <martin@ximian.com>
8801
8802         * class.c (mono_class_create_generic): Changed return type to void.
8803         (mono_class_create_generic_2): New public function; setup
8804         `class->method', `class->field' and `class->interfaces' here
8805         instead of in mono_class_init().
8806
8807         * class.h (mono_class_create_generic): Moved to class-internals.h.
8808
8809 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
8810
8811         * reflection.c (mono_image_create_pefile): take a file HANDLE.
8812         rather than writing to memory, write to this file. Right now,
8813         we are just writting into a buffer, and copying that. However
8814         we can avoid the buffer later.
8815
8816         (mono_dynamic_stream_reset): new function
8817
8818         * icall.c, object-internals.h: update for the above.
8819
8820 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
8821
8822         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
8823         have been using gc'd memory. First it is slower, unlikely
8824         the comment in the source code said, secondly, it increases
8825         our footprint to do it in the gc.
8826
8827         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
8828         the method so that it does not have to copy to managed code.
8829
8830 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
8831
8832         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
8833
8834 2004-11-12  Martin Baulig  <martin@localhost>
8835
8836         * reflection.c (mono_image_create_token): Allow generic method
8837         definitions here, since they may appear in an `.override'; see
8838         gen-98/gen-99 for an example.
8839
8840 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
8841
8842         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8843         #69365.
8844
8845         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8846         descriptive.
8847
8848 2004-11-11  Martin Baulig  <martin@ximian.com>
8849
8850         * class.c (mono_class_setup_vtable): In an explicit interface
8851         implementation, the method name now includes the arity.
8852
8853 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8854
8855         * object.c (mono_array_full_copy): Fix warning.
8856
8857 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8858
8859         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8860         mono_class_get_method_from_name() instead.
8861         
8862         * class-internals.h: Added two new types of wrappers. 
8863         Added MonoRemotingTarget enum. Added new trampoline function type, which
8864         takes an additional MonoRemotingTarget value as parameter, so it is
8865         possible to request a trampoline for a specific target.
8866         
8867         * class.c: Added new mono_class_get_method_from_name() method.
8868         
8869         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8870         general remoting sinks and one specific for cross domain calls.
8871         
8872         * debug-helpers.c: Added new wrapper names.
8873         
8874         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8875         of a remote class.
8876         
8877         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8878         
8879         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8880         with several other methods (mono_marshal_get_xappdomain_dispatch,
8881         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8882         and others) can generate a fast remoting wrapper for cross domain calls.
8883         More information can be found in docs/remoting.
8884         Other changes: Removed mono_find_method_by_name, and used
8885         mono_class_get_method_from_name instead.
8886         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8887         is stored in the remoting invoke hashtable.
8888         
8889         * marshal.h: published the new method for getting the xdomain wrapper,
8890         and also added a method for getting the adequate wrapper for a given
8891         method and target.
8892         
8893         * object-internals.h, object.c: Added a couple of methods for capying and
8894         cloning arrays.
8895         Modified mono_install_remoting_trampoline, which takes the new remoting
8896         trampoline that has a remoting target as parameter.
8897         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8898         will return the most suitable vtable for the target.
8899         Added mono_remote_class_vtable, which returns the vtable of a remote class
8900         (which can be the normal remoting vtable or the xdomain vtable).
8901         
8902         * threads.c: the xdomain invoke and dispatch wrappers must also be
8903         protected against interruptions.
8904
8905 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8906
8907         * icall.c: use memmove in BlockCopyInternal when the source and
8908         destination arrays are the same.
8909
8910 2004-11-09  Martin Baulig  <martin@ximian.com>
8911
8912         * class-internals.h (MonoGenericContainer): Removed `method' and
8913         `signature', replaced them with `is_method' and `is_signature'
8914         flags.  Added `context'.
8915
8916         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8917         instead of a `MonoGenericContainer *'.
8918
8919         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8920         for dynamic type parameters.
8921         (mono_metadata_load_generic_params): Setup `container->context'.
8922
8923         * reflection.c (mono_reflection_setup_generic_class): Setup
8924         `tb->generic_container->context'.
8925         (do_mono_reflection_bind_generic_parameters): Use
8926         mono_class_inflate_generic_type() to correctly inflate types,
8927         rather than using our own hack just for MONO_TYPE_VAR.
8928
8929 2004-11-09  Martin Baulig  <martin@ximian.com>
8930
8931         * class.c (mono_class_inflate_generic_method): Small fix; don't
8932         crash here.
8933
8934         * icall.c
8935         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8936         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8937         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8938         (ves_icall_Type_BindGenericParameters): Likewise.
8939         (ves_icall_Type_get_IsGenericInstance): Likewise.
8940         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8941         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8942         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8943         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8944
8945 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8946
8947         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8948         assembly versions and public key tokens. Fixes #69113.
8949
8950 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8951
8952         * metadata.c: fix bug introduced with the type cache changes
8953         on 2004-11-06.
8954
8955 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8956
8957         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8958         the MonoClass pointer instead of the token in exception clauses.
8959         * reflection.c: updates for the above and make the code not depend
8960         on the structure of MonoExceptionClause.
8961
8962 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8963
8964         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8965         Add support for dynamic assemblies. Fixes #69114.
8966
8967         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8968
8969 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8970
8971         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8972         since most only those methods use it. the code member of
8973         MonoMethodPInvoke was dead, so that can be removed too. Also,
8974         remove inline_count (again, not used), and move slot so that it
8975         can share bits with some other flags. This saves 8 bytes in the
8976         structure and gives us about 50 kb back for mcs helloworld.cs
8977
8978         * *.[ch]: Do naming changes for the above.
8979
8980         * loader.c (mono_method_get_header): Lazily init the header
8981         on first access.
8982         (mono_get_method_from_token): don't init the header here
8983         (mono_free_method): the header may never be allocated
8984
8985         Overall, this saves 150 kb of unmanaged allocations
8986         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8987         memory at runtime.
8988         
8989         * loader.c, loader.h (mono_method_get_header): new accessor.
8990
8991         * *.[ch]: use the above method. Prepares us to lazily load
8992         the header.
8993
8994         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8995         three warnings, which are actual bugs (see 69206).
8996
8997         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8998         unused. Saves a cool 4 bytes / method.
8999
9000 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
9001
9002         * metadata.c (builtin_types): Add types for System.Object here.
9003         (mono_metadata_parse_type_full): Cache MonoType*'s that are
9004         for a class or valuetype from klass->this_arg or klass->byval_arg.
9005
9006         On mcs for a hello world, this gets us down from 21836 MonoType's
9007         to 14560.
9008
9009         (mono_metadata_free_type): Account for the above change.
9010
9011 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
9012
9013         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
9014         exception instead of asserting if name is null.
9015         (ves_icall_System_AppDomain_GetData): Ditto.
9016
9017 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
9018
9019         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
9020         EnumBuilder.
9021
9022         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
9023         Return NULL when the domain does not have entry_assembly set.
9024
9025         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
9026         Add a 'resource_modules' argument.
9027         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
9028
9029         * reflection.c (mono_reflection_create_runtime_class): Move setting
9030         of wastypebuilder here, so mono_get_type_object () returns a MonoType
9031         for enums too.
9032
9033         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
9034         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
9035         Throw an ArgumentNullException if 'ptr' is null.
9036
9037         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
9038         assemblies here. Fixes #69020.
9039
9040 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
9041
9042         * reflection.c (build_compressed_metadata): Fix the previous patch for
9043         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
9044         the stack.
9045
9046 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
9047
9048         * assembly.c (mono_assembly_names_equal): Allow a match if one of
9049         the cultures is false. Fixes #69090.
9050
9051         * reflection.c (build_compressed_metadata): Fix invalid memory read 
9052         detected by valgrind.
9053         
9054         * reflection.c (mono_reflection_get_type): Avoid triggering a 
9055         TypeResolve multiple times for the same type. Fixes #65577.
9056
9057 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
9058
9059         * marshal.c: Avoid using ldftn to call managed functions. It is
9060         much slower than just a call.
9061
9062         * reflection.c (mono_module_get_object): free the basename we
9063         allocate here from glib.
9064         
9065         * reflection.c (ensure_runtime_vtable): make sure to free
9066         overrides.  Also, we were allocating an array of MonoMethod not an
9067         array of MonoMethod*.
9068
9069         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
9070
9071         * image.c (mono_image_close): free image->guid here.
9072
9073 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
9074
9075         * reflection.c: Fix some spec conformance issues with the PE file
9076         structures so mcs compiled apps run on the Net 2.0 beta.
9077
9078 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
9079
9080         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
9081         Implement this. Fixes #67264.
9082
9083         * debug-helpers.h debug-helpers.c marshal.c: Move 
9084         mono_find_method_by_name to debug-helpers.c.
9085
9086 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
9087
9088         * object.c (mono_release_type_locks): type_initialization_hash is
9089         a GHashTable.
9090
9091         * reflection.c object.c object-internals.h: Fix warnings.
9092
9093         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
9094         without accessors. Fixes #61561.
9095
9096         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
9097         application base from the root domain if not set. Fixes #65641.
9098         (mono_runtime_init): Fix warning.
9099
9100 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9101
9102         * appdomain.c: call mono_thread_pool_init.
9103         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
9104         of worker threads based on the number of CPUs and the environment
9105         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
9106         for non-windows (windows) systems.
9107
9108 2004-10-27  Chris Toshok  <toshok@ximian.com>
9109
9110         * mono-debug-debugger.c (write_class): don't call mono_class_init
9111         here, as even with the check for (!klass->init_pending), we get
9112         into a situation where we're hitting cycles in class
9113         initialization.  Fixes #68816.
9114
9115 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
9116
9117         * image.c: Avoid overwriting values in the loaded_images_hash when an
9118         assembly is loaded multiple times. Fixes #61152.
9119
9120         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
9121         so multiple satellite assemblies for the same name can be loaded.
9122         Fixes #68259.
9123
9124         * mono_domain_assembly_preload: Actually return the loaded assembly, 
9125         not NULL.
9126
9127         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
9128         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
9129
9130         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
9131         pending finalizers are not invoked after the appdomain has been 
9132         unloaded. Fixes #67862.
9133
9134 2004-10-22  Martin Baulig  <martin@ximian.com>
9135
9136         * mono-debug-debugger.c
9137         (mono_debugger_runtime_invoke): Don't box valuetypes.
9138
9139 2004-10-22  Chris Toshok  <toshok@ximian.com>
9140
9141         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
9142         don't hide private methods.
9143
9144 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
9145
9146         * icall.c: Allows the runtime to "share" (when known) the public key
9147         token of an assembly. This avoid the need to recalculate the token 
9148         (from the public key) in managed code.
9149
9150 2004-10-21  Chris Toshok  <toshok@ximian.com>
9151
9152         * debug-helpers.c (append_class_name): argh, revert last patch.
9153         
9154 2004-10-21  Chris Toshok  <toshok@ximian.com>
9155
9156         * debug-helpers.c (append_class_name): use '+' as the delimiter,
9157         not '/', so that it matches what the debugger uses to look up
9158         methods.
9159
9160 2004-10-21  Martin Baulig  <martin@ximian.com>
9161
9162         * mono-debug-debugger.c (mono_debugger_throw_exception): New
9163         public method; this is called each time an exception is thrown and
9164         allows the debugger to use exception catch points.
9165
9166 2004-10-21  Martin Baulig  <martin@ximian.com>
9167
9168         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
9169         the stack pointer and the exception object in some struct and pass
9170         that to the debugger.
9171
9172 2004-10-21  Chris Toshok  <toshok@ximian.com>
9173
9174         * mono-debug-debugger.c (do_write_class): add instance/static
9175         event support.  We don't expose "raise" or "other" yet.
9176         (event_is_static): new method.
9177
9178 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
9179
9180         * mono-debug-debugger.c
9181         (mono_debugger_handle_exception): Remove
9182         bogus return value for fussy compilers.
9183
9184 2004-10-20  Martin Baulig  <martin@ximian.com>
9185
9186         * mono-debug-debugger.c
9187         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
9188         (mono_debugger_handled_exception): Likewise.
9189
9190 2004-10-20  Martin Baulig  <martin@ximian.com>
9191
9192         * mono-debug-debugger.h (MonoDebuggerEvent): Added
9193         MONO_DEBUGGER_EVENT_EXCEPTION.
9194
9195         * mono-debug-debugger.c (mono_debugger_handle_exception): New
9196         public function to send the debugger a notification for an
9197         exception and inform it about a catch/finally clause.
9198
9199 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
9200
9201         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
9202         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
9203         fix 2.95 build. 
9204
9205         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
9206
9207 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
9208
9209         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
9210         marshalled as [In,Out]. Fixes #58325.
9211
9212 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
9213
9214         * reflection.c (mono_method_body_get_object): Implement some fields.
9215
9216 2004-10-12  Martin Baulig  <martin@ximian.com>
9217
9218         * reflection.c (mono_reflection_bind_generic_parameters): Small
9219         fix, correctly retrieve our parent from a generic instance.
9220
9221 2004-10-12  Martin Baulig  <martin@ximian.com>
9222
9223         * metadata.c (mono_metadata_generic_param_equal): We always have
9224         an owner.
9225
9226         * class.c
9227         (mono_class_from_generic_parameter): We need to have an owner.
9228         (my_mono_class_from_generic_parameter): Likewise.
9229
9230         * reflection.c (mono_reflection_setup_generic_class): Renamed to
9231         mono_reflection_create_generic_class() and added a new
9232         mono_reflection_setup_generic_class().  
9233         (mono_reflection_initialize_generic_param): If we're a nested
9234         generic type and inherited from the containing class, set our
9235         owner to the outer class.
9236
9237 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
9238
9239         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
9240
9241         * reflection.c (mono_method_body_get_object): New function to create
9242         a MethodBody object.
9243
9244         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
9245
9246 2004-10-11  Martin Baulig  <martin@ximian.com>
9247
9248         * metadata.c (_mono_metadata_type_equal): Renamed to
9249         do_mono_metadata_type_equal() and made static.
9250
9251 2004-10-11  Martin Baulig  <martin@ximian.com>
9252
9253         * appdomain.c: Bump corlib version number to 28.
9254
9255 2004-10-10  Martin Baulig  <martin@ximian.com>
9256
9257         * class-internals.h
9258         (MonoGenericInst): Added `MonoGenericContainer *container'.
9259         (MonoGenericMethod): Likewise.
9260         (MonoGenericContext): Likewise.
9261         (MonoGenericParam): Added `MonoGenericContainer *owner'.
9262
9263         * metadata.c
9264         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
9265         (do_mono_metadata_parse_generic_inst): Likewise.
9266         (mono_metadata_parse_type_full): New public method.  This is the actual
9267         mono_metadata_parse_type() implementation - with an additional
9268         `MonoGenericContainer *' argument.
9269         (mono_metadata_parse_array_full): Likewise.
9270         (mono_metadata_parse_signature_full): Likewise.
9271         (mono_metadata_parse_method_signature_full): Likewise.
9272         (mono_metadata_parse_mh_full): Likewise.
9273         (mono_type_create_from_typespec): Likewise.
9274         (mono_metadata_interfaces_from_typedef_full): New public method;
9275         this is similar to the other _full() methods, but we take a
9276         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
9277         (mono_metadata_parse_generic_param): Take an additional
9278         `MonoGenericContainer *' argument and lookup the MonoGenericParam
9279         from that container.
9280         (mono_metadata_generic_param_equal): New static method to compare
9281         two type parameters.
9282         (_mono_metadata_type_equal): New static method; takes an
9283         additional `gboolean signature_only' argument - if true, we don't
9284         compare the owners of generic parameters.
9285         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
9286         with a TRUE argument - do a signature-only comparision.
9287
9288         * loader.c: Use the new _full() methods and pass the
9289         MonoGenericContainer to them.
9290
9291         * object-internals.h (MonoReflectionTypeBuilder): Added
9292         `MonoGenericContainer *generic_container' field.
9293         (MonoReflectionMethodBuilder): Likewise.
9294
9295 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
9296
9297         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
9298         case initial images of dynamic assemblies.
9299
9300         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
9301
9302         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
9303
9304         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
9305         length of event->other array.
9306         (typebuilder_setup_events): Ditto.
9307
9308         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
9309         'assembly_by_name' and add an 'assemblies' list.
9310
9311         * assembly.h assembly.c: Add a new search hook for determining whenever
9312         an assembly is already loaded. Use this instead of searching in the
9313         loaded_assemblies list.
9314
9315         * domain.c appdomain.c: Implement the new search hook so loaded 
9316         assemblies are now scoped by appdomain. Fixes #67727.
9317
9318 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
9319
9320         * threads.c (mono_thread_attach): Initialize synch_lock field so
9321         mono_thread_detach works again.
9322
9323         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
9324         'lib' too. Fixes #63130.
9325
9326 2004-10-06  Jackson Harper  <jackson@ximian.com>
9327
9328         * culture-info-tables.h: regenerated.
9329
9330 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
9331
9332         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
9333         implemented by other interfaces in the result. Fixes #65764.
9334         
9335         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9336         Handle unloadable modules without crashing.
9337
9338         * image.c (load_modules): Revert the previous patch since modules must
9339         have a fixed index inside the array.
9340         
9341         * image.c (load_modules): Don't include native modules in the modules
9342         array.
9343
9344 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
9345
9346         * reflection.h: Add param_defaults field.
9347
9348         * reflection.c: Add support for parameter defaults in dynamic methods.
9349         Fixes #64595.
9350
9351         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
9352         an empty string when a type has no namespace. Fixes #64230.
9353
9354 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
9355
9356         * tabledefs.h: Added "internal" security actions to support non-CAS
9357         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
9358         Note: they do not seems to be used anymore in 2.0 (new metadata format)
9359
9360 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
9361
9362         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
9363         constructor of abstract class. Fixes #61689.
9364
9365 2004-10-04  Martin Baulig  <martin@ximian.com>
9366
9367         * class-internals.h (MonoGenericContainer): New type.
9368         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
9369         `MonoGenericContainer *generic_container'.
9370         (MonoClass): Replaced `gen_params' and `num_gen_params' with
9371         `MonoGenericContainer *generic_container'.
9372
9373         * metadata.c (mono_metadata_load_generic_params): Return a
9374         `MonoGenericContainer *' instead of a `MonoGenericParam *';
9375         removed the `num' argument.
9376
9377 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
9378
9379         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
9380         for dynamic images.
9381
9382         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
9383         machine fields.
9384
9385         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
9386
9387         * reflection.c: Save pe_kind and machine values into the generated
9388         image file.
9389
9390         * appdomain.c: Bump corlib version number.
9391
9392         * object-internals.h: Reorganize layout of LocalBuilder.
9393
9394         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
9395         New helper function.
9396
9397         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
9398         created MonoType for dynamic types. Fixes #66180.
9399
9400 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
9401
9402         * threadpool.c: the ares hashtable needs a critical section around it.
9403         this prevents some nasty segfaults
9404
9405 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
9406
9407         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
9408         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
9409         bug 67324).
9410         
9411 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
9412
9413         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
9414         
9415 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
9416
9417         * image.c: Always canonicalize image file names, to avoid loading
9418         the same assembly twice when referenced using a relative path.
9419
9420 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
9421
9422         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
9423
9424         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
9425
9426         * marshal.c: Fix warnings.
9427
9428 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
9429
9430         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
9431         attempting to marshal the delegate_trampoline as the method_addr.
9432         This patch has a static hashtable of marshalled delegates so that 
9433         we can map delegate_trampoline addresses back to delegates.  This
9434         allows a delegate passed to managed code to be passed back into native
9435         code.  Fixes #67039
9436
9437 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
9438
9439         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
9440
9441         * reflection.c (method_encode_code): Align method headers properly.
9442         Fixes #66025.
9443
9444 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
9445
9446         * marshal.c: In the runtime invoke wrapper, reset the abort
9447         exception if it is cached. This avoids the automatic rethrowal of 
9448         the exception after the catch of the wrapper. Also check for pending
9449         interruptions before calling the managed method. This is done using
9450         the new method emit_thread_force_interrupt_checkpoint, since the
9451         normal checkpoint method is ignored when running the invoke wrapper.
9452         * object.c: If the abort exception is rethrown, set the abort_exc
9453         field of the thread, so it will be rethrown aftere every catch.
9454         * threadpool.c: Only run an interruption checkpoint if what has been
9455         requested is a stop of the thread (aborts will be ignored).
9456         * threads.c: By default, a thread will now never be interrumped while
9457         running the runtime invoke wrapper (this ensures that runtime_invoke
9458         will always return to the caller if an exception pointer is provided).
9459         There is a new special method mono_thread_force_interruption_checkpoint()
9460         to force an interruption checkpoint even if running a protected
9461         wrapper, which is used by the same runtime invoke wrapper to do a check
9462         at a safe point.
9463
9464 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
9465
9466         * object.c, object-internals.h: Implemented mono_release_type_locks,
9467         which releases the cctor locks held by a thread.
9468         * threads.c, threads.h: In thread_cleanup, release cctor locks held
9469         by a thread. Added mono_thread_exit() method to be used to safely stop
9470         a thread.
9471
9472 2004-09-28  Raja R Harinath  <rharinath@novell.com>
9473
9474         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9475         Move null check before dereference.  Avoid indexing beyond the end
9476         of the 'modules' array.
9477
9478 2004-09-28  Raja R Harinath  <rharinath@novell.com>
9479
9480         * metadata-internals.h (MonoImage): Add module_count field.
9481         * image.c (load_modules): Set image->module_count.
9482         (mono_image_load_file_for_image): Use image->module_count.
9483         * reflection.c (mono_image_load_module): Append to image->modules array 
9484         of dynamic assembly.
9485         (mono_module_get_object): Fix loop to actually increment index.
9486         Use image->module_count.
9487         * assembly.c (mono_assembly_load_references): Use image->module_count.
9488         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
9489         Likewise.
9490
9491 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
9492
9493         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
9494         Avoid assert on generic types.
9495
9496 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
9497
9498         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
9499
9500         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
9501
9502         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
9503         function to convert a MarshalSpec structure to its managed counterpart.
9504
9505         * reflection.c: Fix warnings.
9506         
9507         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
9508         field.
9509
9510         * icall.c (mono_create_icall_signature): Fix build.
9511
9512 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
9513
9514         * icall.c: Add MakePointType icall.
9515
9516         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
9517         warnings.
9518
9519 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9520
9521         * threadpool.c: reuse allocated slots in the queue.
9522
9523 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
9524
9525         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
9526
9527         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
9528
9529         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
9530         previous change.
9531
9532         * tabledefs.h: Add constants for pinvoke attributes BestFit and
9533         ThrowOnUnmappableChar.
9534
9535         * icall.c (ves_icall_Type_GetPacking): New icall.
9536
9537 2004-09-24  Martin Baulig  <martin@ximian.com>
9538
9539         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
9540
9541 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9542
9543         * appdomain.c:
9544         (mono_domain_set): allow setting a domain that is being unloaded.
9545         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
9546         being unloaded.
9547
9548 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9549
9550         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
9551         the GetCustomAttributes icall.
9552
9553 2004-09-23  Martin Baulig  <martin@ximian.com>
9554
9555         * object-internals.h (MonoReflectionGenericParam): Replaced
9556         'has_ctor_constraint', `has_reference_type' and `has_value_type'
9557         with `guint32 attrs'.
9558
9559 2004-09-23  Martin Baulig  <martin@ximian.com>
9560
9561         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
9562
9563 2004-09-23  Martin Baulig  <martin@ximian.com>
9564
9565         * object-internals.h (GenericParameterAttributes): New enum.
9566
9567 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9568
9569         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
9570         
9571         * class.c (init_events): Fill out event->other field.
9572
9573         * class.c: Fix warnings.
9574
9575         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
9576
9577 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
9578
9579         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
9580         walk which doesn't supply the IL offset.
9581
9582 2004-09-22  Martin Baulig  <martin@ximian.com>
9583
9584         * reflection.c (mono_reflection_setup_internal_class): If we're
9585         System.ValueType, System.Object or System.Enum, set
9586         `klass->instance_size' and create the vtable.
9587         (mono_reflection_create_internal_class): If we're an enum type,
9588         get the base class from our current corlib.
9589
9590 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
9591
9592         * reflection.h (MonoResolveTokenError): New type.
9593
9594         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
9595         icall.
9596
9597         * icall.c: Add an 'error' argument to the ResolveToken icalls.
9598
9599 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
9600
9601         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
9602         Support also calling constructors, but only for already allocated objects.
9603
9604 2004-09-17  Geoff Norton <gnorton@customerdna.com>
9605
9606         * reflection.c (type_get_qualified_name): If the klass is null
9607         return the typename to avoid a NullRefEx.
9608         (encode_cattr_value): Get the qualified name of the boxed type,
9609         not the underlying enumtype.  Fixes #62984.
9610
9611 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
9612
9613         * marshal.c: Fix problems with previous checkin.
9614
9615 2004-09-21    <vargaz@freemail.hu>
9616
9617         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
9618         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
9619
9620         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
9621
9622 2004-09-21  Geoff Norton <gnorton@customerdna.com>
9623
9624         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
9625         should only return a type for pointers, arrays, and passbyref types.
9626         Fixes bug #63841.
9627
9628 2004-09-21  Martin Baulig  <martin@ximian.com>
9629
9630         * domain.c (mono_debugger_check_runtime_version): New public
9631         function.
9632
9633         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
9634
9635 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
9636
9637         * reflection.c: Added missing sort to the declarative security 
9638         attributes table. MS implementation stops seeing the attributes if the
9639         token number regress in the table (as shown by ildasm and permview).
9640
9641 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
9642
9643         * object-internals.h (MonoReflectionModule): Add 'token' field.
9644         
9645         * reflection.c (mono_reflection_get_token): Add support for Module
9646         and Assembly.
9647         (mono_module_get_object): Set 'token' field.
9648         (mono_module_file_get_object): Set 'token' field.
9649
9650         * icall.c: Add new Assembly and Module icalls.
9651
9652         * appdomain.c: Bump corlib version.
9653
9654 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
9655
9656         * loader.h loader.c class.h class.c: Add helper functions for obtaining
9657         tokens of metadata objects.
9658
9659         * reflection.h reflection.c (mono_reflection_get_token): New function
9660         to obtain the token of a metadata object.
9661
9662         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
9663
9664 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
9665
9666         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
9667         
9668         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
9669
9670 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
9671
9672         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
9673         * object-internals.h: Added 3 MonoArray* members to MonoReflection
9674         AssemblyBuilder to access the permissions set in the class lib.
9675         * reflection.c: Added security attributes encoding step in 
9676         mono_image_build_metadata.
9677         * tabledefs.h: Added new security actions defined in 2.0:
9678         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
9679
9680 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9681
9682         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
9683         macro parameter.
9684
9685 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9686  
9687         * locales.c: nullify the ICU_collator member of CompareInfo when it is
9688           finalized. There where random SIGSEVs at program termination, when
9689           an object being finalized was trying to do a string comparison and
9690           the current culture was already finalized.
9691  
9692 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9693
9694         * threads.c: call thread_cleanup before finishing the thread if we get
9695         there.
9696
9697 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
9698
9699         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
9700         assemblies from the parent. Fixes #65665.
9701
9702 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
9703
9704         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
9705         modifiers.
9706
9707 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
9708
9709         * reflection.h: add prototype for mono_get_dbnull_object
9710         * reflection.c: add prototypes for get_default_param_value_blobs 
9711         and mono_get_object_from_blob for fussier compilers
9712
9713 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
9714  
9715         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
9716         false deadlock checks in class initialization.
9717  
9718 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
9719
9720         * image.c (mono_image_addref): Fix comment.
9721
9722         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
9723         possible.
9724
9725 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
9726
9727         * reflection.c (mono_param_get_objects): Modified to return
9728         ParameterInfo.DefaultValue object.
9729
9730         (get_default_param_value_blobs):
9731         (mono_get_object_from_blob):
9732         (mono_get_dbnull_object): New helper routines. 
9733
9734         * object.c (mono_get_constant_value_from_blob): New helper routine
9735         carved out from get_default_field_value ()
9736
9737         * object-internals.h (mono_get_constant_value_from_blob): Added
9738         function declaration.
9739
9740 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
9741
9742         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
9743         referenced assemblies. Fixes #62135.
9744
9745         * exception.h exception.c (mono_get_exception_file_not_found2): New
9746         helper function.
9747
9748 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
9749
9750         * class.h class.c: Add mono_type_get_underlying_type ().
9751
9752 2004-09-09  Geoff Norton <gnorton@customerndna.com>
9753
9754         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
9755         Fix GetTypes() to support dynamically created assemblies.
9756
9757 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
9758
9759         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
9760         
9761         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
9762         previous patch.
9763
9764         * reflection.h reflection.c loader.c: Allow dynamic construction of
9765         pinvoke methods. Fixes #65571.
9766         
9767         * reflection.c (mono_reflection_get_type): Revert previous change since
9768         it causes regressions.
9769
9770 2004-09-08  Martin Baulig  <martin@ximian.com>
9771
9772         * class.c (class_compute_field_layout): Don't call
9773         mono_class_layout_fields() for open generic instances.
9774
9775 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
9776         * threads.c appdomain.c: fix typo in GC macro
9777
9778 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9779
9780         * threads.c: don't call mono_thread_detach() in start_wrapper(),
9781         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
9782
9783 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
9784
9785         * image.c (mono_image_close): Applied patch from 
9786         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
9787         assembly is loaded multiple times from data.
9788         
9789         * image.c (mono_image_open): Fix warning.
9790
9791 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9792
9793         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
9794         once. Fixes #58334.
9795         
9796         * reflection.c (mono_reflection_create_runtime_class): Initialize
9797         klass->nested_classes. Fixes #61224.
9798
9799 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9800
9801         * threads.c: sched_yield() on exit, to allow threads to quit.
9802
9803 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9804
9805         * object.c (mono_unhandled_exception): Remove leftover debug code.
9806
9807 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
9808
9809         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
9810
9811 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9812
9813         * marshal.c (emit_marshal_array): Really null terminate string arrays.
9814         
9815         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
9816
9817 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9818
9819         * marshal.c (emit_marshal_array): Null terminate string arrays.
9820         
9821         * marshal.c (raise_auto_layout_exception): Fix warning.
9822
9823         * reflection.c (mono_param_get_objects): Initialize the default value
9824         with DBNull.Value, not null. Fixes #62123.
9825
9826 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
9827
9828         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
9829         throw an exception with a cute explanation.
9830
9831 2004-09-06  Dick Porter  <dick@ximian.com>
9832
9833         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
9834         Close the new process's thread handle, as we don't use it.  The
9835         handle stays around forever otherwise.
9836
9837 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9838
9839         * object.c (arith_overflow): Fix warning.
9840
9841         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9842         calling conventions in method refs. Fixes #65352.
9843
9844         * reflection.c: Fix warnings.
9845
9846 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9847
9848         * icall.c: Add a new icall for Array.Clear
9849
9850 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9851
9852         * object.c: When allocating an array, we have to throw
9853         an overflow exception if any of the lengths are < 0.
9854
9855 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9856
9857         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9858         properly. Also move implementation of string array marshalling to 
9859         managed code. Fixes #42316.
9860
9861 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9862
9863         * assembly.c: provide more information when loading an assembly fails.
9864
9865 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9866
9867         * filewatcher.c: don't expect the development fam package to be
9868         installed.
9869
9870 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9871
9872         * marshal.c: Make a copy of the signature cookie since it will be
9873         freed by the caller.
9874         
9875         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9876
9877         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9878
9879         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9880         marshal specs.
9881
9882         * marshal.c: More refactoring.
9883         
9884         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9885         smaller functions.
9886
9887 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9888
9889         * object.c: In mono_message_invoke, fill the output parameter array after
9890           calling the managed method (it was done before the call). This fixes
9891           bug #59299.
9892
9893 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9894
9895         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9896         as well.
9897
9898 2004-09-02  Martin Baulig  <martin@ximian.com>
9899
9900         * class.c (mono_class_instance_size): Don't allow generic type
9901         definitions or open generic instances.
9902         (mono_class_array_element_size): If we're a value type, call
9903         mono_class_instance_size() on the original class.
9904
9905         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9906         handle generic instances.
9907
9908         * mono-debug-debugger.c (write_type): Handle generic instances
9909         like classes.
9910
9911 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9912
9913         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9914         the allocation request fails. Fixes #65089.
9915
9916         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9917         
9918         * object.c (mono_runtime_free_method): New function to free a dynamic
9919         method.
9920
9921         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9922         delegate trampoline.
9923
9924         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9925         with hasthis as dynamic,
9926
9927         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9928
9929         * domain.c (mono_jit_info_table_remove): New function to remove an
9930         entry from the jit info table.
9931
9932         * class-internals.h (MonoMethod): Add 'dynamic' field.
9933
9934         * loader.c: Fix warnings.
9935
9936 2004-09-01  Martin Baulig  <martin@ximian.com>
9937
9938         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9939         instead of mono_debugger_lock() because the latter one is a no-op
9940         unless running in the debugger.
9941
9942 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9943
9944         * class.c (class_compute_field_layout): Classes with auto-layout or
9945         reference fields are not blittable.
9946         
9947 2004-09-01  Dick Porter  <dick@ximian.com>
9948
9949         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9950         mono_image_get_filename() to get the assembly location.
9951
9952         * icall.c:
9953         * metadata.h: Fix compile warnings
9954
9955 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9956
9957         * class.c (class_compute_field_layout): System.Object is blittable.
9958
9959         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9960         as in/out. Fixes #59909.
9961
9962 2004-09-01  Martin Baulig  <martin@ximian.com>
9963
9964         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9965         mono_metadata_generic_inst_is_valuetype() if we're a generic
9966         instance to check whether our underlying type is a reference type.
9967
9968 2004-09-01  Martin Baulig  <martin@ximian.com>
9969
9970         * metadata.c (mono_type_size): If we're a generic instance, call
9971         mono_class_value_size() for value types.
9972
9973 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9974
9975         * marshal.c: Implement more custom marshalling functionality. Fixes
9976         #64915.
9977
9978 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9979
9980         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9981
9982 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9983
9984         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9985
9986         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9987
9988         * icall.c: Fix some warnings.
9989
9990         * threads.c (abort_appdomain_thread): Fix unref errors.
9991         (mono_thread_current): Fix THREAD_DEBUG define.
9992
9993 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9994
9995         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9996
9997         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9998
9999 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
10000
10001         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
10002         string arrays.
10003
10004 2004-08-28  Martin Baulig  <martin@ximian.com>
10005
10006         * metadata.c
10007         (mono_metadata_generic_inst_is_valuetype): New public function.
10008
10009         * metadata.h (MONO_TYPE_ISSTRUCT): Call
10010         mono_metadata_generic_inst_is_valuetype() if we're a generic
10011         instance to check whether our underlying type is a valuetype.
10012
10013 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
10014
10015         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
10016         #63768.
10017
10018 2004-08-25  Martin Baulig  <martin@ximian.com>
10019
10020         * loader.c (mono_get_method_from_token): Abstract methods can also
10021         be generic and thus have type parameters.
10022
10023         * metadata-internals.h
10024         (MonoDynamicImage): Added `GPtrArray *gen_params'.
10025
10026         * reflection.c (mono_image_get_generic_param_info): Don't create a
10027         metadata row, just add an entry to the `gen_params' array.
10028         (build_compressed_metadata): Sort the `gen_params' array and then
10029         actually create the metadata.
10030
10031 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10032
10033         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
10034
10035 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
10036
10037         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
10038
10039 2004-08-24  Martin Baulig  <martin@ximian.com>
10040
10041         * class.cs (mono_class_is_subclass_of): Like an interface, a
10042         generic instance also derives from System.Object.
10043
10044 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
10045
10046         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
10047         custom modifiers to be in any order. Fixes #61990.
10048
10049 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
10050
10051         * object.c: Register mono_object_new_fast icall.
10052         
10053         * object.c (mono_class_get_allocation_ftn): Return to calling
10054         mono_object_new_fast, since it seems faster to compute the object 
10055         size in unmanaged code than passing it as a parameter.
10056
10057         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
10058
10059         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
10060         this function with Boehm as the oom handler, so we don't have to check
10061         the result of GC_malloc.
10062
10063         * object.c: Remove checks for oom.
10064
10065         * object.h object.c (mono_class_get_allocation_ftn): New function to
10066         return the icall which can be used to allocate an instance of a given
10067         class. 
10068
10069         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
10070
10071         * class-internals.h: Add 'enabled' field.
10072
10073 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
10074
10075         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
10076
10077 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
10078         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
10079         value 0x0010.
10080
10081 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
10082
10083         * appdomain.c: use the Tls function for appdomain too,
10084         at Zoltan's request. Actually return in mono_context_get
10085
10086         * appdomain.c, profiler.c, threads.c: use __thread
10087
10088 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
10089
10090         * appdomain.c threads.c: Call GC_CreateThread on windows.
10091
10092         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
10093         multiple libraries since this don't work on windows.
10094
10095 2004-08-18  Martin Baulig  <martin@ximian.com>
10096
10097         * class-internals.h
10098         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
10099         MonoMethodHeader.
10100
10101         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
10102         MonoMethodNormal since we also need it for abstract and interface
10103         methods.
10104
10105         * reflection.c
10106         (build_compressed_metadata): Sort the GenericParam table.
10107         (mono_image_create_token): Added `gboolean create_methodspec'
10108         argument; this is false when generating a MethodImpl token.
10109         (reflection_methodbuilder_to_mono_method): Abstract and interface
10110         methods may also have generic parameters.
10111
10112 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
10113
10114         * appdomain.c: thread local alloc
10115
10116 2004-08-17  Martin Baulig  <martin@ximian.com>
10117
10118         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
10119
10120         * icall.c
10121         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
10122         argument.
10123
10124         * class.c (mono_type_get_full_name): New public function.
10125         (mono_type_get_name): Don't include the type arguments.
10126
10127 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
10128
10129         * Makefile.am: Build static versions of libmetadata and libmonoruntime
10130         for inclusion into the mono executable.
10131
10132 2004-08-16  Martin Baulig  <martin@ximian.com>
10133
10134         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
10135         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
10136
10137 2004-08-14  Martin Baulig  <martin@ximian.com>
10138
10139         * class.c (dup_type): Also copy the `byref' field.
10140
10141 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
10142
10143         * reflection.c (create_dynamic_mono_image): Revert the last change 
10144         since it breaks bootstrap.
10145
10146 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
10147
10148         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
10149
10150         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
10151         not free them with g_free.
10152
10153 2004-08-11  Martin Baulig  <martin@ximian.com>
10154
10155         * reflection.c (mono_reflection_setup_internal_class): Also call
10156         mono_class_setup_mono_type() if we already have a `tb->type.type'.
10157
10158 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
10159
10160         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
10161         called during default (first) AppDomain creation. Keep track of
10162         Evidence when loading assemblies.
10163
10164 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10165
10166         * opcodes.c, opcodes.h: reduce runtime relocations.
10167
10168 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
10169
10170         * culture-info.h, locales.c: fixes and chages to sue the new
10171         optimized format of the locale data.
10172         * culture-info-tables.h: regenerated.
10173
10174 2004-08-06  Geoff Norton <gnorton@customerdna.com>
10175         
10176         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
10177
10178 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
10179
10180         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
10181         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
10182         * domain-internals.h: icall declaration.
10183         * icall.c: icall registration.
10184         * object-internals.h: New fields in MonoAssembly for CAS.
10185
10186 2004-08-05  Duncan Mak  <duncan@ximian.com>
10187
10188         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
10189         CEE_LDELEM_ANY.
10190
10191 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10192
10193         * reflection.c: fix to deal with object[] arrays in custom ctors
10194         (bug #62550).
10195
10196 2004-08-05  Martin Baulig  <martin@ximian.com>
10197
10198         * class.c (mono_class_array_element_size): Added support for
10199         generic instances and correctly handle "recursive" types.
10200
10201 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
10202
10203         * assembly.c: Fix warnings.
10204
10205 2004-08-04  Martin Baulig  <martin@ximian.com>
10206
10207         * class.c
10208         (mono_type_get_name_recurse): Added `gboolean include_arity'
10209         argument specifying whether or not we should include the generic
10210         arity in the type name.
10211         (_mono_type_get_name): New static function.
10212         (mono_class_setup_vtable): If we're a generic instance, don't
10213         include the generic arity in the names of explicit method
10214         implementations.        
10215
10216 2004-08-03  Martin Baulig  <martin@ximian.com>
10217
10218         * class.c (mono_type_get_name_recurse): Enclose the generic type
10219         arguments in `<', '>'.
10220
10221 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10222
10223         * gc.c: make GC warning messages use the trace API, they are just
10224         noise to most of the users.
10225
10226 2004-08-03  Martin Baulig  <martin@ximian.com>
10227
10228         * debug-mono-symfile.c (read_string): Correctly read the string.
10229
10230 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
10231
10232         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
10233         
10234         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
10235         icalls.
10236         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
10237
10238 2004-07-30  Martin Baulig  <martin@ximian.com>
10239
10240         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
10241         Reflect latest symbol writer changes.   
10242
10243 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
10244
10245         * object.c: always create an object if null is passed
10246         to Invoke() where a valuetype is expected.
10247
10248 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
10249
10250         * marshal.c (mono_marshal_init): make managed
10251         signatures match native ones better for 64bits.
10252
10253 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10254
10255         * appdomain.c: hack to build correctly the private bin path on windows.
10256         Fixes bug #61991.
10257
10258 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
10259
10260         * assembly.c: Load mscorlib from the correct framework directory
10261           (mono/<version>/mscorlib.dll).
10262         * appdomain.h: Added prototypes for new functions.
10263         * internals.h: Added some prototypes.
10264         * domain.c: When initializing the runtime, get from the executable and
10265           the configuration files the runtime version that the app supports.
10266           Added support methods for reading app.exe.config. Added list of versions
10267           supported by the JIT. Added two new methods: mono_init_from_assembly,
10268           which initializes the runtime and determines the required version from
10269           the provided exe file, and mono_init_version, which initializes
10270           the runtime using the provided version.
10271         * icall.c: Get machine.config from version-specific directory.
10272         * reflection.c: When generating an image, embed the version number
10273           of the current runtime.
10274
10275 2004-07-28  Dick Porter  <dick@ximian.com>
10276
10277         * socket-io.c
10278         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
10279         returned sockaddr size before creating the remote address object.
10280         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
10281         61608.
10282
10283 2004-07-28  Dick Porter  <dick@ximian.com>
10284
10285         * locales.c (string_invariant_compare_char): Fix invariant char
10286         compares between upper and lower cases.  Fixes bug 61458.
10287
10288 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
10289         
10290         * marshal.c: actually cache stelem.ref wrappers.
10291         
10292 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
10293
10294         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
10295         sections and remove the mono_cli_rva_map () function.
10296
10297 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10298
10299         * debug-mono-symfile.c: fix one more endianess issue, from a patch
10300         by Geoff Norton (<gnorton@customerdna.com>).
10301
10302 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10303
10304         * class.c: fix class loads for pointer types (typeof(int) !=
10305         typeof(int*)).
10306
10307 2004-07-27  Martin Baulig  <martin@ximian.com>
10308
10309         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
10310         reading the debugging information from an external ".mdb" file.
10311
10312 2004-07-24  Martin Baulig  <martin@ximian.com>
10313
10314         * reflection.c (mono_image_get_type_info): Only write a class
10315         layout entry if we actually have a size or a packing size.
10316
10317 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
10318
10319         * reflection.c (type_get_fully_qualified_name): 
10320         insert cast to get type checking of ?: with non-gcc compilers
10321
10322 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
10323
10324         * rand.c: use g_getenv for both lookups of
10325         MONO_EGD_SOCKET
10326
10327 2004-07-17  Martin Baulig  <martin@ximian.com>
10328
10329         * reflection.c (mono_reflection_bind_generic_method_parameters):
10330         Set `gmethod->reflection_info'.
10331
10332 2004-07-17  Martin Baulig  <martin@ximian.com>
10333
10334         * class.c (mono_class_create_from_typedef): Insert the newly
10335         created class into the hash table before computing the interfaces
10336         since we could be called recursively.
10337
10338 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
10339
10340         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
10341         function to implement stelem.ref in managed code
10342         * class-internals.h, debug-helpers.c: a new wrapper type
10343         for the above.
10344
10345 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
10346
10347         * gc.c: allow GC handles to work even when no GC is compiled in.
10348         Fix part of bug #61134 (GetAddrOfPinnedObject).
10349
10350 2004-07-13  Peter Williams  <peter@newton.cx>
10351  
10352         * process.c (complete_path): Make sure we don't attempt to execute
10353         directories.
10354  
10355 2004-07-12  Geoff Norton <gnorton@customerdna.com>
10356
10357         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
10358           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
10359           and will add/subtract the hour if needed
10360
10361 2004-07-12  Martin Baulig  <martin@ximian.com>
10362
10363         * reflection.c (mono_field_get_object): If we have
10364         `field->generic_info', take the attributes from
10365         `field->generic_info->generic_type'.    
10366
10367 2004-07-12  Martin Baulig  <martin@ximian.com>
10368
10369         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
10370         This function must be called before initializing the runtime.
10371         (mono_debug_init_1): New function; call this after initializing
10372         the runtime, but before loading the assembly.  It tells the
10373         debugger to load corlib and the builtin types.
10374
10375         * mono-debug-debugger.c: Did some larger changes in the debugging
10376         code; support recursive class declarations, make sure we actually
10377         add all classes.
10378
10379 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10380
10381         * debug-helpers.c: undo my previous patch and fixed the real issue in
10382         ../mini/exceptions-x86.c
10383
10384 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10385
10386         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
10387         when no HOME env. variable was set and a NullRef was thrown in a .cctor
10388         called from other .cctors.
10389
10390 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
10391
10392         * loader.c: Removed the mono_loader_wine_init hack now that we are
10393         doing a managed version of Windows.Forms.
10394
10395 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
10396
10397         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
10398         threadpool.c, threads.c: remove static data from rootset.
10399
10400 2004-07-09  Dick Porter  <dick@ximian.com>
10401
10402         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
10403         Don't do any more processing if the matched length was 0.  It was
10404         increasing the size of the string before.  Fixes bug 61167.
10405
10406 2004-07-09  Dick Porter  <dick@ximian.com>
10407
10408         * socket-io.h:
10409         * socket-io.c
10410         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
10411         Add support for SO_PEERCRED if its available.
10412
10413 2004-07-09  Peter Bartok <pbartok@novell.com>
10414         * loader.c: winelib.exe.so error message is now only displayed if
10415         MONO_DEBUG is set. To help us avoid questions when people are trying
10416         out the new Managed.Windows.Forms.
10417
10418 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
10419
10420         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
10421         for isinst and castclass wrappers.
10422
10423         * class-internals.h icall.c: Move registration and lookup of JIT icalls
10424         to libmetadata from the JIT, so they could be used by the marshalling
10425         code and the interpreter.
10426
10427         * marshal.c: Register marshalling related JIT icalls here instead of
10428         in mini.c. Use CEE_MONO_ICALL instead of the family of 
10429         CEE_MONO_PROC<x> opcodes to call marshalling functions.
10430
10431         * metadata.h: Remove unneeded marshalling conversions.
10432
10433         * opcodes.c: Update for new opcodes.
10434         
10435 2004-07-08  Martin Baulig  <martin@ximian.com>
10436
10437         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
10438         (mono_debug_get_domain_data): Make this function static.
10439
10440 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
10441
10442         * gc.c, object.h: add nice GC handle API for embedders.
10443
10444 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
10445
10446         * reflection.c: more changes for the new api
10447
10448         * object.c: When we reflect on a field w/ a constant value, it
10449         will not have a memory location, so we must access metadata. Also,
10450         allow easier reading of strings so that we can read them from
10451         the constant data.
10452
10453         * class.c (mono_class_layout_fields): no need for literal fields here.
10454
10455         * class-internals.h: api changes for const fields
10456
10457         * icall.c (ves_icall_get_enum_info): use new apis for const fields
10458
10459 2004-07-06  Martin Baulig  <martin@ximian.com>
10460
10461         * mono-debug.h: Increment version number to 44.
10462
10463         * mono-debug.c (mono_debug_add_wrapper): The second argument is
10464         now a gpointer, rewrote this whole method.
10465
10466         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
10467         function.  Add information about the wrapper in a new "misc table".
10468
10469         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
10470         for the new misc table.
10471
10472 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
10473
10474         * metadata-internals.h image.c: Add a cache for helper signatures.
10475
10476         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
10477
10478 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
10479
10480         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
10481         delegates from a delegate. Fixes #61033.
10482         
10483         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
10484         marshalling of stringbuilder arrays. Fixes #59900.
10485
10486 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
10487
10488         * icall.c: Add EnumBuilder:setup_enum_type icall.
10489
10490 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
10491
10492         * icall.c: Added a new icall for the property version of
10493         OffsetOfStringData.
10494
10495 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
10496
10497         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
10498         it has a constant size across platforms.
10499
10500         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
10501         stack trace.
10502
10503 2004-06-29  Martin Baulig  <martin@ximian.com>
10504
10505         * mono-debug.c (mono_debug_add_method): Protect the whole function
10506         in mono_debugger_lock(), not just parts of it.
10507
10508 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10509
10510         * reflection.c: make sure padding bytes in heaps are zeroed.
10511
10512 2004-06-24  David Waite  <mass@akuma.org>
10513
10514         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
10515         image.c, loader.c, locales.c, marshal.c, metadata.c,
10516         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
10517         string-icalls.c, threads.c: change to C90-style comments from C99 /
10518         C++ -style
10519
10520 2004-06-24  Dick Porter  <dick@ximian.com>
10521
10522         * threads.c
10523         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
10524         return createdNew.  Fixes bug 60412.
10525
10526         * threads-types.h: 
10527         * icall.c: Add createdNew parameter to CreateMutex icall
10528
10529 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10530
10531         * reflection.c, object-internals.h: save default value in params.
10532
10533 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10534
10535         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
10536         no need to build a new path combining that with the application base.
10537         Fixes bug #60442.
10538
10539 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
10540
10541         * reflection.c: fixed minor standard compliance issues.
10542
10543 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
10544
10545         * reflection.c: fixed issue with encoding some custom attributes
10546         (arrays in properties and fields, bug #60411).
10547
10548 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10549
10550         * reflection.c: fix start address when copying the public key token.
10551
10552 2004-06-23  Martin Baulig  <martin@ximian.com>
10553
10554         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
10555         the `exc' object in a static object to put it into the GC's root set.
10556
10557 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
10558
10559         * reflection.c: make mono_reflection_setup_internal_class ()
10560         callable a second time to setup a new parent class.
10561
10562 2004-06-23  Dick Porter  <dick@ximian.com>
10563
10564         * threads.c: Check for WAIT_IO_COMPLETION return values.
10565
10566 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
10567
10568         * appdomain.c: Removed the g_free on the public key token. Now copy 
10569         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
10570         * assembly.c: Added public key token string value when loading 
10571         assemblies. Fix bug #60439.
10572         * icall.c: Added missing informations (like public key) in 
10573         GetReferencedAssemblies. Fix #60519.
10574         * image.h: Changed definition for public key token from const char*
10575         public_tok_value to guchar public_key_token [17];
10576         * reflection.c: Updated for changes to public key token.
10577
10578 2004-06-22  Lluis Sanchez Gual
10579
10580         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
10581         for the field in base classes.
10582
10583 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10584
10585         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
10586         mark headers as not supported, they are installed only for use by the
10587         debugger.
10588
10589 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
10590
10591         * *.c, *.h: avoid namespace pollution in public headers.
10592
10593 2004-06-21  Martin Baulig  <martin@ximian.com>
10594
10595         * exception.c (mono_get_exception_security): It's in
10596         "System.Security", not in "System".
10597
10598         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
10599         the exception classes.
10600
10601 2004-06-21  Martin Baulig  <martin@ximian.com>
10602
10603         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
10604         Protect the exception object from being finalized.
10605
10606 2004-06-21  Martin Baulig  <martin@ximian.com>
10607
10608         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
10609         public function.
10610
10611 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
10612
10613         * reflection.c: Load the assembly in mono_reflection_type_from_name,
10614         if it was not loaded before. Fix parts of #60439.
10615
10616 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
10617
10618         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
10619         code that was broken since Ben's change: wrappers are now
10620         dependent on the method signature only again.
10621
10622 2004-06-21  Martin Baulig  <martin@ximian.com>
10623
10624         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
10625         added interface support.
10626
10627 2004-06-21  Martin Baulig  <martin@ximian.com>
10628
10629         * class.c (mono_vtable_get_static_field_data): New public method.
10630
10631 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
10632
10633         * filewatcher.c : Windows build fix to be compliant with API changes.
10634
10635 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10636
10637         * class.h, class.c: more accessors.
10638         * metadata.h, metadata.c: prepare for hiding MonoType and
10639         MonoMethodSignature: people should use the accessors from now on
10640         outside of the tree.
10641
10642 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10643
10644         * *.c, *.h: more API cleanups.
10645
10646 2004-06-18  Jackson Harper  <jackson@ximian.com>
10647
10648         * assembly.c: Trace loading assemblies.
10649         * loader.c: Trace loading native libraries.
10650         * mono-config.c: Trace loading config files.
10651         
10652 2004-06-18  Dick Porter  <dick@ximian.com>
10653
10654         * locales.c: Tell ICU the lengths of strings, it can cope with
10655         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
10656
10657 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
10658
10659         * image.c: swapped name/filename;
10660
10661 2004-06-18  Martin Baulig  <martin@ximian.com>
10662
10663         * mono-debug-debugger.c (write_class): Write the parent class at
10664         the end of the header.
10665
10666 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10667
10668         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
10669
10670 2004-06-17  Raja R Harinath  <rharinath@novell.com>
10671
10672         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
10673         (bundle_obj): New conditional define.
10674         (BUILT_SOURCES): Remove.
10675         ($(bundle_srcs)): Make parallel-make safe.
10676         (libmonoruntime_la_LIBADD): Make unconditional.
10677         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
10678         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
10679
10680 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
10681
10682         * culture-info-tables.h: It was inconsistent with the latest
10683           supp info files.
10684
10685 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
10686
10687         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
10688         be loaded.
10689
10690         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
10691         with gcc 2.95.
10692
10693 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10694
10695         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
10696         cleaned up public header threads.h.
10697
10698 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10699
10700         * Makefile.am, *.c, *.h: more API cleanups.
10701
10702 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
10703
10704         * Makefile.am: removed monosn from compilation.
10705         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
10706         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
10707         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
10708         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
10709         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
10710         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
10711
10712 2004-06-15  Jackson Harper  <jackson@ximian.com>
10713
10714         * assembly.c: Make locales lower case when searching the GAC for
10715         assemblies. gacutil will always make locales lowercase when
10716         installing so this effectively makes them case insensitive.
10717         
10718 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
10719
10720         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
10721         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
10722           parameter which allows to choose whether the wait can be interrupted or 
10723           not. Also added the method mono_monitor_enter(), which locks the monitor
10724           using an infinite wait and without allowing interruption.
10725           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
10726           interrupted.
10727         * object.h: Added new fields in MonoThread. suspend_event holds the event
10728           used to susped/resume the thread. synch_lock is the lock object to use for
10729           modifying the thread state.
10730         * threads.c: Use the new synch_lock object for locking, instead of "this",
10731           which can generate deadlocks.
10732           Moved thread state change in Thread.Sleep and Thread.Join from managed
10733           to unmanaged code. This avoids a deadlock when the thread was suspended
10734           just after acquiring the thread lock.
10735           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
10736           Implemented Thread.Suspend using an event instead of ThreadSuspend,
10737           which is not fully implemented in the io-layer.
10738         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
10739
10740 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
10741
10742         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
10743         threads-types.h: more API cleanups.
10744
10745 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10746
10747         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
10748         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
10749         threadpool.c, threads.c: first pass at the exported API cleanup.
10750
10751 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
10752
10753         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
10754
10755 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10756
10757         * icall.c: added internalGetHome.
10758
10759 2004-06-14  Dick Porter  <dick@ximian.com>
10760
10761         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
10762         possible to return successfully when '.' or '..' were the only
10763         entries in a directory, but were skipped.  The MonoIOStat was not
10764         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
10765         Fixes bug 59574.
10766
10767 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10768
10769         * reflection.c: make binaries run on .Net 1.1 by default.
10770
10771 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10772
10773         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
10774
10775 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
10776
10777         * marshal.c: keep track of struct size with explicit layout
10778         (bug #59979).
10779
10780 2004-06-12  Martin Baulig  <martin@ximian.com>
10781
10782         * mono-debug-debugger.c: Comment out a debugging g_message().
10783
10784 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10785
10786         * reflection.c, reflection.h: do not free custom attrs that are cached.
10787         * icall.c: use braces to make code clearer.
10788
10789 2004-06-11  Martin Baulig  <martin@ximian.com>
10790
10791         * class.h (MonoInflatedField): New type.
10792         (MonoClassField): Replaced `MonoType *generic_type' with
10793         `MonoInflatedField *generic_info'.
10794
10795         * icall.c
10796         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
10797
10798 2004-06-11  Martin Baulig  <martin@ximian.com>
10799
10800         * reflection.c (mono_image_create_method_token): Correctly encode
10801         varargs methods.
10802
10803 2004-06-11  Martin Baulig  <martin@ximian.com>
10804
10805         * metadata.c (mono_metadata_parse_method_signature): When parsing
10806         a MethodDef which has VarArgs, also set sentinelpos if we don't
10807         have any parameters.
10808
10809 2004-06-11  Martin Baulig  <martin@ximian.com>
10810
10811         * verify.c (mono_method_verify): In CEE_CALL, use
10812         mono_method_get_signature() to get the method's signature, unless
10813         we're a PInvoke method.
10814
10815 2004-06-10  Jackson Harper  <jackson@ximian.com>
10816
10817         * assembly.c: Use <path>/lib/mono/gac for the extra paths
10818         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
10819         logical name as the supplied path is just a prefix to the gac not
10820         the direct path to it.
10821         
10822 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
10823
10824         * reflection.c: make the token for a created method match
10825         the token of the MethodBuilder it was created from
10826         (IKVM requires this behaviour now).
10827
10828 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
10829
10830         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
10831         reflection.c, socket-io.c: leak fixes.
10832
10833 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
10834
10835         * icall.c: handle sentinel pos in vararg methods in position different
10836         from 0.
10837
10838 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10839
10840         * culture-info-tables.h: freshly generated.
10841
10842 2004-06-09  Martin Baulig  <martin@ximian.com>
10843
10844         * loader.c (mono_get_method_constrained): Call `mono_class_init
10845         (constrained_class)'.   
10846
10847 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10848
10849         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10850         any methods. Fixes #59629.
10851
10852 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10853
10854         * culture-info-tables.h: reflecting locale-builder updates.
10855
10856 2004-06-08  Dick Porter  <dick@ximian.com>
10857
10858         * object.h:
10859         * locales.c: Fixed compile warnings, including a real bug in
10860         CompareInfo_internal_compare.
10861         
10862 2004-06-08  Dick Porter  <dick@ximian.com>
10863
10864         * locales.c
10865         (ves_icall_System_Globalization_CompareInfo_internal_index):
10866         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10867         Double-check the resuls of usearches, because ICU currently
10868         ignores most of the collator settings here.  Fixes bug 59720.
10869         
10870 2004-06-08  Dick Porter  <dick@ximian.com>
10871
10872         * locales.c
10873         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10874         Fix memory leak and segfault-causing typo.  No idea how this one
10875         lasted so long without being noticed.
10876
10877 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10878
10879         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10880         any methods. Fixes #59629.
10881
10882 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10883
10884         * assembly.c:
10885         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10886         own the critical section before). Removed dead code (that's done
10887         in the preload hook).
10888
10889         (mono_assembly_load_with_partial_name): call the preload hook.
10890
10891 2004-06-08  Martin Baulig  <martin@ximian.com>
10892
10893         * metadata.c (mono_metadata_signature_alloc): Default
10894         `sentinelpos' to -1.
10895
10896         * reflection.c (mono_image_get_array_token): Likewise.
10897
10898 2004-06-08  Martin Baulig  <martin@ximian.com>
10899
10900         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10901
10902         * metadata.c (mono_metadata_parse_method_signature): When parsing
10903         a MethodDef which has VarArgs, set sentinelpos.
10904
10905         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10906         `gint16' since we're using -1 for non-varargs methods.
10907
10908         * reflection.c
10909         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10910         (method_encode_signature): Added varargs support.
10911         (method_builder_encode_signature): Likewise.
10912         (mono_image_get_varargs_method_token): New static method.
10913         (mono_image_create_method_token): New public method; this is
10914         called via an icall instead of mono_image_create_token() when
10915         calling a varargs method.       
10916
10917 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10918
10919         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10920
10921 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10922
10923         * culture-info-tables.h : Reflecting the latest locale-builder that
10924           fixed empty array representation ({} to {0}).
10925
10926 2004-06-07  Jackson Harper  <jackson@ximian.com>
10927
10928         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10929         looking up extra gac paths. This allows MONO_GAC_PATH to act
10930         exactly like a prefix.
10931         
10932 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10933
10934         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10935         type name before modifying it. Fixes #59405.
10936
10937 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10938
10939         * culture-info.h: added fields for "all datetime patterns".
10940         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10941           _construct_datetime_format ()): fill xxx_patterns fields.
10942         * object.h: added fields for "all datetime patterns" to
10943           MonoDateTimeFormatInfo.
10944         * culture-info-tables.h: reflecting locale-builder updates.
10945
10946 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10947
10948         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10949         the event has no add and remove methods. Fixes #59629.
10950
10951 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10952
10953         * object.c: Fixed possible integer overflow when allocating large
10954         strings.
10955
10956 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10957
10958         * culture-info-tables.h: reflecting locale-builder updates.
10959
10960 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10961
10962         * culture-info-tables.h: reflecting locale-builder updates.
10963
10964 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10965
10966         * culture-info-tables.h: reflecting locale-builder updates.
10967
10968 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10969
10970         * threads.c: Made Thread.Sleep abortable.
10971
10972 2004-06-02  Martin Baulig  <martin@ximian.com>
10973
10974         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10975
10976         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10977
10978 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10979
10980         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10981
10982 2004-05-30  Jackson Harper  <jackson@ximian.com>
10983
10984         * reflection.c: Do not hardcode assembly versions or public key
10985         tokens anymore. All of this except the corlib section was dead
10986         code anyways.
10987         
10988 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10989
10990         * object.c (mono_runtime_invoke_array): Automatically create boxed
10991         objects for byref valuetypes if needed. Fixes #59300.
10992         
10993         * object.c (mono_method_return_message_restore): Handle 
10994         MONO_TYPE_OBJECT as well.
10995
10996 2004-05-28  Jackson Harper  <jackson@ximian.com>
10997
10998         * reflection.c: The modified type encoding was causing build
10999         problems. Reverted for now.
11000         
11001 2004-05-28  Jackson Harper  <jackson@ximian.com>
11002
11003         * reflection.c/h: Take an assembly ref so that we dont create
11004         fully qualified names when encoding types in the same assembly as
11005         the custom attribute being emitted.
11006         * appdomain.c: Increment version number.
11007         
11008 2004-05-26  Duncan Mak  <duncan@ximian.com>
11009
11010         * icall.c
11011         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
11012         Set the full version number (major, minor, build, revision).
11013
11014 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
11015
11016         * marshal.c (emit_struct_conv): increment src/dst after blit
11017         (mono_marshal_get_managed_wrapper,
11018         mono_marshal_get_native_wrapper): make sure we have marshalling
11019         info before marshalling params (info computation affects
11020         blittable)
11021
11022         * class.c (class_compute_field_layout): correctly deal with
11023         blittable
11024         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
11025         value types (as per what windows dows by default)
11026         (mono_class_setup_mono_type): System.ValueType is blittable
11027         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
11028         blittable
11029
11030         * marshal.c (mono_marshal_load_type_info): flag types  as
11031         non-blittable if the native layout doesn't match the managed
11032         layout
11033
11034 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11035
11036         * appdomain.c: don't add stuff in the private search path that is
11037         above the application base. If application base is not set, there's
11038         no private search path.
11039
11040 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
11041
11042         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
11043         byref struct arguments in native->managed marshalling.
11044
11045 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
11046
11047         * marshal.c (mono_marshal_get_runtime_invoke): correctly
11048         cache methods using signature (special case for methods
11049         that are value type or string class)
11050         
11051         * image.c (mono_image_close): clean up allocated GSList's
11052         in runtime_invoke_cache.
11053
11054 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11055
11056         * mono-config.c: set the correct path for mono_cfg_dir on windows when
11057         there's no MONO_CFG_DIR environment variable defined.
11058
11059 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11060
11061         * threads.c: windows version must be >= 0x0500 to include OpenThread.
11062
11063 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
11064
11065         * threadpool.c: Really wait for 500ms after the async call, even if the wait
11066           is interrumped.
11067         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
11068           before waiting for it, and call CloseHandle after the wait to unref it.
11069           This will make sure that handles are not disposed too early.
11070
11071 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11072
11073         * appdomain.c:
11074         * appdomain.h:
11075         * icall.c: removed
11076         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
11077         needed now.
11078
11079         * object.c: se the application_base only for the domain that runs
11080         Main. Fixes bug #59216,
11081
11082 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11083
11084         * appdomain.c:
11085         * object.c: only the domain in which Main is run have
11086         SetupInformation.ConfigurationFile set, so moved a few lines from
11087         appdomain.c to object.c.
11088
11089 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11090
11091         * appdomain.c: we tried to load [name].(dll|exe), but according
11092         to bug #57710, we must also try [culture]/[name].(dll|exe) and
11093         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
11094         There's a test case attached to bug #58922.
11095
11096 2004-05-27  Dick Porter  <dick@ximian.com>
11097
11098         * icall.c:
11099         * file-io.c: Implemented icalls for locking and unlocking regions
11100         in a file.
11101         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
11102         FALSE on error (fixes both compiler warning and real bug.)
11103
11104 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
11105
11106         * culture-info-tables.h: reflecting locale-builder updates.
11107
11108           (Added missing ChangeLog entry for 05/26)
11109
11110 2004-05-27  Jackson Harper  <jackson@ximian.com>
11111
11112         * locales.c: Fix some cut and paste errors.
11113         
11114 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11115
11116         * mono-config.c: set the correct path for config. directory on windows.
11117
11118 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11119
11120         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
11121           on win32.
11122
11123 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
11124
11125         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
11126         from pinvoke functions.
11127         
11128         * marshal.c (mono_ftnptr_to_delegate): Implement this.
11129
11130 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11131
11132         * culture-info-tables.h: reflecting locale-builder updates.
11133
11134 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
11135
11136         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
11137         #59086.
11138
11139 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
11140
11141         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
11142         * icall.c: Modified icalls for RNG.
11143         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
11144         Windows (CryptoAPI).
11145
11146 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
11147
11148         * locales.c: Fix build.
11149
11150 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11151
11152         * culture-info-tables.h: reflecting locale-builder updates.
11153
11154 2004-05-25  Jackson Harper  <jackson@ximian.com>
11155
11156         * locales.c: When creating the current culture use the $LANGs
11157         specific culture. So DateTimeFormat and NumberFormat entries are created.
11158         
11159 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
11160
11161         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
11162         a char array as parameter.
11163
11164 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
11165
11166         * image.c: In mono_image_open(), always use an absolute path name to
11167           look for already loaded images.
11168
11169 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
11170
11171         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
11172         missing in the windows build (like older cygwin include files).
11173
11174 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
11175
11176         * icall.c: Fixed check for possible integer overflow in Buffer_
11177         BlockCopy icall. Replaced comments style // by /* */.
11178
11179 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
11180
11181         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
11182         
11183         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
11184         check after MONO_VTADDR. Fixes pinvoke2.exe.
11185
11186         * marshal.h marshal.c metadata.h: Add beginnings of support for
11187         ftnptr -> delegate marshalling.
11188
11189 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
11190
11191         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
11192         * threads.c: Fix warnings.
11193
11194 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
11195
11196         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
11197         * icall.c: Registered icalls for Suspend and Resume.
11198         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
11199           Thread.Abort.
11200         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
11201         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
11202         * process.c: Use WaitForSingleObjectEx.
11203         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
11204           checkpoints.
11205         * threads.c, threads.h: Make use of new Ex wait methods. Improved
11206           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
11207           for Suspend and Resume. Added new mono_thread_stop, used for stoping
11208           background threads. Added basic support for Abort in Windows.
11209           Start new threads using a managed delegate invoke wrapper. This wrapper
11210           has an interruption checkpoint that is needed since an interruption
11211           can be requested before the thread leaves the unmanaged code that starts 
11212           the thread.
11213         * marshal.c: Added interruption checkpoint after every native call, and
11214           also before managed calls for wrappers called from unmanaged code to
11215           go into managed code.
11216         * object.h: Added new field in MonoThread to keep track of interruption
11217           requests.
11218
11219 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
11220
11221         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
11222         calls.
11223
11224 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11225
11226         * appdomain.c:
11227         * assembly.c:
11228         * gc.c:
11229         * locales.c:
11230         * mono-config.c:
11231         * rand.c: getenv -> g_getenv (windows!)
11232
11233         * process.c: complete_path is also used on non-windows platforms.
11234
11235 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11236
11237         * icall.c: new signature for Process_Start.
11238
11239         * process.[ch]: new signature for Process_Start. If we're on windows
11240         and UseShellExecute is false, we have to search for the program by
11241         ourselves if we don't get a full path.
11242
11243 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
11244
11245         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
11246         marshalling and call CleanUpNativeData if needed. Fixes #58646.
11247
11248 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11249
11250         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
11251         Fixes bug #58373.
11252
11253 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11254
11255         * process.c: use double quotes to quote program name and arguments on
11256         windows. Fixes bug #58575.
11257
11258 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11259
11260         * file-io.c: don't return "." and ".." when using windows Find*File.
11261
11262 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
11263
11264         * marshal.c: Don't pass wrappers to message init because method 
11265         addressed used to lookup metadata. part of remoting[2|3] fix.
11266
11267 2004-05-15  Jackson Harper  <jackson@ximian.com>
11268
11269         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
11270         path is essentially the same as MONO_PATH except that it points to
11271         GACs instead of lib directories.
11272         * loader.h: The user gac is gone so we dont need function to
11273         enable/disable it.
11274         * mono-config.c: user gac option is now gone.
11275         
11276 2004-05-15  Jackson Harper  <jackson@ximian.com>
11277
11278         * culture-info.h: Make defines more consistent, add calendar data
11279         to the culture info table.
11280         * culture-info-tables.h: Add basic calendar data. Basically
11281         everyone gets default gregorian until all the data is
11282         updated.
11283         * locales.c: Use the new consistent defines. Set calendar data for
11284         culture info objects.
11285         * object.h: add a field for calendar data to CultureInfo
11286         
11287 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
11288
11289         * image.c: image->runtime_invoke_cache is keyed on signatures now.
11290         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
11291         a signature.
11292         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
11293         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
11294         an extra param that is the pointer of the method to invoke. The IL for
11295         the invoke method is no longer specific to the method, but to the
11296         signature of the method. Thus, we can share the same code for multiple
11297         methods. This reduces the number of methods that have to be compiled.
11298
11299 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
11300
11301         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
11302
11303         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11304
11305         * icall.c: Optimize Buffer.BlockCopy.
11306
11307 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11308
11309         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
11310         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
11311         quote). Changed them to "MMMM yyyy".
11312
11313 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
11314
11315         * rand.c
11316         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
11317
11318 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
11319
11320         * reflection.h: Updated after changes to managed structures.
11321
11322         * appdomain.c: Bump corlib version.
11323
11324 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11325
11326         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
11327         windows.
11328
11329 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11330
11331         * Makefile.am: link to ../os/libmonoos.la on windows.
11332
11333         * assembly.c:
11334                 -If MONO_DEBUG, warn about non-existing directories in
11335                 MONO_PATH.
11336                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
11337                 compile time variable.
11338                 -Removed init_default_path and call mono_set_rootdir from
11339                 libmonoos.a instead (windows only).
11340
11341         * assembly.h: declare mono_assembly_getrootdir().
11342
11343         * domain.c:
11344         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
11345
11346         * loader.c: s/getenv/g_getenv/
11347
11348 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
11349
11350         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
11351
11352         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
11353
11354         * metadata.h: Add new marshalling conversions.
11355
11356         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
11357         function.
11358
11359         * reflection.c (mono_reflection_get_type): Lookup the type in all
11360         modules of a multi-module assembly. Fixes #58291.
11361
11362 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
11363
11364         * threads.c: Before aborting a background, set the StopRequested
11365         state.  This avoids throwing the Abort exception.
11366         In mono_thread_manage, don't continue with the shutdown until all
11367         aborted threads have actually stopped.
11368
11369 2004-05-10  Jackson Harper  <jackson@ximian.com>
11370
11371         * locales.c: Remove the modifier from culture names.
11372         
11373 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11374
11375         * Makefile.am: monosn is not installed any more. It has been deprecated
11376         in favor of sn.
11377
11378 2004-05-07  Jackson Harper  <jackson@ximian.com>
11379
11380         * locales.c
11381         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
11382         Fix array construction, add bailout if the length is 0.
11383
11384 2004-05-07  Dick Porter  <dick@ximian.com>
11385
11386         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
11387         machine doesn't have a DNS entry.  Patch by Urs Muff
11388         (umuff@quark.com), fixes bug 57928.
11389
11390 2004-05-06  Jackson Harper  <jackson@ximian.com>
11391
11392         * reflection.c: Handle null PublicTokens properly. alloc mem for
11393         assembly names culture so we dont crash when freeing it.
11394         
11395 2004-05-06  Jackson Harper  <jackson@ximian.com>
11396
11397         * assembly.c: Check the usergac when loading with partial names.
11398         
11399 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
11400
11401         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
11402         does nothing for now (not required for Linux/Windows) but the class
11403         library can call it (and a newer or modified runtime could need it).
11404         * icall.c: Registred icall.
11405
11406 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11407
11408         * loader.c: prints a message on module loading error we set MONO_DEBUG
11409         environment variable.
11410
11411 2004-05-05  Jackson Harper  <jackson@ximian.com>
11412
11413         * appdomain.c: Handle PublicKeyToken=null properly.
11414         
11415 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
11416
11417         * environment.c|h: Added icall ves_icall_System_Environment_
11418         GetOSVersionString to get the current OS version as a string.
11419         * icall.c: Registred icall.
11420
11421 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
11422
11423         * object.c: in mono_object_get_virtual_method(), take into account that
11424         non-virtual methods don't have a slot in the vtable. Check needed when
11425         the object is a proxy.
11426
11427 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
11428
11429         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
11430         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
11431
11432         * object.c (mono_class_compute_gc_descriptor): Fix warning.
11433
11434         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
11435         passed when a valuetype is expected.
11436
11437         * object.c (mono_unhandled_exception): Only set the exit code if the
11438         exception happens in the main thread. Fixes thread5.exe.
11439
11440         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
11441         invalid names. Fixes #58047.
11442
11443 2004-05-03  Jackson Harper  <jackson@ximian.com>
11444
11445         * assembly.c: This line was committed accidently and is unneeded.
11446         
11447 2004-05-03  Jackson Harper  <jackson@ximian.com>
11448
11449         * icall.c: Add new icall for Assembly::LoadWithPartialName
11450         * assembly.c/.h: new function that probes the GAC to load partial
11451         assembly names by Paolo Molaro.
11452         
11453 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11454
11455         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
11456         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
11457         (type_get_fully_qualified_name): Added PublicKeyToken when building a
11458         full type name.
11459
11460 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11461
11462         * appdomain.c: fixed check for 'neutral' culture and removed warning.
11463         * reflection.c: fix bug when parsing a full type name and Version is not
11464         the last thing in the string.
11465
11466 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
11467
11468         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
11469         crashes when it is freed.
11470
11471 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11472
11473         * assembly.c: print the compat warning to stderr.
11474
11475 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
11476
11477         * assembly.c (mono_assembly_load_references): Add a compatibility
11478         hack to run old applications that might be still referencing the
11479         3300-based assemblies, only do this for System.xxx.
11480
11481 2004-05-01  Jackson Harper  <jackson@ximian.com>
11482
11483         * appdomain.c: If the culture is neutral we set it to "".
11484         
11485 2004-04-29  Jackson Harper  <jackson@ximian.com>
11486
11487         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
11488
11489 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
11490  
11491         * string-icalls.c: added low overhead function for copying chars
11492         * icall.c: added needed icall for the above function
11493  
11494 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11495
11496         * icall.c: fix return value of get_global_assembly_cache.  Implemented
11497         Environment.GetLogicalDrives.
11498
11499 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
11500
11501         * rand.c: try and talk to egd or prngd
11502         for random bytes if opening devices fail.
11503
11504 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
11505
11506         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
11507         alignment for the type using the native alignment of its members 
11508         instead of using klass->min_align.
11509
11510         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
11511
11512 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11513
11514         * file-io.c:
11515         * socket-io.c: added check for sys/aio.h.
11516
11517 2004-04-28  Dick Porter  <dick@ximian.com>
11518
11519         * threads.c: Don't abort a thread thats already aborting, when
11520         terminating everything.
11521
11522 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11523
11524         * icall.c: added 2 new async calls for Socket.
11525
11526         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
11527         IO on *nix systems.
11528
11529         * threadpool.c: removed unused variable.
11530
11531 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
11532
11533         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
11534
11535 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11536
11537         * locales.c: put back string_invariant_tolower () and
11538         string_invariant_toupper ().
11539
11540 2004-04-26 David Waite <mass@akuma.org>
11541
11542         * file-io.h:
11543         * socket-io.h:
11544         * threads.h:
11545         * unicode.h: remove comma from end of enumeration declarations
11546
11547 2004-04-26 David Waite <mass@akuma.org>
11548
11549         * debug-mono-symfile.h:
11550         * decimal.c:
11551         * mono_debug.h:
11552         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
11553
11554
11555 2004-04-26  Jackson Harper  <jackson@ximian.com>
11556
11557         * appdomain.c: Increment version number.
11558         
11559 2004-04-26  Jackson Harper  <jackson@ximian.com>
11560
11561         * appdomain.c: Set assembly references public token value when
11562         PublicKeyToken is specified, not the hash_value. Free public token
11563         values when free assembly name data. Previously the public key
11564         token was hex decoded, however we are using hex encoded public key
11565         tokens, so this is not neccasary.
11566         * assembly.c: Lookup assemblies in the gac if their public token
11567         value is set. Add function to allow enabling user gac
11568         lookups. Specify whether or not the assembly was loaded from the
11569         GAC. Compare full assembly names when checking the cache for
11570         assemblies (Temporarily disabled see comment in code). Remove
11571         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
11572         specifies trace-loader they get extra info to stdout on the
11573         loading of assemblies.
11574         * image.h: Add a field for an assembly references public token
11575         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
11576         whether an assembly has been loaded from the GAC.
11577         * image.c: Remove a corlib -> mscorlib name mapping.
11578         * loader.h: Add function to enable/disable the user gac.
11579         * mono-config.c: Check if the usergac is enabled in the config
11580         file.
11581         * icall.c: New icall to determine whether or not an assembly has
11582         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
11583         * tabldefs.h: Add constant for assemblyref flag that specifies a
11584         full public key is used instead of a public token.
11585         * reflection.c: Remove mscorlib -> corlib mappings. Set
11586         PublicTokenValue instead of hash value. This value is a hex
11587         string so it does not need to be expanded.
11588
11589 2004-04-26  Martin Baulig  <martin@ximian.com>
11590
11591         * mono-debug-debugger.c (mono_debugger_initialize): Set
11592         `mono_debugger_initialized' before calling mono_debug_lock().
11593
11594 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
11595
11596         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
11597           InternalToUpper/InternalToLower.
11598         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
11599           removed invariant culture shortcut.  This is now done in managed code.
11600         * locales.c: (string_invariant_toupper/tolower) removed.
11601
11602 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11603
11604         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
11605         Added Poll internal call.
11606
11607         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
11608         call for Poll. Select was too heavy for polling a single socket.
11609
11610         * threadpool.[ch]: added mono_threadpool_cleanup.
11611         * threads.c: use it. Don't use Thread_Abort on windows.
11612
11613 2004-04-23  Martin Baulig  <martin@ximian.com>
11614
11615         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
11616
11617 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
11618
11619         * icall.c: Registred new icalls for key pair protection and added an
11620         icall for Environment.GetFolderPath on Windows.
11621         * security.c|h: Added new icalls for key pair protection.
11622
11623 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11624
11625         * socket-io.c: don't display the non-supported family warning for known
11626         families. Now this is not displayed on windows when checking support
11627         for IPv4/IPv6.
11628
11629 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11630
11631         * class.c: don't display the layout warning for static fields.
11632
11633 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
11634
11635         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
11636         * locales.c, locales.h: Added new icalls for culture-specific
11637         Char.ToLower and Char.ToUpper.
11638
11639 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11640
11641         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
11642         by David Waite.
11643
11644 2004-04-20  Martin Baulig  <martin@ximian.com>
11645
11646         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
11647         of the type name before passing it to mono_reflection_type_from_name().
11648
11649 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
11650
11651         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
11652         encodings here. Fixes #56965.
11653
11654 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
11655
11656         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11657         fix test on strstr result not that I can see anything that
11658         relies on the result.
11659
11660 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
11661
11662         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
11663         Fixes #57081.
11664
11665         * marshal.c (mono_marshal_get_string_encoding): New helper function.
11666
11667         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
11668         function to determine which marshalling to use for strings. Fixes
11669         #56965.
11670
11671         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
11672
11673         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
11674
11675 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
11676
11677         * icall.c: #include mono-config.h
11678
11679 2004-04-15  Jackson Harper  <jackson@ximian.com>
11680
11681         * culture-info-tables.h: Fix date formats for en-US culture.
11682         
11683 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
11684
11685         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
11686         ThreadPool.SetMinThreads.
11687         * threadpool.c: Implemented ThreadPool.GetMinThreads and
11688         ThreadPool.SetMinThreads.
11689
11690 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11691
11692         * mono-config.c: also load the .config file in the directory
11693         where the assembly was found.
11694
11695 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
11696
11697         * assembly.c: load per-assembly config files.
11698         * icall.c: decrapified code to get the config dir and moved to
11699         mono-config.c.
11700         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
11701         per-assembly config files. When doing a dll map lookup give precedence
11702         to the per-assembly data.
11703
11704 2004-04-14  Martin Baulig  <martin@ximian.com>
11705
11706         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
11707         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
11708         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
11709
11710         * mono-debugger-debugger.c: While the debugger is locked, remember
11711         whether the symbol tables have changes and send one single
11712         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
11713
11714 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
11715
11716         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
11717
11718         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
11719         function.
11720
11721         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
11722         account when marshalling string arrays. Fixes #56965.
11723
11724 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
11725
11726         * icall.c: Add new icalls mapping for security.
11727         * security.c|h: Add internal calls for WindowsIdentity,
11728         WindowsImpersonationContext and WindowsPrincipal.
11729
11730 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
11731
11732         * class.c: Added comment to ensure the System.MonoDummy class
11733         is removed when no longer necessary
11734
11735 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
11736
11737         * appdomain.c: Pass arguments to the bootstraping exceptions to
11738         minimize JITed methods at boot
11739
11740         * metadata.c (mono_exception_from_name_two_strings): Allow for the
11741         second string to be null.
11742
11743         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11744         Change the protocol to minimize the JIT methods at startup.  Now
11745         it Returns the internal codepage, if the value of "int_code_page"
11746         is 1 at entry, and we can not compute a suitable code page
11747         number, returns the code page as a string.
11748
11749 2004-04-13  Jackson Harper  <jackson@ximian.com>
11750
11751         * culture-info-tables.h: Fix number of decimal digits for all
11752         english locales.
11753
11754 2004-04-13  Jackson Harper  <jackson@ximian.com>
11755
11756         * icall.c: Clairfy out of sync error message. It is not always
11757         your corlib that is out of sync.
11758
11759 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
11760
11761         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
11762         properties when only the set accessor is overriden. Fixes #55874.
11763
11764 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
11765
11766         * assembly.c (mono_assembly_load_references): Make this thread safe.
11767         Fixes #56327.
11768
11769 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
11770
11771         * monosn.c: Add missing initialization calls.
11772
11773 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
11774
11775         * locales.c:
11776         ves_icall_System_Globalization_CultureInfo_construct_number_format
11777         Fix g_assert so it compiles on fussier compilers re int/ptr
11778         mismatch
11779
11780 2004-04-08  Dick Porter  <dick@ximian.com>
11781
11782         * socket-io.h:
11783         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
11784         53992.  Also rearrange the code so that the internal calls return
11785         an error value and exceptions are thrown from managed code.
11786
11787         * icall.c: Add type info to the socket icalls.
11788
11789 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11790
11791         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
11792         owes me a beer.
11793
11794 2004-04-07  Martin Baulig  <martin@ximian.com>
11795
11796         * class.c (mono_class_from_generic_parameter): Don't default
11797         `klass->parent' to `mono_defaults.object_type'.
11798
11799 2004-04-07  Martin Baulig  <martin@ximian.com>
11800
11801         * reflection.c (mono_reflection_initialize_generic_parameter): Set
11802         `param->pklass->reflection_info'.       
11803
11804 2004-04-07  Jackson Harper  <jackson@ximian.com>
11805
11806         * culture-info-tables.h: Fix date separator symbol.
11807         
11808 2004-04-07  Martin Baulig  <martin@ximian.com>
11809
11810         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
11811         from System.Type to System.MonoType.
11812
11813 2004-04-07  Martin Baulig  <martin@ximian.com>
11814
11815         * reflection.h
11816         (MonoReflectionGenericParam): Added `has_reference_type' and
11817         `has_value_type' fields.
11818
11819         * reflection.c (mono_image_get_generic_param_info): Encode the
11820         correct flags if we have the `class' or `struct' constraint.
11821
11822 2004-04-07  Martin Baulig  <martin@ximian.com>
11823
11824         * reflection.h
11825         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
11826
11827 2004-04-07  Jackson Harper  <jackson@ximian.com>
11828
11829         * appdomain.c: Revert extra patches, just wanted to bump the
11830         version number.
11831         
11832 2004-04-07  Jackson Harper  <jackson@ximian.com>
11833
11834         * Makefile.am: Add culture-info private headers.
11835         * icall.c: Add new icalls for contructing locales.
11836         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11837         * locales.h: Declare new culture info construction methods.
11838         * object.h: Add new fields used to avoid the CultureMap to
11839         MonoCultureInfo.
11840         * culture-info.h: Definition of structs used in the culture info
11841         tables.
11842         * culture-info-tables.h: Autogenerated tables that contain culture
11843         info data. This file was generated with the locale-builder tool.
11844         * appdomain.c: Incement corlib version number.
11845         
11846 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11847
11848         * appdomain.c: (mono_runtime_init) move mono_thread_init
11849         to before mono_object_new calls so critical sections
11850         are initialized before use.
11851
11852 2004-04-07  Martin Baulig  <martin@ximian.com>
11853
11854         * icall.c
11855         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11856         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11857         (ves_icall_MonoGenericParam_initialize): Removed.
11858         (monogenericparam_icalls): Removed.
11859         (generictypeparambuilder_icalls): Added new table for
11860         System.Reflection.Emit.GenericTypeParameterBuilder.
11861
11862         * reflection.c
11863         (mono_reflection_define_generic_parameter): Removed.
11864         (mono_reflection_initialize_generic_parameter): This is now called
11865         from GenericTypeParameterBuilder's .ctor.
11866
11867 2004-04-06  Martin Baulig  <martin@ximian.com>
11868
11869         * class.c (mono_class_init): Don't inflate nested classes in a
11870         generic instance.
11871         (mono_type_get_name_recurse): Include the generic arguments for
11872         generic instances and generic type declarations.
11873         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11874         (_mono_class_get_instantiation_name): Removed.
11875         (mono_class_create_generic): Always use `gklass->name' as our name.
11876
11877         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11878
11879         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11880         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11881         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11882         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11883         closed generic methods here.
11884
11885         * reflection.c
11886         (mono_reflection_generic_inst_get_nested_types): Removed.
11887         (inflate_mono_method): Copy the generic parameters from the
11888         MonoMethodHeader into out MonoGenericMethod.
11889
11890 2004-04-06  Martin Baulig  <martin@ximian.com>
11891
11892         * row-indexes.h
11893         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11894
11895         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11896
11897         * reflection.c (build_compressed_metadata): If we have any entries
11898         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11899         set the header version to 1.1.
11900
11901 2004-04-06  Martin Baulig  <martin@ximian.com>
11902
11903         * class.c (mono_class_init): If we're a generic instance,
11904         initialize our nested classes, too.
11905         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11906         suffix. 
11907
11908 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11909
11910         * process.c: quote the argument passed to the shell on windows.
11911
11912 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11913
11914         * threads.c (mono_alloc_special_static_data): Allow this to be
11915         called during startup.
11916
11917 2004-04-02  Martin Baulig  <martin@ximian.com>
11918
11919         * icall.c
11920         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11921
11922 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11923
11924         * icall.c: Fix build.
11925
11926 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11927
11928         * Makefile.am: Added security.c|h.
11929         * icall.c: Added icall for get_UserName;
11930         * security.c: New file for security related icalls. Added function
11931         get_UserName for System.Environment (fix #56144).
11932         * security.h: New. Header file for security.c
11933
11934 2004-04-02  Dick Porter  <dick@ximian.com>
11935
11936         * icall.c: Deleted the icalls that were obsoleted some time ago
11937         by the ICU string code, and which were mixed into the icall
11938         rearranging.  Fixes bug 55969.
11939
11940         * string-icalls.h: 
11941         * string-icalls.c: Deleted the code that those icalls reference.
11942
11943 2004-04-01  Martin Baulig  <martin@ximian.com>
11944
11945         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11946
11947         * class.c (mono_class_from_generic_parameter): Don't set 
11948         TYPE_ATTRIBUTE_INTERFACE.
11949         (my_mono_class_from_generic_parameter): Likewise.
11950
11951 2004-04-01  Martin Baulig  <martin@ximian.com>
11952
11953         * loader.c (find_method): Added an optional `MonoClass *ic'
11954         argument to search in a specific interface.
11955         (mono_get_method_constrained): New public function.
11956
11957 2004-04-01  Martin Baulig  <martin@ximian.com>
11958
11959         * reflection.c (mono_image_get_generic_field_token): Use the
11960         `handleref' cache here.
11961
11962 2004-04-01  Martin Baulig  <martin@ximian.com>
11963
11964         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11965
11966         * reflection.c (create_generic_typespec): Use the `typespec' hash
11967         here, not the `typeref' one.    
11968
11969 2004-04-01  Martin Baulig  <martin@ximian.com>
11970
11971         * class.c (mono_class_inflate_generic_type): Moved the
11972         functionality into a new static inflate_generic_type() which
11973         returns NULL if it didn't do anything.  Only increment the
11974         `mono_stats.inflated_type_count' if we actually inflated
11975         something.
11976         (mono_class_get_full): Check the classes type to see whether we
11977         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11978
11979 2004-04-01  Jackson Harper  <jackson@ximian.com>
11980
11981         * reflection.c: Set culture for assembly references.
11982         
11983 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11984
11985         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11986
11987 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11988
11989         * assembly.c:
11990         (do_mono_assembly_open): the critical section also covers
11991         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11992
11993 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11994
11995         * threads.c:
11996         (mono_manage_threads): abort the background threads when finishing.
11997         Fixes bug #47232.
11998
11999 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12000
12001         * gc.c: only close the done_event handle if there was no timeout.
12002         C-ified comments.
12003
12004 2004-03-30  Martin Baulig  <martin@ximian.com>
12005
12006         * icall.c (icall_entries): It's called "System.Activator", not
12007         "System.Activation".    
12008
12009 2004-03-30  Martin Baulig  <martin@ximian.com>
12010
12011         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
12012         (mono_class_create_from_typespec): Likewise.
12013
12014 2004-03-30  Martin Baulig  <martin@ximian.com>
12015
12016         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
12017         `has_ctor_constraint' and `initialized'.
12018
12019 2004-03-30  Martin Baulig  <martin@ximian.com>
12020
12021         * reflection.c (encode_new_constraint): New static function to add
12022         the constructor constraint attribute to a type parameter.
12023         (encode_constraints): Call encode_new_constraint() if necessary.
12024
12025         * reflection.h
12026         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
12027
12028         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
12029         
12030 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
12031
12032         * reflection.c, icall.c: add support for pinning variables. 
12033
12034 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
12035
12036         * marshal.c (mono_marshal_get_managed_wrapper):
12037         init bool local with zero rather than null.
12038
12039 2004-03-29  Martin Baulig  <martin@ximian.com>
12040
12041         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
12042         the "official" behavior here.
12043         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
12044
12045 2004-03-29  Martin Baulig  <martin@ximian.com>
12046
12047         * icall.c: Reflect latest API changes.
12048
12049 2004-03-29  Martin Baulig  <martin@ximian.com>
12050
12051         * loader.c (mono_get_method_from_token): Also call
12052         mono_metadata_load_generic_params () for abstract and interface
12053         methods; replace the type arguments in the method signature with
12054         the ones which are loaded from the metadata.
12055
12056 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
12057
12058         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
12059         of the lock is not the current thread. MS.NET don't do it, in spite of
12060         what the documentation says. See bug #56157.
12061
12062 2004-03-28  Martin Baulig  <martin@ximian.com>
12063
12064         * class.c (mono_class_init): Don't call init_properties() and
12065         init_events() for generic instances; set `prop->parent' when
12066         inflating properties.
12067
12068         * reflection.c (mono_generic_inst_get_object): Call
12069         `mono_class_init (ginst->klass)'.
12070         (mono_type_get_object): Only create a MonoGenericInst if your
12071         generic type is a TypeBuilder.
12072         (do_mono_reflection_bind_generic_parameters): Only set
12073         `ginst->is_dynamic' if our generic type is a TypeBuilder.
12074
12075 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
12076
12077         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
12078         Fixes #56091.
12079
12080 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12081
12082         * icall.c: added Kill_internal icall.
12083         * process.[ch]: added Kill_internal icall.
12084
12085 2004-03-25  Martin Baulig  <martin@ximian.com>
12086
12087         * class.h (MonoStats): Added `generic_instance_count',
12088         `inflated_method_count', `inflated_type_count' and
12089         `generics_metadata_size'.       
12090
12091 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12092
12093         * reflection.c: no warnings now.
12094
12095 2004-03-25  Martin Baulig  <martin@ximian.com>
12096
12097         * class.c (mono_class_get_full): New public function; does a
12098         mono_class_get(), but also takes a `MonoGenericContext *'.
12099
12100         * loader.c (mono_field_from_memberref): Renamed to
12101         `field_from_memberref', made static and added `MonoGenericContext *'
12102         argument.
12103         (mono_field_from_token): Added `MonoGenericInst *' argument.
12104         (method_from_memberef): Likewise.
12105         (mono_get_method_from_token): Likewise.
12106         (mono_get_method_full): New public function; does a
12107         mono_get_method(), but also takes a `MonoGenericContext *'.
12108
12109         * verify.c (mono_method_verify): Get the method's generic context
12110         and pass it to mono_field_from_token(), mono_get_method_full() and
12111         mono_class_get_full().
12112
12113 2004-03-25  Martin Baulig  <martin@ximian.com>
12114
12115         * class.c (mono_class_inflate_generic_type): Take a
12116         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
12117         `MonoGenericMethod *'.
12118
12119 2004-03-25  Martin Baulig  <martin@ximian.com>
12120
12121         * loader.h (MonoMethodInflated): Store the MonoGenericContext
12122         instead of the MonoGenericMethod here.
12123
12124 2004-03-25  Martin Baulig  <martin@ximian.com>
12125
12126         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
12127         each time we create a new MonoGenericInst, we also create a new
12128         context which points back to us.
12129
12130         * class.c (inflate_method): Use `ginst->context' instead of
12131         creating a new context.
12132
12133         * loader.c (method_from_memberref): Use
12134         `klass->generic_inst->context' instead of creating a new context.
12135
12136 2004-03-25  Martin Baulig  <martin@ximian.com>
12137
12138         * class.h (MonoGenericContext): New struct.
12139         (MonoGenericMethod): Removed `generic_inst'.
12140
12141         * class.c (mono_class_inflate_generic_method): Take a
12142         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
12143
12144 2004-03-25  Martin Baulig  <martin@ximian.com>
12145
12146         * loader.h (MonoMethodInflated): New typedef.
12147
12148         * metadata.h (MonoMethodSignature): Removed `gen_method', make
12149         `generic_param_count' consume just 30 bits, added `is_inflated'
12150         and `has_type_parameters' flags (one bit each).
12151
12152         * class.c (mono_class_inflate_generic_method): Create a
12153         MonoMethodInflated instead of a MonoMethodNormal and set
12154         `is_inflated' in the method signature.
12155
12156         * class.h (MonoGenericMethod): Removed `generic_method'.
12157
12158 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
12159
12160         * image.c: Make sure the name of a MonoImage is always an absolute path.
12161           This fixes bug #54415.
12162
12163 2004-03-24  Martin Baulig  <martin@ximian.com>
12164
12165         * class.c (mono_class_setup_vtable): If we're a generic instance,
12166         use our generic type's vtable size.
12167
12168 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
12169
12170         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
12171         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
12172         problems.
12173
12174 2004-03-23  Martin Baulig  <martin@ximian.com>
12175
12176         * class.h (MonoDynamicGenericInst): Added `int count_events' and
12177         `MonoEvent *events'.
12178
12179         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
12180         (typebuilder_icalls): Added "get_event_info"; calls
12181         mono_reflection_event_builder_get_event_info(). 
12182
12183         * reflection.c (mono_reflection_generic_inst_initialize): Added
12184         `MonoArray *events'.
12185         (mono_reflection_event_builder_get_event_info): New function.
12186
12187 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
12188
12189         * object.h: add mono_type_initialization_init
12190
12191         * object.c (mono_runtime_class_init): 
12192         implement class constructor synchronization rules
12193         to cope with threading issues.  
12194         add mono_type_initialization_init
12195
12196         * appdomain.c (mono_runtime_init): call 
12197         mono_type_initialization_init
12198
12199         * class.h: removing initializing field from MonoVTable
12200
12201 2004-03-23  Martin Baulig  <martin@ximian.com>
12202
12203         * class.c (my_mono_class_from_generic_parameter): Use
12204         `param->name' if it's not NULL. 
12205
12206 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
12207
12208         * class.c: do not insert non-virtual methods in the vtable.
12209         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
12210         that means the method is non-virtual. This never would have
12211         happened before.
12212
12213 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
12214
12215         * profiler.c: Added lock for accessing coverage_hash.
12216
12217 2004-03-22  Martin Baulig  <martin@ximian.com>
12218
12219         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
12220         `method->method->signature->generic_param_count != 0' to make it
12221         work for interface methods.
12222
12223 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12224
12225         * process.c: quote the string passed to the shell using g_shell_quote.
12226
12227 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12228
12229         * threads.c:
12230         (mono_threads_manage): don't remove the finalizer thread and self
12231         from the threads hash table so that mono_thread_manage can be called
12232         more than once.
12233
12234 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12235
12236         * process.c: quote the arguments when UseShellExecute is true. Fixes
12237         bug #55790.
12238
12239 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12240
12241         * threads.c: set mono_thread_detach as a cleanup routine for every
12242         thread. This way it's always executed upon thread termination, either
12243         aborted or finished normally. No more xsp hangs!
12244
12245 2004-03-17  Martin Baulig  <martin@ximian.com>
12246
12247         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
12248         `int count_nested' and a `MonoType **nested'.
12249
12250         * reflection.c (mono_reflection_bind_generic_parameters): Moved
12251         most of the functionality into a new static
12252         do_mono_reflection_bind_generic_parameters() and don't take a
12253         `MonoType *nested_in' argument any more.  Don't compute nested
12254         types here.
12255         (mono_reflection_generic_inst_get_nested_types): New public method
12256         to get nested types.
12257
12258         * class.c (mono_class_create_generic): Set `klass->nested_in' if
12259         we're a nested class.
12260
12261         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
12262         mono_reflection_generic_inst_get_nested_types() to compute the
12263         nested types.
12264
12265 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
12266
12267         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
12268         descriptive error message under windows.
12269         
12270 2004-03-17  Martin Baulig  <martin@ximian.com>
12271
12272         * class.c (dup_type): Added `const MonoType *original' argument;
12273         copy the attrs from the original type.
12274
12275 2004-03-17  Martin Baulig  <martin@ximian.com>
12276
12277         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
12278         `m->generic_inst_cache' here.
12279
12280 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
12281
12282         * exception.h exception.c: Add stack_overflow_exception.
12283
12284 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12285
12286         * threadpool.c:
12287         (overlapped_callback): call SetEvent *after* invoking the callback.
12288         No need to call CloseHandle.
12289
12290 2004-03-16  Martin Baulig  <martin@ximian.com>
12291
12292         * reflection.c (mono_image_get_fieldref_token): Take a
12293         `MonoReflectionField *' instead of a `MonoClassField *' and a
12294         `MonoClass *'; store the `MonoReflectionField *' in the hash.
12295
12296 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12297
12298         * appdomain.c: don't add the culture to the filename we're looking for
12299         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
12300
12301 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12302
12303         * locales.c: don't ignore symbols when doing case insensitive compares.
12304         Thanks Dick! Fixes bug #54046.
12305
12306         * threads.c: surround 'threads' usage with enter/leave in
12307         mono_thread_manage.
12308
12309 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
12310
12311         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
12312         implicitly marshalled as [Out]. Fixes #55450.
12313
12314         (mono_marshal_get_runtime_invoke): Zero out the result if there is
12315         an exception.
12316
12317 2004-03-16  Martin Baulig  <martin@ximian.com>
12318
12319         * class.c (mono_class_from_generic_parameter): Use the actual
12320         parameter name. 
12321
12322 2004-03-16  Martin Baulig  <martin@ximian.com>
12323
12324         * reflection.c (type_get_signature_size): New static function.
12325         Compues the size of the type in a method signature.
12326         (method_get_signature_size): New static function; calls
12327         type_get_signature_size() to compute the actual size of the
12328         method's signature.
12329         (method_encode_signature): Use method_get_signature_size() to get
12330         the signature's size rather than using `nparams * 10'.
12331
12332 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12333
12334         * file-io.h: define here WapiOverlapped on windows. I don't want the
12335         regular OVERLAPPED one.
12336
12337         * file-io.c:
12338         * threadpool.c: somehow, BindIoCompletionCallback is not found.
12339         Disabling AIO on windows.
12340
12341 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12342
12343         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
12344         bug #55385.
12345
12346 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12347
12348         * appdomain.c: upgraded corlib version.
12349
12350         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
12351         and BeginWrite. Allow opening files for asynchrnous operations.
12352
12353         * file-io.h: new struct that maps FileStreamAsyncResult.
12354         * icall.c: added new icalls.
12355         * process.[ch]: support setting child process environment variables
12356         and use the SHELL or COMSPEC when UseShellExecute is true.
12357
12358         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
12359         callback for async. IO is here and also BindHandle.
12360
12361         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
12362         from here.
12363
12364 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
12365
12366         * reflection.c (create_custom_attr): Allow len == 0.
12367
12368         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
12369         computation on big-endian machines.
12370
12371 2004-03-13  Martin Baulig  <martin@ximian.com>
12372
12373         * class.h (MonoGenericInst): Added `int count_ifaces'.
12374
12375         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
12376         `ginst->count_ifaces' instead `klass->interface_count' since we
12377         may get called before the vtable is created.
12378
12379         * loader.c (mono_method_get_param_names): If we're a generic
12380         instance, return and don't initialize the class.
12381
12382         * reflection.c (mono_reflection_setup_generic_class): Don't call
12383         ensure_runtime_vtable().
12384         (mono_reflection_bind_generic_parameters): Set
12385         `ginst->count_ifaces'.
12386
12387 2004-03-11  Jackson Harper <jackson@ximian.com>
12388
12389         * icall.c:
12390         * unicode.c:
12391         * unicode.h: Remove unused System.Char icalls.
12392         
12393 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
12394
12395         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
12396         code when we P/Invoke the first library in Windows.Forms, instead
12397         of when we first open the assembly.
12398
12399         * assembly.c: Drop the lookup from here.
12400
12401 2004-03-10  Martin Baulig  <martin@ximian.com>
12402
12403         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
12404         class for properties, fields and events.  Finally fixes #54945.
12405
12406 2004-03-10  Martin Baulig  <martin@ximian.com>
12407
12408         * metadata.c (mono_metadata_class_equal): New static function;
12409         checks whether two generic instances or two generic parameters are
12410         equal.
12411         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
12412         compare classes.        
12413
12414 2004-03-10  Martin Baulig  <martin@ximian.com>
12415
12416         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
12417
12418         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
12419         argument and write it into the `reflection_info' field.
12420
12421         * icall.c
12422         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
12423         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
12424
12425 2004-03-09  Jackson Harper  <jackson@ximian.com>
12426
12427         * char-conversions.h: use 8 bits for numeric data its all we need
12428         * icall.c: numeric data is only 8 bits now.
12429
12430 2004-03-09  Martin Baulig  <martin@ximian.com>
12431
12432         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
12433
12434         * class.c (init_properties, init_events): Initialize the new
12435         `parent' field.
12436
12437         * reflection.c (typebuilder_setup_properties): Likewise.
12438         (typebuilder_setup_events): Likewise.
12439
12440         * reflection.h (MonoEventInfo): Replaced `parent with
12441         `declaring_type' and `reflected_type'.
12442
12443         * icall.c (ves_icall_get_property_info): Distinguish between
12444         declaring and reflected type.
12445         (ves_icall_get_event_info): Likewise.
12446
12447 2004-03-09  Martin Baulig  <martin@ximian.com>
12448
12449         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
12450         (ves_icall_Type_GetField): Correctly set field->klass.
12451
12452 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
12453
12454         * loader.h: Fix warning.
12455
12456 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
12457
12458         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
12459         library routine if present.  Notice that it will still continue
12460         executing even if its missing, for those working on the Gtk#
12461         edition of Windows.Forms.
12462
12463         * assembly.c (do_mono_assembly_open): If loading the
12464         System.Windows.Forms call mono_loader_wini_init.
12465
12466 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
12467
12468         * class.h: Added MonoRemoteClass struct.
12469         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
12470         function for MonoStrings.
12471         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
12472         Added internal call for getting the proxy type.
12473         * marshal.c: Get the type of transparent proxies from its remote_class.
12474         Added methods that generate the IL for type checks and casts:
12475         mono_marshal_get_isinst, mono_marshal_get_castclass, 
12476         mono_marshal_get_proxy_cancast.
12477         * marshal.h: Declaration of the previous new methods.
12478         * object.c: Added new moethods for creating and updating MonoRemoteClass
12479         instances: mono_remote_class, mono_upgrade_remote_class, 
12480         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
12481         * verify.c: FIx transparent_proxy_fields layout.
12482         * appdomain.c: Bump corlib version.
12483
12484 2004-03-04  Jackson Harper  <jackson@ximian.com>
12485
12486         * icall.c: Add icall to access char conversion tables.
12487         * char-conversions.h: Character conversion tables.
12488         * Makefile.am: Add char-conversions.h private header file.
12489         
12490 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
12491
12492         * appdomain.c (unload_thread_main): Increase unloading timeout to
12493         10 sec as a temporary workaround for Nant problems.
12494
12495 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
12496
12497         * gc.c: Add checks for GC_enable and GC_disable.
12498
12499         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
12500         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
12501         (bug #54988).
12502         
12503 2004-02-27  Martin Baulig  <martin@ximian.com>
12504
12505         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12506         `MonoReflectionType *' instead of a `MonoType *'.
12507
12508 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
12509
12510         * gc.c (run_finalize): Avoid finalizing the object representing the
12511         finalizer thread.
12512         (finalizer_thread): Fix warning.
12513
12514 2004-02-25  Martin Baulig  <martin@ximian.com>
12515
12516         * class.c (_mono_class_get_instantiation_name): Added `int offset'
12517         argument for nested types.
12518         (mono_class_create_generic): Added support for nested generictypes.
12519
12520         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
12521         `GList *nested'.
12522
12523         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
12524
12525         * reflection.c (method_encode_signature): Increase the minimum
12526         value of `size' from 10 to 11.
12527         (mono_reflection_bind_generic_parameters): Take `int type_argc'
12528         and `MonoType **types' arguments instead of the `MonoArray
12529         *types'; added `MonoType *nested_in'.  Recursively instantiate
12530         nested classes. 
12531
12532 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
12533
12534         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
12535         stack_overflow_ex members which are used by exception handling.
12536
12537         * appdomain.c (mono_runtime_init): Initialize the new members.
12538
12539         * gc.c (mono_gc_enable): New helper function.
12540         * gc.c (mono_gc_disable): New helper function.
12541
12542 2004-02-23  Martin Baulig  <martin@ximian.com>
12543
12544         * icall.c: I must have been really stupid - make it actually work
12545         this time ;-)
12546
12547 2004-02-23  Martin Baulig  <martin@ximian.com>
12548
12549         * loader.c (method_from_memberref): Only inflate the method if
12550         it's in another klass.
12551
12552 2004-02-23  Martin Baulig  <martin@ximian.com>
12553
12554         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
12555         (mono_class_init): If we're a generic instance and an interface,
12556         compute `class->interface_id'; also create `class->interfaces'
12557         here and inflate them.
12558
12559         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
12560         `ginst->is_open'.
12561         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
12562
12563         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
12564
12565 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
12566
12567         * reflection.c (method_encode_code): Improved the error message
12568         generated by the exception.
12569
12570 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12571
12572         * icall.c: Martin did not do what he said in the ChangeLog for
12573         2004-02-18, but put back the changes for properties and events.
12574         Commenting those changes out again and adding comment to bug #54518.
12575         
12576         * process.c: removed warning.
12577
12578 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
12579
12580         * marshal.c (emit_struct_conv): Print an error message instead of
12581         asserting when a type does not have the StructLayout attribute.
12582
12583 2004-02-20  Martin Baulig  <martin@ximian.com>
12584
12585         * reflection.c (mono_type_get_object): Also use the cache for
12586         generic instances.
12587         (mono_reflection_bind_generic_parameters): Always compute
12588         `ginst->ifaces'.        
12589
12590 2004-02-20  Martin Baulig  <martin@ximian.com>
12591
12592         * class.h (MonoGenericMethod): Removed `klass'.
12593
12594         * class.c (mono_class_inflate_generic_method): Added `MonoClass
12595         *klass' argument.
12596
12597 2004-02-20  Martin Baulig  <martin@ximian.com>
12598
12599         * reflection.c (method_encode_methodspec): Actually use the
12600         uninflated signature for the memberref.
12601
12602 2004-02-20  Martin Baulig  <martin@ximian.com>
12603
12604         * class.h (MonoGenericMethod): Removed `declaring'.
12605
12606         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
12607         is NULL, compute it here.
12608
12609 2004-02-20  Martin Baulig  <martin@ximian.com>
12610
12611         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
12612
12613         * metadata.c (mono_metadata_generic_inst_hash): New method.
12614         (mono_metadata_generic_inst_equal): New method.
12615
12616         * reflection.c (mono_reflection_bind_generic_parameters): Use the
12617         `klass->image->generic_inst_cache' cache to avoid creating
12618         duplicate MonoGenericInst's.
12619
12620         * class.c (mono_class_inflate_generic_type): Use the cache.
12621
12622 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12623
12624         * object.c: fixed gc descriptor calculation for embedded valuetypes.
12625
12626 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12627
12628         * icall.c: added Socket.WSAIoctl icall.
12629
12630         * socket-io.[ch]: implemented
12631         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
12632
12633 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
12634
12635         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
12636
12637 2004-02-18  Urs C Muff  <umuff@quark.com>
12638
12639         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
12640         this work on PPC and other big-endian architectures.
12641
12642         * debug-mono-symfile.h: Prepended the names of all the `guint32'
12643         fields with an underscore to make sure they're only accessed by
12644         the read32() macro.
12645
12646 2004-02-18  Martin Baulig  <martin@ximian.com>
12647
12648         * icall.c: Put the klass->refclass changes back for methods and
12649         fields, but not for properties and events.  We're currently not
12650         distinguishing between DeclaringType and ReflectedType for
12651         properties and events, that's what caused the regressions.
12652
12653 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12654
12655         * object.c:
12656         (mono_async_result_new): the handle can be NULL.
12657
12658         * threadpool.c: Use an event instead of a semaphore, don't initialize
12659         it until needed. This saves quite a few semaphores from being created
12660         when using the threadpool.
12661
12662 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
12663
12664         * object.c (mono_string_is_interned_lookup): Fix interning of long
12665         strings. Fixes #54473.
12666
12667         * domain.c (ldstr_equal): Optimize if the two strings are equal.
12668
12669         * icall.c: Revert the klass->refclass changes since they introduce
12670         regressions (bug #54518).
12671
12672 2004-02-18  Martin Baulig  <martin@ximian.com>
12673
12674         * class.c (mono_class_init): If we're a generic instance and don't
12675         come from a TypeBuilder, inflate our members here.
12676         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
12677         (mono_class_create_generic): New public method.
12678         (mono_class_initialize_generic): Removed.
12679         (get_instantiation_name): Renamed to
12680         _mono_class_get_instantiation_name() and made it public.
12681
12682 2004-02-18  Martin Baulig  <martin@ximian.com>
12683
12684         * class.c (mono_class_inflate_generic_type): Clear the new
12685         instance's `nginst->klass' when inflating a generic instance.
12686         (mono_class_is_subclass_of): Added (basic) support for generic
12687         instances.
12688
12689 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
12690
12691         * appdomain.h, domain.c: use a MonoCodeManager instead of a
12692         MonoMempool to hold compiled native code.
12693
12694 2004-02-17  Martin Baulig  <martin@ximian.com>
12695
12696         * class.h (MonoDynamicGenericInst): Added `count_properties' and
12697         `properties'.
12698
12699         * reflection.c (mono_reflection_generic_inst_initialize): Added
12700         `MonoArray *properties' argument.
12701
12702         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
12703
12704 2004-02-17  Martin Baulig  <martin@ximian.com>
12705
12706         * icall.c (ves_icall_Type_GetFields): Renamed to
12707         ves_icall_Type_GetFields_internal() and added a
12708         `MonoReflectionType *rtype' argument; pass it to
12709         mono_field_get_object() to set the field's "reflected" type.
12710         (ves_icall_Type_GetConstructors): Likewise.
12711         (ves_icall_Type_GetEvents): Likewise.
12712         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
12713         argument; pass it to mono_method_get_object() to set the method's
12714         "reflected" type.       
12715
12716 2004-02-17  Martin Baulig  <martin@ximian.com>
12717
12718         * class.h (MonoDynamicGenericInst): New type.
12719         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
12720
12721         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
12722         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
12723         (ves_icall_MonoGenericInst_GetFields): New interncall.
12724
12725         * class.c (mono_class_from_generic): Don't call
12726         mono_class_initialize_generic() if this is a dynamic instance;
12727         ie. it's being created from a TypeBuilder.
12728         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
12729         `class->byval_arg.type'.
12730
12731         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
12732         to `inflate_method' and made static.
12733         (mono_reflection_inflate_field): Removed.
12734         (mono_reflection_generic_inst_initialize): New public method.
12735
12736         * reflection.h (MonoReflectionGenericInst): Removed `methods',
12737         `ctors' and `fields'; added `initialized'.
12738
12739 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
12740
12741         * debug-helpers.c (mono_method_full_name): Fix output for empty
12742         namespaces.
12743
12744 2004-02-12  Martin Baulig  <martin@ximian.com>
12745
12746         * class.h (MonoClassField): Added `MonoType *generic_type'.
12747
12748         * reflection.c (mono_image_get_fieldref_token): Added support for
12749         instantiated generic types.
12750         (field_encode_inflated_field): Removed.
12751         (mono_image_get_inflated_field_token): Removed.
12752         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
12753
12754         * reflection.h (MonoReflectionInflatedField): Removed.
12755
12756 2004-02-12  Martin Baulig  <martin@ximian.com>
12757
12758         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
12759         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
12760
12761         * reflection.c (mono_image_get_methodspec_token): Take a
12762         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
12763         (mono_image_create_token): Check whether we have a
12764         `method->signature->gen_method' and call
12765         mono_image_get_methodspec_token() if appropriate.
12766         (inflated_method_get_object): Removed.
12767         (mono_reflection_bind_generic_method_parameters): Return a
12768         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
12769         (mono_reflection_inflate_method_or_ctor): Likewise.
12770
12771         * reflection.h (MonoReflectionInflatedMethod): Removed.
12772
12773 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
12774
12775         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
12776         for custom valuetype marshalling.
12777
12778         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
12779
12780 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12781
12782         * icall.c: fixed WSAGetLastError_internal name.
12783
12784 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
12785
12786         * threads.c (mono_thread_attach): Allow this to be called multiple
12787         times for a thread.
12788         
12789         * threads.c (build_wait_tids): Do not wait for ourselves.
12790
12791         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
12792         appdomain list is empty.
12793
12794         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
12795         memory returned by mono_string_builder_to_utf16, since it points into
12796         managed memory. Thanks to Bernie Solomon for noticing this.
12797
12798         * icall.c: Add AppDomainSetup icalls.
12799
12800         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
12801
12802         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
12803         types.
12804
12805         * reflection.c (reflection_methodbuilder_to_mono_method): Save
12806         custom attributes to the method_aux struct. Also fix array indexes etc.
12807
12808         * loader.c (mono_method_get_param_names): Make dynamic case work again.
12809         
12810 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
12811
12812         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
12813         (both static and runtime) and reduce startup time.
12814
12815 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
12816
12817         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
12818         AsAny marshalling conversion instead of crashing.
12819
12820         * marshal.c: Fix warnings.
12821
12822 2004-02-09  Martin Baulig  <martin@ximian.com>
12823
12824         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
12825
12826         * reflection.h (MonoReflectionInflatedMethod): Removed the
12827         `declaring' field, it's now in the unmanaged MonoGenericMethod.
12828
12829         * reflection.c (method_encode_methodspec): Removed the `method'
12830         argument; we get it from `gmethod->declaring'.
12831         (inflated_method_get_object): Removed the `declaring' argument.
12832
12833 2004-02-09  Martin Baulig  <martin@ximian.com>
12834
12835         * class.h (MonoGenericMethod): New type.
12836         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12837         `generic_method'.
12838
12839         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12840         a `MonoGenericMethod *gen_method' one.
12841
12842         * class.c (mono_class_inflate_generic_type): Take an additional
12843         `MonoGenericMethod * argument.  This is only non-NULL if we're
12844         inflating types for a generic method.   
12845         (mono_class_inflate_generic_signature): Renamed to
12846         inflate_generic_signature() and made static; take a
12847         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12848         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12849         instead of a `MonoGenericInst *' one.
12850         (mono_class_inflate_generic_method): Likewise.
12851
12852         * reflection.c (encode_generic_method_sig): Take a
12853         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12854         (method_encode_methodspec): Likewise.
12855         (inflated_method_get_object): Likewise. 
12856
12857         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12858         field with a `MonoGenericMethod *gmethod' one.  
12859
12860 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12861
12862         * class.h (mono_class_has_parent): add parens to expansion
12863         so you can ! this.
12864
12865 2004-02-08  Martin Baulig  <martin@ximian.com>
12866
12867         * image.h (MonoImage): Removed `generics_cache'.
12868
12869         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12870         instead of a `MonoType *' argument; removed the `inflate_methods'
12871         argument.  Don't inflate methods here.
12872
12873         * loader.c (find_method): If it's a generic instance, call
12874         mono_class_init() on the `sclass->generic_inst->generic_type'.
12875
12876         * metadata.c (mono_type_size): Make this work on uninitialized
12877         generic instances; call it on the `ginst->generic_type's class.
12878
12879         * reflection.c (mono_reflection_bind_generic_parameters): Call
12880         mono_class_from_generic() to create the `ginst->klass'.
12881
12882 2004-02-08  Martin Baulig  <martin@ximian.com>
12883
12884         * class.h (MonoClass): Changed type of `generic_inst' from
12885         `MonoType *' to `MonoGenericInst *'.
12886
12887 2004-02-08  Martin Baulig  <martin@ximian.com>
12888
12889         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12890         mono_type_get_object(), this is now creating a `MonoGenericInst'
12891         for MONO_TYPE_GENERICINST.
12892         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12893         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12894
12895         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12896         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12897         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12898         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12899         and reflected type.
12900
12901         * reflection.h (MonoReflectionInflatedMethod): Removed
12902         `declaring_type' and `reflected_type'.
12903
12904 2004-02-08  Martin Baulig  <martin@ximian.com>
12905
12906         * class.h (MonoGenericInst): Added `MonoType *parent' and
12907         `MonoType **ifaces'.
12908
12909         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12910         `parent' and `interfaces'.
12911
12912         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12913         `MonoType *' argument and return a `MonoType *'.
12914
12915         * icall.c
12916         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12917         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12918
12919 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12920
12921         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12922         valuetype marshalling.
12923
12924 2004-02-06  Martin Baulig  <martin@ximian.com>
12925
12926         * class.c
12927         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12928         (my_mono_class_from_generic_parameter): Likewise.
12929
12930 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12931
12932         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12933         contents of the symbol files lazily.
12934
12935         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12936
12937         * threads.h threads.c icall.c: New icalls for getting and setting the
12938         threads name.
12939
12940 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12941
12942         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12943         Raise an exception when the domain is not found.
12944
12945 2004-02-03  Martin Baulig  <martin@ximian.com>
12946
12947         * reflection.c (mono_image_get_methodspec_token): Use the
12948         uninflated signature; fixes gen-33.
12949
12950 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12951
12952         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12953         the finalizer code can use thread functionality.
12954
12955         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12956         the finalizer thread.
12957
12958         * threads.c: Make some functions more robust.
12959
12960         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12961
12962         * metadata.h: Add new marshalling conventions.
12963
12964         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12965         stringbuilder marshalling. Fixes #53700.
12966
12967         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12968
12969         * reflection.c (mono_image_get_type_info): Save declarative security
12970         info.
12971
12972         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12973         unmanaged fields as well.
12974
12975         * appdomain.c: Bump corlib version.
12976
12977 2004-02-01  Martin Baulig  <martin@ximian.com>
12978
12979         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12980         method type arguments.  
12981
12982 2004-01-30  Duncan Mak  <duncan@ximian.com>
12983
12984         * marshal.h: Add prototype for
12985         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12986         and
12987         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12988         fix the build.
12989
12990 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12991
12992         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12993         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12994
12995 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12996
12997         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12998         custom marshalling of valuetypes.
12999
13000         * marshal.c: Fix some warnings.
13001
13002 2004-01-29  Martin Baulig  <martin@ximian.com>
13003
13004         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
13005         for generic method parameters.
13006
13007         * reflection.c (method_encode_methodspec): Write the uninflated
13008         signature into the methodspec table.
13009         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
13010         is always the uninflated method.
13011         (reflection_methodbuilder_to_mono_method): Copy the generic
13012         parameters from the MethodBuilder into `header->gen_params'.
13013
13014 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
13015
13016         * class.c (mono_class_from_generic_parameter): Fix warning.
13017
13018 2004-01-27  Martin Baulig  <martin@ximian.com>
13019
13020         * class.c (mono_class_from_generic_parameter): Don't create
13021         `klass->methods' here.  
13022
13023 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
13024
13025         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
13026         extension since it does not work with libraries named lib<FOO>.dll.so.
13027
13028 2004-01-25  Martin Baulig  <martin@ximian.com>
13029
13030         * class.c (mono_class_inflate_generic_type): Added support for
13031         MONO_TYPE_GENERICINST.
13032
13033         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
13034         inflate methods on open constructed types.      
13035
13036 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13037
13038         * object.c: fire ProcessExit event in the root AppDomain after running
13039         Main. Fixes bug #53299.
13040
13041 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
13042
13043         * socket-io.c: include the new socket-wrappers.h header.
13044         Use the wrappers instead of the unix socket functions to make the code
13045         more clear.
13046
13047 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
13048
13049         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
13050
13051         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
13052         Fixes #22532.
13053
13054 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
13055
13056         * reflection.c (mono_image_create_pefile): Handle the case when the
13057         entry point is not a MethodBuilder.
13058
13059         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
13060         field to ReflectionMethod since it is not allways a builder.
13061
13062         * reflection.c (type_get_fully_qualified_name): New helper function to
13063         return the fully qualified name of a type.
13064
13065         * reflection.c (encode_marshal_blob): Always emit the fully qualified
13066         type name for custom marshallers.
13067
13068         * reflection.c (mono_marshal_spec_from_builder): Ditto.
13069
13070         * class.c (mono_class_setup_vtable): If a parent class already 
13071         implements an interface, use the implementing methods from that class.
13072         Fixes #53148.
13073
13074 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13075
13076         * threadpool.c: just return instead of ExitThread to allow for thread
13077         clean up earlier.
13078
13079 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
13080
13081         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
13082         when closing resource modules.
13083
13084         * reflection.c (mono_image_create_pefile): Handle the case when the
13085         entry point is not a MethodBuilder.
13086
13087         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
13088         field to ReflectionMethod since it is not allways a builder.
13089
13090 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
13091
13092         * marshal.c (mono_marshal_get_managed_wrapper): 
13093         mono_marshal_alloc takes native int so CONV_I
13094         the arg for 64bits.
13095
13096 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
13097
13098         * reflection.c (fixup_cattrs): New function to fixup the methoddef
13099         tokens in the cattr table. Fixes #53108.
13100
13101 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13102
13103         * loader.c: don't trim ".dll" before looking up in the config file.
13104         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
13105
13106 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
13107
13108         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
13109         Return the module which contains the resource as well.
13110         (ves_icall_System_Reflection_Module_Close): New icall.
13111
13112         * appdomain.c: Bump corlib version number.
13113
13114         * image.c (mono_image_addref): New public function.
13115
13116         * assembly.c: Call mono_image_addref.
13117
13118         * reflection.c (mono_module_get_object): Increase reference count of 
13119         the image.
13120
13121         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
13122         Fixes #22532.
13123
13124         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
13125         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
13126         proper exceptions on DllImport problems.
13127
13128 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
13129
13130         * class.c, metadata.c: eliminate CSIZE macro.
13131
13132 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
13133
13134         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
13135         * object.h: Added async_callback field in MonoAsyncResult.
13136         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
13137         * verify.c: Added async_callback in MonoAsyncResult layout.
13138
13139 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
13140
13141         * reflection.c (mono_reflection_get_custom_attrs): Add support
13142         for Modules.
13143
13144 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
13145
13146         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
13147         marshalling.
13148         (mono_marshal_method_from_wrapper): Add null pointer check.
13149
13150 2004-01-16  Martin Baulig  <martin@ximian.com>
13151
13152         * debug-mono-symfile.h: Set version number to 36 and reflect
13153         latest symbol writer changes.
13154
13155 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
13156
13157         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
13158         multi-dimensional arrays.
13159         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
13160         (mono_class_from_mono_type): Use bounded_array_class_get.
13161         
13162         * class.c (mono_bounded_array_class_get): New function which takes
13163         a 'bounded' bool argument to distinguish vectors from one dimensional
13164         arrays.
13165
13166         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
13167         bounded_array_class_get if the array has bounds.
13168
13169         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13170         Search modules loaded using AssemblyBuilder:AddModule as well.
13171
13172 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13173
13174         * appdomain.c: increased corlib version.
13175         * filewatcher.c: removed g_print.
13176         * icall.c:
13177         (get_property_info): only allocate what is actually requested.
13178         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
13179
13180 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13181
13182         * Makefile.am: added filewatcher.[ch]
13183         * filewatcher.[ch]: FileSystemWatcher runtime support.
13184         * icall.c: added new FSW icalls.
13185
13186 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
13187
13188         * string-icalls.c: fix stringbuilder regression as suggested by
13189         Iain McCoy <iain@mccoy.id.au>.
13190
13191 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
13192
13193         * process.c (process_read_stringtable_block): Recognize '007f' as
13194         a language neutral stringtable block.
13195
13196 2004-01-12  Patrik Torstensson
13197
13198         * object.h (MonoStringBuilder) : Changed layout to support our
13199         new stringbuilder class.
13200         * marshal.c: Change marshalling to support the new layout of 
13201         string builder.
13202         * appdomain.c: increased version number because new layout of
13203         string builder.
13204
13205 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
13206
13207         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
13208         assembly name as an string instead of an AssemblyName, since it is
13209         easier to extract info from it.
13210
13211         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
13212         the culture subdirectories too. Fixes #52231.
13213
13214 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13215
13216         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
13217         It takes 2 new parameters with an optional name for the method to look
13218         for and case ignoring info.
13219
13220         * threadpool.c: removed unused variable.
13221
13222 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13223
13224         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
13225         It takes 2 new parameters with an optional name for the property to look
13226         for and case ignoring info.
13227         Fixes bug #52753.
13228
13229 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
13230
13231         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
13232         Fix #52451.
13233
13234 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13235
13236         * appdomain.c:
13237         * assembly.c: escape the uri before passing it to g_filename_from_uri.
13238         Fixes bug #52630.
13239
13240 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
13241
13242         * reflection.c: Add support for more than one unmanaged resource.
13243
13244         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
13245         in field->def_value, as done in all other cases.
13246
13247         * reflection.c (mono_reflection_get_custom_attrs): Add support for
13248         TypeBuilders.
13249
13250         * reflection.c (mono_reflection_create_runtime_class): Remove 
13251         errorneous assignment to klass->element_class, since it is already
13252         done in mono_reflection_setup_internal_class.
13253
13254 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13255
13256         * gc.c: added missing LeaveCriticalSection.
13257         * icall.c: indented a couple of lines.
13258         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
13259         if we call EndInvoke inside a callback. Fixes bug #52601.
13260
13261 2004-01-07  Martin Baulig  <martin@ximian.com>
13262
13263         * mono-debug-debugger.h
13264         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
13265
13266 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
13267
13268         * appdomain.c: Use messages in NotImplementedException.
13269
13270         * exception.c (mono_get_exception_not_implemented): Now this takes
13271         a message argument.
13272
13273         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
13274         exception instead of g_asserting an aborting when something is not
13275         implemented.
13276
13277         Add some inline docs.
13278
13279 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
13280
13281         * reflection.h: Update after changes to object layout.
13282
13283         * reflection.c: Implement saving of unmanaged aka win32 resources.
13284
13285         * appdomain.c: Bump version number.
13286
13287         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
13288         Handle missing domains gracefully.
13289
13290 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
13291
13292         * file-io.c : On Windows, there are much more invalid_path_chars.
13293
13294 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
13295
13296         * class.h, object.c: prepare for GetType () speedup.
13297
13298 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
13299
13300         * profiler.c: workaround for --profile null reference exception on
13301           cygwin. Patch by Patrik Torstensson.
13302
13303 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
13304
13305         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
13306         make work for unaligned access.
13307
13308 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
13309
13310         * class.c: small cleanup (class->fields [i] -> field).
13311         * image.c: check address of metadata is valid.
13312
13313 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
13314
13315         * assembly.h assembly.c (mono_assembly_loaded): New public function to
13316         search the list of loaded assemblies.
13317
13318         * reflection.c (mono_reflection_type_from_name): Use 
13319         mono_assembly_loaded instead of mono_image_loaded.
13320
13321         * reflection.c: Fix warnings.
13322
13323 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
13324
13325         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
13326         is dynamic. This is needed since an assembly can contain both dynamic and
13327         non-dynamic images.
13328
13329         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
13330         assembly->dynamic.
13331
13332         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
13333
13334         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
13335         to store modules loaded using AddModule.
13336
13337         * reflection.c (mono_image_fill_file_table): Generalize this so it works
13338         on Modules.
13339
13340         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
13341
13342         * reflection.c (mono_image_fill_export_table_from_module): New function to
13343         fill out the EXPORTEDTYPES table from a module.
13344
13345         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
13346         into a separate function. Also handle loaded non-dynamic modules.
13347
13348         * reflection.c (mono_image_basic_init): Fix memory allocation.
13349
13350         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13351
13352         * assembly.c (mono_assembly_load_references): Make this public.
13353
13354 2003-12-19  Martin Baulig  <martin@ximian.com>
13355
13356         * class.c (mono_class_initialize_generic): Made this static, take
13357         a `MonoGenericInst *' instead of a `MonoClass *'.
13358         (mono_class_from_generic): Call mono_class_initialize_generic()
13359         unless we're already initialized or being called from
13360         do_mono_metadata_parse_generic_inst().
13361
13362         * class.h (MonoGenericInst): Added `initialized' and
13363         `init_pending' flags.
13364
13365         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
13366         `mono_class_init (gklass)' or mono_class_initialize_generic()
13367         here; set `generic_inst->init_pending' while parsing the
13368         `type_argv'.
13369
13370 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
13371
13372         * locales.c: include string.h for memxxx prototypes
13373
13374 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
13375
13376         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
13377         constructor when accessing literal fields.
13378
13379 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
13380
13381         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13382
13383         * reflection.c (assembly_add_resource_manifest): New function to fill
13384         the MANIFESTRESOURCE table.
13385
13386         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
13387
13388         * reflection.h: Update to changes in class layout.
13389
13390         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
13391         Reenable call to mono_runtime_is_shutting_down ().
13392
13393         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
13394         determine if the runtime is shutting down.
13395
13396 2003-12-16  Jackson Harper <jackson@ximian.com>
13397
13398         * icall.c: comment out call to mono_runtime_is_shutting_down to
13399         fix build.
13400         
13401 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
13402
13403         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
13404         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
13405
13406 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
13407
13408         * reflection.c: move definition of swap_with_size
13409         to before its first call
13410
13411 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
13412
13413         * appdomain.c (mono_runtime_is_shutting_down): New public function.
13414
13415         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
13416         icall.
13417
13418         * object.c: Fix warnings.
13419
13420         * icall.c (ves_icall_Type_Get...): Only consider inherited static
13421         members if FlattenHierarchy is set.
13422
13423         * reflection.c (mono_image_add_decl_security): New function to emit
13424         declarative security.
13425
13426         * reflection.h reflection.c: Add support for declarative security.
13427
13428         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
13429         
13430 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
13431
13432         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
13433         
13434         * appdomain.c verify.c: Moved corlib version checking into its own
13435         function in appdomain.c since it needs to create vtables etc.
13436
13437 2003-12-13  Patrik Torstensson <p@rxc.se>
13438
13439         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
13440         instead of unwrapped server.
13441
13442 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
13443
13444         * verify.c (check_corlib): Fix field index.
13445
13446 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
13447
13448         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
13449         GetGacPath icall.
13450
13451 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
13452
13453         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
13454         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
13455         cope with sizeof(size_t) != sizeof(guint32).
13456
13457 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13458
13459         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
13460         in case of failure.
13461
13462 2003-12-10  Mark Crichton <crichton@gimp.org>
13463
13464         * icall.c: removed the GetNonZeroBytes.  We now handle this case
13465         in managed code.
13466
13467         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
13468
13469 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
13470
13471         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
13472         marked as deleted.
13473
13474 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
13475
13476         * verify.c (check_corlib): Handle the case when the version field is 
13477         initialized by a static constructor.
13478
13479 2003-12-08  Patrik Torstensson  <p@rxc.se>
13480
13481     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
13482
13483 2003-12-08  Martin Baulig  <martin@ximian.com>
13484
13485         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
13486         a MonoReflectionGenericParameter, also take the parameter index
13487         and name as arguments.
13488         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
13489         (ves_icall_MonoGenericParam_initialize): New interncall.
13490         (ves_icall_Type_make_byref_type): New interncall.
13491
13492         * reflection.h (MonoReflectionGenericParam): Derive from
13493         MonoReflectionType, not just from MonoObject.  Added `refobj' and
13494         `index' fields.
13495
13496         * reflection.c (mono_reflection_define_generic_parameter): Create
13497         and return a new MonoReflectionGenericParam; don't initialize the
13498         constraints here.
13499         (mono_reflection_initialize_generic_parameter): New public method;
13500         initializes the constraints and creates the `param->pklass'.
13501
13502 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
13503
13504         * reflection.h reflection.c: Use the new fields 'num_types', 
13505         'num_fields' and 'num_methods' to track the number of types etc.
13506
13507         * verify.c (check_corlib): Check corlib version number.
13508
13509 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
13510
13511         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
13512         function works on all methods.
13513
13514 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
13515
13516         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
13517         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
13518         the custom_type_info flag of the transparent proxy.
13519         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
13520         objects that supports IRemotingTypeInfo.
13521         * object.h: Added custom_type_info field in transparent proxy.
13522
13523 2003-12-06  Martin Baulig  <martin@ximian.com>
13524
13525         * class.c (mono_class_create_from_generic): Removed.
13526         (mono_class_from_generic): Check `ginst->klass' before doing
13527         anything else.  This is important to fully support "recursive"
13528         generic types.
13529
13530         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
13531         empty `generic_inst->klass' before doing anything else.
13532
13533 2003-12-06  Dick Porter  <dick@ximian.com>
13534
13535         * verify.c: 
13536         * object.h:
13537         * icall.c:
13538         * locales.c: Use C structs to access class fields.  Don't do a
13539         conversion between MonoString and UChar because both are
13540         platform-endian UTF-16.  Compare now takes startindex and count
13541         parameters.  Add a char overload for IndexOf.  Speed up the
13542         invariant string IndexOf.
13543
13544 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
13545
13546         * Makefile.am (monosn_LDADD): Fix parallel build.
13547
13548 2003-12-04  Martin Baulig  <martin@ximian.com>
13549
13550         * icall.c
13551         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13552         (ves_icall_Type_make_array_type): New interncall.       
13553
13554 2003-12-04  Martin Baulig  <martin@ximian.com>
13555
13556         * locales.c: also change it in the !HAVE_ICU case.
13557
13558 2003-12-04  Dick Porter  <dick@ximian.com>
13559
13560         * icall.c:
13561         * locales.c: construct_compareinfo is now in CompareInfo, not
13562         CultureInfo.
13563
13564 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
13565
13566         * image.c (mono_image_load_file_for_image): Cache loaded images in the
13567         image->files array.
13568
13569         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
13570         table as well.
13571
13572         * assembly.c (mono_assembly_load_references): Only load references
13573         once.
13574
13575         * class.c (mono_class_from_name): Avoid linear search of the 
13576         EXPORTEDTYPE table.
13577
13578         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
13579
13580 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
13581
13582         * image.h (MonoImage): Add 'field_cache' field.
13583
13584         * loader.c (mono_field_from_token): Cache field lookups.
13585         
13586         * reflection.c (mono_module_get_object): Fix name property.
13587
13588         * icall.c (ves_icall_get_enum_info): Update after changes to 
13589         mono_metadata_get_constant_index ().
13590
13591         * icall.c: Get rid of get_type_info icall, use a separate icall for
13592         each type property to avoid needless memory allocations. Fixes #51514.
13593
13594         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
13595         to avoid needless binary searches.
13596
13597         * class.c (class_compute_field_layout): Move the initialization of
13598         field->def_value to mono_class_vtable ().
13599
13600         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
13601         non-corlib types.
13602
13603         * object.c (mono_object_allocate): Make it inline.
13604
13605         * object.c (mono_object_allocate_spec): Make it inline.
13606         
13607 2003-12-02  Dick Porter  <dick@ximian.com>
13608
13609         * locales.c (create_NumberFormat): NumberFormatInfo construction.
13610         Patch by Mohammad DAMT (mdamt@cdl2000.com).
13611
13612 2003-12-01  Dick Porter  <dick@ximian.com>
13613
13614         * threads.c: Fix signature and call in CreateMutex and
13615         CreateEvent.
13616
13617 2003-12-01  Dick Porter  <dick@ximian.com>
13618
13619         * icall.c: 
13620         * locales.c: Implement string compares and searching
13621
13622         * object.h: Add extra Thread field
13623
13624 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
13625
13626         * reflection.c (fixup_method): Add support for MonoCMethod.
13627
13628 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
13629
13630         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
13631
13632         * reflection.c (assembly_name_to_aname): Allow extra characters in
13633         assembly names. Fixes #51468.
13634
13635 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
13636
13637         * exception.c (mono_exception_from_name_domain): New helper function.
13638
13639         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
13640         exception object in the correct domain.
13641
13642         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
13643         formatting + make a copy a the input data.
13644
13645         * loader.c (mono_get_method_from_token): Methods which contain
13646         native code do not have entries in the ImplMap.
13647
13648         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
13649         Thanks to Gonzalo for spotting this.
13650         
13651         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
13652         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
13653
13654         * assembly.h (mono_assembly_load_from): Split the second part of 
13655         assembly loading into a new public function.
13656
13657         * exception.h (mono_get_exception_bad_image_format): New function.
13658
13659 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
13660
13661         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13662         Enumerate all modules inside a dynamic assembly. Fixes #51293.
13663         
13664         * icall.c: Add new icall for creating dynamic methods.
13665
13666         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
13667
13668         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
13669
13670         * reflection.c (mono_reflection_create_dynamic_method): New icall to
13671         create a dynamic method.
13672
13673         * reflection.c (resolve_object): New helper function.
13674
13675         * reflection.c: Generalize ReflectionMethodBuilder and the functions
13676         which manipulate it so they can also work on dynamic methods.
13677
13678         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
13679         creating the MonoReflectionMethodAux structure if it is not needed.
13680         
13681         * reflection.h verify.c: Update after changes to object layout.
13682
13683         * reflection.c (method_builder_encode_signature): Fix compilation on
13684         gcc 2.95.x.
13685
13686 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
13687
13688         * appdomain.h: Added support for context static fields. Added static_data
13689           field to MonoAppContext and renamed thread_static_fields to a more
13690           generic special_static_fields in MonoAppDomain, since it can now contain
13691           context static fields.
13692         * domain.c: Updated hashtable name.
13693         * object.c: Replaced field_is_thread_static() for a more generic
13694           field_is_special_static() which also checks for context static attribute.
13695           In mono_class_vtable(), added support for static context fields.
13696         * threads.c: Changed methods that manage thread static fields to more
13697           generic methods so they can be reused both for thread and context static
13698           data.
13699         * threads.h: Declared some new methods.
13700
13701 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
13702
13703         * reflection.h: Update after changes to the managed types.
13704
13705         * reflection.c (encode_custom_modifiers): New helper function.
13706
13707         * reflection.c (method_encode_signature): Emit custom modifiers.
13708
13709         * reflection.c (field_encode_signature): Emit custom modifiers.
13710
13711 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
13712
13713         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
13714
13715         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
13716         implementation.
13717
13718         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
13719         icall.
13720
13721         * object.c (mono_field_get_value_object): New function.
13722
13723         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
13724         specific.
13725
13726 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
13727
13728         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
13729         return a preallocated out-of-memory exception instance.
13730
13731         * object.c (out_of_memory): Use the new function.
13732
13733         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
13734         flag is before the custom modifiers. Fixes #49802.
13735
13736 2003-11-16  Martin Baulig  <martin@ximian.com>
13737
13738         * class.c (mono_class_is_open_constructed_type): Implemented the
13739         MONO_TYPE_GENERICINST case.
13740
13741 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
13742
13743         * assembly.c (mono_assembly_fill_assembly_name): New function to
13744         fill out the MonoAssemblyName structure.
13745         (mono_assembly_open): Use the new function.
13746
13747         * icall.c (fill_reflection_assembly_name): New helper function.
13748
13749         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
13750         new function.
13751
13752         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
13753
13754 2003-11-15  Martin Baulig  <martin@ximian.com>
13755
13756         * class.c (mono_class_is_open_constructed_type): New public
13757         function; checks whether a type is an open constructed type,
13758         ie. whether it still contains type parameters.
13759         (mono_class_inflate_generic_type): If we're a type parameter and
13760         the inflated type is also a MONO_TYPE_(M)VAR, return the original
13761         type.
13762
13763         * class.h (MonoGenericInst): Added `guint32 is_open'.
13764
13765         * loader.c (method_from_methodspec): Check whether we're an open
13766         or closed constructed type and set `ginst->is_open'.
13767
13768         * reflection.c (mono_reflection_bind_generic_parameters): Check
13769         whether we're an open or closed constructed type and set
13770         `ginst->is_open'.
13771         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
13772         from open constructed types.
13773
13774 2003-11-15  Martin Baulig  <martin@ximian.com>
13775
13776         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13777         a generic instance (instead of a generic type declaration) with
13778         unbound generic parameters, bind them to our actual types.
13779
13780 2003-11-14  Martin Baulig  <martin@ximian.com>
13781
13782         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
13783
13784         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13785         an interface type, populate `res->interfaces' with instantiated
13786         versions of all the interfaces we inherit.
13787
13788 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
13789
13790         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
13791         when MONO_PATH is set but doesn't contain the install dir.
13792
13793 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13794
13795         * icall.c:
13796         (ves_icall_Type_GetInterfaces): don't return an interface twice when
13797         it's also implemented in base classes. Fixes bug #50927.
13798
13799 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
13800
13801         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
13802         if this method is called from a finalizer. Fixes #50913.
13803
13804 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
13805
13806         * threads.c: Implement VolatileRead/VolatileWrite
13807
13808         * icall.c: Add new icalls for VolatileRead/VolatileWrite
13809
13810 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13811
13812         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
13813         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
13814         2.95.3.
13815
13816         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
13817         from Peter Ross (pro@missioncriticalit.com).
13818         
13819 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
13820
13821         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
13822
13823 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13824
13825         * assembly.c (mono_assembly_load_references): Disable check because it
13826         triggers on older corlibs which lots of people have.
13827
13828 2003-11-12  Jackson Harper  <jackson@ximian.com>
13829
13830         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
13831         load corlib.dll if mscorlib.dll is not found.
13832         * assembly.h: Remove corlib name define.
13833         * class.c:
13834         * domain.c:
13835         * image.c: Change corlib name to mscorlib.
13836         
13837 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13838
13839         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13840
13841 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13842
13843         * appdomain.h: Added loader_optimization here to sync with the C#
13844         code, and add disallow_binding_redirects field.
13845
13846 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13847
13848         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13849
13850         * reflection.c (mono_image_build_metadata): Fix crash on modules
13851         with no types.
13852
13853         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13854
13855         * icall.c (ves_icall_get_method_info): Return callingConvention as
13856         well.
13857
13858         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13859         namespaces from the EXPORTEDTYPE table as well.
13860
13861         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13862         from all modules inside the assembly.
13863         
13864 2003-11-11  Martin Baulig  <martin@ximian.com>
13865
13866         * reflection.c (mono_reflection_bind_generic_parameters): Make
13867         this work for interfaces.
13868
13869 2003-11-11  Martin Baulig  <martin@ximian.com>
13870
13871         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13872
13873 2003-11-11  Martin Baulig  <martin@ximian.com>
13874
13875         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13876         "MonoInflatedMethod" and "MonoInflatedCtor".
13877
13878 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13879
13880         * reflection.c (resolution_scope_from_image): Use the assembly table
13881         from the manifest module, since other modules don't have it.
13882
13883         * debug-helpers.c (mono_type_full_name): New helper function.
13884
13885         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13886
13887         * image.c (mono_image_load_file_for_image): New public function which
13888         is a replacement for the load_file_for_image in class.c.
13889
13890         * assembly.c (mono_assembly_load_module): A wrapper for the function
13891         above which does assembly association and reference loading too.
13892
13893         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13894
13895 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13896
13897         * appdomain.c: not all of the attributes for the full assembly name
13898         are required and the order doesn't matter. Fixes bug #50787.
13899
13900 2003-11-10  Dick Porter  <dick@ximian.com>
13901
13902         * locales.c: Use platform-endian UTF16
13903
13904 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13905
13906         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13907         
13908 2003-11-10  Martin Baulig  <martin@ximian.com>
13909
13910         * metadata.c
13911         (mono_metadata_load_generic_params): Make this actually work.
13912
13913         * reflection.c (mono_reflection_bind_generic_parameters): If our
13914         parent is a generic instance, pass all the `types' to it, no
13915         matter whether it has the same number of type parameters or not.
13916
13917 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13918
13919         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13920
13921         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13922         assignment code to this function so it gets called recursively for all
13923         modules.
13924
13925         * image.c (load_modules): Remove the assembly assignment since it is
13926         now done by mono_assembly_load_references.
13927         
13928         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13929         Add 'module' argument.
13930         (mono_module_get_types): New helper function.
13931         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13932
13933 2003-11-08  Martin Baulig  <martin@ximian.com>
13934
13935         * class.c (mono_class_inflate_generic_method): Interface method
13936         don't have a header.
13937
13938         * reflection.c (mono_image_get_methodspec_token): Take an
13939         additional `MonoGenericInst *' argument instead of reading it from
13940         the header; this is necessary to support interfaces.
13941         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13942         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13943         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13944         argument.
13945
13946         * reflection.h (MonoReflectionInflatedMethod): Added
13947         `MonoGenericInst *ginst'.
13948
13949 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13950
13951         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13952
13953 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13954
13955         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13956
13957 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13958
13959         * reflection.c 
13960         (reflection_methodbuilder_from_method_builder):
13961         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13962         initialize a ReflectionMethodBuilder structure.
13963         (mono_image_get_methodbuilder_token):
13964         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13965         tokens which point to types in another module inside the same assembly.
13966
13967         * reflection.c: Use the new helper functions.
13968         
13969         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13970
13971         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13972         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13973
13974         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13975         neccesary.
13976
13977         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13978         current module. Emit the manifest only for the main module.
13979
13980         * reflection.c (mono_image_create_token): Add assertion when a 
13981         memberref needs to be created.
13982
13983         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13984
13985         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13986         larger buffer for the custom attribute blob. Fixes #50637.
13987         
13988 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13989
13990         * threadpool.c: notify listener on async processing handles after
13991         invoking the async callback. Thanks to Zoltan.
13992
13993 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13994
13995         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13996         avoid code duplication.
13997
13998         * reflection.h (MonoDynamicImage): New type which is currently unused,
13999         but will be used through the ref.emit code in place of 
14000         MonoDynamicAssembly.
14001
14002         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
14003         object layout.
14004
14005         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
14006         a MonoDynamicImage instead of just a MonoImage.
14007         
14008         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
14009         icalls to ModuleBuilder but keep their semantics, so they will work
14010         with moduleb->assemblyb. This will change later.
14011         
14012 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
14013
14014         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
14015         object layout.
14016
14017         * reflection.c (mono_image_build_metadata): Avoid creation of a default
14018         main module, since it is now done by the managed code.
14019
14020 2003-11-03  Martin Baulig  <martin@ximian.com>
14021
14022         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
14023         `ginst->klass' here.
14024         (method_encode_methodspec): Don't use the `ginst->generic_method's
14025         klass if it's a generic instance, use `ginst->klass' in this case.
14026
14027 2003-11-03  Martin Baulig  <martin@ximian.com>
14028
14029         * reflection.c (mono_image_get_generic_method_param_info):
14030         Removed, use mono_image_get_generic_param_info() instead.
14031         (mono_image_get_type_info): Write the GenericParam table before
14032         the Method table.  This is neccessary because in the GenericParam
14033         table, type parameters of the class (ie. '!0' etc.) must come
14034         before the ones from its generic methods (ie. '!!0' etc).
14035
14036 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
14037
14038         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
14039
14040 2003-11-02  Martin Baulig  <martin@ximian.com>
14041
14042         * reflection.c (create_generic_typespec): Take a
14043         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
14044         the generic parameters from it.
14045
14046 2003-11-02  Martin Baulig  <martin@ximian.com>
14047
14048         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
14049         instead of a `MonoClassField *' since we just need the type.
14050         (create_generic_typespec): New static function.  Creates a
14051         TypeSpec token for a generic type declaration.
14052         (mono_image_get_generic_field_token): New static function.
14053         (mono_image_create_token): If we're a FieldBuilder in a generic
14054         type declaration, call mono_image_get_generic_field_token() to get
14055         the token.
14056
14057 2003-11-02  Martin Baulig  <martin@ximian.com>
14058
14059         * reflection.h
14060         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
14061         `MonoReflectionGenericInst *declaring_type' and
14062         `MonoReflectionGenericInst *reflected_type' fields.
14063
14064         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
14065         `MonoReflectionGenericInst *declaring_type' and a
14066         `MonoReflectionGenericInst *reflected_type' argument instead of a
14067         single `MonoReflectionGenericInst *type' one.  Set
14068         `res->declaring_type' and `res->reflected_type' from them.
14069         (mono_reflection_inflate_field): Likewise.      
14070
14071 2003-11-02  Martin Baulig  <martin@ximian.com>
14072
14073         * class.c (mono_class_setup_vtable): Don't store generic methods
14074         in the vtable.  
14075
14076 2003-11-02  Martin Baulig  <martin@ximian.com>
14077
14078         * reflection.h (MonoReflectionGenericInst): Added
14079         `MonoReflectionType *declaring_type'.
14080
14081         * reflection.c (mono_reflection_bind_generic_parameters): Use
14082         `if (tb->parent)' instead of `klass->parent'.
14083
14084 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
14085
14086         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
14087         with an empty ASSEMBLY table.
14088
14089         * reflection.c (mono_image_build_metadata): Avoid using the same loop
14090         variable in the inner and outer loops.
14091
14092 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
14093
14094         * metadata.h (mono_metadata_make_token): Put parentheses around macro
14095         argument.
14096
14097         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
14098         
14099         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
14100         icalls. Instead, do everything in managed code. This is needed since
14101         it is hard to restore the original domain etc. in unmanaged code in the
14102         presence of undeniable exceptions.
14103
14104         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
14105         New icalls to push and pop appdomain refs.
14106
14107 2003-10-31  Martin Baulig  <martin@ximian.com>
14108
14109         * class.c (inflate_generic_type): Renamed to
14110         mono_class_inflate_generic_type() and made it public.
14111
14112         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
14113         New interncall.
14114
14115         * loader.c (mono_field_from_memberref): Also set the retklass for
14116         typespecs.
14117
14118         * fielder.c (mono_image_get_inflated_field_token): New static
14119         method; creates a metadata token for an inflated field.
14120         (mono_image_create_token, fixup_method): Added support for
14121         "MonoInflatedField".
14122         (fieldbuilder_to_mono_class_field): New static function.
14123         (mono_reflection_inflate_field): New public function.
14124
14125         * reflection.h
14126         (MonoReflectionGenericInst): Added `MonoArray *fields'.
14127         (MonoReflectionInflatedField): New typedef.     
14128
14129 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
14130
14131         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
14132         for Solaris and other platforms without s6_addr16
14133
14134 2003-10-30  Martin Baulig  <martin@ximian.com>
14135
14136         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
14137         argument instead of two.
14138         (mono_class_inflate_generic_signature): Likewise.
14139         (inflate_generic_header): Likewise.
14140         (mono_class_inflate_generic_method): Likewise.  In addition, if
14141         `ginst->klass' is set, it becomes the new `method->klass'.
14142
14143         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
14144         field.
14145
14146         * reflection.c (encode_generic_method_sig): Write a 0xa as the
14147         first byte. [FIXME]
14148         (method_encode_methodspec): If we have generic parameters, create
14149         a MethodSpec instead of a MethodRef.
14150         (fixup_method): Added support for "MonoInflatedMethod" and
14151         "MonoInflatedCtor".
14152         (mono_image_create_token): Added support for "MonoInflatedMethod"
14153         and "MonoInflatedCtor".
14154         (inflated_method_get_object): New static function; returns a
14155         managed "System.Reflection.MonoInflatedMethod" object.
14156         (mono_reflection_bind_generic_method_parameters): Return a
14157         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
14158         (mono_reflection_inflate_method_or_ctor): Likewise.
14159         (mono_image_get_generic_method_param_info): Initialize unused
14160         fields to zero.
14161         (mono_image_get_generic_param_info): Likewise.
14162
14163         * reflection.h (MonoReflectionInflatedMethod): New public
14164         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
14165         "S.R.MonoInflatedCtor" classes.
14166
14167         * loader.c (method_from_memberref): If we're a TypeSpec and it
14168         resolves to a generic instance, inflate the method.
14169
14170 2003-10-28  Dick Porter  <dick@ximian.com>
14171
14172         * object.c (mono_runtime_run_main): Convert command-line arguments
14173         into utf8, falling back to the user's locale encoding to do so.
14174
14175 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
14176
14177         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
14178         at this time.
14179
14180         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
14181
14182         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
14183         up icalls at method definition time. Partially fixes #33569.
14184
14185 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
14186
14187         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
14188         marshalling of arrays. Fixes #50116.
14189
14190         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
14191
14192         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
14193         points to a vtable in the dying appdomain.
14194
14195         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
14196         listeners into unmanaged code inside the lock.
14197
14198         * object.c (mono_class_vtable): Turn off typed allocation in non-root
14199         domains and add some comments.
14200
14201 2003-10-25  Martin Baulig  <martin@ximian.com>
14202
14203         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
14204
14205         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
14206
14207         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
14208         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
14209         currently parsing.  Create the generic class and store it in
14210         `generic_inst->klass' before parsing the type arguments.  This is
14211         required to support "recursive" definitions; see mcs/tests/gen-23.cs
14212         for an example.
14213         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
14214         to support recursive typespec entries.
14215
14216         * class.c (mono_class_setup_parent): If our parent is a generic
14217         instance, we may get called before it has its name set.
14218         (mono_class_from_generic): Splitted into
14219         mono_class_create_from_generic() and mono_class_initialize_generic().
14220
14221 2003-10-25  Martin Baulig  <martin@ximian.com>
14222
14223         * icall.c (ves_icall_Type_BindGenericParameters): Return a
14224         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
14225         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
14226         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
14227
14228         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
14229         (create_typespec): Likewise.
14230         (mono_reflection_bind_generic_parameters): Return a
14231         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
14232         (mono_reflection_inflate_method_or_ctor): New public function.
14233
14234         * reflection.h (MonoReflectionGenericInst): New typedef.        
14235
14236 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
14237
14238         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
14239         inside the domain lock. Fixes #49993.
14240         
14241         * object.c (mono_class_vtable): When typed allocation is used, 
14242         allocate vtables in the GC heap instead of in the mempool, since the
14243         vtables contain GC descriptors which are used by the collector even
14244         after the domain owning the mempool is unloaded.
14245
14246         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
14247
14248         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
14249         reflect what it does. Also invalidate mempools instead of freeing
14250         them if a define is set.
14251
14252         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
14253         of the appdomain.
14254         
14255         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
14256         hold the finalizable objects in this domain.
14257
14258         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
14259         appdomain.
14260
14261         * appdomain.c (mono_domain_set): New function to set the current
14262         appdomain, but only if it is not being unloaded.
14263
14264         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
14265         appdomain which is being unloaded.
14266         
14267         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
14268         unloading of the root appdomain.
14269
14270         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
14271         icall to execute a method in another appdomain. Intended as a 
14272         replacement for InternalSetDomain, which can confuse the code 
14273         generation in the JIT.
14274
14275         * appdomain.c (mono_domain_is_unloading): New function to determine
14276         whenever an appdomain is unloading.
14277
14278         * appdomain.c (mono_domain_unload): New function to correctly unload
14279         an appdomain.
14280
14281         * assembly.c (mono_assembly_load_references): Check that an assembly
14282         does not references itself.
14283
14284         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
14285         domain manually, it asks the finalizer thread to do it, then waits for
14286         the result. Also added a timeout.
14287
14288         * icall.c: Register the new icalls.
14289
14290         * threads.h threads.c: Export the mono_gc_stop_world and 
14291         mono_gc_start_world functions.
14292         
14293         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
14294         function to fill out the mempool with 0x2a.
14295
14296 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
14297
14298         * reflection.h (MonoReflectionMethodAux): New structure to store
14299         information which is rarely used, thus is not in the MonoMethod
14300         structure.
14301
14302         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
14303         store the aux info.
14304
14305         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
14306         and marshalling info into the aux structure.
14307
14308         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
14309         from the aux structure.
14310
14311         * loader.c (mono_method_get_param_names): Retrieve the param names from
14312         the aux structure.
14313         
14314 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
14315
14316         * exception.h exception.c: Add AppDomainUnloadedException && fix 
14317         warning.
14318
14319 2003-10-21  Dick Porter  <dick@ximian.com>
14320
14321         * socket-io.c
14322         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
14323         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
14324
14325 2003-10-21  Martin Baulig  <martin@ximian.com>
14326
14327         * reflection.c (mono_reflection_bind_generic_parameters):
14328         `klass->parent' is NULL for interfaces.
14329
14330 2003-10-21  Martin Baulig  <martin@ximian.com>
14331
14332         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14333
14334 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
14335
14336         * exception.c (mono_exception_from_name_msg): New helper function for
14337         creating exceptions and initializing their message field.
14338
14339         * exception.c: Simplify functions using the new helper.
14340
14341         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
14342         New function.
14343
14344         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
14345         mono_raise_exception, since otherwise gcc doesn't generate the function
14346         epilog for raise_exception, confusing the stack unwinding in the JIT.
14347         Fixes #45043.
14348
14349         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
14350         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
14351         Fixes #49499.
14352
14353 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14354
14355         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
14356         utf8.
14357
14358 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
14359
14360         * icall.c: Removed GetUninitializedObject method because
14361           AllocateUninitializedClassInstance does the same.
14362
14363 2003-10-18  Martin Baulig  <martin@ximian.com>
14364
14365         * class.c (inflate_generic_signature): Renamed to
14366         mono_class_inflate_generic_signature() and made it public.
14367         (my_mono_class_from_generic_parameter): New static function; if we
14368         don't already have the generic parameter's MonoClass, create a
14369         very simple one which is just used internally in the runtime and
14370         not passed back to managed code.
14371
14372         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
14373
14374         * metadata.h (MonoMethodSignature): Moved the
14375         `MonoGenericParam *gen_params' to the MonoMethodHeader.
14376         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
14377
14378         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
14379         ves_icall_MonoMethod_GetGenericArguments(); this is now an
14380         interncall on the MonoMethod class, not on MethodInfo.
14381         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
14382         calling mono_reflection_bind_generic_method_parameters() directly.
14383
14384         * loader.c (mono_method_get_signature): If this is a MethodSpec;
14385         return the already computed `method->signature'.
14386         (method_from_methodspec): New static function to load a method
14387         from a MethodSpec entry.
14388         (mono_get_method_from_token): Call the new method_from_methodspec()
14389         for MethodSpec tokens.  
14390         (mono_get_method_from_token): If we're a generic method, load the
14391         type parameters.
14392
14393         * reflection.c (mono_image_get_memberref_token): Allow
14394         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
14395         table.
14396         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
14397         (mono_image_create_token): First check whether it's a generic
14398         method (so we'd need to create a MethodSpec), then do the other
14399         two alternatives.
14400         (mono_reflection_bind_generic_method_parameters): Return a
14401         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
14402         called directly from the interncall.
14403
14404 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
14405
14406         * reflection.c (load_public_key): Move loading of the public key
14407         into managed code.
14408
14409         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
14410
14411         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
14412         fields.
14413
14414         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
14415         culture, hash_alg and public_key. Fixes #49555.
14416
14417 2003-10-17  Martin Baulig  <martin@ximian.com>
14418
14419         * class.h (MonoGenericInst): Moved this declaration here and added
14420         `MonoMethod *generic_method'.
14421
14422         * icall.c
14423         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
14424         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
14425
14426         * metadata.c (mono_metadata_type_equal): Two types of
14427         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
14428         index; ie. don't compare the address of the `MonoGenericParam'
14429         structure.
14430         (mono_metadata_load_generic_params): Removed the `MonoMethod
14431         *method' argument.
14432
14433         * metadata.h (MonoGenericInst): Moved declaration to class.h.
14434         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
14435
14436         * reflection.c (method_encode_signature): Encode the number of
14437         generic parameters.
14438         (encode_generic_method_sig): New static function.
14439         (method_encode_methodspec): New static function; creates an entry
14440         in the MethodSpec table for a generic method.
14441         (mono_image_get_methodspec_token): New static function.
14442         (mono_image_create_token): Call mono_image_get_methodspec_token()
14443         for generic methods.
14444         (mono_reflection_bind_generic_method_parameters): New public
14445         function.  Instantiates a generic method.
14446
14447 2003-10-16  Martin Baulig  <martin@ximian.com>
14448
14449         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
14450         *gen_params' here from MonoMethodHeader.
14451
14452         * metadata.c (mono_metadata_parse_method_signature): If we have
14453         generic parameters, initialize `method->gen_params' and then set
14454         the correct `type->data.generic_param' in all the parameters.
14455
14456 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
14457
14458         * threads.c (mono_threads_get_default_stacksize): New function to 
14459         return the default stacksize.
14460
14461         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
14462         termination of the finalizer thread, since the previous method had
14463         race conditions. Fixes #49628.
14464
14465         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
14466         as for the other managed threads.
14467
14468 2003-10-16  Martin Baulig  <martin@ximian.com>
14469
14470         * class.c (inflate_generic_signature): Copy `generic_param_count'
14471         and `gen_params'.
14472
14473         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
14474         New interncall.
14475
14476         * metadata.c (mono_metadata_parse_method_signature): Actually set
14477         the `method->generic_param_count' here.
14478         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
14479
14480 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
14481
14482         * object.h: Add a new field to TypedRef to simplify the implementation
14483         of the REFANY opcodes in the JIT.
14484
14485         * icall.c: Make use of the new field.
14486
14487         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
14488         dynamically.
14489
14490 2003-10-15  Martin Baulig  <martin@ximian.com>
14491
14492         * class.c (mono_class_from_gen_param): Renamed to
14493         mono_class_from_generic_parameter() and moved most of the
14494         functionality from mono_reflection_define_generic_parameter()
14495         here; ie. we create a "real" class here.
14496         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
14497         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
14498         previously been called.
14499
14500         * class.h (MonoGenericParam): Moved the declaration of this struct
14501         here from metadata.h and added `MonoMethod *method'.
14502
14503         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
14504         interncall.
14505
14506         * loader.c (mono_get_method_from_token): If we have any generic
14507         parameters, call mono_metadata_load_generic_params() to read them
14508         from the MONO_TABLE_GENERICPAR.
14509
14510         * metadata.c (mono_metadata_load_generic_params): Added
14511         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
14512
14513         * metadata.h (MonoMethodSignature): Replaced
14514         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
14515         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
14516
14517         * reflection.c (mono_reflection_define_generic_parameter): Moved
14518         most of the functionality into the new
14519         mono_class_from_generic_parameter(); set the `method' field if
14520         we're a method parameter.       
14521
14522 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
14523
14524         * marshal.c (emit_struct_conv): if native size is 0
14525         emit no code.
14526
14527 2003-10-14  Martin Baulig  <martin@ximian.com>
14528
14529         * icall.c: The generics API has changed in the spec since it was
14530         added to System.Type; these modifications make it match the spec
14531         again.
14532         (ves_icall_Type_GetGenericParameters): Renamed to
14533         `ves_icall_Type_GetGenericArguments'.
14534         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
14535         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
14536         `ves_icall_MonoType_get_HasGenericArguments'.
14537         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
14538         `ves_icall_MonoType_get_IsGenericParameter'.
14539         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
14540         this is no interncall anymore.
14541         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
14542         `ves_icall_TypeBuilder_get_IsGenericParameter'.
14543
14544 2003-10-14  Martin Baulig  <martin@ximian.com>
14545
14546         * reflection.c (mono_reflection_bind_generic_parameters): Also
14547         inflate generic methods if we're reading the class from IL.
14548
14549 2003-10-13  Martin Baulig  <martin@ximian.com>
14550
14551         * reflection.c (mono_reflection_define_generic_parameter): This
14552         method isn't called directly from the icall anymore; take a
14553         `MonoReflectionAssemblyBuilder *' so we can use this for type and
14554         method generic parameters.
14555         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
14556         (method_builder_encode_signature): Encode generic parameters.
14557         (mono_image_get_method_info): Write generic params to the
14558         MONO_TABLE_GENERICPARAM table.
14559
14560         * reflection.h (MonoReflectionMethodBuilder): Added
14561         `MonoArray *generic_params'.
14562
14563         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
14564
14565         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
14566         wrapper for mono_reflection_define_generic_parameter().
14567         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
14568
14569 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
14570
14571         * marshal.h: Add missing function to fix build.
14572
14573         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
14574         the SetLastError pinvoke attribute.
14575
14576         * marshal.c (mono_marshal_set_last_error): New helper function called
14577         by the generated code.
14578         
14579         * marshal.c (mono_mb_emit_branch): New helper function.
14580
14581         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
14582
14583         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14584         classes as parameters and return values of delegates. Fixes #29256. 
14585
14586 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
14587
14588         * locales.c: use gint32 in non HAVE_ICU case
14589
14590 2003-10-11  Martin Baulig  <martin@ximian.com>
14591
14592         * mono-debug.c (mono_debug_add_method): Added a workaround for
14593         bug #48591.
14594
14595 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
14596
14597         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
14598         delegates passed to native code must use the STDCALL calling 
14599         convention. Fixes #35987.
14600
14601 2003-10-10  Martin Baulig  <martin@ximian.com>
14602
14603         * class.c (inflate_generic_type): If we're inflating for a generic
14604         type instance (and not for a generic method), return
14605         MONO_TYPE_MVAR unchanged.
14606
14607 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14608
14609         * string-icalls.c: Join ignores null strings in the source array.
14610         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
14611         * threads.c: GetAvailableTheads is slightly more accurate.
14612
14613 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
14614
14615         * threads.h threads.c : add mono_threads_set_default_stacksize
14616         and pass default to CreateThread calls.
14617
14618 2003-10-09  Dick Porter  <dick@ximian.com>
14619
14620         * icall.c:
14621         * locales.h:
14622         * locales.c: Internal calls for constructing CultureInfo and
14623         related objects from libicu (if its available.)
14624
14625 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
14626
14627         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
14628
14629 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14630
14631         * threadpool.c: added an argument to async_invoke_thread that is the
14632         item to process, pass the MonoAsyncResult to the thread start function
14633         when creating a new thread. This way we don't need to acquire any lock
14634         when we're creating a new thread. Readded a semaphore for faster
14635         response times (instead of that Sleep i added).
14636
14637 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
14638
14639         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14640         get daylight change dates better on Windows, fix handling
14641         of platforms without tm_gmtoff.
14642
14643 2003-10-06  Martin Baulig  <martin@ximian.com>
14644
14645         * class.c (inflate_generic_method): Renamed to
14646         mono_class_inflate_generic_method() and made public.
14647         (mono_class_init): Don't inflate the generic methods here.
14648         (mono_class_from_generic): Added `gboolean inflate_methods'
14649         argument.  Inflate the methods here.
14650
14651         * loader.c (mono_method_get_param_names): Ignore instances of
14652         generic types for the moment.
14653
14654         * reflection.c (fixup_method): Added support for inflated methods.
14655         (mono_image_create_token): Use mono_image_get_methodref_token()
14656         for inflated methods.
14657         (mono_custom_attrs_from_param): Ignore instances of generic types
14658         for the moment.
14659         (mono_reflection_bind_generic_parameters): New public function.
14660         Moved all the functionality from
14661         ves_icall_Type_BindGenericParameters() here and added support for
14662         dynamic types.
14663         (mono_reflection_define_generic_parameter): Initialize
14664         `klass->methods' here.
14665
14666         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
14667         functionality into mono_reflection_define_generic_parameter().
14668         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
14669         TypeBuilder, return that TypeBuilder.
14670
14671 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14672
14673         * appdomain.c: removed mono_delegate_semaphore.
14674
14675         * threadpool.c:
14676         (mono_thread_pool_add): moved hash table creation inside and the thread 
14677         creation outside of the critical region.
14678         (mono_thread_pool_finish): removed obsolete code.
14679         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
14680         continue or exit the thread depending on the queue.
14681
14682 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
14683
14684         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
14685         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
14686         handle more bool marshalling options
14687
14688 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
14689
14690         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
14691         arrays of structs. Also add a more descriptive error message when
14692         a structure member is marshalled as LPArray.
14693
14694 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
14695
14696         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14697         marshalling arrays of complex types. Fixes #29098. Also remove an
14698         usused and incomplete function.
14699
14700 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14701
14702         * gc.c: report heap_size - free_bytes as total memory allocated
14703         (bug#49362).
14704
14705 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
14706
14707         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
14708         fix timezone handling problems on Windows.
14709         
14710         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
14711         asserts when the year is outside the range handled by ms the functions.
14712
14713         * class.c (setup_interface_offsets): If the class is an interface,
14714         fill out its interface_offsets slot.
14715
14716 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14717
14718         * threadpool.c: mark threadpool threads as background.
14719
14720 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
14721
14722         * decimal.c - define DECINLINE to nothing if not using GCC
14723
14724 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
14725
14726         * assembly.c: More refcount fixes.
14727
14728 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14729
14730         * string-icalls.c: if we're not trimming, return the same string.
14731         When not splitting, don't create a new string.
14732
14733 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14734
14735         * image.c:
14736         (mono_image_open): increment the ref_count inside the critical section.
14737
14738 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
14739
14740         * image.c (mono_image_open): Fix reference counting bug.
14741
14742 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
14743
14744         * marshal.c (mono_marshal_type_size) struct alignment changed for 
14745         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
14746         64bits. Avoid leak in mono_marshal_get_native_wrapper when
14747         mono_lookup_pinvoke_call throws.        
14748
14749 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
14750
14751         * reflection.c (mono_reflection_parse_type): Fix #49114.
14752
14753         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
14754         temporary workaround for cygwin header problem.
14755
14756         * object.c (mono_object_isinst): Synchronize this with the code
14757         generated by the JIT for casts.
14758
14759 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
14760
14761         * reflection.c (encode_type): Fix #38332.
14762
14763 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
14764
14765         * marshal.c (mono_marshal_method_from_wrapper): New function to return
14766         the original method from the wrapper method.
14767
14768 2003-09-25  Martin Baulig  <martin@ximian.com>
14769
14770         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
14771         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
14772         (ves_icall_Type_get_IsGenericInstance): New interncall.
14773
14774 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
14775
14776         * object.c: fix cast warning in big endian code.
14777
14778 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
14779
14780         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
14781         
14782 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14783
14784         * assembly.c: don't call check_env from mono_assembly_load. It's
14785         already done once in mono_assemblies_init and may cause headaches when
14786         multiple threads are loading assemblies.
14787
14788 2003-09-19  Martin Baulig  <martin@ximian.com>
14789
14790         * reflection.c (mono_reflection_define_generic_parameter): Don't
14791         allocate `klass->methods', set `klass->flags' to
14792         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
14793
14794 2003-09-18  Martin Baulig  <martin@ximian.com>
14795
14796         * class.c (mono_class_init): Don't create `class->methods' if it's
14797         already initialized.
14798
14799         * metadata.c (mono_metadata_load_generic_params): Make this
14800         actually work.
14801
14802         * reflection.c (mono_reflection_define_generic_parameter): Set
14803         parent class and interfaces from the constraints.
14804
14805         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
14806         to keep this struct in sync with the declaration in TypeBuilder.cs.
14807
14808 2003-09-17  Martin Baulig  <martin@ximian.com>
14809
14810         * metadata.h (MonoType): Replaced the data's `int type_param'
14811         field with `MonoGenericParam *generic_param'.
14812         (MonoGenericParam): Added `MonoClass *klass'.
14813
14814         * class.c (mono_class_from_gen_param): Removed the
14815         `MonoImage *image' and `int type_num' arguments.
14816
14817         * metadata.c (mono_metadata_parse_generic_param): New static
14818         method; creates a MonoGenericParam which just contains the index.
14819         (do_mono_metadata_parse_type): Call
14820         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
14821         MONO_TYPE_MVAR.
14822
14823         * reflection.c (mono_image_typedef_or_ref): Generic type
14824         parameters may be in the same assembly, but never use a typedef
14825         for them.
14826         (mono_reflection_define_generic_parameter): We're now creating a
14827         "real" class for the type parameter; it's now safe to call
14828         mono_class_from_mono_type() on the class'es type, it'll do the
14829         right thing.
14830
14831 2003-09-16  Martin Baulig  <martin@ximian.com>
14832
14833         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
14834         `symfile->range_entry_size' and `symfile->class_entry_size' here;
14835         the `symfile' data structure must be fully initialized before it
14836         gets added to the table.
14837
14838 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
14839
14840         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14841
14842         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14843         class init trampolines.
14844
14845 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14846
14847         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14848         to the built-in profiler to turn off time and allocation profiling
14849         respectively.
14850
14851 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14852
14853         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14854         g_direct_equal.
14855
14856         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14857         in human readable form.
14858
14859 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14860
14861         * reflection.c icall.c: Fixed warnings.
14862
14863         * image.c (load_class_names): Use a temporary hash table to hold the
14864         namespaces in order to avoid doing many string comparisons.
14865
14866         * image.h: Fix typo.
14867
14868         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14869         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14870         since the NULL case is short-circuited inside g_hash_table_lookup, 
14871         leading to better performance.  
14872
14873         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14874         obtain the first custom attribute for a given index. Depends on the
14875         CustomAttribute table being sorted by the parent field.
14876
14877         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14878         for better performance.
14879
14880 2003-09-07  Martin Baulig  <martin@ximian.com>
14881
14882         * class.c (mono_class_init): If we're a generic instance, inflate
14883         all our methods instead of loading them from the image.
14884         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14885
14886 2003-09-07  Martin Baulig  <martin@ximian.com>
14887
14888         * mono-debug-debugger.c: Added support for constructors.
14889
14890 2003-09-06  Martin Baulig  <martin@ximian.com>
14891
14892         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14893         New interncall.
14894
14895         * reflection.c (mono_reflection_setup_generic_class): Call
14896         ensure_runtime_vtable() to create the vtable.
14897
14898 2003-09-05  Martin Baulig  <martin@ximian.com>
14899
14900         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14901         MONO_TYPE_MVAR.
14902
14903 2003-09-04  Martin Baulig  <martin@ximian.com>
14904
14905         * reflection.c (mono_reflection_define_generic_parameter): Generic
14906         parameters start with zero.
14907
14908 2003-09-04  Martin Baulig  <martin@ximian.com>
14909
14910         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14911
14912         * reflection.h (MonoReflectionGenericParam): New typedef.
14913         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14914         the generic parameters from the managed TypeBuilder.
14915
14916         * reflection.c (mono_reflection_define_generic_parameter): New function.
14917         (mono_reflection_create_runtime_class): Encode generic parameters.
14918         (mono_reflection_setup_generic_class): New function; this is
14919         called after adding adding all generic params to the TypeBuilder.
14920         (encode_type): Added MONO_TYPE_VAR.
14921
14922 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14923
14924         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14925         here from the JIT.
14926
14927         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14928         load hook.
14929
14930 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14931
14932         * reflection.h reflection.c class.h class.c: Delete duplicate 
14933         definition of mono_type_get_name () from reflection.c and export the
14934         one in class.c.
14935
14936         * class.c: Class loading fixes from Bernie Solomon 
14937         (bernard@ugsolutions.com).
14938
14939         * reflection.c: Endianness fixes from Bernie Solomon 
14940         (bernard@ugsolutions.com).
14941         
14942 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14943
14944         * assembly.h assembly.c: Define a file format version for AOT
14945         libraries.
14946         
14947         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14948
14949         * appdomain.h (MonoJitInfo): New field to determine whenever the
14950         code is domain neutral.
14951         
14952 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14953
14954         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14955
14956 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14957
14958         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14959         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14960         Avoid caching the result since strings must be domain specific. Fixes
14961         #48050.
14962
14963 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14964
14965         * marshal.c (mono_marshal_init): Make this callable multiple times
14966         since it is hard to find a correct place to call it.
14967
14968         * object.c (mono_runtime_class_init): Execute static constructors in
14969         the correct appdomain.
14970
14971         * image.c (build_guid_table): Handle the case when multiple images have
14972         the same GUID.
14973
14974 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14975
14976         * icall.c: added a couple of icalls for System.Web.
14977
14978 2003-08-28  Martin Baulig  <martin@ximian.com>
14979
14980         * icall.c (ves_icall_Type_BindGenericParameters): Use
14981         `klass->generic_inst' instead of `&klass->byval_arg' in the
14982         mono_type_get_object() call.  The returned type must be
14983         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14984
14985 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14986
14987         * NOTES: New file.
14988
14989         * object.c (mono_class_proxy_vtable): Make it thread safe.
14990
14991         * pedump.c: Fix warning.
14992
14993         * object.c appdomain.h: Get rid of metadata_section. 
14994         It is no longer needed and it was causing deadlocks with domain->lock.
14995
14996         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14997
14998 2003-08-26  Martin Baulig  <martin@ximian.com>
14999
15000         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
15001
15002 2003-08-26  Martin Baulig  <martin@ximian.com>
15003
15004         * pedump.c (main): Call mono_metadata_init(),
15005         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
15006         and mono_loader_init().
15007
15008 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
15009
15010         * loader.h: Add missing include to fix build.
15011
15012         * image.h: mono_image_load_references is no more.
15013
15014         * assembly.c: Reworked assembly loading to make it really thread safe.
15015         After these changes, the assembly returned by mono_assembly_open is
15016         fully initialized, i.e. all its references assemblies are loaded.
15017
15018         * assembly.c (mono_image_load_references): Renamed to 
15019         mono_assembly_load_references, and made private, since clients no
15020         longer need to call it.
15021
15022         * class.c: Removed calls to mono_assembly_load_references, since it was
15023         a source of deadlocks.
15024
15025         * loader.h loader.c class.h class.c: Protect data structures using a 
15026         new lock, the loader lock.
15027
15028         * class.c (mono_class_setup_vtable): Create temporary hash tables and
15029         GPtrArrays only when needed.
15030
15031         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
15032         into empty structures by mcs. Fixes pinvoke7.cs.
15033         
15034         * domain.c (mono_init): Call a new initialization function.
15035
15036         * appdomain.c (mono_runtime_init): Call the new initializer function
15037         of the marshal module.
15038
15039         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
15040         inserted into empty structures by mcs. Fixes pinvoke7.cs.
15041
15042         * marshal.h marshal.c: Added locks around the wrapper caches to make
15043         this module thread safe.
15044
15045         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
15046         this argument. Fixes pinvoke1.exe.
15047
15048 2003-08-25  Lluis Sanchez <lluis@ximian.com>
15049
15050         * object.h: Added call_type field to MonoMethodMessage and the corresponding
15051         enumeration of values. Removed fields to store remote call output values in
15052         MonoAsyncResult. Not needed any more.
15053         * object.c: Initialize call_type and async_result fields in mono_message_init.
15054         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
15055         dispatching the message.
15056         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
15057         async call to finish. To do it use a message with EndInvoke call type.
15058
15059 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
15060
15061         * loader.h loader.c (mono_method_hash_marhal_info): New function which
15062         determines whenever a method has marshalling info.
15063
15064 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15065
15066         * assembly.c: fix the build on windows.
15067
15068 2003-08-22 Lluis Sanchez <lluis@ximian.com>
15069
15070         * object.cs: Fixed bug #47785.
15071
15072 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
15073
15074         * string-icalls.c (StringReplace): If their are no occurances of
15075         the old string found return a reference to the supplied
15076         string. This saves some memory and matches MS behavoir.
15077         
15078 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15079
15080         * socket-io.c: fixed compilation for systems that define AF_INET6
15081         and don't define SOL_IP/SOL_IPV6.
15082
15083 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
15084
15085         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
15086         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
15087
15088         * rawbuffer.c rawbuffer.h: Make this module thread safe.
15089
15090         * domain.c: Make this module thread safe.
15091
15092         * domain.c (mono_init): Call new initialization function.
15093
15094         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
15095         reference types too. Fixes #38812.
15096
15097         * image.c (mono_image_init): Fixed warnings.
15098
15099         * class.c (mono_class_from_typeref): Handle assembly load failure
15100         correctly.
15101
15102         * appdomain.c (add_assemblies_to_domain): Handle the case when
15103         the references of an assembly are not yet loaded.
15104
15105         * metadata.c image.c assembly.c: Moved initialization of global
15106         variables to a separate function called at startup since lazy 
15107         initialization of these variables is not thread safe.
15108         
15109         * image.c assembly.c: Made this module thread safe by adding locks in 
15110         the appropriate places.
15111
15112         * domain.c (mono_init): Call the new initialization functions of the
15113         three modules.
15114
15115 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
15116
15117         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
15118           make a direct call. It is proxy's work to make the call asynchronous.
15119           mono_delegate_end_invoke(): If the targe is a proxy, just collect
15120           the return values.
15121         * object.cs: mono_method_call_message_new(): read AsyncResult and
15122           state object from parameters list, if this info is requested.
15123         * object.h: Added fields to store remote call output values in
15124           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
15125
15126 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15127
15128         * object.h: add needed fields to MonoThread.
15129         * threads.c, threads.h: allow registering a function to cleanup data
15130         allocated per thread by the JIT.
15131
15132 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15133
15134         * loader.h: portability fix by Bernie Solomon
15135         * <bernard@ugsolutions.com>.
15136
15137 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
15138
15139         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
15140         return a MonoArray. This simplifies the code and also ensures that
15141         the cache allways contains an object reference as a value.
15142
15143         * icall.c (ves_icall_get_parameter_info): Simplified using the new
15144         function.
15145
15146 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15147
15148         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
15149         fixes a problem with byte ordering when getting the address family for
15150         a socket.
15151
15152 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
15153
15154         * .cvsignore: Added monosn.
15155
15156         * reflection.h reflection.c loader.c: Added support for parameter
15157         marshalling to dynamically created types. Fixes #47295.
15158
15159 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
15160
15161         * rand.c: remove useless warnings.
15162
15163 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
15164
15165         * class.c: implemented ldtoken for methods and fieldrefs.
15166
15167 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15168
15169         * threadpool.c: when mono_async_invoke was called, no one took care of
15170         monitoring the queue. So if the method invoked took some time and we
15171         got new async invoke requests after 500 ms (the thread created waited
15172         that long in WaitForSingleObject), the new async invoke was not called
15173         until the previous one finished.
15174
15175         This is fixed now. Thanks to Totte for helping with it.
15176
15177 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15178
15179         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
15180
15181 2003-08-11  Martin Baulig  <martin@ximian.com>
15182
15183         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
15184
15185 2003-08-06  Martin Baulig  <martin@ximian.com>
15186
15187         * mono-debug-debugger.c: Added support for static fields,
15188         properties and methods.
15189
15190 2003-08-06  Martin Baulig  <martin@ximian.com>
15191
15192         * mono-debug-debugger.c: Don't store the MonoString's vtable to
15193         make this work for applications with multiple application domains.
15194
15195 2003-08-04  Martin Baulig  <martin@ximian.com>
15196
15197         * mono-debug-debugger.c: Completely reworked the type support; the
15198         most important thing is that we're now just using one single
15199         `MonoType' instance per type.
15200
15201 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
15202
15203         * mono-endian.h, mono-endian.c, icall.c: Added icall
15204         ves_icall_System_Double_AssertEndianity to assert double word endianity
15205         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
15206
15207 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15208
15209         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
15210         support, icalls and fixes.
15211
15212 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
15213
15214         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
15215         classes that are a punctuation character in .NET is not the same a
15216         g_unichar_ispunct.
15217
15218 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15219
15220         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
15221
15222 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
15223
15224         * icall.c: Add new MemCopy internalcall.
15225         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
15226         Simplified code; It is not necessary to handle all the cases here,
15227         as the C# code takes care of it.  Only handle the case of the name
15228         resource embedded into the assembly.
15229
15230         Changed signature to return the data pointer and the size of the
15231         data. 
15232
15233 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
15234
15235         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
15236         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
15237
15238 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
15239
15240         * socket-io.c: ignore EINTR error in select.
15241
15242 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15243
15244         * class.h, class.c: removed unused subclasses field in MonoClass.
15245
15246 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
15247
15248         * icall.c: improve fix of get_base_definition(). If the parent class
15249           doesn't have the mehod, look at the parent of the parent.
15250         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
15251           to check if a parameter is an in or out parameter
15252           (PARAM_ATTRIBUTE_IN is not set by default).
15253           mono_method_return_message_restore(): Use mono_class_value_size to
15254           get the size of a value type. mono_type_stack_size (parameterType)
15255           does not return the correct value if parameterType is byRef.
15256           mono_load_remote_field(), mono_load_remote_field_new(),
15257           mono_store_remote_field(), mono_store_remote_field_new():
15258           raise exception if the remote call returns an exception.
15259
15260 2003-07-28  Martin Baulig  <martin@ximian.com>
15261
15262         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
15263         method.  This is a wrapper around mono_runtime_invoke() which
15264         boxes the instance object if neccessary.
15265
15266 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15267
15268         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
15269         metadata.h, row-indexes.h, verify.c: first cut of generics support.
15270
15271 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15272
15273         * icall.c: disable mcs bug workaround.
15274
15275 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
15276
15277         * object.c (mono_runtime_class_init): Take the metadata_section
15278         mutex before obtaining the domain mutex.
15279
15280         * appdomain.h: Added definition of metadata_section mutex here. 
15281
15282         * object.c: define metadata_mutex here.
15283
15284 2003-07-24  Ravi Pratap  <ravi@ximian.com>
15285
15286         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
15287         fixed.
15288
15289 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
15290
15291         * reflection.c: Fix bug #46669
15292
15293 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15294
15295         * exception.c:
15296         * exception.h:
15297         * icall.c:
15298         * object.h: fill in the type name for TypeLoadException.
15299
15300 2003-07-23  Ravi Pratap  <ravi@ximian.com>
15301
15302         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
15303         relationship between TypeBuilders while compiling corlib) and bug
15304         45993 (Array types returned from the runtime while compiling
15305         corlib were from the loaded corlib).
15306
15307 2003-07-22  Martin Baulig  <martin@ximian.com>
15308
15309         * mono-debug-debugger.c: Reworked the type support a bit more;
15310         distinguish between types and classes.
15311
15312 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
15313
15314         * icall.c: add IsArrayImpl icall.
15315
15316 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
15317
15318         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
15319         initializing real_size only once. Also fix bug #46602.
15320
15321 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
15322
15323         * object.c: Renamed mono_metadata_section to metadata_section.
15324
15325 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
15326
15327         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
15328           empty array if the type is an array. Fixed.
15329           ves_icall_MonoMethod_get_base_definition: if the base method
15330           is abstract, get the MethodInfo from the list of methods of
15331           the class.
15332         * reflection.c: ParameterInfo.PositionImpl should be zero-based
15333           and it was 1-based. Fixed in mono_param_get_objects.
15334
15335 2003-07-20  Martin Baulig  <martin@ximian.com>
15336
15337         * mono-debug.h: Set version number to 31.
15338         (mono_debug_init): Added `MonoDomain *' argument.
15339
15340         * mono-debug-debugger.c: Reworked the type support; explicitly
15341         tell the debugger about builtin types; pass the `klass' address to
15342         the debugger.
15343
15344 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
15345
15346         * image.c: Allow new metadata tables to be loaded without a
15347         warning. Also update the warning message to give the new constant value.
15348                 
15349 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
15350
15351         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
15352         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
15353         array type representation changes.
15354
15355 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
15356
15357         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
15358         on Environment.Exit () call.
15359
15360 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
15361
15362         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
15363         requires a matching corlib.
15364
15365 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
15366
15367         * Changelog: My editor decided to add a CR to each line. Sorry about that.
15368           Committed again without the CRs.
15369         
15370 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
15371
15372         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
15373           getting it from the "this" socket instance. Did not work
15374           if the socket is a subclass of Socket.
15375           Also fixed bug #35371.
15376
15377 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
15378
15379         * metadata.c: fixed size for TypedByRef.
15380         * loader.c: when searching for a method, consider the vararg amrker.
15381         * unicode.c, decimal.c: constify some arrays.
15382
15383 2003-07-15  Dick Porter  <dick@ximian.com>
15384
15385         * socket-io.c: Fixed compilation for gcc < 3.2.
15386
15387         Fixed compilation for machines that don't have AF_INET6 (thanks to
15388         Bernie Solomon <bernard@ugsolutions.com> for that part.)
15389
15390         Fixed compile warnings.
15391         
15392         Fixed formatting and line endings.
15393
15394 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
15395
15396         * socket-io.h:
15397         * socket-io.c: Added IPv6 support.
15398
15399 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
15400
15401         * class.c (mono_class_is_assignable_from): New function to implement
15402         the is_assignable_from logic. Used by mono_object_isinst, 
15403         Type::IsAssignableFrom () and the interpreter.
15404
15405         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
15406         Object, even interfaces.
15407         
15408         * object.c (mono_object_isinst): Implement in terms of 
15409         is_assignable_from.
15410
15411         * icall.c (ves_icall_type_is_assignable_from): New icall.
15412
15413 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
15414
15415         * domain.c (foreach_domain): fix compiler warning.
15416
15417 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
15418
15419         * image.c (load_metadata_ptrs): use g_strndup because strndup is
15420         not available on all plattforms
15421
15422 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
15423
15424         * image.h image.c: Store the metadata version string in MonoImage.
15425         * icall.c: New icall to retrieve the image version.
15426         * reflection.c (create_dynamic_image): Fill in the image version field
15427         * reflection.c (build_compressed_metadata): Use the image version
15428         from the image structure.
15429
15430 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15431
15432         * appdomain.c: modified comment.
15433         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
15434         That will be its last iteration when mono_gc_cleanup is called from
15435         mono_runtime_cleanup and before the domain is unloaded.
15436
15437         Fixes bug #45962.
15438
15439 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
15440
15441         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
15442         attributes.
15443
15444 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15445
15446         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
15447         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
15448         Bernie Solomon <bernard@ugsolutions.com>.
15449
15450 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15451
15452         * object.c, object.h: provide mono_object_new_fast() for faster
15453         allocation in some special cases.
15454
15455 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
15456
15457         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
15458         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
15459
15460 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
15461
15462         * threadpool.c: fix leaks.
15463
15464 2003-07-01  Dick Porter  <dick@ximian.com>
15465
15466         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
15467         using MonoGHashTables.  Fixes threadpool bug posted to list.
15468
15469 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15470
15471         * image.h, image.c: added support to load an assembly from a byte array.
15472         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
15473         assembly bundle support.
15474
15475 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
15476
15477         * threadpool.c (mono_thread_pool_add): keep a reference to the
15478         AsyncResult to prevent GC
15479
15480 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15481
15482         * class.c: leak fix.
15483
15484 2003-06-25  Dick Porter  <dick@ximian.com>
15485
15486         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
15487         for the async object, the WaitHandle object will close the handle.
15488         Fixes bug 45321.
15489
15490 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15491
15492         * class.c: in mono_array_class_get (), lookup from the hash with the
15493         same type we insert: this works around a bug in
15494         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
15495         lluis. The real fix will have to wait for after the release.
15496
15497 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15498
15499         * icall.c: fix memory leak when getting type members.
15500
15501 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15502
15503         * reflection.c: added more pubtoken special cases.
15504
15505 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
15506
15507         * class.c: handle field offset correctly when class size
15508         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
15509
15510 2003-06-20  Martin Baulig  <martin@ximian.com>
15511
15512         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
15513         *image' field.
15514
15515 2003-06-20  Martin Baulig  <martin@ximian.com>
15516
15517         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
15518
15519 2003-06-20  Martin Baulig  <martin@ximian.com>
15520
15521         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
15522         just distinguish between variables in registers and variables at
15523         an offset relative to a register.
15524
15525 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15526
15527         * icall.c: #ifdef out latest changes until mcs is fixed.
15528
15529 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15530
15531         * icall.c: return members in metadata order.
15532
15533 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
15534
15535         * icall.c: avoid infinite loop in GetTimeZoneData.
15536
15537 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
15538
15539         * icall.c: added Marshal.Prelink/All icalls.
15540
15541 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15542
15543         * object.c, object.h: fix warnings and do some overflow checking
15544         when creating arrays.
15545
15546 2003-06-17  Dick Porter  <dick@ximian.com>
15547
15548         * file-io.h:
15549         * file-io.c: File attributes need to be tweaked slightly when
15550         passed from the managed to the w32 world.
15551
15552 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15553         * profiler.h profiler-private.h profiler.c: Rework last patch
15554         based on suggestion by Paolo.
15555         
15556 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15557
15558         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
15559         instruction level coverage data collection.
15560         * profiler.h profiler.c (: Added new callback function which can be
15561         used by the profiler to limit which functions should have coverage
15562         instrumentation.
15563         * profiler.c (mono_profiler_load): Call g_module_build_path to
15564         generate the file name of the profiler library.
15565
15566 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15567
15568         * profiler.c, profiler.h, profiler-private.h: added basic block 
15569         coverage profiling API.
15570
15571 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
15572
15573         * reflection.c (mono_reflection_create_runtime_class): Add support
15574         for events in dynamically generated code.
15575
15576         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
15577         not allocated.
15578
15579 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
15580
15581         * icall.c: when getting timezone info, return reasonable values if we
15582         can't get the actual data.
15583
15584 2003-06-14  Dick Porter  <dick@ximian.com>
15585
15586         * threads.c (start_wrapper): Remove the reference to the thread
15587         object in the TLS data, so the thread object can be finalized.
15588         This won't be reached if the thread threw an uncaught exception,
15589         so those thread handles will stay referenced :-( (This is due to
15590         missing support for scanning thread-specific data in the Boehm GC
15591         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
15592
15593 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
15594
15595         * reflection.c: ensure streams and tables are first allocated with
15596         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
15597
15598 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15599
15600         * icall.c: fixed GetElementType for byrefs (bug# 44792).
15601
15602 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
15603
15604         * reflection.c (mono_reflection_create_runtime_class): Add support for
15605         properties to dynamically created classes.
15606         * reflection.c: Fix a few places where non-MonoObjects were inserted
15607         into the tokens hashtable.
15608
15609 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15610
15611         * object.c: some support to handle out of memory exceptions.
15612
15613 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
15614
15615         * marshal.c (mono_marshal_get_native_wrapper): support reference
15616         return types
15617
15618 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15619
15620         * object.h, object.c: more portability stuff from Bernie Solomon.
15621         Unexport mono_object_allocate(). Added mono_object_unbox ().
15622         Set exitcode when an unhandled exception is thrown.
15623
15624 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
15625
15626         * marshal.c (mono_marshal_get_native_wrapper): use custom
15627         marshaler for return types.
15628
15629 2003-06-10  Dick Porter  <dick@ximian.com>
15630
15631         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
15632         ip_mreq is available
15633
15634 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
15635
15636         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
15637         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
15638         by Bernie Solomon <bernard@ugsolutions.com>.
15639
15640 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
15641
15642         * gc.c (mono_gc_init): Avoid error message on shutdown when
15643         GC_DONT_GC=1 is used.
15644
15645         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
15646         New icall to return the GUID of a module.
15647
15648 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15649
15650         * class.c: ensure instance size always includes the parent's size
15651         even whem class size is set explicitly (fixes bug#44294).
15652
15653 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15654
15655         * profiler.h, profiler.c: made the simple profiler thread-safe,
15656         get more accurate timing info. Allow the loading of an
15657         externally-developed profiler module.
15658
15659 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
15660
15661         * marshal.c (mono_marshal_get_native_wrapper): improved
15662         class/byref arguments.
15663         (mono_marshal_get_native_wrapper): better string marshaling support.
15664
15665 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
15666
15667         * class.c: ensure .pack and .size are handled correctly and
15668         simplified layout of static fields.
15669
15670 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
15671
15672         * appdomain.c
15673         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
15674
15675         * loader.c (mono_lookup_pinvoke_call): look for modules in the
15676         current directory (fix bug 44008)
15677
15678 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
15679
15680         * marshal.c (mono_marshal_get_native_wrapper): started support for
15681         custom marshalers.
15682         (mono_delegate_to_ftnptr): consider marshalling specifications
15683
15684 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
15685
15686         * reflection.c, reflection.h: emit custom marshal info.
15687
15688 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15689
15690         * object.c: free the GError.
15691         * icall.c: added CloseEvent_internal.
15692         * threads.[ch]:
15693         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
15694         call.
15695
15696 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
15697
15698         * loader.c (mono_method_get_signature): Add support for dynamic
15699         assemblies.
15700
15701 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
15702
15703         * reflection.c: fixed bug #43905.
15704
15705 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15706
15707         * class.c, domain.c, icall.c, metadata.h, object.h: support for
15708         handling TypedReference and ArgIterator.
15709         * loader.c, loader.h: added function to get signature at call site.
15710
15711 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15712
15713         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
15714         data readonly. Buglets and warning fixes. Some MethodSpec support.
15715
15716 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15717
15718         * class.h, class.c, object.c: remove relative numbering support.
15719
15720 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
15721
15722         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
15723         free the string, until we get a chance to fix Gtk#
15724
15725 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15726
15727         * marshal.c: revert last patch.
15728
15729 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
15730
15731         * icall.c: updates for new mono_class_vtable() not calling
15732         the type constructor anymore.
15733
15734 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15735
15736         * object.h, object.c: separate vtable creation from type
15737         initialization. Make running the .cctor thread safe.
15738
15739 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
15740
15741         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
15742
15743 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
15744
15745         * loader.c (mono_get_method): consider calling convention
15746
15747 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
15748
15749         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
15750         to return the invisible global type for a module.
15751
15752         * reflection.c (mono_image_build_metadata): Emit global fields too.
15753
15754 2003-05-20  Peter Williams  <peterw@ximian.com>
15755
15756         * loader.c (mono_lookup_internal_call): Add a few newlines.
15757
15758 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
15759
15760         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
15761         literal strings.
15762
15763         * appdomain.c (set_domain_search_path): Recalculate search path when
15764         AppDomainSetup.PrivateBinPath changes.
15765
15766         * object.c (mono_class_compute_gc_descriptor): It turns out some
15767         parts of the class libs (like System.Thread) holds pointers to
15768         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
15769         to treat native int a pointer type here.
15770         
15771 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
15772
15773         * appdomain.h, domain.c: add hashtable for jump target resolution.
15774
15775 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
15776
15777         * reflection.h reflection.c icall.c: Added new icalls 
15778         GetManifestResourceInfoInternal, GetModulesInternal and support
15779         infrastructure.
15780
15781 2003-05-16  Dick Porter  <dick@ximian.com>
15782
15783         * icall.c:
15784         * file-io.h:
15785         * file-io.c: Implement System.IO.MonoIO::GetTempPath
15786
15787 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
15788
15789         * object.c: mono_store_remote_field: little fix to previous patch.
15790
15791 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15792
15793         * class.c: add constructors to array classes.
15794         * icall.c: special case array construction for InternalInvoke (),
15795
15796 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
15797
15798         * class.h class.c reflection.c object.c: Added support for field
15799         defaults in dynamically generated classes.
15800
15801 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
15802
15803         * reflection.c: properly encode charset for ddlimport.
15804
15805 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
15806
15807         * threads.c: allow compiling without GC.
15808
15809 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15810
15811         * appdomain.h, object.c, object.h, threads.c, threads.h: added
15812         handling of thread static data.
15813
15814 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15815
15816         * reflection.h, reflection.c: added mono_custom_attrs_free ().
15817
15818 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
15819
15820         * class.c (mono_array_class_get): always set the serializable flags
15821         (mono_array_class_get): always set the SEALED attribute for array types
15822
15823 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
15824
15825         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
15826         attributes (fix for bug 42021).
15827
15828 2003-05-12  Dick Porter  <dick@ximian.com>
15829
15830         * gc.c: Don't run finalizers when the finalizer thread is
15831         finishing up, because the default domain has already been
15832         destroyed.
15833
15834 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
15835
15836         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15837         value is null, we should throw an exception.   This is slightly
15838         different than the other conventions used for the constructor.
15839
15840 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15841
15842         * socket-io.c: fixed windows build.
15843
15844 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15845
15846         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15847
15848 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15849
15850         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15851         compilers.
15852
15853 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15854
15855         * class.c (mono_class_layout_fields): Add experimental GC aware
15856         auto layout facility. Requires class library changes to work correctly.
15857
15858         (mono_class_setup_vtable): Avoid overriding explicit interface
15859         method implementations. Fixes iface3.exe test.
15860
15861         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15862         object reference.
15863         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15864         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15865
15866         * metadata.h: Add new type classification macro which determines
15867         whenever the type holds an object reference.
15868
15869 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15870
15871         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15872
15873 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15874
15875         * gc.c (finalizer_thread): Work around a GC bug.
15876
15877 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15878
15879         * marshal.c (emit_struct_conv): allow unions
15880
15881         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15882
15883 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15884
15885         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15886
15887 2003-05-06  Martin Baulig  <martin@ximian.com>
15888
15889         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15890
15891 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15892
15893         * socket-io.c:
15894         (Select_internal): allow NULLs, don't create arrays if not needed.
15895         Coupled with Socket.cs changes.
15896
15897         * threadpool.c:
15898         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15899         register a finalizer for it that will close the semaphore handle. This
15900         fixes the leak and make Lupus' test run with > 4080 loops.
15901
15902 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15903
15904         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15905         Jerome Laban (bug #42287)
15906
15907 2003-05-02  Martin Baulig  <martin@ximian.com>
15908
15909         * debug-mono-symfile.h
15910         (MonoSymbolFile): Moved declaration into mono-debug.h.
15911         (MonoDebugMethodJitInfo): Likewise.
15912         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15913         argument.
15914         (_mono_debug_address_from_il_offset): Take a
15915         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15916
15917         * mono-debug.h
15918         (MonoDebugDomainData): New struct.
15919         (mono_debug_get_domain_data): New function.
15920         (mono_debug_add_method): Take an additional `MonoDomain *'
15921         argument.
15922         (mono_debug_source_location_from_address): Likewise.
15923         (mono_debug_il_offset_from_address): Likewise.
15924         (mono_debug_address_from_il_offset): Likewise.
15925
15926 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15927
15928         * reflection.c: one more check for null type in custom attrs.
15929
15930 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15931
15932         * reflection.c: avoid warning (comparison is always false due to limited
15933         range of data type).
15934
15935 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15936
15937         * icall.c: throw an exception in Type.GetField if the argument 'name'
15938         is NULL.
15939
15940 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15941
15942         * reflection.c: fixed handling of enums in named arguments to custom
15943         attributes (bug #42123).
15944
15945 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15946
15947         * reflection.c: use the right array element type and handle
15948         a null for a Type argument, too.
15949
15950 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15951
15952         * reflection.c: handle arrays as arguments to custom attributes.
15953
15954 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15955
15956         * reflection.c: handle a string value in a custom attr
15957         ctor that takes an object.
15958
15959 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15960
15961         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15962         (fix bug #42063)
15963
15964 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15965
15966         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15967
15968 2003-04-27  Martin Baulig  <martin@ximian.com>
15969
15970         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15971         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15972         MONO_DEBUGGER_EVENT_BREAKPOINT.
15973         (mono_breakpoint_trampoline_code): Removed.
15974         (mono_debugger_event_handler): The last argument is now a
15975         `guint32'.
15976         (mono_debugger_insert_breakpoint_full): Removed the
15977         `use_trampoline' argument.
15978         (mono_debugger_method_has_breakpoint): Likewise.
15979         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15980         mono_debugger_breakpoint_callback(); take the method and
15981         breakpoint number as arguments.
15982
15983 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15984
15985         * metadata.c: fix off by one when loading parameters attributes.
15986
15987 2003-04-24  Martin Baulig  <martin@ximian.com>
15988
15989         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15990
15991 2003-04-24  Martin Baulig  <martin@ximian.com>
15992
15993         * mono-debug-debugger.c: Moved all code which interacts with the
15994         Mono Debugger here.
15995
15996         * debug-mono-symfile.c: This code now just deals with the symbol
15997         file itself, the debugger code is now in mono-debug-debugger.c.
15998
15999 2003-04-23  Martin Baulig  <martin@ximian.com>
16000
16001         * mono-debug.c (mono_debug_source_location_from_il_offset):
16002         New method; like mono_debug_source_location_from_address(), but
16003         takes an IL offset instead of a machine address.
16004
16005 2003-04-23  Martin Baulig  <martin@ximian.com>
16006
16007         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
16008         `line' field; this is now computed by the debugger.
16009
16010 2003-04-23  Martin Baulig  <martin@ximian.com>
16011
16012         * mono-debug.[ch]: New files.  This is the new debugging interface.
16013
16014         * mono-debug-debugger.[ch]: New files.  Moved all code which
16015         interacts with the Mono Debugger here.
16016
16017 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
16018
16019         * domain.c (mono_init): initialize mono_defaults.monitor_class
16020
16021 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
16022
16023         * reflection.c (method_encode_code): Add a spicy exception to help
16024         future compiler authors.
16025
16026 2003-04-21  Martin Baulig  <martin@ximian.com>
16027
16028         * icall.c
16029         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16030         Make this work with relative pathnames; g_filename_to_uri() needs
16031         an absolute filename.
16032
16033 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
16034
16035         * icall.c: Track name changes in Object and ValueType.
16036
16037 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
16038
16039         * metadata.c (mono_type_stack_size): size should be a multiple of
16040         sizeof (gpointer)
16041
16042 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16043
16044         * gc.c:
16045         (internal_domain_finalize): moved into mono_domain_finalize. No need
16046         to create another thread because the finalizers will be run in the
16047         finalizer thread.
16048         
16049         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
16050         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
16051         to be run (MS does this too).
16052
16053 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
16054
16055         * object.c (mono_class_compute_gc_descriptor): Update comment.
16056
16057         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
16058
16059         * image.h: Add synchronized wrapper cache.
16060
16061         * image.c (do_mono_image_open): Initialize cache.
16062
16063         * reflection.c (create_dynamic_mono_image): Initialize cache.
16064
16065 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16066
16067         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
16068         ves_icall_System_Buffer_ByteLengthInternal.
16069
16070 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16071
16072         * reflection.c: setup klass->nested_in earlier. Allow
16073         a dash in the assembly name.
16074
16075 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
16076
16077         * metadata.c (mono_type_to_unmanaged): dont access
16078         type->data.klass for MONO_TYPE_OBJECT
16079         (mono_type_to_unmanaged): consider System.Delegate class
16080
16081 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
16082
16083         * class.c: just setup supertypes in the proper place instead of
16084         initializing the full element class for arrays.
16085
16086 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16087
16088         * class.c: ensure the element class of arrays is initialized.
16089         Setup the supertype info for array classes, too.
16090
16091 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
16092
16093         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
16094
16095 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16096
16097         * Makefile.am: re-added -m option when running cygpath. This way,
16098         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
16099         separator.
16100         * mono-config.c: same codepath for locating mono config file for WIN32
16101         and the rest.
16102         * assembly.c: if mono_assembly_setrootdir is called, don't override
16103         the value set.
16104
16105 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16106
16107         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
16108         MONO_ASSEMBLIES variable.
16109
16110 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
16111
16112         * icall.c: added Assembly::GetNamespaces() icall.
16113
16114 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16115
16116         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
16117
16118 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
16119
16120         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
16121         * object.c: fixed bug in the construction of vtable for proxies
16122
16123 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
16124
16125         * object.c (mono_array_new): Mark mono_array_new as an icall.
16126
16127 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16128
16129         * class.c: fixed test for public method when overriding interfaces.
16130         Closes bug #40970.
16131
16132 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16133
16134         * appdomain.h, domain.c: added mono_domain_foreach() to
16135         be able to access the currently loaded appdomains.
16136         * object.c: make string interning work across sppdomains.
16137         Mark some functions for use as icalls.
16138
16139 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
16140
16141         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
16142
16143         * reflection.h reflection.c: Allocate long living data using 
16144         GC_MALLOC_ATOMIC so the collector does not need to scan it.
16145
16146         * reflection.c: Double the allocation size in streams instead of
16147         increasing it, to prevent unneccesary copying on large assemblies.
16148         
16149         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
16150         creation if the assembly does not have the Run flag set.
16151
16152 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
16153
16154         * class.h: avoid the C++ keywords in header files (Jerome Laban
16155         spotted and fixed this).
16156
16157 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16158
16159         * object.c:
16160         (mono_unhandled_exception): fill in the arguments for the
16161         UnhandledException event. Only trigger that event for the default
16162         domain (as MS does).
16163
16164 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
16165
16166         * object.c: Improve typed allocation stuff based on suggestions from
16167         Paolo. Also turn it on if the GC library supports it.
16168
16169 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
16170
16171         * object.c object.h class.h: Added experimental typed allocation
16172         facility using the interfaces in gc_gcj.h.
16173
16174         * os/gc_wrapper.h: Added new include files.
16175         
16176 2003-04-03  Martin Baulig  <martin@ximian.com>
16177
16178         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
16179         which is not yet enabled by default.
16180
16181         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
16182         functions.
16183         (mono_gc_lock, mono_gc_unlock): New static functions.
16184
16185         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
16186         functions; stop/start the world for the garbage collector.  This
16187         is using the windows API; we need to complete the SuspendThread()/
16188         ResumeThread() implementation in the io-layer to make this work on Unix.
16189         (mono_gc_push_all_stacks): New public function; tells the garbage
16190         collector about the stack pointers from all managed threads.
16191
16192 2003-04-03  Martin Baulig  <martin@ximian.com>
16193
16194         * object.h (MonoThread): Added `gpointer stack_ptr'.
16195
16196         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
16197
16198 2003-04-03  Martin Baulig  <martin@ximian.com>
16199
16200         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
16201
16202 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
16203
16204         * reflection.c (typebuilder_setup_fields): Initialize field.first and
16205         field.last.
16206
16207 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
16208
16209         * loader.c (mono_lookup_internal_call): Report the corlib that is
16210         out of sync.
16211
16212 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
16213
16214         * icall.c (ves_icall_type_GetTypeCode): fixed check for
16215         System.DBNull (it's class not valuetype).
16216
16217 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16218
16219         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
16220         if the array method was already assigned a token (fixes bug#40646).
16221
16222 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
16223
16224         * reflection.c (mono_reflection_get_type): Attempt type resolve even
16225         if no assembly is given.
16226
16227 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
16228
16229         * metadata.h: Added the new tables.
16230
16231         * row-indexes.h: Added definitions for new tables.
16232
16233         * metadata.c: Add schemas for new tables, and add support for
16234         computing the sizes of them.
16235
16236         * class.c: Update for handling the new type cases.
16237
16238 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
16239
16240         * metadata.h (MONO_TYPE_IS_VOID): new macro
16241
16242 2003-03-31  Martin Baulig  <martin@ximian.com>
16243
16244         * threads.h (MonoThreadCallbacks): Added `thread_created'.
16245
16246         * threads.c (mono_thread_new_init): Call `thread_created' in the
16247         mono_thread_callbacks.
16248
16249 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
16250
16251         * loader.h: added marshalbyrefobject_class to mono_defaults
16252         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
16253         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
16254           generation of output parameters.
16255           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
16256         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
16257           contextbound and the target object belongs to the context of the caller.
16258         * object.h: added context and unwrapped_server variables in MonoRealProxy.
16259         * object.c: Implemented support for interfaces and abstract classes
16260           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
16261           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
16262
16263 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
16264
16265         * class.h class.c (mono_class_is_subclass_of): New function.
16266         
16267         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
16268         routines for most common case (calls from ArrayList::ToArray).
16269
16270         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
16271         routine so programs which call Environment::Exit() can be profiled.
16272
16273         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
16274         Added MONO_ARCH_SAVE_REGS.
16275
16276         * icall.c (ves_icall_type_is_subtype_of): Use new function.
16277
16278 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
16279
16280         * blob.h: Add a couple of new MonoType types definitions.
16281
16282         * tabledefs.h: Add a couple of new call convs.
16283
16284 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
16285
16286         * reflection.h (MonoReflectionDynamicAssembly): track changes in
16287         the layout of the class.
16288
16289         * reflection.c (alloc_table): double the size on overflow to avoid
16290         unnecessary copying.
16291
16292         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
16293         avoid filling out metadata tables and blobs. Also set mb->ilgen to
16294         null so it can be garbage collected.
16295         
16296 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
16297
16298         * reflection.c (mono_reflection_get_type): Return the resolved type
16299         only if it is in the assembly we searched.
16300
16301         * reflection.c (ensure_runtime_vtable): Initialize method slots.
16302
16303         * class.c (mono_class_setup_vtable): Set the slot of the overriding
16304         method.
16305
16306 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16307
16308         * appdomain.c:
16309         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
16310         the right one is 'file:///blah', but MS allows it.
16311         * assembly.c:
16312         (mono_assembly_open): allow 'file://blah'
16313
16314         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
16315
16316 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
16317
16318         * socket-io.c: fixes bug #40310.
16319
16320 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
16321
16322         * reflection.c (mono_reflection_parse_type): handle deeply nested
16323         types correctly.
16324
16325         * reflection.c (mono_image_create_token): Use unique token values
16326         since they will be put into a hash table.
16327
16328         * class.c (mono_class_setup_vtable): If a method occurs in more than
16329         one place in the vtable, and it gets overriden, then change the
16330         other occurances too.
16331
16332         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16333         object as return type.
16334
16335 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16336
16337         * icall.c: Deleted "ToString" implementation for double and float
16338         because they are full implemented in managed code.
16339
16340 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16341
16342         * reflection.c, reflection.h: implemented and exported functions
16343         to retrieve info about custom attributes.
16344
16345 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16346
16347         * appdomain.c: moved Uri handling to assembly.c
16348         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
16349         work when using a file Uri in *nix and windows.
16350
16351         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
16352         GetReferencedAssemblies.
16353
16354 2003-03-18  Dick Porter  <dick@ximian.com>
16355
16356         * icall.c: Rename a couple of internal calls
16357
16358         * threads.c: Set the thread state to Stopped when a thread exits.
16359         Fixes bug 39377.
16360
16361 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
16362
16363         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
16364         New icall.
16365
16366         * object.c (mono_class_vtable): fix warning.
16367
16368 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
16369
16370         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
16371
16372         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
16373         memory.
16374         (method_encode_clauses): Create exception info structures in the right
16375         order.
16376         (mono_reflection_setup_internal_class): Initialize supertypes field.
16377
16378         * class.c object.c: Handle interfaces which implement other interfaces 
16379         correctly.
16380
16381         * class.h class.c: Move the supertypes array initialization code into 
16382         a separate function so it can be used for dynamic types too. Also call
16383         it earlier, in mono_class_init(), since it can be used before the
16384         type is initialized.
16385
16386 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16387
16388         * Makefile.am:
16389         * assembly.c:
16390         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
16391
16392         * appdomain.c:
16393         * appdomain.h:
16394         * marshal.c:
16395         * object.c: remove warnings.
16396
16397 2003-03-13  Martin Baulig  <martin@ximian.com>
16398
16399         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
16400         (MonoDebugLexicalBlockEntry): New types.
16401
16402         * debug-mono-symfile.c
16403         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
16404
16405 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16406
16407         * process.c: ret can be any non-zero value accroding to MS doc.
16408
16409 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
16410
16411         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
16412         fixing a warning for a miss-used prototype, would have cause
16413         random memory corruption.
16414
16415 2003-03-07  Martin Baulig  <martin@ximian.com>
16416
16417         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
16418         getting really annoying ....
16419
16420 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
16421
16422         * reflection.c (fixup_method): added support for array methods.
16423
16424 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
16425
16426         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
16427         (pointed out by Michael Adams).
16428
16429 2003-03-04  Dick Porter  <dick@ximian.com>
16430
16431         * icall.c: Temporarily reverted the Double and Single ToString()
16432         change, because it broke nunit.
16433
16434 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
16435
16436         * object.h, threads.h: make include files compatible with C++
16437         (patch by Jerome Laban <jlaban@wanadoo.fr>).
16438
16439 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16440
16441         * icall.c: Erased ToString helper functions for Double and Single.
16442         Now, that implementations ar all in managed code (Double and Single
16443         Formatters).
16444
16445 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
16446
16447         * appdomain.c: Added method for initializing the default context of
16448         a domain. Added internal call for getting the default context.
16449         * appdomain.h: Added context variable in MonoDomain struct.
16450         * domain.c: mono_domain_set also sets the default context of the domain
16451         * icall.c: Mapped internal method InternalGetDefaultContext.
16452         * object.c: mono_object_get_virtual_method returns always a remoting
16453         wrapper if the object is a transparent proxy.
16454         mono_runtime_invoke_array: when creating an object by calling the
16455         constructor, if the created object is a proxy, then the constructor should
16456         be called using the a remoting wrapper.
16457
16458 2003-03-03  Dick Porter  <dick@ximian.com>
16459
16460         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
16461         variable so it compiles on solaris.  Problem spotted by
16462         Christopher Taylor <ct@cs.clemson.edu>
16463
16464 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16465
16466         * appdomain.c:
16467         (get_info_from_assembly_name): don't leak value.
16468
16469         * icall.c:
16470         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
16471         result.
16472
16473 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
16474
16475         * assembly.c: export mono_image_load_references ().
16476         * class.c: handle function pointers. mono_class_from_name() now
16477         supports nested type names directly.
16478
16479 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
16480
16481         * reflection.h reflection.c: Encode already created dynamic methods 
16482         and fields correctly as a DEF instead of a REF.
16483
16484         * reflection.c: Get rid of the force_ref argument to 
16485         mono_image_typedef_or_ref since it was wrong in the first place.
16486
16487         * string-icalls.c: add error checking to string constructors according
16488         to the MSDN docs.
16489
16490         * reflection.c: Emit types in the order their TypeBuilders were 
16491         created. Previously, a new table index was assigned to each type before
16492         the tables were emitted. This was wrong because the signature blob
16493         might already refer to a type by its original table index.
16494
16495 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
16496
16497         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
16498         change.
16499         
16500 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16501
16502         * Makefile.am: make assemblies dir have \ instead of / on windows.
16503
16504 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
16505
16506         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
16507         iterate over the NESTEDCLASS table using a linear search since the
16508         table is not guaranteed to be sorted by the secondary key.
16509
16510         * class.c (mono_class_create_from_typedef): fixed up call to
16511         mono_metadata_nesting_typedef.
16512         
16513 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
16514
16515         * marshal.c (mono_string_to_byvalstr): clear the memory as
16516         suggested by Jerome Laban <jlaban@wanadoo.fr>
16517
16518 2003-02-26  Dick Porter  <dick@ximian.com>
16519
16520         * process.c: Cope with padding in .rsrc blocks
16521
16522 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
16523
16524         * metadata.h: reverted the filter_len change, it breaks reflection
16525         
16526 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
16527
16528         * metadata.h: added a new field to store the filter_len
16529         
16530
16531 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
16532
16533         * reflection.c: handle custom attributes for types and members
16534         created with Reflection.Emit (bug#38422).
16535
16536 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
16537
16538         * reflection.c: define RTSpecialName automatically for constructors for
16539         compatibility with MS.NET.
16540
16541         * reflection.c (mono_reflection_create_runtime_class): initialize
16542         nested_in field of dynamically created classes.
16543
16544 2003-02-22  Martin Baulig  <martin@ximian.com>
16545
16546         * debug-mono-symfile.h: Incremented version number.
16547
16548 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16549
16550         * object.h icall.c process.c: fix warnings.
16551
16552 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16553
16554         * appdomain.h appdomain.c:
16555         (mono_domain_try_type_resolve): split the 
16556         name_or_tb argument into a name and a tb argument.
16557         (mono_domain_has_type_resolve): new function to check whenever the
16558         application has registered a TypeResolve event handler.
16559         
16560         * icall.c reflection.h reflection.c: move the type resolve logic into
16561         mono_reflection_get_type () so it will be invoked when 
16562         Assembly::GetType () is called.
16563
16564         * reflection.c:
16565         (mono_reflection_get_type): renamed to get_type_internal.
16566         (mono_reflection_get_type): fixed type name generation so it works 
16567         for nested types too.
16568         (mono_reflection_get_type): call has_type_resolve () to avoid the 
16569         costly type name generation if there is no resolve event handler.
16570
16571 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16572
16573         * class.c, image.c: load exported types from file references.
16574
16575 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
16576
16577         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
16578           used to cache the managed methods used to create proxies and make 
16579           remote invocation of methods.
16580         * class.h: Added in MonoVTable a flag to indicate that a class needs 
16581           to be remotely created.
16582         * object.c: Modified the method mono_class_vtable(). It now initializes 
16583           the remote flag of the vtable. Modified mono_object_new_specific(), 
16584           so now it checks the remote flag.
16585         * icall.c: Added a couple of internal methods, one for enabling instance 
16586           creation interception for a type, and one for creating objects bypassing
16587           the remote check.
16588
16589 2003-02-18  Martin Baulig  <martin@ximian.com>
16590
16591         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
16592         New interncall to get a method's metadata token.
16593
16594         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
16595         New interncall for the debugger.
16596
16597 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
16598
16599         * class.c (mono_class_setup_vtable): allocate supertype array
16600
16601 2003-02-18  Martin Baulig  <martin@ximian.com>
16602
16603         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
16604
16605 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16606
16607         * reflection.c:
16608         (assembly_name_to_aname): jump over unknown properties (i've found
16609         something like: 'type, assembly, version=xxx, custom=null, public...',
16610         so now will ignore custom=null and still get the rest of the values).
16611
16612 2003-02-17  Dick Porter  <dick@ximian.com>
16613
16614         * threads.c: Have Thread.Start() wait for a semaphore to signal
16615         that the thread has set up all its local data.  This fixes bug
16616         34323, where Abort() raced the new thread's TLS data.
16617
16618         Also removes the handle_store() call from start_wrapper, because
16619         threads are now always created suspended and there is no longer a
16620         race between the parent and child threads to store the info.
16621
16622 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
16623
16624         * image.c: explain the #- heap issue in a message, hopefully
16625         avoiding FAQs on mono-list.
16626
16627 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16628
16629         * icall.c:
16630         (GetEntryAssembly): if the domain has not invoked
16631         AppDomain.ExecuteAssembly yet, return the assembly of the default
16632         AppDomain.
16633
16634 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
16635
16636         * class.c (mono_ldtoken): make it work in dynamic assemblies.
16637
16638 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
16639
16640         * metadata.c, reflection.c: simple speedup to type hash
16641         and equals code.
16642
16643 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
16644
16645         * image.c, image.h, class.c, assembly.c: move module loading
16646         to MonoImage. When loading metadata, consider alignemnet from
16647         the start of metadata, not from the metadata address in memory.
16648
16649 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
16650
16651         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
16652         AssemblyBuilder objects. Factored out custom attribute creation into
16653         a separate function.
16654         (create_custom_attr): new function to create custom attributes.
16655
16656 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
16657
16658         * Makefile.am: Got tired of typing the full pathname to pedump.
16659         Until there is another option, am installing this.
16660
16661 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
16662
16663         * class.c (class_compute_field_layout): always set field->parent 
16664         (mono_ldtoken): use mono_defaults.fieldhandle_class;
16665
16666 2003-02-11  Dick Porter  <dick@ximian.com>
16667
16668         * threads-types.h:
16669         * monitor.c: Rewrote Monitor, making lock much faster and
16670         Pulse/Wait work as specified.  Also uses much fewer handles, and only
16671         creates them as needed.
16672
16673         * exception.c: Added SynchronizationLockException
16674
16675         * threads.c: Deleted old Monitor implementation.  The new one is
16676         in a new file.
16677
16678 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
16679
16680         * class.c: handled TypedReference type code. Set the correct size for
16681         class data. Setup interface_offsets for interface classes, too.
16682
16683 2003-02-09  Martin Baulig  <martin@ximian.com>
16684
16685         * debug-mono-symfile.h: Reflect latest symbol writer changes.
16686
16687 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
16688
16689         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
16690         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
16691         * object.c: fixed mono_object_get_virtual_method () for interfaces.
16692         * verify.c: check for code that runs after the end of the method.
16693
16694 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16695
16696         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
16697         "System.Math::Round2".
16698         * sysmath.h: Added Floor, Round and Round2 definitions.
16699         * sysmath.c: Modified certain functions that were not 100% compliant
16700         with MS.NET (math precision) and added the implementation of Floor,
16701         Round and Round2.
16702
16703 2003-02-07  Martin Baulig  <martin@ximian.com>
16704
16705         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
16706
16707 2003-02-07  Martin Baulig  <martin@ximian.com>
16708
16709         * debug-mono-symfile.c: Reflected latest symwriter changes.
16710         (mono_debug_create_mono_symbol_file): Removed.
16711         (mono_debug_open_mono_symbol_file): Take an argument which
16712         specifies whether to create a dynamic symbol file.
16713
16714 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
16715
16716         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
16717
16718 2003-02-05  Martin Baulig  <martin@ximian.com>
16719
16720         * reflection.c (mono_image_build_metadata): Make this public,
16721         protect it against being called multiple times, don't create
16722         resources and don't build the compressed metadata here.
16723         (mono_image_create_pefile): Do this here.
16724
16725         * icall.c
16726         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
16727
16728 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16729
16730         * socket-io.c: fixed bug #36322.
16731
16732 2003-02-06  Piers Haken <piersh@friskit.com>
16733
16734         * appdomain.[ch]:
16735         * class.h:
16736         * debug-mono-symfile.c:
16737         * icall.c:
16738         * loader.c:
16739         * mono-config.c:
16740         * monosn.c:
16741         * reflection.c:
16742         * socket-io.c: warning cleanups
16743
16744 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
16745
16746         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
16747         function. works like remoting invoke, but does a check for the Proxy first.
16748
16749 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
16750
16751         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
16752
16753 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
16754
16755         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
16756         array of pointers.
16757         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
16758         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
16759
16760         * object.c (mono_store_remote_field_new): used by the new jit
16761         instead of mono_store_remote_field
16762         (mono_load_remote_field_new): used by the new jit
16763         instead of mono_load_remote_field
16764
16765 2003-02-05  Patrik Torstensson
16766
16767         * appdomain.c: changed unload to take the domain id instead
16768         of domain
16769         
16770         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
16771
16772
16773 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16774
16775         * appdomain.c: don't look for assemblies in ApplicationBase if
16776         PrivateBinPathProbe is set.
16777
16778 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16779
16780         * object.c: make the first argument in main_args contain the absolute
16781         path to the assembly. Fixes bug #37511.
16782
16783 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16784
16785         * icall.c: get correct UTC offset for countries not using daylight
16786         time saving. Fixes bug #30030.
16787
16788 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16789
16790         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
16791         and 1 are the family).
16792
16793 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
16794
16795         * icall.c (ves_icall_InternalExecute): removed wrong assertion
16796
16797         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
16798
16799 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
16800
16801         * reflection.c: added support for SignatureHelper tokens, which is
16802         needed by the Calli opcode.
16803
16804         * reflection.h: track changes to SignatureHelper class.
16805
16806         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
16807
16808 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16809
16810         * appdomain.c: fixed loading assemblies from PrivateBinPath.
16811
16812 2003-02-03  Patrik Torstensson
16813         * appdomain.[c|h], domain.c : 
16814          - Added support for getting a domain via domain id
16815          - Support for setting and getting domain from System.AppDomain 
16816            (used in cross appdomain channel)
16817          - Added support for get/set for a MonoAppContext on a thread 
16818            (Context class in System.Runtime.Remoting.Contexts),
16819          - Removed hack in Get/SetData and ExecuteAssembly.
16820         
16821         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
16822         the managed world to get control when a proxy is created.
16823
16824         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
16825         
16826 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
16827
16828         * icall.c
16829         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16830         Populate the codebase field as well.
16831
16832 2003-02-02  Martin Baulig  <martin@ximian.com>
16833
16834         * debug-mono-symfile.c
16835         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
16836         (mono_debug_symfile_add_method): Allow interncalls.
16837
16838 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16839
16840         * icall.c: throw parse exception if strtod fails or the string is empty.
16841
16842 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16843
16844         * marshal.c: handle object type separately from defined
16845         class types.
16846
16847 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16848
16849         * marshal.c: handle NATIVE_LPSTR for strings when it's
16850         explicitly specified.
16851
16852 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16853
16854         * reflection.c, reflection.h, icall.c: setup the reflection
16855         handle cache for ModuleBuilders and AssemblyBuilders.
16856
16857 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16858
16859         * reflection.c (reflection_methodbuilder_to_mono_method): set
16860         pinvoke flag
16861
16862 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16863
16864         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16865
16866 2003-01-29  Dick Porter  <dick@ximian.com>
16867
16868         * threads.c: No need for the fake_thread kludge now that Thread
16869         doesn't run a class constructor
16870         
16871 2003-01-29  Dick Porter  <dick@ximian.com>
16872
16873         * threads.c: Use g_direct_hash instead of the rather bogus
16874         g_int_hash
16875
16876 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16877
16878         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16879         (fix pinvoke12.exe)
16880         (mono_marshal_get_struct_to_ptr): generate valid IL code
16881         (mono_marshal_get_ptr_to_struct): generate valid IL code
16882         (*): correctly set sig->pinvoke, we need to memdup the signature
16883         to do that
16884
16885 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16886
16887         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16888         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16889
16890 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16891
16892         * profiler.c: provide more callers information.
16893
16894 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16895
16896         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16897
16898         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16899
16900         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16901
16902 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16903
16904         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16905         exception instead of going into an infinite loop on dates which it 
16906         can't yet handle.
16907
16908         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16909         out-of-range exception if needed.
16910
16911         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16912         an implementation for an interface method and to override an inherited
16913         method at the same time. 
16914         Imagine a scenario when a virtual method is used to override a
16915         virtual abstract method in a parent class, and this same method 
16916         provides an implementation for an method inherited from an interface. 
16917         In this case, the interface resolution code will set im->slot, which 
16918         means that the virtual method override pass will skip this method 
16919         which means a pointer to the abstract method inherited from the parent
16920         will remain in the vtable of this non-abstract class.
16921
16922         * class.c: (mono_class_setup_vtable): continue search for a real 
16923         method if only an abstract method is found.     
16924
16925 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16926
16927         * reflection.c: add size to encoding for ByValStr and ByValArray
16928         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16929
16930 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16931
16932         * class.c (mono_class_setup_vtable): pass the override info as an
16933         argument.
16934
16935         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16936         correctly.
16937         
16938         * reflection.c (ensure_runtime_vtable); add support for method 
16939         overrides.
16940         
16941 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16942
16943         * reflection.c (resolution_scope_from_image): Hack to work to work with
16944         dynamic assemblies.
16945
16946         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16947         added a 'force_ref' argument to force this function to allways return 
16948         a TypeRef. This is needed by mono_image_get_memberref_token ().
16949         
16950 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16951
16952         * reflection.c (mono_image_get_type_info): interfaces really don't have
16953         a parent.
16954
16955         * reflection.c (mono_image_basic_init): fill out missing fields of
16956         image structure.
16957
16958         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16959         dynamic assemblies. This is required so dynamic assemblies show up in
16960         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16961         Type::GetType() etc. This is consistent with MS behaviour.
16962
16963         * image.c image.h reflection.c: add newly created classes to the name 
16964         cache so mono_class_get () will find them.      
16965
16966 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16967
16968         First part of changes to get IKVM.NET running under mono.
16969         
16970         * appdomain.h, appdomain.c: added new function 
16971         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16972         This function will call AppDomain::DoTypeResolve to do the actual work.
16973
16974         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16975         moved existing code dealing with dynamic tokens to a new function 
16976         called mono_reflection_lookup_dynamic_token (). This function will 
16977         raise TypeResolve events when appropriate. Since reflection.c is not 
16978         part of libmetadata, a new hook function called 
16979         mono_lookup_dynamic_token() is added to class.c which will call this.
16980
16981         * assembly.h assembly.c: make the invoke_load_hook function public,
16982         so it can be called for dynamic assemblies.
16983
16984         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16985
16986         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16987         type isn't found.
16988
16989         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16990         MonoGHashTable, since it contains pointers to objects which the GC 
16991         needs to track.
16992
16993         * assembly.c (search_loaded): remove unused variable.
16994         
16995 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16996
16997         * object.c: fixed issue exposed by gcc-generated IL programs
16998         that use RVA data for pointers.
16999
17000 2003-01-25  Martin Baulig  <martin@ximian.com>
17001
17002         * threads.c (start_wrapper): Moved the initialization of
17003         `start_func' above the mono_new_thread_init() call to which we
17004         pass it as argument.
17005
17006 2003-01-24  Martin Baulig  <martin@ximian.com>
17007
17008         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
17009         the MonoThread pointer.
17010
17011 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
17012
17013         * icall.c: Rename `PowImpl' to Pow.
17014
17015 2003-01-23  Dick Porter  <dick@ximian.com>
17016
17017         * threads.c (start_wrapper): Create a Thread object if needed, so
17018         the Main() thread can do the class initialisation in a subthread
17019         that has been set up to allow managed code execution.
17020
17021         Pass the thread ID instead of the MonoThread pointer to the thread
17022         start and attach callbacks.  This change is required, because the
17023         jit thread start callback must be called _before_ the Thread
17024         object can be created.
17025         
17026         (mono_thread_init): Removed much object creation code that is no
17027         longer needed.  No managed code is called from here now.
17028
17029         * object.c (mono_runtime_exec_managed_code): Create a subthread
17030         for Main, and call back to the runtime to use it.
17031         Set the exit code when Main exits.
17032
17033         * gc.c: Make sure domain finalisation happens in a subthread.
17034         Re-enable threaded GC, fixing bug 31333 (again).
17035
17036         * environment.c: System.Environment internall calls (so far just
17037         ExitCode is here, the others are still in icall.c)
17038
17039         * appdomain.c (mono_runtime_cleanup): All threads running managed
17040         code should have finished before mono_runtime_cleanup() is
17041         reached, so no need to clean up threads.
17042
17043 2003-01-22  Martin Baulig  <martin@ximian.com>
17044
17045         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
17046         `gpointer func' arguments.      
17047         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
17048         but added `MonoThread *thread' argument.
17049         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
17050
17051         * threads.c (mono_new_thread_init): Added `gpointer func' argument
17052         and pass it to the mono_thread_start_cb callback.
17053         (mono_install_thread_callbacks): New public function to install a
17054         set of callbacks which are set by the debugger.
17055         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
17056
17057 2003-01-22  Martin Baulig  <martin@ximian.com>
17058
17059         * Makefile.am: Install debug-mono-symfile.h.
17060
17061 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
17062
17063         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
17064
17065 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
17066
17067         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
17068         * class.c (mono_ptr_class_get): correctly set access levels of pointers
17069         (mono_array_class_get): correctly set access levels of arrays
17070
17071 2003-01-20      Patrik Torstensson
17072         * image.h (MonoAssemblyName): changed major, minor, build, revision
17073         from signed to unsigned.
17074
17075 2003-01-20  sean kasun <skasun@azstarnet.com>
17076
17077         * reflection.c (load_cattr_value): Now this handles
17078         MONO_TYPE_SZARRAY.  Fixes bug #35629
17079
17080 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
17081
17082         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
17083         integer value
17084
17085 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17086
17087         * decimal.c: fixed bug #26056.
17088
17089 2003-01-17  Martin Baulig  <martin@ximian.com>
17090
17091         * gc.c: Raise an ExecutionEngineException instead of using g_error().
17092
17093 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17094
17095         * exception.[ch]:
17096         (mono_get_exception_type_initialization): new function.
17097
17098         * object.c: throw a TypeInitializationException when an exception is
17099         thrown invoking the class constructor.
17100
17101 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17102
17103         * reflection.c: fixed attribute reading.
17104
17105 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17106
17107         * icall.c:
17108         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
17109         provided, look for the type in the calling assembly and then in
17110         mscorlib; if the assembly name is provided, only try that one.
17111
17112 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
17113
17114         * object.c: register the vtable before there is a chance it's
17115         queried again recursively.
17116
17117 2003-01-13  Duncan Mak  <duncan@ximian.com>
17118
17119         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
17120         gc-internal.h. 
17121         
17122 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
17123
17124         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
17125
17126 2003-01-11  Martin Baulig  <martin@ximian.com>
17127
17128         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
17129         this to 20 for the release.
17130
17131 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
17132
17133         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
17134
17135         * loader.c (mono_method_get_marshal_info): bug fix
17136
17137         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
17138         structures with explicit layout
17139
17140 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
17141
17142         * profiler.c: made the output more readable (and sorted). 
17143         Added caller information for the allocation profiler.
17144
17145 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
17146
17147         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
17148
17149 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17150
17151         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
17152         to get value types.
17153         
17154 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
17155
17156         * object.c, profiler.h, profiler.c, profiler-private.h:
17157         Added object allocation profiler.
17158
17159 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
17160
17161         * reflection.h, reflection.c: handle global methods.
17162         Compress blob entries.
17163
17164 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
17165
17166         * marshal.c: fix compilation.
17167
17168 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
17169
17170         * loader.c (mono_method_get_marshal_info): impl.
17171
17172         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
17173
17174 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17175
17176         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
17177         for reference types.
17178
17179 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
17180
17181         * loader.c: fixed off by one error in loaded parameter names.
17182
17183 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
17184
17185         * marshal.c (mono_marshal_get_icall_wrapper): like
17186         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
17187         instead of a MonoMethod.
17188
17189 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17190
17191         * decimal.c: fixed bug #36537.
17192
17193 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
17194
17195         * marshal.c: throw a missing method exception if a
17196         P/Invoke method is not found.
17197
17198 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
17199
17200         * icall.c: allow a null this for constructors.
17201
17202 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
17203
17204         * icall.c: raise the proper exceptions if the arguments to the
17205         internal Invoke are incorrect.
17206
17207 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
17208
17209         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
17210
17211 2003-01-03  Martin Baulig  <martin@ximian.com>
17212
17213         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
17214
17215 2002-12-31  Martin Baulig  <martin@ximian.com>
17216
17217         * debug-mono-symfile.c: Completely rewrote the type section.
17218         Instead of using individual malloc()ed fields, we use one big
17219         continuous memory area and offsets into this area.
17220         See the comments in the source code for details.
17221
17222 2002-12-30  Martin Baulig  <martin@ximian.com>
17223
17224         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
17225
17226 2002-12-30  Martin Baulig  <martin@ximian.com>
17227
17228         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
17229         line number table in this data blob instead of using an external
17230         pointer.
17231
17232 2002-12-28  Martin Baulig  <martin@ximian.com>
17233
17234         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
17235
17236 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
17237
17238         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
17239         as a boxed return type.
17240
17241 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
17242
17243         * appdomain.c
17244         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
17245         g_build_filename to properly get separators on the filename created.
17246
17247         * object.h: Small change, introduce MonoMarshalByRefObject to
17248         track the layout of that structure in the C# universe as we make
17249         changes there.
17250
17251 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
17252
17253         * object.c: removed assert to allow static fields on interfaces.
17254         * loader.c: a TypeSpec may be used for any type, not just arrays.
17255
17256 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
17257
17258         * class.c, class.h: added mono_class_array_element_size ().
17259         Ignore static methods in interfaces.
17260
17261 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17262
17263         * threads.c: fixed the build under cygwin.
17264
17265 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
17266
17267         * reflection.c: handle nullref constants. Allocate keys for
17268         reflection handles with the GC.
17269
17270 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17271
17272         * threads.c, threads.h: added mono_thread_get_abort_signal()
17273         to get a suitable signal for thread abort.
17274
17275 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17276
17277         * metadata.c: fix handling of ExportedType table.
17278
17279 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17280
17281         * icall.c: added WriteWindowsDebugString internal call.
17282
17283 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17284
17285         * reflection.h: added fields to match C# implementation.
17286
17287 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17288
17289         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
17290
17291 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
17292
17293         * gc.h, gc-internal.h: Rename header for GC internal calls to
17294         gc-internal.h from gc.h as to not clash with Boehm GC having its
17295         header installed as <gc.h> in outside include paths.
17296         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
17297         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
17298
17299 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17300
17301         * icall.c: assign minor, build and revision in FillName.
17302
17303 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
17304
17305         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
17306         Added support for running code generated by Reflection.Emit.
17307
17308 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17309
17310         * appdomain.c: check for NULL argument in LoadFrom.
17311
17312 2002-12-10  Dick Porter  <dick@ximian.com>
17313
17314         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
17315
17316 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17317
17318         * appdomain.c: fix buglet when building exe file name.  Handle full
17319         assembly name (needed after latest changes to AssemblyName).
17320         * image.c:
17321         (mono_image_close): free some hashtables.
17322
17323 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
17324
17325         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
17326         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
17327         on some systems (redhat 7.3) 
17328
17329 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
17330
17331         * threads.c: delete the critical section of a sync block,
17332         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
17333
17334 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
17335
17336         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
17337
17338 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17339
17340         * appdomain.[ch]: handle the assembly preload event to try loading the
17341         assemblies using the paths we have in the current domain.
17342
17343         * assembly.[ch]: created an assembly preload hook that is called to try
17344         loading the assembly by other means that the ones provided here.
17345
17346         * domain.c: initialize the domain search path.
17347
17348         From now on, assemblies (TODO: except corlib and System) are loaded
17349         according to these rules when using mono_assembly_load ():
17350
17351                 1. It tries to load the assembly from the ApplicationBase
17352                 of the current domain appending .dll and .exe (TODO: have to
17353                 try loading from name/name.dll and name/name.exe).
17354
17355                 2. It tries the search path specified in PrivateBinPath for the
17356                 current domain (if any).
17357
17358                 3. Previous behavior.
17359
17360 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
17361
17362         * icall.c: implemented GetInterfaceMap() related icall.
17363         * domain.c, loader.h: load MethodInfo in mono_defaults.
17364
17365 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
17366
17367         * gc.c: disable the finalizer thread for now, untill all the issues
17368         with it are resolved.
17369
17370 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17371
17372         * string-icalls.c: handle embedded nulls in string ctor when the
17373         length is specified.
17374
17375 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
17376
17377         * class.c: look for explicit interface implementation in parent
17378         classes, too.
17379
17380 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
17381
17382         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
17383
17384 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
17385
17386         * gc.c: protect handles with a critical section.
17387
17388 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17389
17390         * icall.c:
17391         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
17392         parameters. If no assembly specified, try getting the type from all
17393         the assemblies in the current domain, else, load the assembly and get
17394         the type from it.
17395
17396 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17397
17398         * marshal.c: applied patch from Aleksey Demakov that fixes
17399         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
17400
17401 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17402
17403         * icall.c: fixed get_location.
17404
17405 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
17406
17407         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
17408         declarations to make it work with older gcc. 
17409
17410         * loader.c (mono_get_method): set signature->pinvoke for native calls
17411
17412 2002-11-20  Dick Porter  <dick@ximian.com>
17413
17414         * threads.c (mono_thread_init): Set the main thread's handle
17415
17416 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
17417
17418         * gc.c: allow compilation without GC support. Changed to match the
17419         mono coding style.
17420
17421 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
17422
17423         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
17424
17425 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
17426
17427         * reflection.c: set a public key token on the core assemblies.
17428
17429 2002-11-18  Dick Porter  <dick@ximian.com>
17430
17431         * threads.c: Split out some thread initialisation so that other
17432         files can set the start callback function.
17433
17434         * gc.c: Run finalisers in a separate thread, to avoid stack
17435         overflow.  Fixes bug 31333.
17436
17437         * appdomain.c: Set up GC finalisation thread.
17438
17439         * reflection.c: 
17440         * object.c: 
17441         * domain.c: Use gc.h macros for GC_malloc
17442         
17443 2002-11-15  Dick Porter  <dick@ximian.com>
17444
17445         * threadpool.c: 
17446         * threads.c:
17447         * appdomain.c: Removed mono_runtime_init_with_attach(),
17448         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
17449         merging the extra parameter with the existing function.  Removed
17450         unneeded code in mono_thread_attach().
17451
17452 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
17453
17454         * image.c (mono_image_loaded_by_guid): a method to get loaded
17455         images by guid. 
17456         (load_metadata_ptrs): we store the guid as string.
17457
17458 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
17459
17460         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
17461
17462         * metadata.c (mono_guid_to_string): imported method form Zoltan
17463         Varga (slightly modified)
17464
17465         * assembly.c (mono_assembly_open): load precompiled code
17466
17467         * loader.h (MonoMethod): we store the method token for use in the
17468         aot compiler. 
17469
17470 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17471
17472         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
17473         the hook function called when an assembly is loaded.
17474         
17475         * domain.c: Modified file.
17476         (mono_domain_assembly_load): removed hash table insertion of assemblies.
17477
17478         Fixes bug #33196.
17479
17480 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
17481
17482         * reflection.c: Map PEFileKind to the value expected by the WinNT
17483         image loader. 
17484
17485 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17486
17487         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
17488         Read until the buffer is filled completely.
17489
17490 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17491
17492         * icall.c: implemented MonoType.InternalGetEvent ().
17493
17494 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17495
17496         * appdomain.c: implemented InitAppDomainSetup. Delayed
17497         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
17498         the entry_assembly.
17499
17500         * assembly.c: base_dir is now an absolute path ending with
17501         G_DIR_SEPARATOR.
17502
17503         * icall.c: modified get_location according to the above changes.
17504
17505         * object.c: init AppDomain.SetupInformation for the default domain after
17506         we have the entry assembly.
17507
17508         * domain.c: when unloading a domain, setup = NULL.
17509
17510 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
17511
17512         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
17513
17514 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
17515
17516         * object.h, object.c: introduced mono_object_get_virtual_method ()
17517         to lookup the method invoked on an object when a callvirt is done on
17518         a method.
17519         * icall.c: make MethodInfo::Invoke() always do a virtual call.
17520
17521 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17522
17523         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
17524         current domain when loaded an assembly and failed to load it.
17525
17526         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
17527
17528 2002-10-31  Dick Porter  <dick@ximian.com>
17529
17530         * icall.c: 
17531         * file-io.h: 
17532         * file-io.c: Return the error status in a parameter, as the
17533         GetLastError() value has long since been blown away if we try and
17534         look it up in a subsequent internal call invocation.  Delete the
17535         GetLastError() internal call, because it's useless.
17536
17537 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
17538
17539         * class.[ch]: added cast_class to fix bug 29517
17540
17541 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
17542
17543         * marshal.c: create valid IL code in the filter clause:
17544         the new JIT is less forgiving:-)
17545
17546 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17547
17548         * icall.c: removed get_property internal call.
17549
17550 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
17551
17552         * appdomain.h domain.c: Added an ID to appdomains.
17553         
17554         * threads.c threads.h icall.c: Implement icall
17555         Thread:GetDomainID(), and remove unused icall 
17556         CurrentThreadDomain_internal.
17557
17558 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17559
17560         * icall.c: Don't recurse through the base types in GetConstructor.
17561         Fixes bug #32063. 
17562
17563 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
17564
17565         * mempool.h, mempool.c: added mono_mempool_empty() and
17566         mono_mempool_stats().
17567
17568 2002-10-23  Dick Porter  <dick@ximian.com>
17569
17570         * file-io.c: 
17571         * file-io.h: 
17572         * icall.c: Added MonoIO.GetFileType internal call
17573
17574 2002-10-17  Dick Porter  <dick@ximian.com>
17575
17576         * appdomain.c (mono_runtime_cleanup): Don't signal the async
17577         delegate semaphore before waiting for all threads to finish,
17578         because new threads can also call async delegates.  Fixes bug
17579         32004.
17580
17581         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
17582         of 3 seconds, in case another async job is queued.  (This part is
17583         needed because the bug fix reintroduced the 3s exit lag.)  This
17584         makes the mono_runtime_shutdown flag superfluous.
17585
17586 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17587
17588         * reflection.c: include ehader size in method section headers.
17589         Really check for suplicated modules entries.
17590
17591 2002-10-17  Martin Baulig  <martin@gnome.org>
17592
17593         * debug-mono-symfile.c: Added back support for locals.
17594
17595 2002-10-14  Martin Baulig  <martin@gnome.org>
17596
17597         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
17598         MONO_TYPE_VOID.
17599
17600 2002-10-14  Martin Baulig  <martin@gnome.org>
17601
17602         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
17603         mono_class_get() instead of looking in the class cache. 
17604
17605 2002-10-13  Martin Baulig  <martin@gnome.org>
17606
17607         * debug-mono-symfile.c: Set version number to 28, include the
17608         signature in method names.
17609
17610 2002-10-13  Martin Baulig  <martin@gnome.org>
17611
17612         * debug-mono-symfile.h: Set version number to 27.
17613
17614 2002-10-11  Martin Baulig  <martin@gnome.org>
17615
17616         * gc.c: Don't register/unregister NULL pointers as disappearing links.
17617
17618 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17619
17620         * metadata.c, metadata.h: added helper function to allocate signatures.
17621
17622 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17623
17624         * icall.c: added internal call to get the location of machine.config.
17625
17626 2002-10-08  Martin Baulig  <martin@gnome.org>
17627
17628         * debug-mono-symfile.c: Ignore classes with a pending init for the
17629         moment.
17630
17631 2002-10-03  Dick Porter  <dick@ximian.com>
17632
17633         * threads.c: Freebsd pthread_t is a pointer
17634
17635 2002-10-03  Dick Porter  <dick@ximian.com>
17636
17637         * socket-io.c: Implemented GetHostName_internal
17638
17639 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17640
17641         * mono-config.c:
17642         (mono_config_parse_file): don't leak the text.
17643
17644 2002-10-02  Martin Baulig  <martin@gnome.org>
17645
17646         * debug-mono-symfile.c: Added support for methods.
17647
17648 2002-10-01  Martin Baulig  <martin@gnome.org>
17649
17650         * debug-mono-symfile.c: Don't emit methods and line numbers for
17651         the dynamic symbol file, just write the type table.  We can easily
17652         have an external helper program which creates a symbol file for an
17653         IL file.        
17654
17655 2002-10-01  Dick Porter  <dick@ximian.com>
17656
17657         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
17658         Only add the handle to the cleanup array when we're about to
17659         launch the thread.  Bug 31425 deadlocked when the test was run on
17660         mono under w32.
17661
17662 2002-10-01  Martin Baulig  <martin@gnome.org>
17663
17664         * debug-mono-symfile.c: Added support for properties.
17665
17666 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17667
17668         * reflection.c: unaligned store fix from Mark Crichton
17669         <crichton@gimp.org>.
17670
17671 2002-09-27  Martin Baulig  <martin@gnome.org>
17672
17673         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
17674         New interncall.
17675
17676 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17677
17678         * assembly.h, assembly.c: use a sane API to hook into the assembly
17679         loading process instead of a useless special-purpouse hack
17680         (ngen needs a hook, too, for example).
17681
17682 2002-09-27  Dick Porter  <dick@ximian.com>
17683
17684         * threads.c (mono_thread_init): Call GetCurrentProcess() so
17685         io-layer can set up some process handle info.  Not needed on w32,
17686         but doesn't hurt either.
17687
17688         * process.c: Pass the program name in the second parameter to
17689         CreateProcess, so the path is searched.  Include the working
17690         directory. Implemented process name, process enumeration, and some
17691         process detail internal calls.
17692         
17693         * icall.c: Added internal calls for process lookup, and some
17694         process details
17695
17696 2002-09-26  Martin Baulig  <martin@gnome.org>
17697
17698         * assembly.c (mono_install_open_assembly_hook): New global
17699         function to install a function to be invoked each time a new
17700         assembly is loaded.
17701         (mono_assembly_open): Run this callback function if set.
17702
17703         * debug-mono-symfile.c: Put back line numbers for the dynamic
17704         symbol file and also record the .il file as source file.  This
17705         allows us to install the temporary symbol file as `file.dbg' just
17706         like a compiler-generated one.
17707
17708 2002-09-26  Nick Zigarovich <nick@chemlab.org>
17709
17710         * Corrected typo in gc.c (BOHEM vs BOEHM).
17711
17712 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17713
17714         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
17715         GetProperties. Also avoid calling g_slist_length in GetProperties and
17716         GetMethods.
17717
17718 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17719
17720         * reflection.c: avoid unaligned stores (bug spotted by
17721         Mark Crichton  <crichton@gimp.org>).
17722
17723 2002-09-25  Martin Baulig  <martin@gnome.org>
17724
17725         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
17726         instead of guint64 for addresses and added prologue/epilogue info.
17727
17728 2002-09-25  Martin Baulig  <martin@gnome.org>
17729
17730         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
17731         store line number info.  For the dynamic symbol file, we only need
17732         to provide the JIT generated dynamic line number info for the dynamic
17733         symbol file.
17734
17735 2002-09-25  Martin Baulig  <martin@gnome.org>
17736
17737         * debug-mono-symfile.h: Incremented version number.
17738
17739 2002-09-24  Martin Baulig  <martin@gnome.org>
17740
17741         * class.c (mono_debugger_class_init_func): New global function
17742         pointer variable.
17743         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
17744         call it.
17745
17746         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
17747         function.  This is called via the mono_debugger_class_init_func
17748         hook to add all types to the dynamic type table.
17749         (ves_icall_MonoDebugger_GetType): New interncall to get a class
17750         from its metadata token.
17751
17752         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
17753         New interncall for the debugger.
17754
17755 2002-09-24  Nick Drochak <ndrochak@gol.com>
17756
17757         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
17758         before using it in case it is null.
17759         
17760 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17761
17762         * metadata.c: allow custom modifiers in local var signatures
17763         (bug spotted by Zoltan Varga).
17764
17765 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17766
17767         * class.c: deal with the <Module> class that may have a NULL vtable.
17768         Eliminate warnings.
17769
17770 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17771
17772         * image.c, image.h: more strong name helpers.
17773         * monosn.c: more work: convert pem keys to cryptoapi format.
17774
17775 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17776
17777         * string-icalls.c: speedup IndexOf.
17778
17779 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17780
17781         * icall.c: updates from Zoltan.2.Varga@nokia.com.
17782
17783 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17784
17785         * icall.c: cleanup: use mono_object_domain ().
17786
17787 2002-09-23  Martin Baulig  <martin@gnome.org>
17788
17789         * debug-mono-symfile.c: Improved type support.
17790
17791 2002-09-22  Martin Baulig  <martin@gnome.org>
17792
17793         * debug-mono-symfile.c: Added support for reference types and strings.
17794
17795 2002-09-22  Martin Baulig  <martin@gnome.org>
17796
17797         * debug-mono-symfile.c: Started to work on the type table.
17798
17799 2002-09-21  Martin Baulig  <martin@gnome.org>
17800
17801         * debug-mono-symfile.c: Largely reworked the symbol table format.
17802         The symbol table is now incrementally updated each time a new
17803         method is added.  We're now also using our own magic and version
17804         so that you don't need to recompile all your classes if the
17805         dynamic table changes.
17806         (mono_debug_update_mono_symbol_file): Removed.
17807         (mono_debug_symfile_add_method): New function to add a method.
17808
17809 2002-09-21  Martin Baulig  <martin@gnome.org>
17810
17811         * icall.c
17812         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
17813         New interncall.
17814
17815         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
17816         New interncall to get a method from its metadata token.
17817
17818 2002-09-21  Martin Baulig  <martin@gnome.org>
17819
17820         * debug-mono-symfile.c: Create type table.
17821
17822 2002-09-20  Martin Baulig  <martin@gnome.org>
17823
17824         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
17825
17826 2002-09-20  Martin Baulig  <martin@gnome.org>
17827
17828         * debug-mono-symfile.c: Provide information about params and locals.
17829
17830 2002-09-20  Martin Baulig  <martin@gnome.org>
17831
17832         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
17833         New interncall.
17834
17835         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
17836         interncall to get a method from its metadata token.
17837
17838 2002-09-20  Martin Baulig  <martin@gnome.org>
17839
17840         * debug-mono-symfile.c: Added a few checks for method->header
17841         being non-NULL.  This should never happen, but for the moment
17842         let's use a g_warning() rather than a g_assert().
17843
17844 2002-09-19  Mark Crichton  <crichton@gimp.org>
17845
17846         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17847         even if support for it isn't present.  Added an #ifdef to fix this.
17848
17849         * socket-io.c: Added checks back for Solaris support.
17850
17851 2002-09-19  Martin Baulig  <martin@gnome.org>
17852
17853         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17854         changes in the symbol file format.
17855
17856 2002-09-18  Martin Baulig  <martin@gnome.org>
17857
17858         * debug-mono-symfile.c: Set version number to 21.
17859
17860 2002-09-18  Dick Porter  <dick@ximian.com>
17861
17862         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17863         on netbsd.  Fixes bug 30051.
17864
17865 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17866
17867         * reflection.c:
17868         (set_version_from_string): little fix.
17869
17870 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17871
17872         * monosn.c, Makefile.am: added strong name utility.
17873         * reflection.h, reflection.c: implemented delayed signing,
17874         locale, version and hash id assembly attributes.
17875
17876 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17877
17878         * loader.c, metadata.c: load param attributes in signatures.
17879
17880 2002-09-16  Martin Baulig  <martin@gnome.org>
17881
17882         * debug-mono-symfile.c: Added string table with all method names.
17883
17884 2002-09-14  Martin Baulig  <martin@gnome.org>
17885
17886         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17887         fast method lookup.
17888
17889 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17890
17891         * reflection.c: record the public key token of referenced assemblies.
17892
17893 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17894
17895         * image.c, image.h: added functions to get the strong name and the
17896         public key of an assembly.
17897         * pedump.c: use them.
17898
17899 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17900
17901         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17902
17903 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17904
17905         * marshal.c (mono_marshal_get_managed_wrapper): Added
17906         MONO_TYPE_BOOLEAN 
17907
17908 2002-09-11  Martin Baulig  <martin@gnome.org>
17909
17910         * gc.c: Call GC_unregister_disappearing_link() on all links when
17911         finalizing them, this is necessary to aviod a crash in boehm's
17912         finalize handler.
17913
17914 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17915
17916         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17917         nick@chemlab.org.
17918
17919 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17920
17921         * icall.c: implemented MonoType::Module.
17922         * reflection.c, reflection.h: mono_module_get_object () from
17923         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17924
17925 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17926
17927         * icall.c: ignore overridden methods in GetMethods ().
17928         Fix for FieldInfo::SetValue().
17929         * object.c: handle float/double in runtime invoke.
17930
17931 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17932
17933         * object.c: allow a constructor to be called again on an object.
17934
17935 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17936
17937         * class.h, class.c: move field layout code to it's own function and
17938         export it. Get an interface id earlier. Move fields in MonoClass
17939         so they are more cache friendly and align the bitfields.
17940         * loader.c: temporary handle get_param_names() for a runtime method.
17941         * reflection.c, reflection.h: more code to handle runtime creation of
17942         types.
17943
17944 2002-09-09  Martin Baulig  <martin@gnome.org>
17945
17946         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17947         signature with the pinvoke field being set for the actual call.
17948
17949 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17950
17951         * icall.c: removed some unused icalls. Start of map of glib charsets
17952         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17953
17954 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17955
17956         * debug-helpers.c: break infinite loop (found and fixed by
17957         Holger Arnold <harnold@gmx.de>).
17958
17959 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17960
17961         * icall.c: target may be null in create_delegate.
17962
17963 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17964
17965         * marshal.c: handle a boolean return type.
17966
17967 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17968
17969         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17970
17971 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17972
17973         * gc.c: fix weakreferences.
17974
17975 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17976
17977         * icall.c: added icall to get default codepage.
17978
17979 2002-09-03  Dick Porter  <dick@ximian.com>
17980
17981         * threads.h: 
17982         * threads.c: Use MonoThread instead of MonoObject where
17983         apropriate.
17984
17985         Store running thread objects in a hash table, so that we have all
17986         the info to hand when waiting for them to finish
17987         (means we don't need OpenThread() any more, so mingw builds should
17988         be fully functional again.)
17989
17990         * verify.c:
17991         * object.h: Added thread ID to MonoThread
17992
17993 2002-09-03  Martin Baulig  <martin@gnome.org>
17994
17995         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17996
17997 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17998
17999         * icall.c: fixed leak in get_temp_path. Thanks lupus.
18000
18001 2002-09-03  Martin Baulig  <martin@gnome.org>
18002
18003         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
18004         argument to store the end address of the disassembled instruction.
18005
18006         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
18007         here from debug-symfile.h.
18008         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
18009         JIT into this struct.
18010         (MonoSymbolFile): Added `char *image_file' field.
18011         (MonoDebugGetMethodFunc): Removed.
18012         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
18013         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
18014         (mono_debug_find_method): New method.
18015
18016         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
18017         create a full symbol file.
18018         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
18019         and static symbol files.
18020         (mono_debug_find_method): The symbol file keeps an internal method hash,
18021         call this to get a MonoDebugMethodInfo from a MonoMethod.
18022
18023         * debug-symfile.[ch]: Removed.
18024
18025 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
18026
18027         * image.c (do_mono_image_open): Remove linker version check.
18028
18029 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
18030
18031         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
18032         wrappers for instance methods.
18033         
18034 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18035
18036         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
18037
18038 2002-08-28  Dick Porter  <dick@ximian.com>
18039
18040         * Makefile.am: Export HOST_CC for w32 builds
18041
18042 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18043
18044         * file-io.c process.c: MonoString are null terminated, no
18045         need for mono_string_to_utf16() anymore.
18046
18047 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18048
18049         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
18050
18051 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
18052
18053         * icall.c, reflection.h: speedup System.MonoType.
18054
18055 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18056
18057         * reflection.c: allow null as the value of a string argument in
18058         custom attributes constructors.
18059
18060 2002-08-27  Martin Baulig  <martin@gnome.org>
18061
18062         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
18063         `trampoline_address' field.
18064
18065 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
18066
18067         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
18068         check (fixes bug #29486) 
18069
18070 2002-08-27  Martin Baulig  <martin@gnome.org>
18071
18072         * debug-mono-symfile.c: Changed the file format in a way that allows us
18073         open it read-only and to use a specially malloced area for all the
18074         dynamic data.  We can now also generate a symbol file on-the-fly if we're
18075         debugging IL code and there is no MCS generated symbol file for it.
18076
18077 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18078
18079         * object.c: added a define for a good string and array
18080         creation speedup (not enabled by default because we need to deal with
18081         the synch stuff).
18082
18083 2002-08-26  Martin Baulig  <martin@gnome.org>
18084
18085         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
18086         function to create a dynamic symbol file.  This is used by the
18087         debugger to create a symbol file for IL code on-the-fly.
18088
18089 2002-08-26  Martin Baulig  <martin@gnome.org>
18090
18091         * loader.c (mono_lookup_pinvoke_call): Include the error message
18092         from g_module_error() in the error message.
18093
18094 2002-08-24  Martin Baulig  <martin@gnome.org>
18095
18096         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
18097         function to update the symbol file.  The symbol file is mmap()ed
18098         writable, but private.  This allows us to install the symbol file
18099         together with the assembly.
18100
18101 2002-08-24  Martin Baulig  <martin@gnome.org>
18102
18103         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
18104         but they can read the new symbol file format which mcs is now creating.
18105
18106         * debug-symfile.c (mono_debug_find_source_location): Moved to
18107         debug-mono-symfile.c; this is now operating on the new symbol file.
18108
18109 2002-08-23  Martin Baulig  <martin@gnome.org>
18110
18111         * debug-helpers.c (mono_method_desc_from_method): New function to get
18112         a MonoMethodDesc from a MonoMethod.
18113
18114 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18115
18116         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
18117         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
18118
18119 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18120
18121         * string-icalls.[ch]: make helper methods static.
18122
18123 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18124
18125         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
18126         types to it and to SetValueInternal.
18127
18128         * object.c: Moved handle_enum label to its proper place. This was the
18129         f... bug! ;-)
18130
18131         This time i compiled mcs and gtk-sharp and they both work.
18132
18133 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18134
18135         * icall.c: reverted partially my previous patch until 
18136         object.c:set_value handles enums correcly.
18137
18138 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18139
18140         * icall.c:
18141         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
18142         (ves_icall_System_Environment_get_MachineName): removed warning when
18143         compiling under cygwin.
18144
18145 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18146
18147         * object.c: fixed field_get_value() for reference types.
18148
18149 2002-08-22  Dick Porter  <dick@ximian.com>
18150
18151         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
18152         Don't free a buffer while it's still needed.  Patch from Jonathan
18153         Liger <Jonathan.liger@wanadoo.fr>
18154
18155 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
18156
18157         * icall.c (ves_icall_System_Environment_get_Platform): Add new
18158         internal call.
18159
18160 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
18161
18162         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
18163         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
18164
18165         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
18166         we call unmanaged code which throws exceptions.
18167
18168 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18169
18170         * appdomain.h: added per-domain entry_assembly.
18171         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
18172         arguments.
18173         * icall.c: Assembly::GetEntryAssembly icall.
18174         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
18175         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
18176
18177 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18178
18179         * appdomain.h, gc.c: added mono_domain_finalize ().
18180
18181 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18182
18183         * object.c:
18184         (mono_print_unhandled_exception): changed g_warning by g_printerr
18185         because g_log has a 1024 characters limit (yeah, i got a big stack
18186         trace). Don't print exception name, that should be in ToString 
18187         returned string.
18188
18189 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18190
18191         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
18192         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
18193
18194 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18195
18196         * object.c:
18197         (mono_print_unhandled_exception): after previous commit, i realized
18198         that MS calls ToString on the exception. I changed this function to
18199         do that. This way we get stack_trace for free.
18200
18201 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18202
18203         * object.c:
18204         (mono_print_unhandled_exception): invoke Message property instead of
18205         getting 'message' field from Exception. Don't allocate memory for
18206         'trace' and 'message' if not needed.
18207
18208 2002-08-18  Dick Porter  <dick@ximian.com>
18209
18210         * unicode.c: Fix asserts to match Encoder.cs checks
18211
18212 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18213
18214         * marshal.c: fix unaligned store issue and a few wrong
18215         opcode argument types.
18216
18217 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18218
18219         * icall.c: added GetUninitializedObjectInternal internal call.
18220
18221 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
18222
18223         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
18224         to the right domain.
18225
18226 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
18227
18228         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
18229
18230         * class.c (class_compute_field_layout): set blittable to false for Strings
18231
18232         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
18233
18234 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18235
18236         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
18237         first chunk of code to create types at runtime. Code to
18238         handle ReflectedType/DeclaringType. Make reflection handles
18239         domain specific.
18240
18241 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18242
18243         * class.c: set correct name in arrays.
18244
18245 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
18246
18247         * appdomain.c (mono_domain_transfer_object): make it work with
18248         valuetypes. bug fixes.
18249
18250 2002-08-12  Dick Porter  <dick@ximian.com>
18251
18252         * object.h: Rename some parameters to avoid c++ keywords (Patch
18253         from Joseph Wenninger <kde@jowenn.at>)
18254
18255 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
18256
18257         * icall.c: added icall to implement Assembly.GetFile*.
18258
18259 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18260
18261         * reflection.h, reflection.c: code to embed managed resources.
18262
18263 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18264
18265         * class.c: move all the type size stuff into
18266         class_compute_field_layout().
18267
18268 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18269
18270         * class.c: ensure enums have always the correct instance size.
18271         * unicode.c: remove wrong assert.
18272
18273 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18274
18275         * assembly.c: fix mem corruption issue.
18276         * image.h, image.c: added mono_image_get_resource () to access
18277         managed resources.
18278         * icall.c: implemented Assembly.EntryPoint property and some
18279         Managed Resources related internalcalls.
18280
18281
18282 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18283
18284         * image.c, image.h: impemented mono_image_get_entry_point ().
18285         * appdomain.c: use mono_image_get_entry_point.
18286
18287 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18288
18289         * reflection.c: support the object type argument when loading
18290         custom attributes.
18291
18292 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
18293
18294         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
18295         String as return type.
18296
18297 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
18298
18299         * reflection.c: fix encoding of named args for custom attrs to match
18300         the ms implementation. Read them back when instantiating custom
18301         attributes.
18302
18303 2002-08-02  Radek Doulik  <rodo@ximian.com>
18304
18305         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
18306         by Dietmar as quick fix
18307         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
18308         16 as stack size, used on more places as quick fix before Dietmar
18309         will fix it properly
18310
18311 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18312
18313         * object.h, object.c: added accessors for fields and properties.
18314
18315 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18316
18317         * class.c, class.h: made mono_class_get_field_from_name ()
18318         loop on parent types.
18319         Added mono_class_get_property_from_name ().
18320
18321 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18322
18323         * class.c, class.h: move the code to setup the type vtable in its own
18324         function so that it can be reused also for types created at runtime.
18325         Eliminate the "class" identifier from the header file.
18326         * reflection.c: setup the vtable for enums so that we can create
18327         objects for use in SetConstant ().
18328
18329 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
18330
18331         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
18332         instead of the delegate itself as this pointer (bug #28383)
18333
18334 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
18335
18336         * marshal.c (mono_marshal_get_managed_wrapper): added return type
18337         conversions.
18338
18339 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18340
18341         * loader.c: don't set the pinvoke bit on icalls.
18342
18343 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
18344
18345         * debug-helpers.c (mono_method_full_name): only print a number to
18346         indicate wrapper type (so that the output is more readable in traces).
18347
18348 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
18349
18350         * class.c (mono_class_init): include method override patch from Paolo
18351
18352 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
18353
18354         * icall.c: fixed GetTypeCode().
18355
18356 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
18357
18358         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
18359         use real delegate invoke function to make it work with multicast
18360         delegates (fix bug# 28291).
18361
18362 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18363
18364         * object.c: load constant strings.
18365
18366 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18367
18368         * reflection.c: no magic numbers.
18369         * tabledefs.h: security action enum.
18370
18371 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18372
18373         * assembly.c: fix possible memory corruption.
18374
18375 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18376
18377         * reflection.h, reflection.c: added support for linking resources.
18378         * verify.c: check we have an updated corlib.
18379
18380 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
18381
18382         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
18383         string arrays.
18384         (mono_marshal_string_array): null terminate unmanaged string arrays.
18385         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
18386
18387 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18388
18389         * icall.c: Type.GetType () can now return also types from the
18390         calling assembly.
18391
18392 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
18393
18394         * loader.h, loader.c: stack walking support.
18395         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
18396         GetCallingAssembly.
18397
18398 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
18399
18400         * marshal.c: added optimisations for blittable types 
18401
18402         * class.c (mono_array_class_get): do not set blittable attribute on arrays
18403         (mono_class_setup_mono_type): set blittable attribute for single
18404         and double.
18405
18406         * marshal.c (mono_string_utf8_to_builder): impl.
18407         (mono_string_builder_to_utf8): impl.
18408         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
18409
18410 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
18411
18412         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
18413         (mono_marshal_get_managed_wrapper): impl. byref types
18414
18415 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18416
18417         * icall.c:
18418         (search_method): don't display debug message. 
18419
18420 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
18421
18422         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
18423
18424 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
18425
18426         * appdomain.c: set the missing filename when throwing exception.
18427
18428 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
18429
18430         * metadata.c (mono_type_size): code cleanup
18431         (mono_type_stack_size): removed some test code
18432
18433 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
18434
18435         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
18436         mono_get_exception_file_not_found now.
18437
18438         * exception.c (mono_exception_from_name_two_strings): New version
18439         that will call a constructor with two string arguments. 
18440         (mono_get_exception_file_not_found): New helper routine, used to
18441         report file-not-found errors.
18442
18443 2002-07-20  Dick Porter  <dick@ximian.com>
18444
18445         * process.h:
18446         * process.c: Pass file handles to CreateProcess
18447         
18448         * icall.c:
18449         * file-io.h:
18450         * file-io.c: Implemented CreatePipe
18451
18452 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
18453
18454         * metadata.c (mono_get_param_info): set alignment for value types
18455
18456 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18457
18458         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
18459         Constify mono_domain_assembly_open().
18460         * loader.c: handle null namespace in icalls.
18461
18462 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
18463
18464         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
18465         (emit_str_to_ptr_conv): marshal object as structs
18466
18467         * metadata.c (mono_type_to_unmanaged): marshal object as structs
18468
18469         * marshal.c (mono_marshal_get_runtime_invoke): support value types
18470
18471 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
18472
18473         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
18474         (mono_marshal_get_native_wrapper): we an now return value types
18475
18476 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18477
18478         * verify.c: more checks implemented.
18479
18480 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
18481
18482         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
18483         (fix bug #27695)
18484         (mono_marshal_get_native_wrapper): allow byref arguments
18485         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
18486         impl. PtrToStringXXX methods
18487         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
18488         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
18489         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
18490         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
18491         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
18492
18493 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18494
18495         * reflection.c: fix buglet in parsing an assembly name.
18496
18497 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
18498
18499         * marshal.c (emit_ptr_to_str_conv): first impl.
18500
18501 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18502
18503         * object.c, class.h: cache the vtable in the class as suggested by
18504         vargaz@freemail.hu (Zoltan Varga).
18505
18506 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18507
18508         * class.h, loader.c: added mono_field_from_token().
18509         * verify.c: first cut of type checking code.
18510
18511 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
18512
18513         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
18514
18515 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
18516
18517         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
18518         (fix bug #27782)
18519         (mono_marshal_get_remoting_invoke): impl.
18520         (mono_delegate_begin_invoke): impl.
18521         (mono_mb_emit_save_args): impl.
18522         (mono_delegate_end_invoke): impl.
18523         (mono_marshal_get_delegate_begin_invoke):
18524         (mono_marshal_get_delegate_end_invoke):
18525         (mono_marshal_get_delegate_invoke): generate a special name for
18526         those methods (including the signature) and associate them whith
18527         the delegate class. 
18528
18529 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
18530
18531         * reflection.[ch]: 
18532         (mono_reflection_type_from_name): now it has a MonoImage parameter
18533         which is used as the default image to search the type in. If the image
18534         is NULL or getting the type from it fails, it defaults to corlib.
18535
18536         * icall.c: changed 1 call to mono_reflection_type_from_name to match
18537         new parameter.
18538
18539 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18540
18541         * reflection.c: update the parameter table index.
18542
18543 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18544
18545         * domain.c: don't include the mark byte in the string hash.
18546
18547 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18548
18549         * icall.cs: icall for Type.GetTypeCode ().
18550         * verify: a couple of fixes and disabled local initialization checks.
18551
18552 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
18553
18554         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
18555
18556         * debug-helpers.c (mono_method_full_name): print the type of the
18557         runtime wrapper
18558
18559         * metadata.c (mono_signature_hash): a hash function for signatures
18560         (mono_signature_hash): better hash algorithm
18561
18562         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
18563
18564         * debug-helpers.c (mono_method_full_name): this can now generate
18565         method names with signatures
18566
18567         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
18568         method dont have this pointers.
18569
18570 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18571
18572         * reflection.c: fixup typebuilder tokens.
18573         * image.c: fix buglet.
18574         * marshal.h: remove whitespace.
18575         * metadata.h, metadata.c: reinstate code that was removed.
18576         * verify.c: handle catch directives and fix another couple of bugs.
18577
18578 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
18579
18580         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
18581         (mono_marshal_get_native_wrapper): make it comp. with the old code
18582         (mono_marshal_get_native_wrapper): support boolean
18583         (mono_marshal_get_managed_wrapper): support more types
18584
18585 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
18586
18587         * class.c (class_compute_field_layout): compute class->blittable attribute.
18588
18589 2002-07-09  Dick Porter  <dick@ximian.com>
18590
18591         * threads.c: Make the thread cleaning up cope with threads that
18592         call ExitThread()
18593
18594 2002-07-08  Radek Doulik  <rodo@ximian.com>
18595
18596         * reflection.c (method_encode_code): use non-translated values to
18597         compute finally_start, this fixes exception handling on ppc, yay!
18598
18599         * decimal.h (struct signscale): fix endianess
18600
18601 2002-07-07  Radek Doulik  <rodo@ximian.com>
18602
18603         * reflection.c: swap box_val and not val
18604
18605 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18606
18607         * reflection.c, reflection.h: handle full assembly info in type name.
18608         Handle Type arguments when loading custom attributes.
18609         * icall.c: updated to use new mono_reflection_type_from_name () method.
18610
18611 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18612
18613         * loader.c:
18614         (method_from_memberref): also print assembly name when method not found.
18615
18616 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18617
18618         * icall.c:
18619         (ves_icall_TypeGetProperties): fixed bug #27473. 
18620
18621 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18622
18623         * reflection.c: display image name and token when cannot find the
18624         .ctor for an attribute.
18625
18626 2002-07-05  Martin Baulig  <martin@gnome.org>
18627
18628         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18629
18630 2002-07-04  Dick Porter  <dick@ximian.com>
18631
18632         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
18633         compile on mingw.  This will cause mingw builds to not wait for
18634         subthreads to terminate after the main thread does.  I've lodged a
18635         bug with the mingw developers for them to wrap OpenThread().
18636
18637 2002-07-03  Dick Porter  <dick@ximian.com>
18638
18639         * threads.c: Store thread IDs instead of handles, because
18640         GetCurrentThread() returns a pseudohandle and therefore stores
18641         useless values.  mono_thread_cleanup() continues checking the
18642         array of threads until it is empty, to cope with subthreads
18643         spawning new threads after the main thread has finished.
18644
18645         * profiler.h:
18646         * profiler.c:
18647         * profiler-private.h: Pass the thread ID to thread profiler
18648         functions, instead of a handle
18649
18650 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18651
18652         * verify.c: fixes to make it more usable.
18653         * pedump.c: added --verify code to verify IL code in an assembly.
18654
18655 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18656
18657         * reflection.c: turn errors into warnings to allow compiling corlib.
18658
18659 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18660
18661         * reflection.c: add special cases to compile corlib.
18662
18663 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18664
18665         * reflection.c: handle properties with only a set method.
18666
18667 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18668
18669         * opcodes.h: add enum with opcodes in opval order.
18670
18671 2002-07-01  Dick Porter  <dick@ximian.com>
18672         
18673         * object.h:
18674         * object.c (mono_runtime_run_main): Removed unneeded argument
18675
18676 2002-06-28  Martin Baulig  <martin@gnome.org>
18677
18678         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18679
18680 2002-06-27  Dick Porter  <dick@ximian.com>
18681
18682         * threads.c: Store the handle in both the parent thread and in the
18683         subthread, to minimise the time between starting a new thread and
18684         storing its ID.
18685
18686 2002-06-26  Dick Porter  <dick@ximian.com>
18687
18688         * appdomain.c (mono_runtime_cleanup): Close the socket library
18689         after all the threads have finished, not before
18690
18691 2002-06-26  Martin Baulig  <martin@gnome.org>
18692
18693         * debug-symfile.c (mono_debug_find_source_location): Added
18694         `guint32 *line_number' argument.  If it's not NULL, store the line number
18695         there and return the file name without the line number.
18696
18697 2002-06-25  Dick Porter  <dick@ximian.com>
18698
18699         * icall.c:
18700         * process.h:
18701         * process.c: Process forking and other support functions
18702
18703 2002-06-25  Dick Porter  <dick@ximian.com>
18704
18705         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
18706         things dont happen when the image is closed.
18707         (mono_image_lookup_resource): Walk the resource section looking
18708         for a particular entry
18709
18710         * cil-coff.h: PE resource section decoding
18711
18712 2002-06-25  Dick Porter  <dick@ximian.com>
18713         
18714         * assembly.h:
18715         * assembly.c: 
18716         (mono_assembly_foreach): Accessor functions to walk the list of
18717         loaded assemblies
18718         (mono_assembly_set_main):
18719         (mono_assembly_get_main): Process methods need to know which
18720         assembly is the "main" one
18721
18722         * object.c (mono_runtime_run_main): Record the main assembly
18723
18724         * debug-helpers.c: Fix typo
18725
18726 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
18727
18728         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
18729         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
18730
18731 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18732
18733         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
18734
18735 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
18736
18737         * image.c (do_mono_image_open): Initialize reference count,
18738         otherwise we leak the MonoImage.
18739
18740 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18741
18742         * reflection.c: small tweak to handle self-hosting.
18743
18744 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18745
18746         * reflection.c: fix type name parse code.
18747
18748 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18749
18750         * reflection.c: break out of the loop.
18751         * image.c: special case corlib.
18752
18753 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18754
18755         * reflection.c: add all the custom attrs at the end to ensure the
18756         ctors have been properly initialized when the attributes are defined
18757         in the current assembly.
18758
18759 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18760
18761         * reflection.c: handle correctly multiple-nested types.
18762
18763 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18764
18765         * row-indexes.h: fix typos.
18766         * reflection.c: adjust for typos and fix method_def_or_ref
18767         encoding in MethodImpl table.
18768
18769 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18770
18771         * reflection.c: fix entry point patching (thanks Serge!).
18772
18773 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
18774
18775         * verify.c: add check for System.Exception
18776
18777 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18778
18779         * image.c, class.c: minifix for code just c&p'ed.
18780         * reflection.c: warning fix.
18781         * object.h, loader.h, domain.c: load also StringBuilder.
18782
18783 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18784
18785         * marshal.h, marshal.c: some support code to handle complex marshaling.
18786
18787 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18788
18789         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
18790         Better signatures with vtable error dump.
18791
18792 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
18793
18794         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
18795
18796 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
18797
18798         * icall.c (ves_icall_Type_GetField): impl.
18799
18800 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18801
18802         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
18803         to retrieve a marshal description blob for a field or param.
18804
18805 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18806
18807         * reflection.h, reflection.c: change order of nested type emission
18808         to avoid table corruption. The NestedTypes table is sorted.
18809         * icall.c: change order of GetConstructor results to workaround mcs bug.
18810
18811 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18812
18813         * reflection.h, reflection.c: handle field and param marshal
18814         information.
18815
18816 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18817
18818         * icall.c, marshal.c marshal.h: more Marshal class implementation.
18819
18820 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18821
18822         * reflection.c: fix call convention.
18823
18824 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18825
18826         * reflection.h, reflection.c: mono_image_get_memberref_token()
18827         takes a type instead of a class, now. Added
18828         mono_image_get_array_token() to create tokens for the special
18829         multi-dim array methods.
18830
18831 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18832
18833         * assembly.c: handle modules (no assembly table). Split
18834         loading references in its own function.
18835         * class.c: handle moduleref resolution scope.
18836         * image.c, image.h: cache module name in image.
18837
18838 2002-06-07  Martin Baulig  <martin@gnome.org>
18839
18840         * reflection.c (mono_image_get_type_info): Only add a class layout entry
18841         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18842
18843 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18844
18845         * icall.c: more signature fixes that used uint instead of int.
18846
18847 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18848
18849         * reflection.c: fixed signature of field refs.
18850
18851 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18852
18853         * class.c, reflection.c: handle typerefs of nested types
18854         (both on read and when writing files).
18855
18856 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18857
18858         * icall.c: fix method signatures that tried to workaround the previous
18859         typo, d'oh!
18860
18861 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18862
18863         * debug-helpers.c: fix typo.
18864
18865 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18866
18867         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18868         rewrote the PE/COFF writing code (our programs are understood by the
18869         ms runtime, now).
18870
18871 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18872
18873         * gc.c, gc.h, icall.c: weakreference support.
18874
18875 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18876
18877         * Makefile.am, mono-config.c: use $(sysconfdir).
18878
18879 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18880
18881         * icall.c: changed default precision of Double.ToString() to 15.
18882         Fixed memory leak. Unified with Single.ToString.
18883
18884 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18885
18886         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18887
18888 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18889
18890         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18891         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18892         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18893         and myself.
18894
18895 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18896
18897         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18898
18899 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18900
18901         * reflection.c, socket-io.c: more compilation fixes.
18902
18903 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18904
18905         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18906         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18907         unicode.c: warning and compiler compatibility fixes.
18908
18909 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18910
18911         * class.h, metadata.c: fixed warnings/compilation errors.
18912
18913 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18914
18915         * Makefile.am, mono-config.c, mono-config.h: configuration file
18916         support routines.
18917         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18918         config file. Export methods to insert and lookup mappings.
18919
18920 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18921
18922         * reflection.c: handle types and boxed objects in custom attr
18923         constructors.
18924
18925 2002-05-30  Martin Baulig  <martin@gnome.org>
18926
18927         * debug-symfile.c
18928         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18929
18930 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18931
18932         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18933         to lookup the implmap row for a P/Invoke method.
18934         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18935         P/Invoke method from the runtime on an as needed basis.
18936
18937 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18938
18939         * metadata.c (mono_metadata_parse_signature): impl.
18940
18941 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18942
18943         * class.c: handle .pack directive.
18944
18945 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18946
18947         * object.c: initialize static fields with RVA data.
18948
18949 2002-05-25  Martin Baulig  <martin@gnome.org>
18950
18951         * debug-symfile.c
18952         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18953
18954 2002-05-24  Martin Baulig  <martin@gnome.org>
18955
18956         * debug-symfile.c
18957         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18958         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18959         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18960
18961 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18962
18963         * object.c: special case string ctros in invoke.
18964         * gc.c: silly whitespace changes.
18965
18966 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18967
18968         * threadpool.[ch]: impl. a threadpool that can
18969         be used by mint and mono.
18970
18971 2002-05-22  Martin Baulig  <martin@gnome.org>
18972
18973         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18974         The first argument is now a `MonoReflectionModuleBuilder *', the return
18975         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18976         `methods' field to get the method builder.  The `token' argument is the
18977         unfixed token.
18978
18979         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18980         invalid characters instead of g_assert_not_reached()ing.  This seems
18981         to be the behaviour of mscorlib.
18982
18983 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18984
18985         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18986         Hestilow to fix bug #25104
18987
18988 2002-05-21  Martin Baulig  <martin@gnome.org>
18989
18990         * debug-symfile.c (mono_debug_find_source_location): New function.
18991         Looks up an IL offset in the line number table and returns the source
18992         location as a string.
18993
18994 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18995
18996         * icall.c:
18997         (mono_double_ToStringImpl): changed %f by %g until we have something
18998         better.
18999
19000 2002-05-21  Nick Drochak  <ndrochak@gol.com>
19001
19002         * icall.c : Use different name for Math.Pow's icall.  Needed to check
19003         parameters first in C#.
19004
19005 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19006
19007         * icall.c, reflection.h: added icall to get info about an event.
19008
19009 2002-05-20  Radek Doulik  <rodo@ximian.com>
19010
19011         * object.c (mono_value_box): don't use memcpy for boxing on BIG
19012         endian
19013         (mono_value_box): don't use memcpy for small sizes on
19014         architectures with unaligned access
19015
19016 2002-05-20  Martin Baulig  <martin@gnome.org>
19017
19018         * reflection.c (mono_reflection_setup_internal_class): Don't crash
19019         if `tb->parent == NULL'.
19020         (mono_reflection_create_internal_class): New function.  This is
19021         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
19022         for enum types.
19023
19024         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
19025         New interncall.
19026
19027 2002-05-19  Martin Baulig  <martin@gnome.org>
19028
19029         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
19030         argument to get the length, don't default to the array length.
19031
19032 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
19033
19034         * assembly.c (mono_assembly_setrootdir): New function used to
19035         override the MONO_ASSEMBLIES directory.
19036
19037 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19038
19039         * icall.c: ValueType_GetHashCode() initialize local var.
19040
19041 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19042
19043         * reflection.c: sort custom attributes table.
19044
19045 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19046
19047         * reflection.c: support named args in custom attributes (write support).
19048
19049 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19050
19051         * reflection.c: fix finally position calculation.
19052
19053 2002-05-15  Radek Doulik  <rodo@ximian.com>
19054
19055         * reflection.c: fixed endianess at many places
19056
19057         * icall.c (ves_icall_InitializeArray): comment out debug msg
19058
19059 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
19060
19061         * object.c (mono_unhandled_exception): new function to handle
19062         unhandled exceptions.
19063         (mono_unhandled_exception): call the UnhandledException event.
19064         (mono_runtime_delegate_invoke): impl.
19065
19066 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
19067
19068         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
19069         returns the RVA, not the direct pointer to the data. Handle the case
19070         when the class size is fixed.
19071
19072 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19073
19074         * reflection.c: fix some endianess issues.
19075
19076 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
19077
19078         * object.c (mono_runtime_invoke): is now able to catch exceptions.
19079
19080         * threads.c (mono_thread_init): added a callback which is invoked
19081         at thread start.
19082
19083 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
19084         
19085         * icall.c: make GetHashCode return non-negative values.
19086
19087 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
19088
19089         * object.c, icall.c, gc.c: revert to address-based hashcode.
19090
19091 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
19092
19093         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
19094
19095 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19096
19097         * icall.c, class.c: special case <Module>.
19098
19099 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
19100
19101         * icall.c: fix bug in GetNow().
19102
19103 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
19104
19105         * object.c (mono_runtime_class_init): make sure that we call all
19106         static class constructors.
19107
19108 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19109
19110         * reflection.c: sort methodsemantics table.
19111
19112 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19113
19114         * reflection.h, reflection.c: honour init locals setting.
19115
19116 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
19117
19118         * icall.c: copied Double ToStringImpl for Single ToStringImpl
19119
19120 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19121
19122         * reflection.c: support ContructorBuilders in attribute blob creation.
19123
19124 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19125
19126         * reflection.c: some changes to build a binary that can be run
19127         directly in windows.
19128
19129 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
19130
19131         * loader.c: print a big message when an icall can't be found.
19132
19133 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19134
19135         * string-icalls.c: fix bug 24248.
19136
19137 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19138
19139         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
19140         icall.c, reflection.h: separate assembly loading by pathname and by
19141         assembly name. Use the MONO_PATH env var to search for assemblies.
19142
19143 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19144
19145         * assembly.c, image.h: add some support for assemblies
19146         with multiple modules.
19147         * class.c, class.h: export mono_class_from_typeref().
19148         * loader.c: remove duplicated code and use mono_class_from_typeref(),
19149         instead.
19150
19151 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19152
19153         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
19154         documentation says (the ECMA one is correct).
19155
19156 2002-05-02  Dick Porter  <dick@ximian.com>
19157
19158         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
19159         Don't name the synchronisation mutex.
19160
19161 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
19162
19163         * rand.c
19164         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
19165         Make the prototypes match.
19166         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
19167         Same.
19168
19169         * icall.c
19170         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
19171         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
19172         all systems have tm.tm_zone, so use strftime() with %Z to print
19173         the timezone abreviation into a temp string.
19174
19175         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
19176         rather than mono_array_addr() on a MonoString on Big Endian
19177         machines.
19178
19179 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
19180
19181         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
19182         fix bug 24041
19183
19184 2002-04-30  Dick Porter  <dick@ximian.com>
19185
19186         * socket-io.c: Cope with SOCKET being an integer rather than a
19187         pointer now.
19188
19189         * threads.c: Added Thread_free_internal, to deal with thread
19190         handle cleanup.  Moved calls to handle_store() and handle_remove()
19191         to start_wrapper(), so each can only be called once.  Allocate
19192         synchronisation blocks with GC_malloc(), and use GC finalisation
19193         to close the handles.
19194
19195         * icall.c: added System.Threading.Thread::Thread_free_internal
19196
19197 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19198
19199         * icall.c: support Environment.Exit, CommandLineArgs().
19200
19201 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19202
19203         * object.c, object.h: added mono_runtime_run_main () and
19204         mono_runtime_get_main_args () for use in System.Environment.
19205
19206 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19207
19208         * gc.c: fix thinko, enable actual finalization since the jit is now
19209         fixed.
19210
19211 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19212
19213         * gc.c, object.c: take into account that an object may be offset wrt the address
19214         returned by GC_malloc().
19215
19216 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19217
19218         * image.c: handle files without entries in the assembly table (modules).
19219
19220 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
19221
19222         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
19223         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
19224         allowed to be null when it's System.Object class setup.
19225
19226 2002-04-27  Martin Baulig  <martin@gnome.org>
19227
19228         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
19229         if `tb->parent == NULL' rather than crashing.
19230
19231 2002-04-28  Nick Drochak  <ndrochak@gol.com>
19232
19233         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
19234         calling acos() where asin() should have been called.
19235
19236 2002-04-26  Martin Baulig  <martin@gnome.org>
19237
19238         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
19239         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
19240         there's a subdirectory called `System', but we don't want to read that
19241         subdirectory as an assembly.
19242
19243 2002-04-25  Martin Baulig  <martin@gnome.org>
19244
19245         * debug-symfile.c: Reflect latest MonoString changes.
19246
19247 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19248
19249         * rand.c, rand.h: instance method icalls need to have an explicit
19250         this pointer as first argument in the C implementation.
19251
19252 2002-04-25  Nick Drochak <ndrochak@gol.com>
19253
19254         * icall.c: Fix typo in map for GetNonZeroBytes
19255
19256 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19257
19258         * string-icalls.c : String does now passes unit tests without any 
19259         errors, the following changes has been made:
19260         
19261         Implemented replace methods.
19262         Renaming of methods to (try) follow the standard.
19263         Fixed compare ordinal
19264         Made all memory allocated directly to function instead of via icall function.
19265         Small performance fix in is_in_array function
19266                         
19267  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
19268
19269         c (mono_string_Internal_ctor_charp_int_int):
19270         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
19271         sindex < 0, throw ArgumentOutOfRangeException instead of
19272         ArgumentNullException.
19273
19274         Added new check for length == 0, however
19275         I need to make it return String.Empty from the C code.
19276         
19277         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
19278         that calculate the length for us here.
19279         
19280         (mono_string_Internal_ctor_sbytep_int_int): Replaced
19281         mono_string_new_utf16 with mono_string_new, since value is utf8.
19282
19283 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19284
19285         * object.c: register the object for finalization if needed.
19286         Allocate one more char in the string for the terminating 0 char.
19287
19288 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19289
19290         * class.c, class.h, image.c: check if a type implemenst a destructor.
19291         Use the proper key for array class lookups.
19292         * icall.c: register the icalls in the System.GC class.
19293         * gc.c, gc.h: GC-related functions and icalls.
19294
19295 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19296
19297         * icall.c:
19298         * socket-io.c:
19299         * unicode.c: free some strings gotten from mono_string_to_utf8 and
19300         changed a couple of free () by g_free ().
19301
19302         * decimal.c: one-liner in the comments for decimal2string ().
19303
19304 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19305
19306         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
19307
19308 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19309
19310         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
19311         * object.c (mono_runtime_invoke_array) : handle null in params
19312
19313 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19314
19315         * string-icalls.c: fixed bug in split (one off bug)
19316
19317 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19318
19319         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
19320         * icalls.c: added String::Equals as internal method
19321
19322 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19323
19324         * threads.c: fixed bug in the double interlocked functions
19325
19326 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
19327
19328         * threads.c: implemented all of the new interlocked icalls.
19329         * string-icalls.c: fix a bug in insert.
19330         * icalls.c: added the icalls for interlocked, removed old string functions.
19331         
19332 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19333
19334         * loader.c: fix off-by-one error when reading argument names.
19335
19336 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19337
19338         * profiler.c: win32 counter implementation (untested).
19339         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
19340         (the latter needs testing and more complete impl. from win32 folks).
19341
19342 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
19343
19344         * object.c: mono_array_new_full workaround mono_array_class_get
19345         problem.
19346
19347 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19348
19349         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
19350         * object.h (mono_string_chars): Changed casting type.
19351
19352 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19353
19354         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
19355                            method signatures to use gunichar2 instead of gint16.
19356
19357 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
19358
19359         * object.h, object.c: domain-specific versions of mono_object_new and
19360         mono_array_new.
19361
19362 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
19363
19364         * object.c: changed String layout
19365
19366         * string-icalls.c (mono_string_Internal_ctor_chara): added
19367         internal string constructors.
19368
19369 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
19370
19371         * threads.c: pass 'this' to the thread start routine.
19372
19373 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19374
19375         * string-icalls.c: fix IndexOf and LastIndexOf. Now
19376         InternalCompareStr don't call twice mono_string_cmp_char for the last
19377         character. Improved performance in mono_string_cmp_char.
19378
19379 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19380
19381         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
19382         code into its own library: libmonoruntime.
19383
19384 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
19385
19386         * object.h, object.c: changed array format so that szarrays do not
19387         require a bounds structure.
19388         * icall.c, appdomain.c: support for new szarray format.
19389
19390 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
19391
19392         * metadata.c: compare also the retuns type when comparing signatures:
19393         we didn't do this as an optimization since really overloaded methods
19394         must differ also in the arguments, but this doesn't work with
19395         low-level IL code (or when using explicit conversion operators: see
19396         bug#23498 for an example).
19397
19398 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19399
19400         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
19401
19402 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19403
19404         * icall.c: make MonoType::GetElementType its own icall.
19405
19406 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19407
19408         * icall.c: remove MonoMethod_get_Name().
19409         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
19410         object.
19411
19412 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19413
19414         * string-icalls.c: optimized a few methods.
19415
19416 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19417
19418         * icall.c: added all new string internal calls
19419         * string-icalls.c: added, new string internal call implementation.
19420         * object.c: added mono_string_new_size for allocating a string a size
19421
19422 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
19423
19424         * object.c (mono_object_isinst): use the same code as in the
19425         optimized x86 version.
19426
19427 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19428
19429         * profiler.c: TSC-based timer code (faster and more accurate).
19430         Not hooked up in configure, yet (set USE_X86TSC to 1).
19431
19432 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
19433
19434         * profiler.c, profiler.h: track time spent compiling methods.
19435         * threads.c: track thread creation/destruction.
19436
19437 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
19438
19439         * profiler.c, profiler.h, profiler-private.h: profiling interface
19440         and sample implementation. Moved here so that it can be used also by
19441         the jit.
19442
19443 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
19444
19445         * reflection.c, reflection.h: keep types and other handles separate in
19446         the hash tables for referred tokens. Add guid for modules.
19447
19448 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19449
19450         * assembly.c: fix bugs found with valgrind.
19451         * metadata.h, metadata.c: added mono_metadata_guid_heap().
19452
19453 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
19454
19455         * threads: added icall support for getting current domain for
19456                    the thread.
19457  
19458 2002-04-13  Martin Baulig  <martin@gnome.org>
19459
19460         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
19461         (MonoDebugVarInfo): Added `index' field for register based addresses.
19462         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
19463         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
19464         `MonoDebugVarInfo *params' and `guint32 this_offset' with
19465         `MonoDebugVarInfo *this_var'.
19466
19467         * debug-symfile.c (relocate_variable): New static function to write
19468         a location description for a local variable or method parameter.
19469
19470 2002-04-12  Martin Baulig  <martin@gnome.org>
19471
19472         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
19473         stack offset and begin/end scope address of a local variable.
19474         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
19475         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
19476         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
19477
19478         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
19479         Added new relocation types for start/end scope of a local variable.
19480
19481 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19482
19483         * object.h: add mono_object_domain() macro.
19484         * reflection.c: handle typespecs.
19485         * icall.c: MonoMethod::get_Name() implementation.
19486
19487 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19488
19489         * icall.c: String::GetHashCode() icall implementation.
19490
19491 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19492
19493         * icall.c: String::IndexOfAny icall.
19494         * object.c, object.h: make array->max_length more useful.
19495         Intrduced mono_object_class() and mono_string_length() macros.
19496
19497 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19498
19499         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
19500         instead of g_unichar_isdigit.
19501
19502 2002-04-11  Nick Drochak  <ndrochak@gol.com>
19503
19504         * icall.c: Implement a simple Double.ToString().
19505
19506 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19507
19508         * appdomain.h: only io-layer.h is supposed to be included.
19509         * icall.c: explicitly import environ. Fix warning.
19510
19511 2002-04-10  Nick Drochak  <ndrochak@gol.com>
19512
19513         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
19514                 return true even if it's not Daylight Savings time.
19515                 Only return false for the case where the function isn't
19516                 implemented for a plaform (read Windows).
19517
19518 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19519
19520         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
19521         data with a mutex.
19522
19523 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
19524
19525         * mempool.c (mono_mempool_alloc): only use g_malloc when
19526         absolutely necessary.
19527
19528 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
19529
19530         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
19531
19532         * class.c (mono_class_vtable): use domain mempool to allocate vtable
19533         (mono_class_proxy_vtable): use domain mempool
19534
19535 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19536
19537         * appdomain.h, appdomain.c: split initialization that requires the
19538         execution engine support into mono_runtime_init().
19539
19540 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
19541
19542         * class.c (mono_class_init): don't include vtable inside MonoClass
19543         to save some memory, gather some statistics.
19544         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
19545
19546 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19547
19548         * icall.c: internalcall implementation for ValueType.Equals().
19549
19550 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
19551
19552         * object.c (mono_message_init): moved 
19553         (mono_runtime_exec_main): new arch. independent impl.
19554         (mono_runtime_invoke_array): new method - like
19555         mono_runtime_invoke, but you can pass an array of objects.
19556         (mono_remoting_invoke): new arch. independent impl.
19557         (mono_message_invoke): new arch. independent impl.
19558         (mono_runtime_class_init): new arch. independent impl.
19559         (mono_runtime_object_init): new arch. independent impl.
19560
19561 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19562
19563         * metadata.c, object.c, reflection.c: documented the exported
19564         functions.
19565
19566 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19567
19568         * icall.c: simpler code to pass the assembly builder data to corlib.
19569         Implement GetNestedTypes() internalcall.
19570
19571 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19572
19573         * class.c: warn if a type can't be loaded.
19574
19575 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
19576
19577         * image.h: typedef MonoImageOpenStatus
19578         * types.h: removed unused file
19579         
19580 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
19581
19582         * icall.c: Enum_ToObject accepts enum value arguments.
19583
19584 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19585
19586         * class.c: move initialization of properties, events and nested
19587         classes, so that they happen for interfaces, too.
19588
19589 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19590
19591         * icall.c: cleanup some ugly casts in Array_SetValue*.
19592
19593 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19594
19595         * icall.c: the values array fro enums is of the correct type, now.
19596         Implement (correctly) getFullName instead of assQualifiedName for
19597         MonoType.
19598         * reflection.h, reflection.c: added mono_type_get_name ().
19599
19600 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19601
19602         * assembly.c, image.h: for each MonoImage, record from wich assembly
19603         it was loaded.
19604         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
19605         Make Type.Assembly work.
19606
19607 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
19608
19609         * debug-symfile.h: use char* instead of gpointer to avoid
19610         unnecessary casts.
19611
19612         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
19613
19614         * icall.c (ves_icall_InternalExecute): impl. FielSetter
19615         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
19616
19617 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
19618
19619         * icall.c (mono_message_init): impl. (code cleanup)
19620         (ves_icall_InternalExecute): impl. FieldGetter
19621
19622         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
19623         defined we call all (non-static)methods through the vtable. 
19624
19625 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
19626
19627         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
19628         finalizer even though the memory is still referenced (and the chunk of
19629         memory is not freed).
19630
19631 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19632
19633         * assembly.c: fix brokeness.
19634
19635 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
19636
19637         * class.c: kill some warnings. Check explicit interface method
19638         implementation also without considering the namespace.
19639         Load also literal strings in static class data.
19640
19641 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
19642
19643         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
19644         (default_assembly_name_resolver): Make the resolver take the
19645         "base" directory where the assembly was originally defined, so we
19646         can load DLLs that are in the same directory as the assembly that
19647         is being referenced.
19648
19649 2002-03-28  Dick Porter  <dick@ximian.com>
19650
19651         * file-io.h: 
19652         * file-io.c:
19653         * socket-io.c: 
19654         * unicode.h: 
19655         * unicode.c: Warning cleanups
19656
19657 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
19658
19659         * object.h, reflection.h: use the correct type instead of MonoObject.
19660
19661 2002-03-28  Martin Baulig  <martin@gnome.org>
19662
19663         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
19664         (mono_debug_update_symbol_file): Initialize classes if necessary.
19665
19666 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19667
19668         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
19669         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
19670
19671 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
19672
19673         * assembly.h: fix function prototype.
19674         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
19675         * mono-endian.h: use const cast.
19676
19677 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19678
19679         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
19680
19681 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19682
19683         * loader.c: don't assert when a typeref can't be loaded, give
19684         a chance to the runtime to trow an exception instead.
19685         * loader.h: fix warning.
19686
19687 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19688
19689         * class.c (mono_class_proxy_vtable): added proxy support
19690
19691 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
19692
19693         * icall.c: removed last of PAL calls, added System.Environment
19694         * file-io.h, file-io.c: MonoIO implementation
19695         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
19696
19697 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19698
19699         * appdomain.c: do not use the byte marker in ldstr table lookup.
19700         * debug-helpers.c: allow two ':' to separate class and method name.
19701         * object.c: allocate arrays bounds with the GC, too.
19702         * verify: add a few more checks.
19703
19704 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
19705
19706         * reflection.c: output also literal strings. Allocate parameter data
19707         with GC_malloc() (thanks, Martin, for catching this!).
19708
19709 2002-03-26  Martin Baulig  <martin@gnome.org>
19710
19711         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
19712         include the `this' offset in the `param_offsets'.
19713
19714 2002-03-25  Martin Baulig  <martin@gnome.org>
19715
19716         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
19717         mono_debug_get_class() function to get the classes. Added new
19718         relocation types for arrays and strings.
19719         (mono_debug_get_class): New static function to search in all
19720         referenced assemblies for a metadata token.
19721
19722         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
19723
19724 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19725
19726         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
19727         hold gc-allocated objects. Make the string heap a stream like the
19728         others. Removed duplicated code when writing stream info.
19729         Added asserts to catch possible buffer overflows. Set the sorted map
19730         for tables that need sorting. Added some documentation.
19731
19732 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
19733
19734         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
19735         for interned strings and vtables.
19736
19737 2002-03-24  Martin Baulig  <martin@gnome.org>
19738
19739         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
19740         it in the array since it was created with g_slist_prepend().
19741
19742 2002-03-24  Martin Baulig  <martin@gnome.org>
19743
19744         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
19745         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
19746         (mono_debug_method_from_token): Renamed to
19747         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
19748         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
19749
19750         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
19751         relocation types.
19752
19753         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
19754
19755 2002-03-24  Martin Baulig  <martin@gnome.org>
19756
19757         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
19758         (mono_debug_method_from_token): New func.
19759
19760         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
19761         New interncall, calls mono_debug_local_type_from_signature().
19762         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
19763         calls mono_debug_method_from_token().
19764
19765 2002-03-23  Martin Baulig  <martin@gnome.org>
19766
19767         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
19768         specifies the number of bytes to be converted, not the array size.
19769         Return the number of chars, not the number of bytes.
19770         (ves_icall_iconv_get_chars): The `byteCount' argument
19771         specifies the number of bytes to be converted, not the array size.
19772
19773 2002-03-23  Martin Baulig  <martin@gnome.org>
19774
19775         * reflection.h (MonoReflectionSigHelper): New type.
19776
19777         * reflection.c (mono_reflection_sighelper_get_signature_local),
19778         (mono_reflection_sighelper_get_signature_local): New functions.
19779
19780         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
19781         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
19782         interncalls.
19783
19784 2002-03-23  Martin Baulig  <martin@gnome.org>
19785
19786         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
19787         is_writeable is set.
19788         (mono_raw_buffer_update): New function to write the modified map
19789         back to disk.
19790
19791         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
19792
19793         * debug-symfile.c (mono_debug_update_symbol_file): Call
19794         mono_raw_buffer_update() when done writing.
19795
19796 2002-03-23  Martin Baulig  <martin@gnome.org>
19797
19798         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
19799
19800         * debug-symfile.c: Added support for arguments and local variables.
19801
19802 2002-03-23  Dick Porter  <dick@ximian.com>
19803
19804         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
19805         protected by ifdefs, hence breaking the w32 build.
19806
19807 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19808
19809         * object.c: implement is_interned() the right way.
19810
19811 2002-03-21  Martin Baulig  <martin@gnome.org>
19812
19813         * debug-symfile.[ch]: New files to handle debugging information
19814         files. There's also support to dynamically update these symbol
19815         files to include machine dependent information.
19816
19817 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
19818
19819         * threads.c (mono_thread_create): new function to create thread
19820         from C
19821
19822 2002-03-20  Martin Baulig  <martin@gnome.org>
19823
19824         * icall.c (ves_icall_InternalInvoke): Create a new object if the
19825         method is a constructor.
19826         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
19827         points to ves_icall_InternalInvoke().
19828
19829 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
19830
19831         * file-io.c: Flush shouldn't throw exceptions.
19832
19833 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
19834
19835         * file-io.c: FileStream flush support; FileSetLength now
19836         restores file pointer.
19837
19838 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19839
19840         * class.c: set image for pointer classes.
19841
19842 2002/03/19  Nick Drochak <ndrochak@gol.com>
19843
19844         * sysmath.c: Forgot one.
19845
19846 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19847
19848         * sysmath.c: Avoid redefining existing names.
19849
19850 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19851
19852         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19853         handled by runtime as icall rather than dllimport from libm.so
19854         * file-io.c, file-io.h: fixed handle argument type.
19855
19856 2002-03-18  Dick Porter  <dick@ximian.com>
19857
19858         * reflection.c (mono_image_get_type_info): rename interface to
19859         iface, because of "#define interface struct" on windows.
19860
19861 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19862
19863         * class.c, class.h: rename and export mono_ptr_class_get().
19864         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19865         * reflection.c, reflection.h, icall.c: better/saner type name
19866         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19867         method signatures.
19868
19869 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19870
19871         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19872
19873         * icall.c (ves_icall_InternalInvoke): impl.
19874
19875 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19876
19877         * reflection.c: output the interface map table, too.
19878
19879 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19880
19881         * class.c (class_compute_field_layout): separate computation of 
19882         static field layout
19883
19884 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19885
19886         * icall.c: added System.Buffer support.
19887         * file-io.c: moved file icalls from PAL to FileStream.
19888
19889 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19890
19891         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19892
19893 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19894
19895         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19896
19897 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19898
19899         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19900
19901 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19902
19903         * debug-helpers.{c,h}: moved here from monograph some useful functions
19904         to locate a method by name/signature in a class or image. Included
19905         also a small and flexible IL disassembler.
19906
19907 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19908
19909         * reflection.c: fixup tokens in methods with small header size, too.
19910
19911 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19912
19913         * object.c (mono_string_to_utf8): remove assert(!error), instead
19914         print a warning. 
19915
19916 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19917
19918         * icall.c: update to the new mono_Array_class_get interface.
19919
19920 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19921
19922         * appdomain.c, object.c: Boehm-GC enable.
19923         * icall.c: make get_data_chunk() support split data requests.
19924         Ensure a class is initialized in more cases. Return only the first
19925         property found in GetProperties() or the compiler gets confused. 
19926         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19927         * reflection.h, reflection.c: add fixup mechanism for field and method
19928         tokens. Initialize assembly->typeref in a single place. Output
19929         properties after events. Support custom attributes for events, too.
19930         Typo fix for paramter custom attrs.
19931
19932 2002-03-07  Martin Baulig  <martin@gnome.org>
19933
19934         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19935
19936 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19937
19938         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19939
19940 2002-03-06  Martin Baulig  <martin@gnome.org>
19941
19942         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19943         non-zero lower bounds. See testcases #F10-#F13.
19944
19945 2002-03-05  Martin Baulig  <martin@gnome.org>
19946
19947         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19948
19949         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19950         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19951         here.
19952         (ves_icall_System_Array_SetValue): Likewise.
19953         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19954         as argument and does the actual work. This function is used when copying a
19955         multi-dimensional array.
19956         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19957         now do all the widening conversions of value types.
19958         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19959
19960 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19961
19962         * class.c: remove some magic numbers and use the smbolic names,
19963         instead. Added init_events() to load event info at class init time.
19964         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19965         and mono_metadata_methods_from_event().
19966         * reflection.h, reflection.c: added support for writing out the evnets
19967         related information.
19968
19969 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19970
19971         * reflection.h, icall.c: use a different method (GetInterfaces)
19972         to gather interface info and add isbyref, isprimitive and
19973         ispointer to the ves_icall_get_type_info() return value.
19974
19975 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19976
19977         * class.h: stared adding support for events.
19978         * icall.c: split find_members implementation. Added debug icall to get
19979         the address of an object.
19980         * reflection.c: handle TypeBuilders in mono_type_get_object().
19981
19982 2002-03-01  Martin Baulig  <martin@gnome.org>
19983
19984         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19985         ArgumentOutOfRangeException(), not an ArgumentException().
19986         (ves_icall_System_Array_GetLowerBound): Likewise.
19987         (ves_icall_System_Array_GetValue): Improved argument checking.
19988         (ves_icall_System_Array_SetValue): Improved argument checking.
19989
19990 2002-03-01  Martin Baulig  <martin@gnome.org>
19991
19992         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19993         called with invalid arguments rather than just dying with g_assert().
19994         (ves_icall_System_Array_SetValue): Likewise.
19995         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19996         raise a NotImplementedException instead.
19997         (ves_icall_System_Array_GetLength): Added argument checking.
19998         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19999
20000 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
20001
20002         * object.h (mono_assert): new macros mono_assert and
20003         mono_assert_not_reached
20004
20005 2002-02-28  Martin Baulig  <martin@gnome.org>
20006
20007         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
20008         and "System::String::IsInterned" to "System::String::_IsInterned".
20009
20010 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
20011
20012         * icall.c: remove hacks for typebuilder. Added icall to create a
20013         modified type from a tybebuilder.
20014         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
20015         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
20016         to create a backing MonoClass for a TypeBuilder.
20017
20018 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20019
20020         * class.c, class.h: more refactoring of class init.
20021         Export mono_class_setup_mono_type() and mono_class_setup_parent().
20022
20023 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
20024
20025         * marshal.c, marshal.h: start of marshaling interface.
20026
20027 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
20028
20029         * icall.c: fix order in assembly qualified name icall.
20030
20031 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
20032
20033         * class.c: do not free str, since we store it in the hash table.
20034         * reflection.h: add label field to MonoILExceptionInfo.
20035         * reflection.c: handle references to more than one assembly. Handle
20036         case when there isn't a module created in the assembly.
20037
20038 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20039
20040         * class.c: Fix typo. Start refactoring of class init code.
20041
20042 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20043
20044         * appdomain.c: exit with 1 on error.
20045         * class.c: we already have the name in MonoClassField.
20046         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
20047         MonoStreamHeader instead of an offset of image->raw_metadata.
20048
20049 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
20050
20051         * appdomain.c (mono_init): Be even more descriptive about the error.
20052
20053 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
20054
20055         * appdomain.c: give the user an informative message when corlib can't
20056         be loaded.
20057
20058 2002-02-26  Martin Baulig  <martin@gnome.org>
20059
20060         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
20061         New icall to get the time zone data.
20062
20063 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20064
20065         * reflection.c: set virtual and raw size of section correctly.
20066         * threads.c: transfer domain information to newly created threads.
20067
20068 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
20069
20070         * class.c: when instancing a class in a domain, load the default
20071         vaules for static fields from the constant table. Fix System.Enum to
20072         not be an enum.
20073         * icall.c: implement Object::GetType() internalcall. Implemented
20074         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
20075         Fixed checking of binding flags in find_members().
20076         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
20077         * reflection.c: handle enumerations when writing to the constant
20078         table. Use a different object cache for types.
20079
20080
20081 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
20082
20083         * object.c (mono_object_isinst): fix for arrays
20084
20085         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
20086
20087 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
20088
20089         * object.c: don't use mprotect ()  and fix intern pool hash table
20090         lookup for big endian systems.
20091
20092 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20093
20094         * icall.c: change type_is_subtype_of () signature.
20095
20096 2002-02-21  Mark Crichton  <crichton@gimp.org>
20097
20098         * rand.c, rand.h: Added random number generator for
20099         System.Security.Cryptography classes.
20100
20101         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
20102
20103         * icall.c: Added System.Security.Cryptography calls.
20104
20105 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
20106
20107         * class.c, icall.c, metadata.c: better support for pointer types.
20108         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
20109         * reflection.c: Add support for getting custom attrs for properties
20110         and simplify some code.
20111
20112 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20113
20114         * icall.c: change getToken () and add custom attribute GetBlob()helper
20115         method.
20116         * reflection.h: add custom attrs array to the reflection builder structures.
20117         * reflection.c: encode and emit custom attributes for all the relevant
20118         reflection objects. Cache fieldref and methodref tokens. Change
20119         mono_image_create_token() interface to take a MonoDynamicAssembly.
20120         More complete custom attributes decoder. Load custom attributes for
20121         Assembly, Field, Method and Constructor objects, too. Make the
20122         returned array an Attribute[] one, not object[]. Added
20123         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
20124         custom attribute constructor.
20125
20126 2002-02-20  Dick Porter  <dick@ximian.com>
20127
20128         * icall.c:
20129         * rawbuffer.c:
20130         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
20131         problem code out for now).
20132
20133 2002-02-19  Radek Doulik  <rodo@ximian.com>
20134
20135         * object.c (mono_ldstr): use hash table to avoid multiple swapping
20136
20137 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
20138
20139         * icall.c: register the GetCustomAttributes method.
20140         * object.c, object.h: add mono_string_new_len ().
20141         * reflection.h, reflection.c: added mono_runtime_invoke(),
20142         mono_install_runtime_invoke(). Added
20143         mono_reflection_get_custom_attrs () to load custom attributes and
20144         create the attribute objects.
20145
20146 2002-02-19  Dick Porter  <dick@ximian.com>
20147         * threads-dummy-types.c:
20148         * threads-dummy-types.h:
20149         * threads-dummy.c:
20150         * threads-dummy.h:
20151         * threads-pthread-types.c:
20152         * threads-pthread-types.h:
20153         * threads-pthread.c:
20154         * threads-pthread.h:  Deleted obsolete files
20155
20156 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
20157
20158         * class.c (mono_class_vtable): runtime init the class when we
20159         allocate static class data.
20160
20161         * icall.c (ves_icall_System_Array_SetValue): check for null values.
20162
20163         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
20164         and String - but we will need generic marshalling support in the
20165         future. 
20166         (mono_init): set the domain name in a ms compatible way
20167
20168         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
20169         String[].
20170
20171 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
20172
20173         * object.c (mono_array_clone): use alloca() instead of g_malloc  
20174         for sizes
20175
20176         * appdomain.c (mono_domain_unload): impl.
20177
20178 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20179
20180         * appdomain.c, object.c: fix intern pool implementation.
20181         * class.c: fix alignment code.
20182
20183 2002-02-16  Radek Doulik  <rodo@ximian.com>
20184
20185         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
20186         and s2 > s1, just copy lower bytes to be compatible with little
20187         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
20188         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
20189
20190         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
20191         force big_endian to be 1 for big endian machines 
20192         (ves_icall_iconv_new_decoder): ditto
20193
20194 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
20195
20196         * socket-io.c (convert_sockopt_level_and_name): If the system
20197         doesn't define SOL_IP or SOL_TCP, get them by hand using
20198         getprotobyname() and caching the values (because this could be a
20199         slow operation).
20200         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
20201         Use the appropriate struct when the system does support it. Ie,
20202         not all systems have struct ip_mreqn so use struct ip_mreq when
20203         appropriate.
20204
20205 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
20206
20207         * reflection.c: handle finally clauses.
20208
20209 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
20210
20211         * socket-io.c: use g_snprintf() instead of snprintf.
20212
20213 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
20214
20215         * reflection.c (mono_param_get_objects): Cast second argument to
20216         mono_method_get_param_names to a const char** to silence the
20217         compiler warning.
20218
20219         * appdomain.c (mono_domain_assembly_open): Put parens around the
20220         truth statement in the for-loop.
20221
20222         * unicode.c (iconv_convert): Got rid of a compiler warning about
20223         int i being unused when the system has a new iconv.
20224         (iconv_get_length): Same.
20225
20226         * image.c (load_class_names): Cast the second argument to
20227         g_hash_table_insert() to char* to hush compiler warnings about the
20228         arg being a const.
20229         (mono_image_open): Same here.
20230
20231         * socket-io.c: Don't conditionally include sys/filio.h or
20232         sys/sockio.h here anymore since we now get them from
20233         io-layer/io-layer.h
20234         (inet_pton): If the system doesn't support inet_aton, implement
20235         using inet_addr and also #define INADDR_NONE if it isn't defined
20236         by the system.
20237
20238 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
20239
20240         * metadata.c, metadata.h: added function to get packing and size info
20241         of a typedef.
20242         * reflection.h, reflection.c: handle field RVA data. Save info about
20243         the table layout if needed. Assign typedef indexes to all the types
20244         before dumping the info about them to avoid forward reference problems.
20245
20246 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
20247
20248         * socket-io.c (convert_sockopt_level_and_name): ifdef
20249         SO_ACCEPTCONN because it is not defined on my system (old debian)
20250
20251 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20252
20253         * opcode.c: use stddef.h to get NULL.
20254
20255 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
20256
20257         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
20258         for FIONBIO, FIONREAD and SIOCATMARK.
20259         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
20260         define INADDR_NONE and besides, inet_addr() is deprecated and
20261         should not be used. Use inet_pton() instead - it also has the
20262         added bonus that it can easily handle IPv6 addresses as well.
20263         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
20264
20265 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
20266
20267         * decimal.c: remove _MSC_VER conditional.
20268
20269 2002-02-13  Dick Porter  <dick@ximian.com>
20270
20271         * socket-io.c: 
20272         * icall.c: Internal calls for Blocking, Select, Shutdown,
20273         GetSocketOption and SetSocketOption
20274
20275 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20276
20277         * assembly.cs: better resolver: use it instead of some kludgy
20278         code.
20279
20280 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
20281
20282         * reflection.c: the best way to speed-up the compiler is to avoid
20283         infinite loops.
20284
20285 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
20286
20287         * class.c (mono_class_vtable): changed the object layout
20288         (obj->vtable->class). 
20289         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
20290
20291 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20292
20293         * assembly.c: look for assemblies in the assembly dir, too.
20294
20295 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20296
20297         * class.c: fix thinko in mono_class_from_type().
20298
20299 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20300
20301         * exception.h, exception.c: added TypeLoadException.
20302         * object.h, object.c: added mono_array_clone ().
20303         * icall.c: handle throwOnError in AssemblyGetType().
20304         Added Array.Clone().
20305         * opcode.h, opcode.c: use a single value for the opcode val.
20306         Compile fix for non-gcc compilers.
20307
20308 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
20309
20310         * opcodes.c, opcodes.h: export interesting info about opcodes.
20311
20312 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
20313
20314         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
20315         icalls. 
20316
20317         * class.c (class_compute_field_layout): set element_class for enums
20318         (mono_class_create_from_typedef): set element_class for normal classes
20319
20320         * icall.c (ves_icall_System_Enum_get_value): impl.
20321
20322         * class.c (mono_class_create_from_typedef): do not set valuetype
20323         flag for System.ValueType and System.Enum
20324
20325 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
20326
20327         * unicode.c (iconv_convert): fix big endian problem.
20328
20329 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20330
20331         * class.c: add asserts if we are ever going to scribble over memory.
20332         * socket-io.c: not all systems have AF_IRDA defined.
20333
20334 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
20335
20336         * class.c (class_compute_field_layout): do not consider static
20337         fields to compute alignment
20338
20339 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
20340
20341         * appdomain.c (mono_appdomain_get): impl.
20342         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
20343
20344 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
20345
20346         * icall.c: ignore "file://" prefix when loading an assembly.
20347
20348 2002-01-23  Dick Porter  <dick@ximian.com>
20349
20350         * socket-io.c:
20351         * icall.c:
20352         * Makefile.am: Added socket support
20353
20354 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
20355
20356         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
20357         code back.  This should return the assemblies that are loaded by
20358         the runtime on behalf of an application domain. 
20359
20360         The current implementation is still broken, it just returns every
20361         assembly loaded, but until we get real applications domain this
20362         will do.
20363
20364 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
20365
20366         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
20367         AppDomain object.
20368
20369 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
20370
20371         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
20372         the mono_class_from_name lookup.
20373         (ves_icall_get_parameter_info): ditto.
20374         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
20375         method.
20376         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
20377
20378 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
20379
20380         * class.c: load also nested classes on class init.
20381         System.ValueType instance methods gets passed boxed
20382         values, unless methods in derived classed that get a pointer to the
20383         data.
20384         * icall.c: use better name parsing code in GetType().
20385         * image.c, image.h: add mono_image_loaded ().
20386         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
20387         * reflection.c, reflection.h: added mono_reflection_parse_type().
20388
20389 2002-01-22  Veronica De Santis <veron78@interfree.it>
20390
20391         * icall.c : Added mapping of internal calls for Manual and Auto reset events
20392         * threads.c : Added the implementation of internal calls for events
20393         * threads.h : Added prototypes of internal calls for events
20394         
20395 2002-01-21  Radek Doulik  <rodo@ximian.com>
20396
20397         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
20398
20399 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
20400
20401         * class.c (mono_class_init): set min_align to 1 (instead of 0)
20402         (mono_class_value_size): use min_align
20403
20404 2002-01-20  Dick Porter  <dick@ximian.com>
20405
20406         * threads.h:
20407         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
20408         so it compiles on w32.
20409
20410 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
20411
20412         * metadata.c (mono_type_stack_size): impl.
20413
20414         * class.c (mono_class_get_field): impl. memberref token
20415
20416 2002-01-16 Veronica De Santis <veron78@@interfree.it>
20417
20418         * icall.h : Added the internal calls mapping for CreateMutex_internal
20419                     and ReleaseMutex_internal.
20420         * threads.h : Added the prototype of mutexes internal calls.
20421         * threads.c : Added the implementations of mutexes internal calls.
20422
20423 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
20424
20425         * metaparse.h: removed unused file.
20426         * reflection.c, reflection.h: added stream_data_align () function 
20427         to align data in streams and keep stream aligned. Add support for
20428         exception support in method headers.
20429
20430 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
20431
20432         * unicode.c: make iconv_convert () return the number of bytess written
20433         in the output buffer.
20434
20435 2002-01-15  Dick Porter  <dick@ximian.com>
20436         * threads.c: Make the runtime's idea of infinite timeouts coincide
20437         with the class library's
20438
20439         Fix a particularly egregious bug in mono_thread_cleanup(). That
20440         code was so utterly bogus it must have been written on a Monday.
20441
20442 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
20443
20444         * reflection.h: add subtypes field to TypeBuilder.
20445         * reflection.c: encode constants for literal fields.
20446         Handle subtypes. Fix user string token (and add a zero byte)
20447         at the end.
20448         
20449 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
20450
20451         * class.c (mono_class_init): bug fix: assign slot numbers for
20452         abstract methods.
20453
20454 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20455
20456         * reflection.c: don't try to output a code RVA for abstract methods.
20457         Small fixes for method header format. Output parameter info to the
20458         ParamDef table. Save method overriding info to MethodImpl table.
20459         Fix property support. Allow typedef.extends to be a type in the
20460         building assembly.
20461         * verify.c: fix off-by-one error.
20462
20463 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
20464
20465         * class.c: fix mono_class_from_mono_type () for szarray types.
20466         Remove unused cache check in mono_class_from_type_spec().
20467         * icall.c: *type_from_name () functions handle simple arrays and byref.
20468         * reflection.c: handle byref and szarray types. Handle methods without
20469         body (gets P/Invoke compilation working). Handle types and fields in
20470         get_token ().
20471         * reflection.h: add rank to MonoTypeInfo.
20472
20473 2002-01-10  Dick Porter  <dick@ximian.com>
20474
20475         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
20476         internal calls
20477
20478 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
20479
20480         * icall.c: initialize class in type_from_handle ().
20481         Loop also in parent classes for get_method ().
20482         * reflection.c: properly encode class and valuetype types.
20483         Start on encoding TypeBuilder types. Handle fieldrefs.
20484         Use correct length when registering a user string.
20485         Handle ConstructorBuilder and MonoMethod in get_token ().
20486         Make mono_type_get_object () aware of cached types.
20487         * object.c: back out change to mono_string_new ().
20488
20489 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
20490         * object.c: mono_string_new should return a NULL when the string 
20491         passed in is NULL -- not try to deference it.
20492         
20493 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20494
20495         * icall.c: hack to make IsSubType work for TypeBuilders.
20496         * reflection.c: emit constructors before methods.
20497         Retrieve param names in mono_param_get_objects().
20498
20499 2002/01/05  Nick Drochak  <ndrochak@gol.com>
20500
20501         * Makefile.am: fix list of headers and sources so automake 1.5
20502         doesn't complain. Removed \# at end of list.
20503
20504 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
20505
20506         * reflection.c: get token for a method ref. Set return type of
20507         constructor to void.
20508         * loader.c: debug message.
20509         * class.c: typo fix.
20510
20511 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
20512
20513         * icall.c: fix array init with rank > 1. FindMembers
20514         loops in parent class as well.
20515         * image.c: do not insert nested types in name cache.
20516         * reflection.c: warning fix.
20517         * reflection.h: add override method (for interface impl).
20518
20519 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
20520
20521         * metadata.c: fix customattr decoding.
20522
20523 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
20524
20525         * rawbuffer.cs: Added native Win32 implementation, avoids using
20526         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
20527
20528 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
20529
20530         * class.c: make the low-level routines handle the cache.
20531
20532 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
20533
20534         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
20535
20536 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
20537
20538         * class.c: fix mono_array_element_size() for objects.
20539         * class.h, class.c: add properties to MonoClass and load them
20540         at init time.
20541         * icall.c: check with isinst() when assigning a value to an array
20542         instead of requiring the classes to match exactly.
20543         Implemented icall for System.Type::GetType().
20544         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
20545         enums. Handle bindingflags when looking for methods and fields.
20546         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
20547         and mono_metadata_methods_from_property().
20548         * reflection.h, reflection.c: added structures for propreties,
20549         parameters and enums. Implemented mono_property_get_object() and
20550         mono_param_get_objects().
20551
20552 2001-12-18  Dick Porter  <dick@ximian.com>
20553
20554         * file-io.c: Use mono_string_to_utf16() instead of
20555         mono_string_chars()
20556
20557         * object.c: Added mono_string_to_utf16(), which copies the non
20558         NULL-terminated MonoString into a new double-null-terminated
20559         buffer.
20560
20561 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
20562
20563         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
20564
20565 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
20566
20567         * file-io.c: raise exceptions if handle is invalid.
20568
20569 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
20570
20571         * assembly.c: yet another check for mscorlib.
20572         * class.c, class.h: load nesting info for classes.
20573         * icall.c: many new functions to support the Reflection classes.
20574         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
20575         * reflection.h, reflection.c: mono_image_create_token(),
20576         mono_assembly_get_object(), mono_type_get_object(),
20577         mono_method_get_object(), mono_field_get_object(): methods to return
20578         objects that parallel the C representation of assemblies, types,
20579         methods, fields.
20580
20581 2001-12-11  Dick Porter  <dick@ximian.com>
20582
20583         * icall.c:
20584         * file-io.c: Internal calls for file IO.
20585
20586 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
20587
20588         * tabledefs.h: missing FileAttributes.
20589         * verify.h, verify.c: use is_valid_string () to simplify and check for
20590         valid strings more correctly. Fix warnings and speeling.
20591         Check more tables: Filed, File, ModuleRef, StandAloneSig.
20592         Check code: branches, maxstack, method calls.
20593
20594 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
20595
20596         * object.c (mono_object_allocate): removed static, so that the jit
20597         can allocate value types.
20598
20599         * icall.c (ves_icall_System_DateTime_GetNow): impl.
20600
20601 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20602
20603         * class.c: init enum types right away and register the
20604         token->MonoClass map in mono_class_create_from_typedef ().
20605         * verify.h, verify.c: first cut of the verifier.
20606         * pedump.c: add --verify switch to verify metadata tables.
20607         * tabledefs.h: add some missing enums.
20608
20609 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
20610
20611         * class.c (mono_install_runtime_class_init): impl.
20612         (mono_class_init): renamed mono_class_metadata_init to
20613         mono_class_init, also removed the metadata_inited flag
20614
20615         * object.c (mono_object_isinst): use faster algorithm
20616
20617 2001-11-30  Radek Doulik  <rodo@ximian.com>
20618
20619         * mono-endian.h: reverted last change
20620         added function prototypes
20621
20622         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
20623         add mono-endian.c back
20624
20625         * mono-endian.c: returned back, as Paolo pointed out, it's needed
20626         for unaligned access, I've mistaked it with endianess. I am
20627         sorry.
20628         (mono_read16): fix reverted endianess
20629         (mono_read64): ditto
20630         (mono_read32): ditto
20631
20632 2001-11-30  Dick Porter  <dick@ximian.com>
20633
20634         * exception.c: Implement mono_exception_from_name()
20635
20636 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20637
20638         * metadata.h, metadata.c: remove params_size and locals_size and their
20639         calculation from the metadata code: they are only usefult to the
20640         interp.
20641
20642 2001-11-29  Radek Doulik  <rodo@ximian.com>
20643
20644         * object.c (mono_ldstr): swap bytes here, it's probably not the
20645         best place, but works for me now, I'll redo it once I know mono
20646         better, also note that I add PROT_WRITE and don't reset back, also
20647         note that it's only affects big endians, so x86 should be OK
20648
20649         * mono-endian.h (read16): use just glib macros for both endians
20650
20651         * mono-endian.c: removed as glib macros are used in in
20652         mono-endian.h so we don't need to care about endianess for read
20653         macros as glib does that for us already
20654
20655 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
20656
20657         * class.h, class.h: take minimum alignment into consideration so
20658         that the fields of a class remain aligned also when in an array.
20659
20660 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20661
20662         * loader.h, loader.c: add mono_method_get_param_names().
20663         * class.c: 0-init class fields.
20664
20665 2001-11-26  Dick Porter  <dick@ximian.com>
20666
20667         * icall.c:
20668         * threads-types.h:
20669         * threads.c: New file that handles System.Threading on all platforms
20670
20671         * object.c: 
20672         * object.h: Remove the synchronisation struct from MonoObject,
20673         replace it with a pointer that gets initialised on demand
20674
20675         * Makefile.am: Replace all the system-specific threading code with
20676         a single file that uses the new wrapper library
20677
20678 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
20679
20680         * class.c, class.h: add mono_install_trampoline() so that the runtime
20681         can register a function to create a trampoline: removes the ugly
20682         requirement that a runtime needed to export arch_create_jit_trampoline.
20683         * object.h, object.c: added mono_install_handler() so that the runtime
20684         can install an handler for exceptions generated in C code (with
20685         mono_raise_exception()). Added C struct for System.Delegate.
20686         * pedump.c: removed arch_create_jit_trampoline.
20687         * reflection.c: some cleanups to allow registering user strings and
20688         later getting a token for methodrefs and fieldrefs before the assembly
20689         is built.
20690         * row-indexes.h: updates and fixes from the new ECMA specs.
20691
20692 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
20693
20694         * class.h, class.c: add enum_basetype field to MonoClass.
20695         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20696         to get index in the constant table reated to a field, param or
20697         property.
20698         * reflection.h, reflection.c: handle constructors. Set public-key and
20699         version number of the built assembly to 0.
20700         * row-indexes.h: update from new ECMA spec.
20701
20702 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20703
20704         * class.h, class.c: add a max_interface_id to MonoClass.
20705         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
20706         since it's used to do that. Added mono_type_type_from_obj().
20707         Make GetType() return NULL instead of segfaulting if the type was not
20708         found. Handle simple arrays in assQualifiedName.
20709         * object.h: add a struct to represent an Exception.
20710         * reflection.c: output call convention in method signature.
20711         Add code to support P/Invoke methods and fixed offsets for fields.
20712
20713 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
20714
20715         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
20716         the value.
20717         * icall.c: use mono_array_addr instead of array->vector: fixes the
20718         reflection image writing.
20719         * reflection.c: init call convention byte to 0 in method signature.
20720         Encode the property signature. Don't output property-related methods
20721         twice. Really process the properties for a type (don't cast a field to
20722         a property, my mom always told me that).
20723         Fix 64 bit issues in pointer alignment in a different and more
20724         readable way.
20725
20726 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
20727
20728         * loader.h: Removed type class from MonoDefaults, added monotype
20729
20730         * loader.c: Loaded MonoType, removed loading of Type
20731
20732         * icall.c (my_mono_new_object): Now returns a System.MonoType,
20733         and fills in System.Type._impl with a RuntimeTypeHandle rather
20734         than the actual MonoClass *
20735
20736         (ves_icall_type_from_handle): change from type_class to
20737         monotype_class
20738
20739         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
20740         implemented
20741
20742         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
20743         implemented
20744
20745         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
20746
20747         (ves_icall_System_Reflection_Assembly_GetType): implemented
20748
20749         (ves_icall_System_MonoType_assQualifiedName): implemented
20750
20751         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
20752
20753 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
20754
20755         * assembly.c (mono_assembly_open): Implement a cache for the
20756         assemblies. 
20757
20758         (mono_assembly_close): only destroy the assembly when the last
20759         reference is gone.
20760         
20761 2001-11-09  Dick Porter  <dick@ximian.com>
20762
20763         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
20764
20765 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
20766
20767         * class.c (mono_class_metadata_init): bug fix: compute the right slot
20768
20769 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20770
20771         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
20772         from Martin Weindel.
20773         * object.h: add mono_string_chars ().
20774
20775 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
20776
20777         * reflection.c (build_compressed_metadata): Eliminates warnings
20778         and uses 64-bit clean code.
20779
20780         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
20781         (mono_type_equal): Change signature to eliminate warnings.
20782
20783 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20784
20785         * icall.c, loader.c: remove the internalcall array constructors.
20786         Changes to match the new MonoArray structure.
20787         * object.h, object.c: an array object doesn't allocate an extra
20788         vector. Add mono_array_new_full () to create jagged arrays easily.
20789
20790 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20791
20792         * metadata.h, metadata.c: add mono_metadata_field_info () to
20793         retreive all the info about a field from vairous tables.
20794         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
20795         * class.h, class.c: augment MonoClassField with more info.
20796         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
20797         policy and load a field's RVA if needed.
20798
20799 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
20800
20801         * class.c (mono_class_metadata_init): create a trampoline for all
20802         virtual functions instead of actually compiling them.
20803
20804 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
20805
20806         * class.h, class.c: include name in MonoClassField.
20807         * class.c: fix fundamental type of System.Object and System.String.
20808         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
20809         tokens in ldtoken.
20810         * icall.c: remove internalcalls for the Reflection stuff that is now
20811         done in C# code.
20812         * loader.c: mono_field_from_memberref () implementation.
20813         * mono-endian.c: thinko (s/struct/union/g).
20814         * object.c, object.h: make the mono_string_* prototypes actually use
20815         MonoString instead of MonoObject.
20816         * reflection.c, reflection.h: updates for changes in the reflection
20817         code in corlib: we use C structures that map to the actual C# classes.
20818         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
20819         fat method header if needed and use the info from the ILGenerator for
20820         methods. Handle fields in types. Misc fixes.
20821
20822 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
20823
20824         * class.c (mono_class_metadata_init): bug fix: always allocate
20825         space for static class data
20826
20827 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
20828
20829         * class.c (mono_compute_relative_numbering): use relative
20830         numbering to support fast runtime type checks.
20831
20832 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
20833
20834         * class.c (mono_class_create_from_typeref): added debugging output
20835         to print class name when MonoDummy is returned instead of real class
20836
20837 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
20838
20839         * class.c (mono_class_metadata_init): interface offset table now
20840         contains pointers into the vtable - this is more efficient for the jit
20841
20842 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20843
20844         * class.c (mono_class_metadata_init): use a temporary vtable (the
20845         old algorithm only worked for the interpreter, but not for the jit)
20846
20847 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20848
20849         * loader.c (method_from_memberref): use mono_class_get to get the
20850         class of an array instead of using System.Array directly.
20851         (mono_get_method): also add MEMBERREF methods to the method cache
20852         which usefull for arrays.
20853
20854 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20855
20856         * pedump.c (arch_compile_method): added to compute vtable entry
20857
20858         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20859         number of interfaces.
20860         
20861         * class.h: merged MonoArrayClass into MonoClass
20862
20863         * class.c (mono_class_create_from_typedef): compute the vtable size and
20864         allocate space to include the vtable inside MonoClass
20865         (mono_class_metadata_init): initialize the vtable
20866
20867 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20868
20869         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20870         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20871         * image.c: endian fixes by Laurent Rioux.
20872         * object.h, object.c: rename MonoStringObject to MonoString and
20873         MonoArrayObject to MonoArray. Change some function names to conform to
20874         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20875         guint16* as first argument, so don't use char*.
20876         Provide macros to do the interesting things on arrays in a portable way.
20877         * threads-pthread.c: updates for the API changes and #include <sched.h>
20878         (required for sched_yield()).
20879         * icall.c: updates for the API changes above.
20880         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20881         platforms that need them.
20882
20883 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20884
20885         * class.c: set the correct type for all the fundamental
20886         type when loading the class.
20887
20888 2001-10-05  Dick Porter  <dick@ximian.com>
20889
20890         * threads-pthread.c (pthread_mutex_timedlock): Simple
20891         compatibility version for C libraries that lack this call.
20892
20893 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20894
20895         * class.c: MonoTypes stored in MonoClass are stored as
20896         fundamental MonoTypes when the class represents a
20897         fundamental type (System.Int32, ...).
20898         The TypeHandle return by ldtoken is a MonoType*.
20899         * icall.c: ves_icall_get_data_chunk () write out all the
20900         PE/COFF stuff. Implement ves_icall_define_method (),
20901         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20902         * image.c: properly skip unknown streams.
20903         * loader.h, loader.c: add type_class to mono_defaults.
20904         * metadata.c, metadata.h: export compute_size () as
20905         mono_metadata_compute_size () with a better interface.
20906         Typo and C&P fixes.
20907         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20908         * reflection.c, reflection.h: many cleanups, fixes, output method
20909         signatures and headers, typedef and typeref info, compress the metadata
20910         tables, output all the heap streams, cli header etc.
20911         * row-indexes.h: typo fixes.
20912
20913 2001-10-04  Dick Porter  <dick@ximian.com>
20914
20915         * object.h: Add a synchronisation mutex struct to MonoObject
20916
20917         * object.c (mono_new_object): Initialise the object
20918         synchronisation mutexes
20919
20920         * icall.c: System.Threading.Monitor internal calls
20921         
20922         * threads-pthread.h:
20923         * threads-pthread.c: System.Threading.Monitor internal calls
20924
20925         * threads-types.h: New file, includes the system-specific thread
20926         structures
20927         
20928         * threads-pthread-types.h:
20929         * threads-pthread-types.c: New files, handle pthread-specific
20930         synchronisation types
20931
20932         * threads-dummy-types.h: 
20933         * threads-dummy-types.c: New files of dummy support for
20934         thread-specific types
20935
20936         * metadata.c:
20937         * image.c:
20938         * pedump.c: include mono-endian.h not endian.h
20939         
20940         * Makefile.am: More threads files.
20941         Name mono-endian.h not endian.h
20942
20943 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20944
20945         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20946         stuff and implement a few more bits.
20947         * icall.c: a field needs to be dereferenced twice. Do not use the same
20948         name for two variables in the same scope.
20949         * image.c, image.h: cleanups.
20950
20951 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20952
20953         * class.c (mono_class_metadata_init): bug fix: compute the right size
20954
20955 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20956
20957         * icall.c: implemented some of the Reflection internalcalls.
20958         * image.c, image.h: start writing out the PE/COFF image.
20959         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20960         that does the reverse than decode_blob_size ().
20961         * object.c: use mono_metadata_encode_value (). Move here
20962         temporary implementation of mono_string_to_utf8 ().
20963         * rawbuffer.c: make malloc_map static.
20964
20965 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20966
20967         * metadata.c: fix type comparison for arrays.
20968         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20969         Added a couple of new classes to monodefaults.
20970         * icall.c: added a couple of Reflection-related internalcalls.
20971         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20972         Added a byval_arg MonoType to MonoClass.
20973
20974 2001-09-28  Dick Porter  <dick@ximian.com>
20975
20976         * icall.c:
20977         * threads-pthread.h: 
20978         * threads-pthread.c: Implemented internal calls for
20979         LocalDataStoreSlot operations.  Applied mutexes around all shared
20980         data.  Reworked the thread creation and Start() operations to
20981         avoid a race condition.
20982         
20983         * threads-dummy.h:
20984         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20985
20986 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20987
20988         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20989
20990 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20991
20992         * class.c, loader.c: warn and return NULL instead of erroring out.
20993         * icall.c: added System.AppDomain::getCurDomain().
20994         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20995
20996 2001-09-25  Dick Porter  <dick@ximian.com>
20997
20998         * threads-pthread.h:
20999         * threads-pthread.c: Implemented timed thread joining and added
21000         System.Threading.Thread::Join_internal internal call
21001
21002         * icall.c: Added System.Threading.Thread::Join_internal internal call
21003
21004         * threads-dummy.h:
21005         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
21006
21007 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
21008
21009         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
21010         mono_string_intern () to implement the semantics of the ldstr opcode
21011         and the interning of System.Strings.
21012         * icall.c: provide hooks to make String::IsIntern and String::Intern
21013         internalcalls.
21014
21015 2001-09-23  Dick Porter  <dick@ximian.com>
21016
21017         * threads-dummy.c: 
21018         * threads-dummy.h: New files of dummy threading routines
21019
21020         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
21021         support code based on system specifics
21022
21023         Rename PTHREAD_LIBS to THREAD_LIBS
21024         
21025 2001-09-23  Dick Porter  <dick@ximian.com>
21026
21027         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
21028         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
21029         internal calls.
21030         (mono_thread_init): Set up a Thread object instance to return when
21031         the main thread calls Thread.CurrentThread
21032         (mono_thread_cleanup): Wait for all subthreads to exit
21033
21034         * icall.c: New internal calls for System.Threading.Thread::Sleep
21035         (including Schedule) and CurrentThread
21036
21037         * threads.h: New file, to insulate thread-specific stuff from the
21038         rest of the code
21039
21040 2001-09-21  Dick Porter  <dick@ximian.com>
21041
21042         * threads-pthread.h: 
21043         * threads-pthread.c: New file, for handling pthreads-style
21044         threading support.  Start() now starts a new thread and executes
21045         the ThreadStart delegate instance.
21046
21047         * icall.c: Added the internalcall for
21048         System.Threading.Thread::Start_internal
21049
21050         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
21051
21052 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
21053
21054         * loader.c: work around the different signatures for delegates
21055         constructors csc generates in compiled code vs the ones compiled in mscorlib.
21056
21057 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
21058
21059         * class.h, class.c: add mono_class_get_field_from_name ().
21060         * *: Fix C comments and other ANSI C issues.
21061
21062 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
21063
21064         * endian.h, assembly.c: fix some endianness issues.
21065
21066 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
21067
21068         * loader.h, load.c: add delegate_class to mono_defaults.
21069         Handle runtime provided methods in mono_get_method ().
21070
21071 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
21072
21073         * loader.c (mono_get_method): use pinvoke for internal call
21074
21075         * icall.c: use pinvoke for internal call
21076
21077         * loader.c (method_from_memberref): set the method name
21078
21079 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
21080
21081         * metadata.c: help the compiler generate better code for
21082         mono_class_from_mono_type ().
21083
21084 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
21085
21086         * class.c (mono_class_metadata_init): delayed computing of the
21087         class size to mono_class_metadata_init ()
21088
21089 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
21090
21091         * class.c, class.h: add an interfaces member to MonoClass.
21092         * image.c, image.h: add assembly_name field to MonoImage
21093         from the assembly table.
21094         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
21095
21096 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
21097
21098         * class.c: Handle Array in mono_class_from_mono_type ().
21099         * metadata.c, pedump.c: some endian fixes.
21100
21101 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
21102
21103         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
21104         * metadata.c: fix small problem introduced with the latest commit.
21105
21106 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
21107
21108         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
21109         We don't need a MonoMetadata pointer anymore to compare signatures in
21110         mono_metadata_signature_equal (), update callers.
21111         Reduced memory usage an number of allocations for MonoMethodHeader and
21112         MonoMethodSignature.
21113
21114 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
21115
21116         * metadata.c: added compare for szarray.
21117
21118 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
21119
21120         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
21121         and add a couple more types to it and mono_defaults. Give an hint on
21122         classes that need implementing in our corlib and are referenced
21123         in mscorlib.
21124
21125 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
21126
21127         * class.h, class.c: keep track if a class is also an Enum.
21128         * loader.c: Implement a couple more types for use in libffi
21129         marshalling. Gives better diagnostics when failing to dlopen
21130         a library. Set method->klass for P/Invoke methods, too.
21131
21132 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
21133
21134         * class.c, class.h: add a MonoType this_arg to MonoClass that
21135         represents a pointer to an object of the class' type that
21136         can be used by the interpreter and later the type cache.
21137         Add best guess alignment info for valuetype objects.
21138
21139 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
21140
21141         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
21142         into MonoType: one less level of indirection and allocation and
21143         simplifies quite a bit of code. Added cache for MonoTypes that are
21144         used frequently, so that we don't need to allocate them all the time.
21145
21146 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
21147
21148         * class.c (mono_class_create_from_typedef): System.Enum is also a
21149         value type, although it does not derive from System.ValueType
21150         (maybe a bug in the ms compiler?)
21151
21152         * metadata.c (mono_type_size): return the right size for value types
21153
21154         * loader.c (mono_get_method): only initialize method header if not abstract
21155
21156         * class.c (mono_class_from_mono_type): use mono_default values. 
21157
21158 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
21159
21160         * *: use MonoClass pointers instead of <type_tokens>
21161         
21162         * class.h: new flag: metadata_inited.
21163
21164         * class.c (mono_class_metadata_init): impl.
21165         (mono_class_instance_size): impl.
21166         (mono_class_data_size): impl.
21167
21168 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21169
21170         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
21171         MonoClass now has the name and name_space fields. 
21172         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
21173         mono_get_method () takes and optional MonoClass as argument.
21174         Removed mono_typedef_from_name() and added mono_class_token_from_name()
21175         instead that takes advantage of a map from class names to typedef
21176         tokens in MonoImage.
21177
21178 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
21179
21180         * metadata.c: zero is not a valid alignment boundary.
21181         Merge MONO_TYPE_VOID in default decoding code.
21182
21183 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
21184
21185         * image.h: merged MonoMetadata into MonoImage
21186
21187         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
21188         identify the type of elements.
21189
21190 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
21191
21192         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
21193         * cil-coff.h: split MonoMSDOSHeader and add size info.
21194         * image.c: add some consistency checks.
21195         * metadata.c: fix row size computation: one programmer
21196         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
21197         add explanation for the locator routine.
21198         Fix decoding of size in method header.
21199         
21200 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
21201
21202         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
21203         (g_concat_dir_and_file): Bring g_concat_dir_and_file
21204         function from gnome-libs.  This uses the right path separator
21205         based on the OS, and also works around a bug in some systems where
21206         a double slash is not allowed. 
21207         (default_assembly_name_resolver): Use g_concat_dir_and_file
21208         (mono_assembly_open): ditto.
21209
21210 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
21211
21212         * metadata.c (mono_metadata_signature_equal): impl.
21213
21214         * *: void is now a realy MonoType (instead of using NULL)
21215         
21216         * metadata.c (do_mono_metadata_parse_type): use
21217         mono_metadata_parse_type to parse void value.
21218
21219 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
21220
21221         * metadata.c, metadata.h: in the signature and method header store
21222         only the space required for holding the loca vars and incoming arguments.
21223
21224 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
21225
21226         * metadata.c (do_mono_metadata_parse_type): treat void like any
21227         other type (instead of assigning NULL);
21228
21229 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
21230
21231         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
21232
21233 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
21234
21235         * image.c (do_mono_image_open): added a cache for arrays.
21236
21237 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
21238
21239         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
21240         decode a single column from a row in a metadata table and changes
21241         to take advantage of it in the typedef locator (gives a nice speed up).
21242         Store offset info for function params.
21243
21244 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
21245
21246         * image.h (MONO_IMAGE_IS_CORLIB): removed 
21247
21248 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
21249
21250         * assembly.c: how could mono_assembly_close () had ever worked?
21251         * metadata.c, metadata.h: provide offset info for local vars.
21252         Implement mono_type_size () to take care of alignment as well
21253         as size (it was mono_field_type_size in cli/class.c before).
21254
21255 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
21256
21257         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
21258
21259         * assembly.h (CORLIB_NAME): set to corlib.dll
21260
21261         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
21262
21263 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
21264
21265         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
21266         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
21267         tokentype.h: massive namespace cleanup.
21268
21269 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
21270
21271         * metadata.h, metadata.c: decode exception clauses when parsing method header.
21272
21273 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
21274
21275         * metadata.c (mono_metadata_free_type): added check for type !=
21276         NULL (void) before calling mono_metadata_free_type()
21277
21278 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
21279
21280         * metadata.h, row_indexes.h: added header with enumerations to use
21281         to index in the columns from tables in metadata and to decode coded
21282         tokens: we should start using this instead of embedding magic numbers
21283         all over the code.
21284
21285 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
21286
21287         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
21288         Move metadata_t info from cli_image_info_t to MonoImage, where
21289         it's easily accessible. Changed all the uses accordingly.
21290         Added the method and class caches to MonoImage.
21291         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
21292         and mono_metadata_decode_value () signature to be more consistent
21293         with the other parse functions (and simplify code). Taken advantage
21294         of zero-length array allocation with GCC. Removed reduntant (and
21295         wrong) MonoFieldType struct and use MonoParam instead. Changed
21296         mono_metadata_parse_field_type () to use common code for parsing.
21297         Added mono_metadata_typedef_from_field () and
21298         mono_metadata_typedef_from_method () to lookup a typedef index from a
21299         field or method token.
21300         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
21301
21302 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
21303
21304         * metadata.c (mono_metadata_parse_field_type): Implement. 
21305         (do_mono_metadata_parse_type): Split engine from
21306         mono_metadata_parse_type, so that we can create smaller structures
21307         for things that just have one pointer to the MonoType (look at
21308         the MonoFieldType)
21309
21310 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
21311
21312         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
21313         as Jan Gray found out, it is incorrect. 
21314
21315 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
21316
21317         * assembly.c: Implement asssembly loading.  This loads an image
21318         and loads all the referenced assemblies.  Come to think of it, we
21319         could always do lazy loading of the assemblies. 
21320
21321         * image.c (mono_image_open): Keep loaded images in a hashtable.
21322
21323         * image.h (MonoImage): Add reference count.
21324
21325 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
21326
21327         * assembly.c (mono_assembly_open): Keep track of the file name in
21328         case the assembly has no ASSEMBLY table.
21329
21330         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
21331         from get.c here.
21332
21333 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
21334
21335         * metadata.c, metadata.h: decode local vars in method header
21336         parse function. Change callers accordingly.
21337
21338 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
21339
21340         * metadata.h, cil-coff.h: protect against multiple inclusion.
21341         Added some new structures to hold information decoded from metadata:
21342         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
21343         and relevant decoding/free functions.
21344         * metadata.c: implement decoding functions. Add warning for out of bounds
21345         index in mono_metadata_locate(). Implement mono_get_method () to retreive
21346         all the info about a method signature and invocation. Remove check on
21347         uninitialized local var in parse_mh() and fix memory leak.
21348
21349 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
21350
21351         * metadata.h: More macros.
21352
21353         * tokentype.h: New file.
21354
21355 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
21356
21357         * assembly.c: added a consistency check and initialize
21358         some structures with g_new0().
21359         * metadata.c: fixed a couple more bugs in table size computation
21360         and add other checks for out-of bound access to metadata.
21361
21362 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
21363
21364         * metatada.c: fix bugs computing table sizes. Spew a
21365         warning when index in string heap is out of bounds.
21366
21367 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
21368
21369         * metadata.h: Add a couple of macros to manipulate tokens. 
21370
21371 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
21372
21373         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
21374         cli_section_tables).
21375
21376 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
21377
21378         * metadata.c (mono_metadata_user_string): New function, provides
21379         access to the UserString heap. 
21380
21381 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
21382
21383         * metadata.c: Add inline documentation.
21384
21385 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
21386
21387         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
21388         files. 
21389
21390 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
21391
21392         * typeattr.h: New file, TypeAttribute flags. 
21393
21394 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
21395
21396         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
21397         mono_assembly_ensure_section): Section loading code.
21398         (load_section_tables): Load the sections.
21399
21400         * mono/metadata/metadata.c (mono_metadata_locate_token,
21401         mono_metadata_locate): Functions to locate the information
21402         definition given a token or a table and an index.
21403         (mono_metadata_compute_table_bases): New.
21404         (compute_size): New function to compute the sizes of the various
21405         tables.
21406
21407         * mono/metadata/metadata.h: Finish listing the different index
21408         types. 
21409
21410         * mono/metadata/pedump.c: Improve to dump new information.
21411
21412 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
21413
21414         * mono/metadata/metadata.c: Entered all the tables matching
21415         Beta2. 
21416
21417         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
21418
21419
21420